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 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 5430 5431 5432 5433 5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5455 5456 5457 5458 5459 5460 5461 5462 5463 5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 6335 6336 6337 6338 6339 6340 6341 6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6415 6416 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 6445 6446 6447 6448 6449 6450 6451 6452 6453 6454 6455 6456 6457 6458 6459 6460 6461 6462 6463 6464 6465 6466 6467 6468 6469 6470 6471 6472 6473 6474 6475 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6692 6693 6694 6695 6696 6697 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6811 6812 6813 6814 6815 6816 6817 6818 6819 6820 6821 6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 6847 6848 6849 6850 6851 6852 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6895 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6932 6933 6934 6935 6936 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 7003 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 7015 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 7051 7052 7053 7054 7055 7056 7057 7058 7059 7060 7061 7062 7063 7064 7065 7066 7067 7068 7069 7070 7071 7072 7073 7074 7075 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 7087 7088 7089 7090 7091 7092 7093 7094 7095 7096 7097 7098 7099 7100 7101 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 7151 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 7162 7163 7164 7165 7166 7167 7168 7169 7170 7171 7172 7173 7174 7175 7176 7177 7178 7179 7180 7181 7182 7183 7184 7185 7186 7187 7188 7189 7190 7191 7192 7193 7194 7195 7196 7197 7198 7199 7200 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210 7211 7212 7213 7214 7215 7216 7217 7218 7219 7220 7221 7222 7223 7224 7225 7226 7227 7228 7229 7230 7231 7232 7233 7234 7235 7236 7237 7238 7239 7240 7241 7242 7243 7244 7245 7246 7247 7248 7249 7250 7251 7252 7253 7254 7255 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270 7271 7272 7273 7274 7275 7276 7277 7278 7279 7280 7281 7282 7283 7284 7285 7286 7287 7288 7289 7290 7291 7292 7293 7294 7295 7296 7297 7298 7299 7300 7301 7302 7303 7304 7305 7306 7307 7308 7309 7310 7311 7312 7313 7314 7315 7316 7317 7318 7319 7320 7321 7322 7323 7324 7325 7326 7327 7328 7329 7330 7331 7332 7333 7334 7335 7336 7337 7338 7339 7340 7341 7342 7343 7344 7345 7346 7347 7348 7349 7350 7351 7352 7353 7354 7355 7356 7357 7358 7359 7360 7361 7362 7363 7364 7365 7366 7367 7368 7369 7370 7371 7372 7373 7374 7375 7376 7377 7378 7379 7380 7381 7382 7383 7384 7385 7386 7387 7388 7389 7390 7391 7392 7393 7394 7395 7396 7397 7398 7399 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7412 7413 7414 7415 7416 7417 7418 7419 7420 7421 7422 7423 7424 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434 7435 7436 7437 7438 7439 7440 7441 7442 7443 7444 7445 7446 7447 7448 7449 7450 7451 7452 7453 7454 7455 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7466 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7482 7483 7484 7485 7486 7487 7488 7489 7490 7491 7492 7493 7494 7495 7496 7497 7498 7499 7500 7501 7502 7503 7504 7505 7506 7507 7508 7509 7510 7511 7512 7513 7514 7515 7516 7517 7518 7519 7520 7521 7522 7523 7524 7525 7526 7527 7528 7529 7530 7531 7532 7533 7534 7535 7536 7537 7538 7539 7540 7541 7542 7543 7544 7545 7546 7547 7548 7549 7550 7551 7552 7553 7554 7555 7556 7557 7558 7559 7560 7561 7562 7563 7564 7565 7566 7567 7568 7569 7570 7571 7572 7573 7574 7575 7576 7577 7578 7579 7580 7581 7582 7583 7584 7585 7586 7587 7588 7589 7590 7591 7592 7593 7594 7595 7596 7597 7598 7599 7600 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610 7611 7612 7613 7614 7615 7616 7617 7618 7619 7620 7621 7622 7623 7624 7625 7626 7627 7628 7629 7630 7631 7632 7633 7634 7635 7636 7637 7638 7639 7640 7641 7642 7643 7644 7645 7646 7647 7648 7649 7650 7651 7652 7653 7654 7655 7656 7657 7658 7659 7660 7661 7662 7663 7664 7665 7666 7667 7668 7669 7670 7671 7672 7673 7674 7675 7676 7677 7678 7679 7680 7681 7682 7683 7684 7685 7686 7687 7688 7689 7690 7691 7692 7693 7694 7695 7696 7697 7698 7699 7700 7701 7702 7703 7704 7705 7706 7707 7708 7709 7710 7711 7712 7713 7714 7715 7716 7717 7718 7719 7720 7721 7722 7723 7724 7725 7726 7727 7728 7729 7730 7731 7732 7733 7734 7735 7736 7737 7738 7739 7740 7741 7742 7743 7744 7745 7746 7747 7748 7749 7750 7751 7752 7753 7754 7755 7756 7757 7758 7759 7760 7761 7762 7763 7764 7765 7766 7767 7768 7769 7770 7771 7772 7773 7774 7775 7776 7777 7778 7779 7780 7781 7782 7783 7784 7785 7786 7787 7788 7789 7790 7791 7792 7793 7794 7795 7796 7797 7798 7799 7800 7801 7802 7803 7804 7805 7806 7807 7808 7809 7810 7811 7812 7813 7814 7815 7816 7817 7818 7819 7820 7821 7822 7823 7824 7825 7826 7827 7828 7829 7830 7831 7832 7833 7834 7835 7836 7837 7838 7839 7840 7841 7842 7843 7844 7845 7846 7847 7848 7849 7850 7851 7852 7853 7854 7855 7856 7857 7858 7859 7860 7861 7862 7863 7864 7865 7866 7867 7868 7869 7870 7871 7872 7873 7874 7875 7876 7877 7878 7879 7880 7881 7882 7883 7884 7885 7886 7887 7888 7889 7890 7891 7892 7893 7894 7895 7896 7897 7898 7899 7900 7901 7902 7903 7904 7905 7906 7907 7908 7909 7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 7920 7921 7922 7923 7924 7925 7926 7927 7928 7929 7930 7931 7932 7933 7934 7935 7936 7937 7938 7939 7940 7941 7942 7943 7944 7945 7946 7947 7948 7949 7950 7951 7952 7953 7954 7955 7956 7957 7958 7959 7960 7961 7962 7963 7964 7965 7966 7967 7968 7969 7970 7971 7972 7973 7974 7975 7976 7977 7978 7979 7980 7981 7982 7983 7984 7985 7986 7987 7988 7989 7990 7991 7992 7993 7994 7995 7996 7997 7998 7999 8000 8001 8002 8003 8004 8005 8006 8007 8008 8009 8010 8011 8012 8013 8014 8015 8016 8017 8018 8019 8020 8021 8022 8023 8024 8025 8026 8027 8028 8029 8030 8031 8032 8033 8034 8035 8036 8037 8038 8039 8040 8041 8042 8043 8044 8045 8046 8047 8048 8049 8050 8051 8052 8053 8054 8055 8056 8057 8058 8059 8060 8061 8062 8063 8064 8065 8066 8067 8068 8069 8070 8071 8072 8073 8074 8075 8076 8077 8078 8079 8080 8081 8082 8083 8084 8085 8086 8087 8088 8089 8090 8091 8092 8093 8094 8095 8096 8097 8098 8099 8100 8101 8102 8103 8104 8105 8106 8107 8108 8109 8110 8111 8112 8113 8114 8115 8116 8117 8118 8119 8120 8121 8122 8123 8124 8125 8126 8127 8128 8129 8130 8131 8132 8133 8134 8135 8136 8137 8138 8139 8140 8141 8142 8143 8144 8145 8146 8147 8148 8149 8150 8151 8152 8153 8154 8155 8156 8157 8158 8159 8160 8161 8162 8163 8164 8165 8166 8167 8168 8169 8170 8171 8172 8173 8174 8175 8176 8177 8178 8179 8180 8181 8182 8183 8184 8185 8186 8187 8188 8189 8190 8191 8192 8193 8194 8195 8196 8197 8198 8199 8200 8201 8202 8203 8204 8205 8206 8207 8208 8209 8210 8211 8212 8213 8214 8215 8216 8217 8218 8219 8220 8221 8222 8223 8224 8225 8226 8227 8228 8229 8230 8231 8232 8233 8234 8235 8236 8237 8238 8239 8240 8241 8242 8243 8244 8245 8246 8247 8248 8249 8250 8251 8252 8253 8254 8255 8256 8257 8258 8259 8260 8261 8262 8263 8264 8265 8266 8267 8268 8269 8270 8271 8272 8273 8274 8275 8276 8277 8278 8279 8280 8281 8282 8283 8284 8285 8286 8287 8288 8289 8290 8291 8292 8293 8294 8295 8296 8297 8298 8299 8300 8301 8302 8303 8304 8305 8306 8307 8308 8309 8310 8311 8312 8313 8314 8315 8316 8317 8318 8319 8320 8321 8322 8323 8324 8325 8326 8327 8328 8329 8330 8331 8332 8333 8334 8335 8336 8337 8338 8339 8340 8341 8342 8343 8344 8345 8346 8347 8348 8349 8350 8351 8352 8353 8354 8355 8356 8357 8358 8359 8360 8361 8362 8363 8364 8365 8366 8367 8368 8369 8370 8371 8372 8373 8374 8375 8376 8377 8378 8379 8380 8381 8382 8383 8384 8385 8386 8387 8388 8389 8390 8391 8392 8393 8394 8395 8396 8397 8398 8399 8400 8401 8402 8403 8404 8405 8406 8407 8408 8409 8410 8411 8412 8413 8414 8415 8416 8417 8418 8419 8420 8421 8422 8423 8424 8425 8426 8427 8428 8429 8430 8431 8432 8433 8434 8435 8436 8437 8438 8439 8440 8441 8442 8443 8444 8445 8446 8447 8448 8449 8450 8451 8452 8453 8454 8455 8456 8457 8458 8459 8460 8461 8462 8463 8464 8465 8466 8467 8468 8469 8470 8471 8472 8473 8474 8475 8476 8477 8478 8479 8480 8481 8482 8483 8484 8485 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 8504 8505 8506 8507 8508 8509 8510 8511 8512 8513 8514 8515 8516 8517 8518 8519 8520 8521 8522 8523 8524 8525 8526 8527 8528 8529 8530 8531 8532 8533 8534 8535 8536 8537 8538 8539 8540 8541 8542 8543 8544 8545 8546 8547 8548 8549 8550 8551 8552 8553 8554 8555 8556 8557 8558 8559 8560 8561 8562 8563 8564 8565 8566 8567 8568 8569 8570 8571 8572 8573 8574 8575 8576 8577 8578 8579 8580 8581 8582 8583 8584 8585 8586 8587 8588 8589 8590 8591 8592 8593 8594 8595 8596 8597 8598 8599 8600 8601 8602 8603 8604 8605 8606 8607 8608 8609 8610 8611 8612 8613 8614 8615 8616 8617 8618 8619 8620 8621 8622 8623 8624 8625 8626 8627 8628 8629 8630 8631 8632 8633 8634 8635 8636 8637 8638 8639 8640 8641 8642 8643 8644 8645 8646 8647 8648 8649 8650 8651 8652 8653 8654 8655 8656 8657 8658 8659 8660 8661 8662 8663 8664 8665 8666 8667 8668 8669 8670 8671 8672 8673 8674 8675 8676 8677 8678 8679 8680 8681 8682 8683 8684 8685 8686 8687 8688 8689 8690 8691 8692 8693 8694 8695 8696 8697 8698 8699 8700 8701 8702 8703 8704 8705 8706 8707 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8719 8720 8721 8722 8723 8724 8725 8726 8727 8728 8729 8730 8731 8732 8733 8734 8735 8736 8737 8738 8739 8740 8741 8742 8743 8744 8745 8746 8747 8748 8749 8750 8751 8752 8753 8754 8755 8756 8757 8758 8759 8760 8761 8762 8763 8764 8765 8766 8767 8768 8769 8770 8771 8772 8773 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 8793 8794 8795 8796 8797 8798 8799 8800 8801 8802 8803 8804 8805 8806 8807 8808 8809 8810 8811 8812 8813 8814 8815 8816 8817 8818 8819 8820 8821 8822 8823 8824 8825 8826 8827 8828 8829 8830 8831 8832 8833 8834 8835 8836 8837 8838 8839 8840 8841 8842 8843 8844 8845 8846 8847 8848 8849 8850 8851 8852 8853 8854 8855 8856 8857 8858 8859 8860 8861 8862 8863 8864 8865 8866 8867 8868 8869 8870 8871 8872 8873 8874 8875 8876 8877 8878 8879 8880 8881 8882 8883 8884 8885 8886 8887 8888 8889 8890 8891 8892 8893 8894 8895 8896 8897 8898 8899 8900 8901 8902 8903 8904 8905 8906 8907 8908 8909 8910 8911 8912 8913 8914 8915 8916 8917 8918 8919 8920 8921 8922 8923 8924 8925 8926 8927 8928 8929 8930 8931 8932 8933 8934 8935 8936 8937 8938 8939 8940 8941 8942 8943 8944 8945 8946 8947 8948 8949 8950 8951 8952 8953 8954 8955 8956 8957 8958 8959 8960 8961 8962 8963 8964 8965 8966 8967 8968 8969 8970 8971 8972 8973 8974 8975 8976 8977 8978 8979 8980 8981 8982 8983 8984 8985 8986 8987 8988 8989 8990 8991 8992 8993 8994 8995 8996 8997 8998 8999 9000 9001 9002 9003 9004 9005 9006 9007 9008 9009 9010 9011 9012 9013 9014 9015 9016 9017 9018 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 9030 9031 9032 9033 9034 9035 9036 9037 9038 9039 9040 9041 9042 9043 9044 9045 9046 9047 9048 9049 9050 9051 9052 9053 9054 9055 9056 9057 9058 9059 9060 9061 9062 9063 9064 9065 9066 9067 9068 9069 9070 9071 9072 9073 9074 9075 9076 9077 9078 9079 9080 9081 9082 9083 9084 9085 9086 9087 9088 9089 9090 9091 9092 9093 9094 9095 9096 9097 9098 9099 9100 9101 9102 9103 9104 9105 9106 9107 9108 9109 9110 9111 9112 9113 9114 9115 9116 9117 9118 9119 9120 9121 9122 9123 9124 9125 9126 9127 9128 9129 9130 9131 9132 9133 9134 9135 9136 9137 9138 9139 9140 9141 9142 9143 9144 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 9188 9189 9190 9191 9192 9193 9194 9195 9196 9197 9198 9199 9200 9201 9202 9203 9204 9205 9206 9207 9208 9209 9210 9211 9212 9213 9214 9215 9216 9217 9218 9219 9220 9221 9222 9223 9224 9225 9226 9227 9228 9229 9230 9231 9232 9233 9234 9235 9236 9237 9238 9239 9240 9241 9242 9243 9244 9245 9246 9247 9248 9249 9250 9251 9252 9253 9254 9255 9256 9257 9258 9259 9260 9261 9262 9263 9264 9265 9266 9267 9268 9269 9270 9271 9272 9273 9274 9275 9276 9277 9278 9279 9280 9281 9282 9283 9284 9285 9286 9287 9288 9289 9290 9291 9292 9293 9294 9295 9296 9297 9298 9299 9300 9301 9302 9303 9304 9305 9306 9307 9308 9309 9310 9311 9312 9313 9314 9315 9316 9317 9318 9319 9320 9321 9322 9323 9324 9325 9326 9327 9328 9329 9330 9331 9332 9333 9334 9335 9336 9337 9338 9339 9340 9341 9342 9343 9344 9345 9346 9347 9348 9349 9350 9351 9352 9353 9354 9355 9356 9357 9358 9359 9360 9361 9362 9363 9364 9365 9366 9367 9368 9369 9370 9371 9372 9373 9374 9375 9376 9377 9378 9379 9380 9381 9382 9383 9384 9385 9386 9387 9388 9389 9390 9391 9392 9393 9394 9395 9396 9397 9398 9399 9400 9401 9402 9403 9404 9405 9406 9407 9408 9409 9410 9411 9412 9413 9414 9415 9416 9417 9418 9419 9420 9421 9422 9423 9424 9425 9426 9427 9428 9429 9430 9431 9432 9433 9434 9435 9436 9437 9438 9439 9440 9441 9442 9443 9444 9445 9446 9447 9448 9449 9450 9451 9452 9453 9454 9455 9456 9457 9458 9459 9460 9461 9462 9463 9464 9465 9466 9467 9468 9469 9470 9471 9472 9473 9474 9475 9476 9477 9478 9479 9480 9481 9482 9483 9484 9485 9486 9487 9488 9489 9490 9491 9492 9493 9494 9495 9496 9497 9498 9499 9500 9501 9502 9503 9504 9505 9506 9507 9508 9509 9510 9511 9512 9513 9514 9515 9516 9517 9518 9519 9520 9521 9522 9523 9524 9525 9526 9527 9528 9529 9530 9531 9532 9533 9534 9535 9536 9537 9538 9539 9540 9541 9542 9543 9544 9545 9546 9547 9548 9549 9550 9551 9552 9553 9554 9555 9556 9557 9558 9559 9560 9561 9562 9563 9564 9565 9566 9567 9568 9569 9570 9571 9572 9573 9574 9575 9576 9577 9578 9579 9580 9581 9582 9583 9584 9585 9586 9587 9588 9589 9590 9591 9592 9593 9594 9595 9596 9597 9598 9599 9600 9601 9602 9603 9604 9605 9606 9607 9608 9609 9610 9611 9612 9613 9614 9615 9616 9617 9618 9619 9620 9621 9622 9623 9624 9625 9626 9627 9628 9629 9630 9631 9632 9633 9634 9635 9636 9637 9638 9639 9640 9641 9642 9643 9644 9645 9646 9647 9648 9649 9650 9651 9652 9653 9654 9655 9656 9657 9658 9659 9660 9661 9662 9663 9664 9665 9666 9667 9668 9669 9670 9671 9672 9673 9674 9675 9676 9677 9678 9679 9680 9681 9682 9683 9684 9685 9686 9687 9688 9689 9690 9691 9692 9693 9694 9695 9696 9697 9698 9699 9700 9701 9702 9703 9704 9705 9706 9707 9708 9709 9710 9711 9712 9713 9714 9715 9716 9717 9718 9719 9720 9721 9722 9723 9724 9725 9726 9727 9728 9729 9730 9731 9732 9733 9734 9735 9736 9737 9738 9739 9740 9741 9742 9743 9744 9745 9746 9747 9748 9749 9750 9751 9752 9753 9754 9755 9756 9757 9758 9759 9760 9761 9762 9763 9764 9765 9766 9767 9768 9769 9770 9771 9772 9773 9774 9775 9776 9777 9778 9779 9780 9781 9782 9783 9784 9785 9786 9787 9788 9789 9790 9791 9792 9793 9794 9795 9796 9797 9798 9799 9800 9801 9802 9803 9804 9805 9806 9807 9808 9809 9810 9811 9812 9813 9814 9815 9816 9817 9818 9819 9820 9821 9822 9823 9824 9825 9826 9827 9828 9829 9830 9831 9832 9833 9834 9835 9836 9837 9838 9839 9840 9841 9842 9843 9844 9845 9846 9847 9848 9849 9850 9851 9852 9853 9854 9855 9856 9857 9858 9859 9860 9861 9862 9863 9864 9865 9866 9867 9868 9869 9870 9871 9872 9873 9874 9875 9876 9877 9878 9879 9880 9881 9882 9883 9884 9885 9886 9887 9888 9889 9890 9891 9892 9893 9894 9895 9896 9897 9898 9899 9900 9901 9902 9903 9904 9905 9906 9907 9908 9909 9910 9911 9912 9913 9914 9915 9916 9917 9918 9919 9920 9921 9922 9923 9924 9925 9926 9927 9928 9929 9930 9931 9932 9933 9934 9935 9936 9937 9938 9939 9940 9941 9942 9943 9944 9945 9946 9947 9948 9949 9950 9951 9952 9953 9954 9955 9956 9957 9958 9959 9960 9961 9962 9963 9964 9965 9966 9967 9968 9969 9970 9971 9972 9973 9974 9975 9976 9977 9978 9979 9980 9981 9982 9983 9984 9985 9986 9987 9988 9989 9990 9991 9992 9993 9994 9995 9996 9997 9998 9999 10000 10001 10002 10003 10004 10005 10006 10007 10008 10009 10010 10011 10012 10013 10014 10015 10016 10017 10018 10019 10020 10021 10022 10023 10024 10025 10026 10027 10028 10029 10030 10031 10032 10033 10034 10035 10036 10037 10038 10039 10040 10041 10042 10043 10044 10045 10046 10047 10048 10049 10050 10051 10052 10053 10054 10055 10056 10057 10058 10059 10060 10061 10062 10063 10064 10065 10066 10067 10068 10069 10070 10071 10072 10073 10074 10075 10076 10077 10078 10079 10080 10081 10082 10083 10084 10085 10086 10087 10088 10089 10090 10091 10092 10093 10094 10095 10096 10097 10098 10099 10100 10101 10102 10103 10104 10105 10106 10107 10108 10109 10110 10111 10112 10113 10114 10115 10116 10117 10118 10119 10120 10121 10122 10123 10124 10125 10126 10127 10128 10129 10130 10131 10132 10133 10134 10135 10136 10137 10138 10139 10140 10141 10142 10143 10144 10145 10146 10147 10148 10149 10150 10151 10152 10153 10154 10155 10156 10157 10158 10159 10160 10161 10162 10163 10164 10165 10166 10167 10168 10169 10170 10171 10172 10173 10174 10175 10176 10177 10178 10179 10180 10181 10182 10183 10184 10185 10186 10187 10188 10189 10190 10191 10192 10193 10194 10195 10196 10197 10198 10199 10200 10201 10202 10203 10204 10205 10206 10207 10208 10209 10210 10211 10212 10213 10214 10215 10216 10217 10218 10219 10220 10221 10222 10223 10224 10225 10226 10227 10228 10229 10230 10231 10232 10233 10234 10235 10236 10237 10238 10239 10240 10241 10242 10243 10244 10245 10246 10247 10248 10249 10250 10251 10252 10253 10254 10255 10256 10257 10258 10259 10260 10261 10262 10263 10264 10265 10266 10267 10268 10269 10270 10271 10272 10273 10274 10275 10276 10277 10278 10279 10280 10281 10282 10283 10284 10285 10286 10287 10288 10289 10290 10291 10292 10293 10294 10295 10296 10297 10298 10299 10300 10301 10302 10303 10304 10305 10306 10307 10308 10309 10310 10311 10312 10313 10314 10315 10316 10317 10318 10319 10320 10321 10322 10323 10324 10325 10326 10327 10328 10329 10330 10331 10332 10333 10334 10335 10336 10337 10338 10339 10340 10341 10342 10343 10344 10345 10346 10347 10348 10349 10350 10351 10352 10353 10354 10355 10356 10357 10358 10359 10360 10361 10362 10363 10364 10365 10366 10367 10368 10369 10370 10371 10372 10373 10374 10375 10376 10377 10378 10379 10380 10381 10382 10383 10384 10385 10386 10387 10388 10389 10390 10391 10392 10393 10394 10395 10396 10397 10398 10399 10400 10401 10402 10403 10404 10405 10406 10407 10408 10409 10410 10411 10412 10413 10414 10415 10416 10417 10418 10419 10420 10421 10422 10423 10424 10425 10426 10427 10428 10429 10430 10431 10432 10433 10434 10435 10436 10437 10438 10439 10440 10441 10442 10443 10444 10445 10446 10447 10448 10449 10450 10451 10452 10453 10454 10455 10456 10457 10458 10459 10460 10461 10462 10463 10464 10465 10466 10467 10468 10469 10470 10471 10472 10473 10474 10475 10476 10477 10478 10479 10480 10481 10482 10483 10484 10485 10486 10487 10488 10489 10490 10491 10492 10493 10494 10495 10496 10497 10498 10499 10500 10501 10502 10503 10504 10505 10506 10507 10508 10509 10510 10511 10512 10513 10514 10515 10516 10517 10518 10519 10520 10521 10522 10523 10524 10525 10526 10527 10528 10529 10530 10531 10532 10533 10534 10535 10536 10537 10538 10539 10540 10541 10542 10543 10544 10545 10546 10547 10548 10549 10550 10551 10552 10553 10554 10555 10556 10557 10558 10559 10560 10561 10562 10563 10564 10565 10566 10567 10568 10569 10570 10571 10572 10573 10574 10575 10576 10577 10578 10579 10580 10581 10582 10583 10584 10585 10586 10587 10588 10589 10590 10591 10592 10593 10594 10595 10596 10597 10598 10599 10600 10601 10602 10603 10604 10605 10606 10607 10608 10609 10610 10611 10612 10613 10614 10615 10616 10617 10618 10619 10620 10621 10622 10623 10624 10625 10626 10627 10628 10629 10630 10631 10632 10633 10634 10635 10636 10637 10638 10639 10640 10641 10642 10643 10644 10645 10646 10647 10648 10649 10650 10651 10652 10653 10654 10655 10656 10657 10658 10659 10660 10661 10662 10663 10664 10665 10666 10667 10668 10669 10670 10671 10672 10673 10674 10675 10676 10677 10678 10679 10680 10681 10682 10683 10684 10685 10686 10687 10688 10689 10690 10691 10692 10693 10694 10695 10696 10697 10698 10699 10700 10701 10702 10703 10704 10705 10706 10707 10708 10709 10710 10711 10712 10713 10714 10715 10716 10717 10718 10719 10720 10721 10722 10723 10724 10725 10726 10727 10728 10729 10730 10731 10732 10733 10734 10735 10736 10737 10738 10739 10740 10741 10742 10743 10744 10745 10746 10747 10748 10749 10750 10751 10752 10753 10754 10755 10756 10757 10758 10759 10760 10761 10762 10763 10764 10765 10766 10767 10768 10769 10770 10771 10772 10773 10774 10775 10776 10777 10778 10779 10780 10781 10782 10783 10784 10785 10786 10787 10788 10789 10790 10791 10792 10793 10794 10795 10796 10797 10798 10799 10800 10801 10802 10803 10804 10805 10806 10807 10808 10809 10810 10811 10812 10813 10814 10815 10816 10817 10818 10819 10820 10821 10822 10823 10824 10825 10826 10827 10828 10829 10830 10831 10832 10833 10834 10835 10836 10837 10838 10839 10840 10841 10842 10843 10844 10845 10846 10847 10848 10849 10850 10851 10852 10853 10854 10855 10856 10857 10858 10859 10860 10861 10862 10863 10864 10865 10866 10867 10868 10869 10870 10871 10872 10873 10874 10875 10876 10877 10878 10879 10880 10881 10882 10883 10884 10885 10886 10887 10888 10889 10890 10891 10892 10893 10894 10895 10896 10897 10898 10899 10900 10901 10902 10903 10904 10905 10906 10907 10908 10909 10910 10911 10912 10913 10914 10915 10916 10917 10918 10919 10920 10921 10922 10923 10924 10925 10926 10927 10928 10929 10930 10931 10932 10933 10934 10935 10936 10937 10938 10939 10940 10941 10942 10943 10944 10945 10946 10947 10948 10949 10950 10951 10952 10953 10954 10955 10956 10957 10958 10959 10960 10961 10962 10963 10964 10965 10966 10967 10968 10969 10970 10971 10972 10973 10974 10975 10976 10977 10978 10979 10980 10981 10982 10983 10984 10985 10986 10987 10988 10989 10990 10991 10992 10993 10994 10995 10996 10997 10998 10999 11000 11001 11002 11003 11004 11005 11006 11007 11008 11009 11010 11011 11012 11013 11014 11015 11016 11017 11018 11019 11020 11021 11022 11023 11024 11025 11026 11027 11028 11029 11030 11031 11032 11033 11034 11035 11036 11037 11038 11039 11040 11041 11042 11043 11044 11045 11046 11047 11048 11049 11050 11051 11052 11053 11054 11055 11056 11057 11058 11059 11060 11061 11062 11063 11064 11065 11066 11067 11068 11069 11070 11071 11072 11073 11074 11075 11076 11077 11078 11079 11080 11081 11082 11083 11084 11085 11086 11087 11088 11089 11090 11091 11092 11093 11094 11095 11096 11097 11098 11099 11100 11101 11102 11103 11104 11105 11106 11107 11108 11109 11110 11111 11112 11113 11114 11115 11116 11117 11118 11119 11120 11121 11122 11123 11124 11125 11126 11127 11128 11129 11130 11131 11132 11133 11134 11135 11136 11137 11138 11139 11140 11141 11142 11143 11144 11145 11146 11147 11148 11149 11150 11151 11152 11153 11154 11155 11156 11157 11158 11159 11160 11161 11162 11163 11164 11165 11166 11167 11168 11169 11170 11171 11172 11173 11174 11175 11176 11177 11178 11179 11180 11181 11182 11183 11184 11185 11186 11187 11188 11189 11190 11191 11192 11193 11194 11195 11196 11197 11198 11199 11200 11201 11202 11203 11204 11205 11206 11207 11208 11209 11210 11211 11212 11213 11214 11215 11216 11217 11218 11219 11220 11221 11222 11223 11224 11225 11226 11227 11228 11229 11230 11231 11232 11233 11234 11235 11236 11237 11238 11239 11240 11241 11242 11243 11244 11245 11246 11247 11248 11249 11250 11251 11252 11253 11254 11255 11256 11257 11258 11259 11260 11261 11262 11263 11264 11265 11266 11267 11268 11269 11270 11271 11272 11273 11274 11275 11276 11277 11278 11279 11280 11281 11282 11283 11284 11285 11286 11287 11288 11289 11290 11291 11292 11293 11294 11295 11296 11297 11298 11299 11300 11301 11302 11303 11304 11305 11306 11307 11308 11309 11310 11311 11312 11313 11314 11315 11316 11317 11318 11319 11320 11321 11322 11323 11324 11325 11326 11327 11328 11329 11330 11331 11332 11333 11334 11335 11336 11337 11338 11339 11340 11341 11342 11343 11344 11345 11346 11347 11348 11349 11350 11351 11352 11353 11354 11355 11356 11357 11358 11359 11360 11361 11362 11363 11364 11365 11366 11367 11368 11369 11370 11371 11372 11373 11374 11375 11376 11377 11378 11379 11380 11381 11382 11383 11384 11385 11386 11387 11388 11389 11390 11391 11392 11393 11394 11395 11396 11397 11398 11399 11400 11401 11402 11403 11404 11405 11406 11407 11408 11409 11410 11411 11412 11413 11414 11415 11416 11417 11418 11419 11420 11421 11422 11423 11424 11425 11426 11427 11428 11429 11430 11431 11432 11433 11434 11435 11436 11437 11438 11439 11440 11441 11442 11443 11444 11445 11446 11447 11448 11449 11450 11451 11452 11453 11454 11455 11456 11457 11458 11459 11460 11461 11462 11463 11464 11465 11466 11467 11468 11469 11470 11471 11472 11473 11474 11475 11476 11477 11478 11479 11480 11481 11482 11483 11484 11485 11486 11487 11488 11489 11490 11491 11492 11493 11494 11495 11496 11497 11498 11499 11500 11501 11502 11503 11504 11505 11506 11507 11508 11509 11510 11511 11512 11513 11514 11515 11516 11517 11518 11519 11520 11521 11522 11523 11524 11525 11526 11527 11528 11529 11530 11531 11532 11533 11534 11535 11536 11537 11538 11539 11540 11541 11542 11543 11544 11545 11546 11547 11548 11549 11550 11551 11552 11553 11554 11555 11556 11557 11558 11559 11560 11561 11562 11563 11564 11565 11566 11567 11568 11569 11570 11571 11572 11573 11574 11575 11576 11577 11578 11579 11580 11581 11582 11583 11584 11585 11586 11587 11588 11589 11590 11591 11592 11593 11594 11595 11596 11597 11598 11599 11600 11601 11602 11603 11604 11605 11606 11607 11608 11609 11610 11611 11612 11613 11614 11615 11616 11617 11618 11619 11620 11621 11622 11623 11624 11625 11626 11627 11628 11629 11630 11631 11632 11633 11634 11635 11636 11637 11638 11639 11640 11641 11642 11643 11644 11645 11646 11647 11648 11649 11650 11651 11652 11653 11654 11655 11656 11657 11658 11659 11660 11661 11662 11663 11664 11665 11666 11667 11668 11669 11670 11671 11672 11673 11674 11675 11676 11677 11678 11679 11680 11681 11682 11683 11684 11685 11686 11687 11688 11689 11690 11691 11692 11693 11694 11695 11696 11697 11698 11699 11700 11701 11702 11703 11704 11705 11706 11707 11708 11709 11710 11711 11712 11713 11714 11715 11716 11717 11718 11719 11720 11721 11722 11723 11724 11725 11726 11727 11728 11729 11730 11731 11732 11733 11734 11735 11736 11737 11738 11739 11740 11741 11742 11743 11744 11745 11746 11747 11748 11749 11750 11751 11752 11753 11754 11755 11756 11757 11758 11759 11760 11761 11762 11763 11764 11765 11766 11767 11768 11769 11770 11771 11772 11773 11774 11775 11776 11777 11778 11779 11780 11781 11782 11783 11784 11785 11786 11787 11788 11789 11790 11791 11792 11793 11794 11795 11796 11797 11798 11799 11800 11801 11802 11803 11804 11805 11806 11807 11808 11809 11810 11811 11812 11813 11814 11815 11816 11817 11818 11819 11820 11821 11822 11823 11824 11825 11826 11827 11828 11829 11830 11831 11832 11833 11834 11835 11836 11837 11838 11839 11840 11841 11842 11843 11844 11845 11846 11847 11848 11849 11850 11851 11852 11853 11854 11855 11856 11857 11858 11859 11860 11861 11862 11863 11864 11865 11866 11867 11868 11869 11870 11871 11872 11873 11874 11875 11876 11877 11878 11879 11880 11881 11882 11883 11884 11885 11886 11887 11888 11889 11890 11891 11892 11893 11894 11895 11896 11897 11898 11899 11900 11901 11902 11903 11904 11905 11906 11907 11908 11909 11910 11911 11912 11913 11914 11915 11916 11917 11918 11919 11920 11921 11922 11923 11924 11925 11926 11927 11928 11929 11930 11931 11932 11933 11934 11935 11936 11937 11938 11939 11940 11941 11942 11943 11944 11945 11946 11947 11948 11949 11950 11951 11952 11953 11954 11955 11956 11957 11958 11959 11960 11961 11962 11963 11964 11965 11966 11967 11968 11969 11970 11971 11972 11973 11974 11975 11976 11977 11978 11979 11980 11981 11982 11983 11984 11985 11986 11987 11988 11989 11990 11991 11992 11993 11994 11995 11996 11997 11998 11999 12000 12001 12002 12003 12004 12005 12006 12007 12008 12009 12010 12011 12012 12013 12014 12015 12016 12017 12018 12019 12020 12021 12022 12023 12024 12025 12026 12027 12028 12029 12030 12031 12032 12033 12034 12035 12036 12037 12038 12039 12040 12041 12042 12043 12044 12045 12046 12047 12048 12049 12050 12051 12052 12053 12054 12055 12056 12057 12058 12059 12060 12061 12062 12063 12064 12065 12066 12067 12068 12069 12070 12071 12072 12073 12074 12075 12076 12077 12078 12079 12080 12081 12082 12083 12084 12085 12086 12087 12088 12089 12090 12091 12092 12093 12094 12095 12096 12097 12098 12099 12100 12101 12102 12103 12104 12105 12106 12107 12108 12109 12110 12111 12112 12113 12114 12115 12116 12117 12118 12119 12120 12121 12122 12123 12124 12125 12126 12127 12128 12129 12130 12131 12132 12133 12134 12135 12136 12137 12138 12139 12140 12141 12142 12143 12144 12145 12146 12147 12148 12149 12150 12151 12152 12153 12154 12155 12156 12157 12158 12159 12160 12161 12162 12163 12164 12165 12166 12167 12168 12169 12170 12171 12172 12173 12174 12175 12176 12177 12178 12179 12180 12181 12182 12183 12184 12185 12186 12187 12188 12189 12190 12191 12192 12193 12194 12195 12196 12197 12198 12199 12200 12201 12202 12203 12204 12205 12206 12207 12208 12209 12210 12211 12212 12213 12214 12215 12216 12217 12218 12219 12220 12221 12222 12223 12224 12225 12226 12227 12228 12229 12230 12231 12232 12233 12234 12235 12236 12237 12238 12239 12240 12241 12242 12243 12244 12245 12246 12247 12248 12249 12250 12251 12252 12253 12254 12255 12256 12257 12258 12259 12260 12261 12262 12263 12264 12265 12266 12267 12268 12269 12270 12271 12272 12273 12274 12275 12276 12277 12278 12279 12280 12281 12282 12283 12284 12285 12286 12287 12288 12289 12290 12291 12292 12293 12294 12295 12296 12297 12298 12299 12300 12301 12302 12303 12304 12305 12306 12307 12308 12309 12310 12311 12312 12313 12314 12315 12316 12317 12318 12319 12320 12321 12322 12323 12324 12325 12326 12327 12328 12329 12330 12331 12332 12333 12334 12335 12336 12337 12338 12339 12340 12341 12342 12343 12344 12345 12346 12347 12348 12349 12350 12351 12352 12353 12354 12355 12356 12357 12358 12359 12360 12361 12362 12363 12364 12365 12366 12367 12368 12369 12370 12371 12372 12373 12374 12375 12376 12377 12378 12379 12380 12381 12382 12383 12384 12385 12386 12387 12388 12389 12390 12391 12392 12393 12394 12395 12396 12397 12398 12399 12400 12401 12402 12403 12404 12405 12406 12407 12408 12409 12410 12411 12412 12413 12414 12415 12416 12417 12418 12419 12420 12421 12422 12423 12424 12425 12426 12427 12428 12429 12430 12431 12432 12433 12434 12435 12436 12437 12438 12439 12440 12441 12442 12443 12444 12445 12446 12447 12448 12449 12450 12451 12452 12453 12454 12455 12456 12457 12458 12459 12460 12461 12462 12463 12464 12465 12466 12467 12468 12469 12470 12471 12472 12473 12474 12475 12476 12477 12478 12479 12480 12481 12482 12483 12484 12485 12486 12487 12488 12489 12490 12491 12492 12493 12494 12495 12496 12497 12498 12499 12500 12501 12502 12503 12504 12505 12506 12507 12508 12509 12510 12511 12512 12513 12514 12515 12516 12517 12518 12519 12520 12521 12522 12523 12524 12525 12526 12527 12528 12529 12530 12531 12532 12533 12534 12535 12536 12537 12538 12539 12540 12541 12542 12543 12544 12545 12546 12547 12548 12549 12550 12551 12552 12553 12554 12555 12556 12557 12558 12559 12560 12561 12562 12563 12564 12565 12566 12567 12568 12569 12570 12571 12572 12573 12574 12575 12576 12577 12578 12579 12580 12581 12582 12583 12584 12585 12586 12587 12588 12589 12590 12591 12592 12593 12594 12595 12596 12597 12598 12599 12600 12601 12602 12603 12604 12605 12606 12607 12608 12609 12610 12611 12612 12613 12614 12615 12616 12617 12618 12619 12620 12621 12622 12623 12624 12625 12626 12627 12628 12629 12630 12631 12632 12633 12634 12635 12636 12637 12638 12639 12640 12641 12642 12643 12644 12645 12646 12647 12648 12649 12650 12651 12652 12653 12654 12655 12656 12657 12658 12659 12660 12661 12662 12663 12664 12665 12666 12667 12668 12669 12670 12671 12672 12673 12674 12675 12676 12677 12678 12679 12680 12681 12682 12683 12684 12685 12686 12687 12688 12689 12690 12691 12692 12693 12694 12695 12696 12697 12698 12699 12700 12701 12702 12703 12704 12705 12706 12707 12708 12709 12710 12711 12712 12713 12714 12715 12716 12717 12718 12719 12720 12721 12722 12723 12724 12725 12726 12727 12728 12729 12730 12731 12732 12733 12734 12735 12736 12737 12738 12739 12740 12741 12742 12743 12744 12745 12746 12747 12748 12749 12750 12751 12752 12753 12754 12755 12756 12757 12758 12759 12760 12761 12762 12763 12764 12765 12766 12767 12768 12769 12770 12771 12772 12773 12774 12775 12776 12777 12778 12779 12780 12781 12782 12783 12784 12785 12786 12787 12788 12789 12790 12791 12792 12793 12794 12795 12796 12797 12798 12799 12800 12801 12802 12803 12804 12805 12806 12807 12808 12809 12810 12811 12812 12813 12814 12815 12816 12817 12818 12819 12820 12821 12822 12823 12824 12825 12826 12827 12828 12829 12830 12831 12832 12833 12834 12835 12836 12837 12838 12839 12840 12841 12842 12843 12844 12845 12846 12847 12848 12849 12850 12851 12852 12853 12854 12855 12856 12857 12858 12859 12860 12861 12862 12863 12864 12865 12866 12867 12868 12869 12870 12871 12872 12873 12874 12875 12876 12877 12878 12879 12880 12881 12882 12883 12884 12885 12886 12887 12888 12889 12890 12891 12892 12893 12894 12895 12896 12897 12898 12899 12900 12901 12902 12903 12904 12905 12906 12907 12908 12909 12910 12911 12912 12913 12914 12915 12916 12917 12918 12919 12920 12921 12922 12923 12924 12925 12926 12927 12928 12929 12930 12931 12932 12933 12934 12935 12936 12937 12938 12939 12940 12941 12942 12943 12944 12945 12946 12947 12948 12949 12950 12951 12952 12953 12954 12955 12956 12957 12958 12959 12960 12961 12962 12963 12964 12965 12966 12967 12968 12969 12970 12971 12972 12973 12974 12975 12976 12977 12978 12979 12980 12981 12982 12983 12984 12985 12986 12987 12988 12989 12990 12991 12992 12993 12994 12995 12996 12997 12998 12999 13000 13001 13002 13003 13004 13005 13006 13007 13008 13009 13010 13011 13012 13013 13014 13015 13016 13017 13018 13019 13020 13021 13022 13023 13024 13025 13026 13027 13028 13029 13030 13031 13032 13033 13034 13035 13036 13037 13038 13039 13040 13041 13042 13043 13044 13045 13046 13047 13048 13049 13050 13051 13052 13053 13054 13055 13056 13057 13058 13059 13060 13061 13062 13063 13064 13065 13066 13067 13068 13069 13070 13071 13072 13073 13074 13075 13076 13077 13078 13079 13080 13081 13082 13083 13084 13085 13086 13087 13088 13089 13090 13091 13092 13093 13094 13095 13096 13097 13098 13099 13100 13101 13102 13103 13104 13105 13106 13107 13108 13109 13110 13111 13112 13113 13114 13115 13116 13117 13118 13119 13120 13121 13122 13123 13124 13125 13126 13127 13128 13129 13130 13131 13132 13133 13134 13135 13136 13137 13138 13139 13140 13141 13142 13143 13144 13145 13146 13147 13148 13149 13150 13151 13152 13153 13154 13155 13156 13157 13158 13159 13160 13161 13162 13163 13164 13165 13166 13167 13168 13169 13170 13171 13172 13173 13174 13175 13176 13177 13178 13179 13180 13181 13182 13183 13184 13185 13186 13187 13188 13189 13190 13191 13192 13193 13194 13195 13196 13197 13198 13199 13200 13201 13202 13203 13204 13205 13206 13207 13208 13209 13210 13211 13212 13213 13214 13215 13216 13217 13218 13219 13220 13221 13222 13223 13224 13225 13226 13227 13228 13229 13230 13231 13232 13233 13234 13235 13236 13237 13238 13239 13240 13241 13242 13243 13244 13245 13246 13247 13248 13249 13250 13251 13252 13253 13254 13255 13256 13257 13258 13259 13260 13261 13262 13263 13264 13265 13266 13267 13268 13269 13270 13271 13272 13273 13274 13275 13276 13277 13278 13279 13280 13281 13282 13283 13284 13285 13286 13287 13288 13289 13290 13291 13292 13293 13294 13295 13296 13297 13298 13299 13300 13301 13302 13303 13304 13305 13306 13307 13308 13309 13310 13311 13312 13313 13314 13315 13316 13317 13318 13319 13320 13321 13322 13323 13324 13325 13326 13327 13328 13329 13330 13331 13332 13333 13334 13335 13336 13337 13338 13339 13340 13341 13342 13343 13344 13345 13346 13347 13348 13349 13350 13351 13352 13353 13354 13355 13356 13357 13358 13359 13360 13361 13362 13363 13364 13365 13366 13367 13368 13369 13370 13371 13372 13373 13374 13375 13376 13377 13378 13379 13380 13381 13382 13383 13384 13385 13386 13387 13388 13389 13390 13391 13392 13393 13394 13395 13396 13397 13398 13399 13400 13401 13402 13403 13404 13405 13406 13407 13408 13409 13410 13411 13412 13413 13414 13415 13416 13417 13418 13419 13420 13421 13422 13423 13424 13425 13426 13427 13428 13429 13430 13431 13432 13433 13434 13435 13436 13437 13438 13439 13440 13441 13442 13443 13444 13445 13446 13447 13448 13449 13450 13451 13452 13453 13454 13455 13456 13457 13458 13459 13460 13461 13462 13463 13464 13465 13466 13467 13468 13469 13470 13471 13472 13473 13474 13475 13476 13477 13478 13479 13480 13481 13482 13483 13484 13485 13486 13487 13488 13489 13490 13491 13492 13493 13494 13495 13496 13497 13498 13499 13500 13501 13502 13503 13504 13505 13506 13507 13508 13509 13510 13511 13512 13513 13514 13515 13516 13517 13518 13519 13520 13521 13522 13523 13524 13525 13526 13527 13528 13529 13530 13531 13532 13533 13534 13535 13536 13537 13538 13539 13540 13541 13542 13543 13544 13545 13546 13547 13548 13549 13550 13551 13552 13553 13554 13555 13556 13557 13558 13559 13560 13561 13562 13563 13564 13565 13566 13567 13568 13569 13570 13571 13572 13573 13574 13575 13576 13577 13578 13579 13580 13581 13582 13583 13584 13585 13586 13587 13588 13589 13590 13591 13592 13593 13594 13595 13596 13597 13598 13599 13600 13601 13602 13603 13604 13605 13606 13607 13608 13609 13610 13611 13612 13613 13614 13615 13616 13617 13618 13619 13620 13621 13622 13623 13624 13625 13626 13627 13628 13629 13630 13631 13632 13633 13634 13635 13636 13637 13638 13639 13640 13641 13642 13643 13644 13645 13646 13647 13648 13649 13650 13651 13652 13653 13654 13655 13656 13657 13658 13659 13660 13661 13662 13663 13664 13665 13666 13667 13668 13669 13670 13671 13672 13673 13674 13675 13676 13677 13678 13679 13680 13681 13682 13683 13684 13685 13686 13687 13688 13689 13690 13691 13692 13693 13694 13695 13696 13697 13698 13699 13700 13701 13702 13703 13704 13705 13706 13707 13708 13709 13710 13711 13712 13713 13714 13715 13716 13717 13718 13719 13720 13721 13722 13723 13724 13725 13726 13727 13728 13729 13730 13731 13732 13733 13734 13735 13736 13737 13738 13739 13740 13741 13742 13743 13744 13745 13746 13747 13748 13749 13750 13751 13752 13753 13754 13755 13756 13757 13758 13759 13760 13761 13762 13763 13764 13765 13766 13767 13768 13769 13770 13771 13772 13773 13774 13775 13776 13777 13778 13779 13780 13781 13782 13783 13784 13785 13786 13787 13788 13789 13790 13791 13792 13793 13794 13795 13796 13797 13798 13799 13800 13801 13802 13803 13804 13805 13806 13807 13808 13809 13810 13811 13812 13813 13814 13815 13816 13817 13818 13819 13820 13821 13822 13823 13824 13825 13826 13827 13828 13829 13830 13831 13832 13833 13834 13835 13836 13837 13838 13839 13840 13841 13842 13843 13844 13845 13846 13847 13848 13849 13850 13851 13852 13853 13854 13855 13856 13857 13858 13859 13860 13861 13862 13863 13864 13865 13866 13867 13868 13869 13870 13871 13872 13873 13874 13875 13876 13877 13878 13879 13880 13881 13882 13883 13884 13885 13886 13887 13888 13889 13890 13891 13892 13893 13894 13895 13896 13897 13898 13899 13900 13901 13902 13903 13904 13905 13906 13907 13908 13909 13910 13911 13912 13913 13914 13915 13916 13917 13918 13919 13920 13921 13922 13923 13924 13925 13926 13927 13928 13929 13930 13931 13932 13933 13934 13935 13936 13937 13938 13939 13940 13941 13942 13943 13944 13945 13946 13947 13948 13949 13950 13951 13952 13953 13954 13955 13956 13957 13958 13959 13960 13961 13962 13963 13964 13965 13966 13967 13968 13969 13970 13971 13972 13973 13974 13975 13976 13977 13978 13979 13980 13981 13982 13983 13984 13985 13986 13987 13988 13989 13990 13991 13992 13993 13994 13995 13996 13997 13998 13999 14000 14001 14002 14003 14004 14005 14006 14007 14008 14009 14010 14011 14012 14013 14014 14015 14016 14017 14018 14019 14020 14021 14022 14023 14024 14025 14026 14027 14028 14029 14030 14031 14032 14033 14034 14035 14036 14037 14038 14039 14040 14041 14042 14043 14044 14045 14046 14047 14048 14049 14050 14051 14052 14053 14054 14055 14056 14057 14058 14059 14060 14061 14062 14063 14064 14065 14066 14067 14068 14069 14070 14071 14072 14073 14074 14075 14076 14077 14078 14079 14080 14081 14082 14083 14084 14085 14086 14087 14088 14089 14090 14091 14092 14093 14094 14095 14096 14097 14098 14099 14100 14101 14102 14103 14104 14105 14106 14107 14108 14109 14110 14111 14112 14113 14114 14115 14116 14117 14118 14119 14120 14121 14122 14123 14124 14125 14126 14127 14128 14129 14130 14131 14132 14133 14134 14135 14136 14137 14138 14139 14140 14141 14142 14143 14144 14145 14146 14147 14148 14149 14150 14151 14152 14153 14154 14155 14156 14157 14158 14159 14160 14161 14162 14163 14164 14165 14166 14167 14168 14169 14170 14171 14172 14173 14174 14175 14176 14177 14178 14179 14180 14181 14182 14183 14184 14185 14186 14187 14188 14189 14190 14191 14192 14193 14194 14195 14196 14197 14198 14199 14200 14201 14202 14203 14204 14205 14206 14207 14208 14209 14210 14211 14212 14213 14214 14215 14216 14217 14218 14219 14220 14221 14222 14223 14224 14225 14226 14227 14228 14229 14230 14231 14232 14233 14234 14235 14236 14237 14238 14239 14240 14241 14242 14243 14244 14245 14246 14247 14248 14249 14250 14251 14252 14253 14254 14255 14256 14257 14258 14259 14260 14261 14262 14263 14264 14265 14266 14267 14268 14269 14270 14271 14272 14273 14274 14275 14276 14277 14278 14279 14280 14281 14282 14283 14284 14285 14286 14287 14288 14289 14290 14291 14292 14293 14294 14295 14296 14297 14298 14299 14300 14301 14302 14303 14304 14305 14306 14307 14308 14309 14310 14311 14312 14313 14314 14315 14316 14317 14318 14319 14320 14321 14322 14323 14324 14325 14326 14327 14328 14329 14330 14331 14332 14333 14334 14335 14336 14337 14338 14339 14340 14341 14342 14343 14344 14345 14346 14347 14348 14349 14350 14351 14352 14353 14354 14355 14356 14357 14358 14359 14360 14361 14362 14363 14364 14365 14366 14367 14368 14369 14370 14371 14372 14373 14374 14375 14376 14377 14378 14379 14380 14381 14382 14383 14384 14385 14386 14387 14388 14389 14390 14391 14392 14393 14394 14395 14396 14397 14398 14399 14400 14401 14402 14403 14404 14405 14406 14407 14408 14409 14410 14411 14412 14413 14414 14415 14416 14417 14418 14419 14420 14421 14422 14423 14424 14425 14426 14427 14428 14429 14430 14431 14432 14433 14434 14435 14436 14437 14438 14439 14440 14441 14442 14443 14444 14445 14446 14447 14448 14449 14450 14451 14452 14453 14454 14455 14456 14457 14458 14459 14460 14461 14462 14463 14464 14465 14466 14467 14468 14469 14470 14471 14472 14473 14474 14475 14476 14477 14478 14479 14480 14481 14482 14483 14484 14485 14486 14487 14488 14489 14490 14491 14492 14493 14494 14495 14496 14497 14498 14499 14500 14501 14502 14503 14504 14505 14506 14507 14508 14509 14510 14511 14512 14513 14514 14515 14516 14517 14518 14519 14520 14521 14522 14523 14524 14525 14526 14527 14528 14529 14530 14531 14532 14533 14534 14535 14536 14537 14538 14539 14540 14541 14542 14543 14544 14545 14546 14547 14548 14549 14550 14551 14552 14553 14554 14555 14556 14557 14558 14559 14560 14561 14562 14563 14564 14565 14566 14567 14568 14569 14570 14571 14572 14573 14574 14575 14576 14577 14578 14579 14580 14581 14582 14583 14584 14585 14586 14587 14588 14589 14590 14591 14592 14593 14594 14595 14596 14597 14598 14599 14600 14601 14602 14603 14604 14605 14606 14607 14608 14609 14610 14611 14612 14613 14614 14615 14616 14617 14618 14619 14620 14621 14622 14623 14624 14625 14626 14627 14628 14629 14630 14631 14632 14633 14634 14635 14636 14637 14638 14639 14640 14641 14642 14643 14644 14645 14646 14647 14648 14649 14650 14651 14652 14653 14654 14655 14656 14657 14658 14659 14660 14661 14662 14663 14664 14665 14666 14667 14668 14669 14670 14671 14672 14673 14674 14675 14676 14677 14678 14679 14680 14681 14682 14683 14684 14685 14686 14687 14688 14689 14690 14691 14692 14693 14694 14695 14696 14697 14698 14699 14700 14701 14702 14703 14704 14705 14706 14707 14708 14709 14710 14711 14712 14713 14714 14715 14716 14717 14718 14719 14720 14721 14722 14723 14724 14725 14726 14727 14728 14729 14730 14731 14732 14733 14734 14735 14736 14737 14738 14739 14740 14741 14742 14743 14744 14745 14746 14747 14748 14749 14750 14751 14752 14753 14754 14755 14756 14757 14758 14759 14760 14761 14762 14763 14764 14765 14766 14767 14768 14769 14770 14771 14772 14773 14774 14775 14776 14777 14778 14779 14780 14781 14782 14783 14784 14785 14786 14787 14788 14789 14790 14791 14792 14793 14794 14795 14796 14797 14798 14799 14800 14801 14802 14803 14804 14805 14806 14807 14808 14809 14810 14811 14812 14813 14814 14815 14816 14817 14818 14819 14820 14821 14822 14823 14824 14825 14826 14827 14828 14829 14830 14831 14832 14833 14834 14835 14836 14837 14838 14839 14840 14841 14842 14843 14844 14845 14846 14847 14848 14849 14850 14851 14852 14853 14854 14855 14856 14857 14858 14859 14860 14861 14862 14863 14864 14865 14866 14867 14868 14869 14870 14871 14872 14873 14874 14875 14876 14877 14878 14879 14880 14881 14882 14883 14884 14885 14886 14887 14888 14889 14890 14891 14892 14893 14894 14895 14896 14897 14898 14899 14900 14901 14902 14903 14904 14905 14906 14907 14908 14909 14910 14911 14912 14913 14914 14915 14916 14917 14918 14919 14920 14921 14922 14923 14924 14925 14926 14927 14928 14929 14930 14931 14932 14933 14934 14935 14936 14937 14938 14939 14940 14941 14942 14943 14944 14945 14946 14947 14948 14949 14950 14951 14952 14953 14954 14955 14956 14957 14958 14959 14960 14961 14962 14963 14964 14965 14966 14967 14968 14969 14970 14971 14972 14973 14974 14975 14976 14977 14978 14979 14980 14981 14982 14983 14984 14985 14986 14987 14988 14989 14990 14991 14992 14993 14994 14995 14996 14997 14998 14999 15000 15001 15002 15003 15004 15005 15006 15007 15008 15009 15010 15011 15012 15013 15014 15015 15016 15017 15018 15019 15020 15021 15022 15023 15024 15025 15026 15027 15028 15029 15030 15031 15032 15033 15034 15035 15036 15037 15038 15039 15040 15041 15042 15043 15044 15045 15046 15047 15048 15049 15050 15051 15052 15053 15054 15055 15056 15057 15058 15059 15060 15061 15062 15063 15064 15065 15066 15067 15068 15069 15070 15071 15072 15073 15074 15075 15076 15077 15078 15079 15080 15081 15082 15083 15084 15085 15086 15087 15088 15089 15090 15091 15092 15093 15094 15095 15096 15097 15098 15099 15100 15101 15102 15103 15104 15105 15106 15107 15108 15109 15110 15111 15112 15113 15114 15115 15116 15117 15118 15119 15120 15121 15122 15123 15124 15125 15126 15127 15128 15129 15130 15131 15132 15133 15134 15135 15136 15137 15138 15139 15140 15141 15142 15143 15144 15145 15146 15147 15148 15149 15150 15151 15152 15153 15154 15155 15156 15157 15158 15159 15160 15161 15162 15163 15164 15165 15166 15167 15168 15169 15170 15171 15172 15173 15174 15175 15176 15177 15178 15179 15180 15181 15182 15183 15184 15185 15186 15187 15188 15189 15190 15191 15192 15193 15194 15195 15196 15197 15198 15199 15200 15201 15202 15203 15204 15205 15206 15207 15208 15209 15210 15211 15212 15213 15214 15215 15216 15217 15218 15219 15220 15221 15222 15223 15224 15225 15226 15227 15228 15229 15230 15231 15232 15233 15234 15235 15236 15237 15238 15239 15240 15241 15242 15243 15244 15245 15246 15247 15248 15249 15250 15251 15252 15253 15254 15255 15256 15257 15258 15259 15260 15261 15262 15263 15264 15265 15266 15267 15268 15269 15270 15271 15272 15273 15274 15275 15276 15277 15278 15279 15280 15281 15282 15283 15284 15285 15286 15287 15288 15289 15290 15291 15292 15293 15294 15295 15296 15297 15298 15299 15300 15301 15302 15303 15304 15305 15306 15307 15308 15309 15310 15311 15312 15313 15314 15315 15316 15317 15318 15319 15320 15321 15322 15323 15324 15325 15326 15327 15328 15329 15330 15331 15332 15333 15334 15335 15336 15337 15338 15339 15340 15341 15342 15343 15344 15345 15346 15347 15348 15349 15350 15351 15352 15353 15354 15355 15356 15357 15358 15359 15360 15361 15362 15363 15364 15365 15366 15367 15368 15369 15370 15371 15372 15373 15374 15375 15376 15377 15378 15379 15380 15381 15382 15383 15384 15385 15386 15387 15388 15389 15390 15391 15392 15393 15394 15395 15396 15397 15398 15399 15400 15401 15402 15403 15404 15405 15406 15407 15408 15409 15410 15411 15412 15413 15414 15415 15416 15417 15418 15419 15420 15421 15422 15423 15424 15425 15426 15427 15428 15429 15430 15431 15432 15433 15434 15435 15436 15437 15438 15439 15440 15441 15442 15443 15444 15445 15446 15447 15448 15449 15450 15451 15452 15453 15454 15455 15456 15457 15458 15459 15460 15461 15462 15463 15464 15465 15466 15467 15468 15469 15470 15471 15472 15473 15474 15475 15476 15477 15478 15479 15480 15481 15482 15483 15484 15485 15486 15487 15488 15489 15490 15491 15492 15493 15494 15495 15496 15497 15498 15499 15500 15501 15502 15503 15504 15505 15506 15507 15508 15509 15510 15511 15512 15513 15514 15515 15516 15517 15518 15519 15520 15521 15522 15523 15524 15525 15526 15527 15528 15529 15530 15531 15532 15533 15534 15535 15536 15537 15538 15539 15540 15541 15542 15543 15544 15545 15546 15547 15548 15549 15550 15551 15552 15553 15554 15555 15556 15557 15558 15559 15560 15561 15562 15563 15564 15565 15566 15567 15568 15569 15570 15571 15572 15573 15574 15575 15576 15577 15578 15579 15580 15581 15582 15583 15584 15585 15586 15587 15588 15589 15590 15591 15592 15593 15594 15595 15596 15597 15598 15599 15600 15601 15602 15603 15604 15605 15606 15607 15608 15609 15610 15611 15612 15613 15614 15615 15616 15617 15618 15619 15620 15621 15622 15623 15624 15625 15626 15627 15628 15629 15630 15631 15632 15633 15634 15635 15636 15637 15638 15639 15640 15641 15642 15643 15644 15645 15646 15647 15648 15649 15650 15651 15652 15653 15654 15655 15656 15657 15658 15659 15660 15661 15662 15663 15664 15665 15666 15667 15668 15669 15670 15671 15672 15673 15674 15675 15676 15677 15678 15679 15680 15681 15682 15683 15684 15685 15686 15687 15688 15689 15690 15691 15692 15693 15694 15695 15696 15697 15698 15699 15700 15701 15702 15703 15704 15705 15706 15707 15708 15709 15710 15711 15712 15713 15714 15715 15716 15717 15718 15719 15720 15721 15722 15723 15724 15725 15726 15727 15728 15729 15730 15731 15732 15733 15734 15735 15736 15737 15738 15739 15740 15741 15742 15743 15744 15745 15746 15747 15748 15749 15750 15751 15752 15753 15754 15755 15756 15757 15758 15759 15760 15761 15762 15763 15764 15765 15766 15767 15768 15769 15770 15771 15772 15773 15774 15775 15776 15777 15778 15779 15780 15781 15782 15783 15784 15785 15786 15787 15788 15789 15790 15791 15792 15793 15794 15795 15796 15797 15798 15799 15800 15801 15802 15803 15804 15805 15806 15807 15808 15809 15810 15811 15812 15813 15814 15815 15816 15817 15818 15819 15820 15821 15822 15823 15824 15825 15826 15827 15828 15829 15830 15831 15832 15833 15834 15835 15836 15837 15838 15839 15840 15841 15842 15843 15844 15845 15846 15847 15848 15849 15850 15851 15852 15853 15854 15855 15856 15857 15858 15859 15860 15861 15862 15863 15864 15865 15866 15867 15868 15869 15870 15871 15872 15873 15874 15875 15876 15877 15878 15879 15880 15881 15882 15883 15884 15885 15886 15887 15888 15889 15890 15891 15892 15893 15894 15895 15896 15897 15898 15899 15900 15901 15902 15903 15904 15905 15906 15907 15908 15909 15910 15911 15912 15913 15914 15915 15916 15917 15918 15919 15920 15921 15922 15923 15924 15925 15926 15927 15928 15929 15930 15931 15932 15933 15934 15935 15936 15937 15938 15939 15940 15941 15942 15943 15944 15945 15946 15947 15948 15949 15950 15951 15952 15953 15954 15955 15956 15957 15958 15959 15960 15961 15962 15963 15964 15965 15966 15967 15968 15969 15970 15971 15972 15973 15974 15975 15976 15977 15978 15979 15980 15981 15982 15983 15984 15985 15986 15987 15988 15989 15990 15991 15992 15993 15994 15995 15996 15997 15998 15999 16000 16001 16002 16003 16004 16005 16006 16007 16008 16009 16010 16011 16012 16013 16014 16015 16016 16017 16018 16019 16020 16021 16022 16023 16024 16025 16026 16027 16028 16029 16030 16031 16032 16033 16034 16035 16036 16037 16038 16039 16040 16041 16042 16043 16044 16045 16046 16047 16048 16049 16050 16051 16052 16053 16054 16055 16056 16057 16058 16059 16060 16061 16062 16063 16064 16065 16066 16067 16068 16069 16070 16071 16072 16073 16074 16075 16076 16077 16078 16079 16080 16081 16082 16083 16084 16085 16086 16087 16088 16089 16090 16091 16092 16093 16094 16095 16096 16097 16098 16099 16100 16101 16102 16103 16104 16105 16106 16107 16108 16109 16110 16111 16112 16113 16114 16115 16116 16117 16118 16119 16120 16121 16122 16123 16124 16125 16126 16127 16128 16129 16130 16131 16132 16133 16134 16135 16136 16137 16138 16139 16140 16141 16142 16143 16144 16145 16146 16147 16148 16149 16150 16151 16152 16153 16154 16155 16156 16157 16158 16159 16160 16161 16162 16163 16164 16165 16166 16167 16168 16169 16170 16171 16172 16173 16174 16175 16176 16177 16178 16179 16180 16181 16182 16183 16184 16185 16186 16187 16188 16189 16190 16191 16192 16193 16194 16195 16196 16197 16198 16199 16200 16201 16202 16203 16204 16205 16206 16207 16208 16209 16210 16211 16212 16213 16214 16215 16216 16217 16218 16219 16220 16221 16222 16223 16224 16225 16226 16227 16228 16229 16230 16231 16232 16233 16234 16235 16236 16237 16238 16239 16240 16241 16242 16243 16244 16245 16246 16247 16248 16249 16250 16251 16252 16253 16254 16255 16256 16257 16258 16259 16260 16261 16262 16263 16264 16265 16266 16267 16268 16269 16270 16271 16272 16273 16274 16275 16276 16277 16278 16279 16280 16281 16282 16283 16284 16285 16286 16287 16288 16289 16290 16291 16292 16293 16294 16295 16296 16297 16298 16299 16300 16301 16302 16303 16304 16305 16306 16307 16308 16309 16310 16311 16312 16313 16314 16315 16316 16317 16318 16319 16320 16321 16322 16323 16324 16325 16326 16327 16328 16329 16330 16331 16332 16333 16334 16335 16336 16337 16338 16339 16340 16341 16342 16343 16344 16345 16346 16347 16348 16349 16350 16351 16352 16353 16354 16355 16356 16357 16358 16359 16360 16361 16362 16363 16364 16365 16366 16367 16368 16369 16370 16371 16372 16373 16374 16375 16376 16377 16378 16379 16380 16381 16382 16383 16384 16385 16386 16387 16388 16389 16390 16391 16392 16393 16394 16395 16396 16397 16398 16399 16400 16401 16402 16403 16404 16405 16406 16407 16408 16409 16410 16411 16412 16413 16414 16415 16416 16417 16418 16419 16420 16421 16422 16423 16424 16425 16426 16427 16428 16429 16430 16431 16432 16433 16434 16435 16436 16437 16438 16439 16440 16441 16442 16443 16444 16445 16446 16447 16448 16449 16450 16451 16452 16453 16454 16455 16456 16457 16458 16459 16460 16461 16462 16463 16464 16465 16466 16467 16468 16469 16470 16471 16472 16473 16474 16475 16476 16477 16478 16479 16480 16481 16482 16483 16484 16485 16486 16487 16488 16489 16490 16491 16492 16493 16494 16495 16496 16497 16498 16499 16500 16501 16502 16503 16504 16505 16506 16507 16508 16509 16510 16511 16512 16513 16514 16515 16516 16517 16518 16519 16520 16521 16522 16523 16524 16525 16526 16527 16528 16529 16530 16531 16532 16533 16534 16535 16536 16537 16538 16539 16540 16541 16542 16543 16544 16545 16546 16547 16548 16549 16550 16551 16552 16553 16554 16555 16556 16557 16558 16559 16560 16561 16562 16563 16564 16565 16566 16567 16568 16569 16570 16571 16572 16573 16574 16575 16576 16577 16578 16579 16580 16581 16582 16583 16584 16585 16586 16587 16588 16589 16590 16591 16592 16593 16594 16595 16596 16597 16598 16599 16600 16601 16602 16603 16604 16605 16606 16607 16608 16609 16610 16611 16612 16613 16614 16615 16616 16617 16618 16619 16620 16621 16622 16623 16624 16625 16626 16627 16628 16629 16630 16631 16632 16633 16634 16635 16636 16637 16638 16639 16640 16641 16642 16643 16644 16645 16646 16647 16648 16649 16650 16651 16652 16653 16654 16655 16656 16657 16658 16659 16660 16661 16662 16663 16664 16665 16666 16667 16668 16669 16670 16671 16672 16673 16674 16675 16676 16677 16678 16679 16680 16681 16682 16683 16684 16685 16686 16687 16688 16689 16690 16691 16692 16693 16694 16695 16696 16697 16698 16699 16700 16701 16702 16703 16704 16705 16706 16707 16708 16709 16710 16711 16712 16713 16714 16715 16716 16717 16718 16719 16720 16721 16722 16723 16724 16725 16726 16727 16728 16729 16730 16731 16732 16733 16734 16735 16736 16737 16738 16739 16740 16741 16742 16743 16744 16745 16746 16747 16748 16749 16750 16751 16752 16753 16754 16755 16756 16757 16758 16759 16760 16761 16762 16763 16764 16765 16766 16767 16768 16769 16770 16771 16772 16773 16774 16775 16776 16777 16778 16779 16780 16781 16782 16783 16784 16785 16786 16787 16788 16789 16790 16791 16792 16793 16794 16795 16796 16797 16798 16799 16800 16801 16802 16803 16804 16805 16806 16807 16808 16809 16810 16811 16812 16813 16814 16815 16816 16817 16818 16819 16820 16821 16822 16823 16824 16825 16826 16827 16828 16829 16830 16831 16832 16833 16834 16835 16836 16837 16838 16839 16840 16841 16842 16843 16844 16845 16846 16847 16848 16849 16850 16851 16852 16853 16854 16855 16856 16857 16858 16859 16860 16861 16862 16863 16864 16865 16866 16867 16868 16869 16870 16871 16872 16873 16874 16875 16876 16877 16878 16879 16880 16881 16882 16883 16884 16885 16886 16887 16888 16889 16890 16891 16892 16893 16894 16895 16896 16897 16898 16899 16900 16901 16902 16903 16904 16905 16906 16907 16908 16909 16910 16911 16912 16913 16914 16915 16916 16917 16918 16919 16920 16921 16922 16923 16924 16925 16926 16927 16928 16929 16930 16931 16932 16933 16934 16935 16936 16937 16938 16939 16940 16941 16942 16943 16944 16945 16946 16947 16948 16949 16950 16951 16952 16953 16954 16955 16956 16957 16958 16959 16960 16961 16962 16963 16964 16965 16966 16967 16968 16969 16970 16971 16972 16973 16974 16975 16976 16977 16978 16979 16980 16981 16982 16983 16984 16985 16986 16987 16988 16989 16990 16991 16992 16993 16994 16995 16996 16997 16998 16999 17000 17001 17002 17003 17004 17005 17006 17007 17008 17009 17010 17011 17012 17013 17014 17015 17016 17017 17018 17019 17020 17021 17022 17023 17024 17025 17026 17027 17028 17029 17030 17031 17032 17033 17034 17035 17036 17037 17038 17039 17040 17041 17042 17043 17044 17045 17046 17047 17048 17049 17050 17051 17052 17053 17054 17055 17056 17057 17058 17059 17060 17061 17062 17063 17064 17065 17066 17067 17068 17069 17070 17071 17072 17073 17074 17075 17076 17077 17078 17079 17080 17081 17082 17083 17084 17085 17086 17087 17088 17089 17090 17091 17092 17093 17094 17095 17096 17097 17098 17099 17100 17101 17102 17103 17104 17105 17106 17107 17108 17109 17110 17111 17112 17113 17114 17115 17116 17117 17118 17119 17120 17121 17122 17123 17124 17125 17126 17127 17128 17129 17130 17131 17132 17133 17134 17135 17136 17137 17138 17139 17140 17141 17142 17143 17144 17145 17146 17147 17148 17149 17150 17151 17152 17153 17154 17155 17156 17157 17158 17159 17160 17161 17162 17163 17164 17165 17166 17167 17168 17169 17170 17171 17172 17173 17174 17175 17176 17177 17178 17179 17180 17181 17182 17183 17184 17185 17186 17187 17188 17189 17190 17191 17192 17193 17194 17195 17196 17197 17198 17199 17200 17201 17202 17203 17204 17205 17206 17207 17208 17209 17210 17211 17212 17213 17214 17215 17216 17217 17218 17219 17220 17221 17222 17223 17224 17225 17226 17227 17228 17229 17230 17231 17232 17233 17234 17235 17236 17237 17238 17239 17240 17241 17242 17243 17244 17245 17246 17247 17248 17249 17250 17251 17252 17253 17254 17255 17256 17257 17258 17259 17260 17261 17262 17263 17264 17265 17266 17267 17268 17269 17270 17271 17272 17273 17274 17275 17276 17277 17278 17279 17280 17281 17282 17283 17284 17285 17286 17287 17288 17289 17290 17291 17292 17293 17294 17295 17296 17297 17298 17299 17300 17301 17302 17303 17304 17305 17306 17307 17308 17309 17310 17311 17312 17313 17314 17315 17316 17317 17318 17319 17320 17321 17322 17323 17324 17325 17326 17327 17328 17329 17330 17331 17332 17333 17334 17335 17336 17337 17338 17339 17340 17341 17342 17343 17344 17345 17346 17347 17348 17349 17350 17351 17352 17353 17354 17355 17356 17357 17358 17359 17360 17361 17362 17363 17364 17365 17366 17367 17368 17369 17370 17371 17372 17373 17374 17375 17376 17377 17378 17379 17380 17381 17382 17383 17384 17385 17386 17387 17388 17389 17390 17391 17392 17393 17394 17395 17396 17397 17398 17399 17400 17401 17402 17403 17404 17405 17406 17407 17408 17409 17410 17411 17412 17413 17414 17415 17416 17417 17418 17419 17420 17421 17422 17423 17424 17425 17426 17427 17428 17429 17430 17431 17432 17433 17434 17435 17436 17437 17438 17439 17440 17441 17442 17443 17444 17445 17446 17447 17448 17449 17450 17451 17452 17453 17454 17455 17456 17457 17458 17459 17460 17461 17462 17463 17464 17465 17466 17467 17468 17469 17470 17471 17472 17473 17474 17475 17476 17477 17478 17479 17480 17481 17482 17483 17484 17485 17486 17487 17488 17489 17490 17491 17492 17493 17494 17495 17496 17497 17498 17499 17500 17501 17502 17503 17504 17505 17506 17507 17508 17509 17510 17511 17512 17513 17514 17515 17516 17517 17518 17519 17520 17521 17522 17523 17524 17525 17526 17527 17528 17529 17530 17531 17532 17533 17534 17535 17536 17537 17538 17539 17540 17541 17542 17543 17544 17545 17546 17547 17548 17549 17550 17551 17552 17553 17554 17555 17556 17557 17558 17559 17560 17561 17562 17563 17564 17565 17566 17567 17568 17569 17570 17571 17572 17573 17574 17575 17576 17577 17578 17579 17580 17581 17582 17583 17584 17585 17586 17587 17588 17589 17590 17591 17592 17593 17594 17595 17596 17597 17598 17599 17600 17601 17602 17603 17604 17605 17606 17607 17608 17609 17610 17611 17612 17613 17614 17615 17616 17617 17618 17619 17620 17621 17622 17623 17624 17625 17626 17627 17628 17629 17630 17631 17632 17633 17634 17635 17636 17637 17638 17639 17640 17641 17642 17643 17644 17645 17646 17647 17648 17649 17650 17651 17652 17653 17654 17655 17656 17657 17658 17659 17660 17661 17662 17663 17664 17665 17666 17667 17668 17669 17670 17671 17672 17673 17674 17675 17676 17677 17678 17679 17680 17681 17682 17683 17684 17685 17686 17687 17688 17689 17690 17691 17692 17693 17694 17695 17696 17697 17698 17699 17700 17701 17702 17703 17704 17705 17706 17707 17708 17709 17710 17711 17712 17713 17714 17715 17716 17717 17718 17719 17720 17721 17722 17723 17724 17725 17726 17727 17728 17729 17730 17731 17732 17733 17734 17735 17736 17737 17738 17739 17740 17741 17742 17743 17744 17745 17746 17747 17748 17749 17750 17751 17752 17753 17754 17755 17756 17757 17758 17759 17760 17761 17762 17763 17764 17765 17766 17767 17768 17769 17770 17771 17772 17773 17774 17775 17776 17777 17778 17779 17780 17781 17782 17783 17784 17785 17786 17787 17788 17789 17790 17791 17792 17793 17794 17795 17796 17797 17798 17799 17800 17801 17802 17803 17804 17805 17806 17807 17808 17809 17810 17811 17812 17813 17814 17815 17816 17817 17818 17819 17820 17821 17822 17823 17824 17825 17826 17827 17828 17829 17830 17831 17832 17833 17834 17835 17836 17837 17838 17839 17840 17841 17842 17843 17844 17845 17846 17847 17848 17849 17850 17851 17852 17853 17854 17855 17856 17857 17858 17859 17860 17861 17862 17863 17864 17865 17866 17867 17868 17869 17870 17871 17872 17873 17874 17875 17876 17877 17878 17879 17880 17881 17882 17883 17884 17885 17886 17887 17888 17889 17890 17891 17892 17893 17894 17895 17896 17897 17898 17899 17900 17901 17902 17903 17904 17905 17906 17907 17908 17909 17910 17911 17912 17913 17914 17915 17916 17917 17918 17919 17920 17921 17922 17923 17924 17925 17926 17927 17928 17929 17930 17931 17932 17933 17934 17935 17936 17937 17938 17939 17940 17941 17942 17943 17944 17945 17946 17947 17948 17949 17950 17951 17952 17953 17954 17955 17956 17957 17958 17959 17960 17961 17962 17963 17964 17965 17966 17967 17968 17969 17970 17971 17972 17973 17974 17975 17976 17977 17978 17979 17980 17981 17982 17983 17984 17985 17986 17987 17988 17989 17990 17991 17992 17993 17994 17995 17996 17997 17998 17999 18000 18001 18002 18003 18004 18005 18006 18007 18008 18009 18010 18011 18012 18013 18014 18015 18016 18017 18018 18019 18020 18021 18022 18023 18024 18025 18026 18027 18028 18029 18030 18031 18032 18033 18034 18035 18036 18037 18038 18039 18040 18041 18042 18043 18044 18045 18046 18047 18048 18049 18050 18051 18052 18053 18054 18055 18056 18057 18058 18059 18060 18061 18062 18063 18064 18065 18066 18067 18068 18069 18070 18071 18072 18073 18074 18075 18076 18077 18078 18079 18080 18081 18082 18083 18084 18085 18086 18087 18088 18089 18090 18091 18092 18093 18094 18095 18096 18097 18098 18099 18100 18101 18102 18103 18104 18105 18106 18107 18108 18109 18110 18111 18112 18113 18114 18115 18116 18117 18118 18119 18120 18121 18122 18123 18124 18125 18126 18127 18128 18129 18130 18131 18132 18133 18134 18135 18136 18137 18138 18139 18140 18141 18142 18143 18144 18145 18146 18147 18148 18149 18150 18151 18152 18153 18154 18155 18156 18157 18158 18159 18160 18161 18162 18163 18164 18165 18166 18167 18168 18169 18170 18171 18172 18173 18174 18175 18176 18177 18178 18179 18180 18181 18182 18183 18184 18185 18186 18187 18188 18189 18190 18191 18192 18193 18194 18195 18196 18197 18198 18199 18200 18201 18202 18203 18204 18205 18206 18207 18208 18209 18210 18211 18212 18213 18214 18215 18216 18217 18218 18219 18220 18221 18222 18223 18224 18225 18226 18227 18228 18229 18230 18231 18232 18233 18234 18235 18236 18237 18238 18239 18240 18241 18242 18243 18244 18245 18246 18247 18248 18249 18250 18251 18252 18253 18254 18255 18256 18257 18258 18259 18260 18261 18262 18263 18264 18265 18266 18267 18268 18269 18270 18271 18272 18273 18274 18275 18276 18277 18278 18279 18280 18281 18282 18283 18284 18285 18286 18287 18288 18289 18290 18291 18292 18293 18294 18295 18296 18297 18298 18299 18300 18301 18302 18303 18304 18305 18306 18307 18308 18309 18310 18311 18312 18313 18314 18315 18316 18317 18318 18319 18320 18321 18322 18323 18324 18325 18326 18327 18328 18329 18330 18331 18332 18333 18334 18335 18336 18337 18338 18339 18340 18341 18342 18343 18344 18345 18346 18347 18348 18349 18350 18351 18352 18353 18354 18355 18356 18357 18358 18359 18360 18361 18362 18363 18364 18365 18366 18367 18368 18369 18370 18371 18372 18373 18374 18375 18376 18377 18378 18379 18380 18381 18382 18383 18384 18385 18386 18387 18388 18389 18390 18391 18392 18393 18394 18395 18396 18397 18398 18399 18400 18401 18402 18403 18404 18405 18406 18407 18408 18409 18410 18411 18412 18413 18414 18415 18416 18417 18418 18419 18420 18421 18422 18423 18424 18425 18426 18427 18428 18429 18430 18431 18432 18433 18434 18435 18436 18437 18438 18439 18440 18441 18442 18443 18444 18445 18446 18447 18448 18449 18450 18451 18452 18453 18454 18455 18456 18457 18458 18459 18460 18461 18462 18463 18464 18465 18466 18467 18468 18469 18470 18471 18472 18473 18474 18475 18476 18477 18478 18479 18480 18481 18482 18483 18484 18485 18486 18487 18488 18489 18490 18491 18492 18493 18494 18495 18496 18497 18498 18499 18500 18501 18502 18503 18504 18505 18506 18507 18508 18509 18510 18511 18512 18513 18514 18515 18516 18517 18518 18519 18520 18521 18522 18523 18524 18525 18526 18527 18528 18529 18530 18531 18532 18533 18534 18535 18536 18537 18538 18539 18540 18541 18542 18543 18544 18545 18546 18547 18548 18549 18550 18551 18552 18553 18554 18555 18556 18557 18558 18559 18560 18561 18562 18563 18564 18565 18566 18567 18568 18569 18570 18571 18572 18573 18574 18575 18576 18577 18578 18579 18580 18581 18582 18583 18584 18585 18586 18587 18588 18589 18590 18591 18592 18593 18594 18595 18596 18597 18598 18599 18600 18601 18602 18603 18604 18605 18606 18607 18608 18609 18610 18611 18612 18613 18614 18615 18616 18617 18618 18619 18620 18621 18622 18623 18624 18625 18626 18627 18628 18629 18630 18631 18632 18633 18634 18635 18636 18637 18638 18639 18640 18641 18642 18643 18644 18645 18646 18647 18648 18649 18650 18651 18652 18653 18654 18655 18656 18657 18658 18659 18660 18661 18662 18663 18664 18665 18666 18667 18668 18669 18670 18671 18672 18673 18674 18675 18676 18677 18678 18679 18680 18681 18682 18683 18684 18685 18686 18687 18688 18689 18690 18691 18692 18693 18694 18695 18696 18697 18698 18699 18700 18701 18702 18703 18704 18705 18706 18707 18708 18709 18710 18711 18712 18713 18714 18715 18716 18717 18718 18719 18720 18721 18722 18723 18724 18725 18726 18727 18728 18729 18730 18731 18732 18733 18734 18735 18736 18737 18738 18739 18740 18741 18742 18743 18744 18745 18746 18747 18748 18749 18750 18751 18752 18753 18754 18755 18756 18757 18758 18759 18760 18761 18762 18763 18764 18765 18766 18767 18768 18769 18770 18771 18772 18773 18774 18775 18776 18777 18778 18779 18780 18781 18782 18783 18784 18785 18786 18787 18788 18789 18790 18791 18792 18793 18794 18795 18796 18797 18798 18799 18800 18801 18802 18803 18804 18805 18806 18807 18808 18809 18810 18811 18812 18813 18814 18815 18816 18817 18818 18819 18820 18821 18822 18823 18824 18825 18826 18827 18828 18829 18830 18831 18832 18833 18834 18835 18836 18837 18838 18839 18840 18841 18842 18843 18844 18845 18846 18847 18848 18849 18850 18851 18852 18853 18854 18855 18856 18857 18858 18859 18860 18861 18862 18863 18864 18865 18866 18867 18868 18869 18870 18871 18872 18873 18874 18875 18876 18877 18878 18879 18880 18881 18882 18883 18884 18885 18886 18887 18888 18889 18890 18891 18892 18893 18894 18895 18896 18897 18898 18899 18900 18901 18902 18903 18904 18905 18906 18907 18908 18909 18910 18911 18912 18913 18914 18915 18916 18917 18918 18919 18920 18921 18922 18923 18924 18925 18926 18927 18928 18929 18930 18931 18932 18933 18934 18935 18936 18937 18938 18939 18940 18941 18942 18943 18944 18945 18946 18947 18948 18949 18950 18951 18952 18953 18954 18955 18956 18957 18958 18959 18960 18961 18962 18963 18964 18965 18966 18967 18968 18969 18970 18971 18972 18973 18974 18975 18976 18977 18978 18979 18980 18981 18982 18983 18984 18985 18986 18987 18988 18989 18990 18991 18992 18993 18994 18995 18996 18997 18998 18999 19000 19001 19002 19003 19004 19005 19006 19007 19008 19009 19010 19011 19012 19013 19014 19015 19016 19017 19018 19019 19020 19021 19022 19023 19024 19025 19026 19027 19028 19029 19030 19031 19032 19033 19034 19035 19036 19037 19038 19039 19040 19041 19042 19043 19044 19045 19046 19047 19048 19049 19050 19051 19052 19053 19054 19055 19056 19057 19058 19059 19060 19061 19062 19063 19064 19065 19066 19067 19068 19069 19070 19071 19072 19073 19074 19075 19076 19077 19078 19079 19080 19081 19082 19083 19084 19085 19086 19087 19088 19089 19090 19091 19092 19093 19094 19095 19096 19097 19098 19099 19100 19101 19102 19103 19104 19105 19106 19107 19108 19109 19110 19111 19112 19113 19114 19115 19116 19117 19118 19119 19120 19121 19122 19123 19124 19125 19126 19127 19128 19129 19130 19131 19132 19133 19134 19135 19136 19137 19138 19139 19140 19141 19142 19143 19144 19145 19146 19147 19148 19149 19150 19151 19152 19153 19154 19155 19156 19157 19158 19159 19160 19161 19162 19163 19164 19165 19166 19167 19168 19169 19170 19171 19172 19173 19174 19175 19176 19177 19178 19179 19180 19181 19182 19183 19184 19185 19186 19187 19188 19189 19190 19191 19192 19193 19194 19195 19196 19197 19198 19199 19200 19201 19202 19203 19204 19205 19206 19207 19208 19209 19210 19211 19212 19213 19214 19215 19216 19217 19218 19219 19220 19221 19222 19223 19224 19225 19226 19227 19228 19229 19230 19231 19232 19233 19234 19235 19236 19237 19238 19239 19240 19241 19242 19243 19244 19245 19246 19247 19248 19249 19250 19251 19252 19253 19254 19255 19256 19257 19258 19259 19260 19261 19262 19263 19264 19265 19266 19267 19268 19269 19270 19271 19272 19273 19274 19275 19276 19277 19278 19279 19280 19281 19282 19283 19284 19285 19286 19287 19288 19289 19290 19291 19292 19293 19294 19295 19296 19297 19298 19299 19300 19301 19302 19303 19304 19305 19306 19307 19308 19309 19310 19311 19312 19313 19314 19315 19316 19317 19318 19319 19320 19321 19322 19323 19324 19325 19326 19327 19328 19329 19330 19331 19332 19333 19334 19335 19336 19337 19338 19339 19340 19341 19342 19343 19344 19345 19346 19347 19348 19349 19350 19351 19352 19353 19354 19355 19356 19357 19358 19359 19360 19361 19362 19363 19364 19365 19366 19367 19368 19369 19370 19371 19372 19373 19374 19375 19376 19377 19378 19379 19380 19381 19382 19383 19384 19385 19386 19387 19388 19389 19390 19391 19392 19393 19394 19395 19396 19397 19398 19399 19400 19401 19402 19403 19404 19405 19406 19407 19408 19409 19410 19411 19412 19413 19414 19415 19416 19417 19418 19419 19420 19421 19422 19423 19424 19425 19426 19427 19428 19429 19430 19431 19432 19433 19434 19435 19436 19437 19438 19439 19440 19441 19442 19443 19444 19445 19446 19447 19448 19449 19450 19451 19452 19453 19454 19455 19456 19457 19458 19459 19460 19461 19462 19463 19464 19465 19466 19467 19468 19469 19470 19471 19472 19473 19474 19475 19476 19477 19478 19479 19480 19481 19482 19483 19484 19485 19486 19487 19488 19489 19490 19491 19492 19493 19494 19495 19496 19497 19498 19499 19500 19501 19502 19503 19504 19505 19506 19507 19508 19509 19510 19511 19512 19513 19514 19515 19516 19517 19518 19519 19520 19521 19522 19523 19524 19525 19526 19527 19528 19529 19530 19531 19532 19533 19534 19535 19536 19537 19538 19539 19540 19541 19542 19543 19544 19545 19546 19547 19548 19549 19550 19551 19552 19553 19554 19555 19556 19557 19558 19559 19560 19561 19562 19563 19564 19565 19566 19567 19568 19569 19570 19571 19572 19573 19574 19575 19576 19577 19578 19579 19580 19581 19582 19583 19584 19585 19586 19587 19588 19589 19590 19591 19592 19593 19594 19595 19596 19597 19598 19599 19600 19601 19602 19603 19604 19605 19606 19607 19608 19609 19610 19611 19612 19613 19614 19615 19616 19617 19618 19619 19620 19621 19622 19623 19624 19625 19626 19627 19628 19629 19630 19631 19632 19633 19634 19635 19636 19637 19638 19639 19640 19641 19642 19643 19644 19645 19646 19647 19648 19649 19650 19651 19652 19653 19654 19655 19656 19657 19658 19659 19660 19661 19662 19663 19664 19665 19666 19667 19668 19669 19670 19671 19672 19673 19674 19675 19676 19677 19678 19679 19680 19681 19682 19683 19684 19685 19686 19687 19688 19689 19690 19691 19692 19693 19694 19695 19696 19697 19698 19699 19700 19701 19702 19703 19704 19705 19706 19707 19708 19709 19710 19711 19712 19713 19714 19715 19716 19717 19718 19719 19720 19721 19722 19723 19724 19725 19726 19727 19728 19729 19730 19731 19732 19733 19734 19735 19736 19737 19738 19739 19740 19741 19742 19743 19744 19745 19746 19747 19748 19749 19750 19751 19752 19753 19754 19755 19756 19757 19758 19759 19760 19761 19762 19763 19764 19765 19766 19767 19768 19769 19770 19771 19772 19773 19774 19775 19776 19777 19778 19779 19780 19781 19782 19783 19784 19785 19786 19787 19788 19789 19790 19791 19792 19793 19794 19795 19796 19797 19798 19799 19800 19801 19802 19803 19804 19805 19806 19807 19808 19809 19810 19811 19812 19813 19814 19815 19816 19817 19818 19819 19820 19821 19822 19823 19824 19825 19826 19827 19828 19829 19830 19831 19832 19833 19834 19835 19836 19837 19838 19839 19840 19841 19842 19843 19844 19845 19846 19847 19848 19849 19850 19851 19852 19853 19854 19855 19856 19857 19858 19859 19860 19861 19862 19863 19864 19865 19866 19867 19868 19869 19870 19871 19872 19873 19874 19875 19876 19877 19878 19879 19880 19881 19882 19883 19884 19885 19886 19887 19888 19889 19890 19891 19892 19893 19894 19895 19896 19897 19898 19899 19900 19901 19902 19903 19904 19905 19906 19907 19908 19909 19910 19911 19912 19913 19914 19915 19916 19917 19918 19919 19920 19921 19922 19923 19924 19925 19926 19927 19928 19929 19930 19931 19932 19933 19934 19935 19936 19937 19938 19939 19940 19941 19942 19943 19944 19945 19946 19947 19948 19949 19950 19951 19952 19953 19954 19955 19956 19957 19958 19959 19960 19961 19962 19963 19964 19965 19966 19967 19968 19969 19970 19971 19972 19973 19974 19975 19976 19977 19978 19979 19980 19981 19982 19983 19984 19985 19986 19987 19988 19989 19990 19991 19992 19993 19994 19995 19996 19997 19998 19999 20000 20001 20002 20003 20004 20005 20006 20007 20008 20009 20010 20011 20012 20013 20014 20015 20016 20017 20018 20019 20020 20021 20022 20023 20024 20025 20026 20027 20028 20029 20030 20031 20032 20033 20034 20035 20036 20037 20038 20039 20040 20041 20042 20043 20044 20045 20046 20047 20048 20049 20050 20051 20052 20053 20054 20055 20056 20057 20058 20059 20060 20061 20062 20063 20064 20065 20066 20067 20068 20069 20070 20071 20072 20073 20074 20075 20076 20077 20078 20079 20080 20081 20082 20083 20084 20085 20086 20087 20088 20089 20090 20091 20092 20093 20094 20095 20096 20097 20098 20099 20100 20101 20102 20103 20104 20105 20106 20107 20108 20109 20110 20111 20112 20113 20114 20115 20116 20117 20118 20119 20120 20121 20122 20123 20124 20125 20126 20127 20128 20129 20130 20131 20132 20133 20134 20135 20136 20137 20138 20139 20140 20141 20142 20143 20144 20145 20146 20147 20148 20149 20150 20151 20152 20153 20154 20155 20156 20157 20158 20159 20160 20161 20162 20163 20164 20165 20166 20167 20168 20169 20170 20171 20172 20173 20174 20175 20176 20177 20178 20179 20180 20181 20182 20183 20184 20185 20186 20187 20188 20189 20190 20191 20192 20193 20194 20195 20196 20197 20198 20199 20200 20201 20202 20203 20204 20205 20206 20207 20208 20209 20210 20211 20212 20213 20214 20215 20216 20217 20218 20219 20220 20221 20222 20223 20224 20225 20226 20227 20228 20229 20230 20231 20232 20233 20234 20235 20236 20237 20238 20239 20240 20241 20242 20243 20244 20245 20246 20247 20248 20249 20250 20251 20252 20253 20254 20255 20256 20257 20258 20259 20260 20261 20262 20263 20264 20265 20266 20267 20268 20269 20270 20271 20272 20273 20274 20275 20276 20277 20278 20279 20280 20281 20282 20283 20284 20285 20286 20287 20288 20289 20290 20291 20292 20293 20294 20295 20296 20297 20298 20299 20300 20301 20302 20303 20304 20305 20306 20307 20308 20309 20310 20311 20312 20313 20314 20315 20316 20317 20318 20319 20320 20321 20322 20323 20324 20325 20326 20327 20328 20329 20330 20331 20332 20333 20334 20335 20336 20337 20338 20339 20340 20341 20342 20343 20344 20345 20346 20347 20348 20349 20350 20351 20352 20353 20354 20355 20356 20357 20358 20359 20360 20361 20362 20363 20364 20365 20366 20367 20368 20369 20370 20371 20372 20373 20374 20375 20376 20377 20378 20379 20380 20381 20382 20383 20384 20385 20386 20387 20388 20389 20390 20391 20392 20393 20394 20395 20396 20397 20398 20399 20400 20401 20402 20403 20404 20405 20406 20407 20408 20409 20410 20411 20412 20413 20414 20415 20416 20417 20418 20419 20420 20421 20422 20423 20424 20425 20426 20427 20428 20429 20430 20431 20432 20433 20434 20435 20436 20437 20438 20439 20440 20441 20442 20443 20444 20445 20446 20447 20448 20449 20450 20451 20452 20453 20454 20455 20456 20457 20458 20459 20460 20461 20462 20463 20464 20465 20466 20467 20468 20469 20470 20471 20472 20473 20474 20475 20476 20477 20478 20479 20480 20481 20482 20483 20484 20485 20486 20487 20488 20489 20490 20491 20492 20493 20494 20495 20496 20497 20498 20499 20500 20501 20502 20503 20504 20505 20506 20507 20508 20509 20510 20511 20512 20513 20514 20515 20516 20517 20518 20519 20520 20521 20522 20523 20524 20525 20526 20527 20528 20529 20530 20531 20532 20533 20534 20535 20536 20537 20538 20539 20540 20541 20542 20543 20544 20545 20546 20547 20548 20549 20550 20551 20552 20553 20554 20555 20556 20557 20558 20559 20560 20561 20562 20563 20564 20565 20566 20567 20568 20569 20570 20571 20572 20573 20574 20575 20576 20577 20578 20579 20580 20581 20582 20583 20584 20585 20586 20587 20588 20589 20590 20591 20592 20593 20594 20595 20596 20597 20598 20599 20600 20601 20602 20603 20604 20605 20606 20607 20608 20609 20610 20611 20612 20613 20614 20615 20616 20617 20618 20619 20620 20621 20622 20623 20624 20625 20626 20627 20628 20629 20630 20631 20632 20633 20634 20635 20636 20637 20638 20639 20640 20641 20642 20643 20644 20645 20646 20647 20648 20649 20650 20651 20652 20653 20654 20655 20656 20657 20658 20659 20660 20661 20662 20663 20664 20665 20666 20667 20668 20669 20670 20671 20672 20673 20674 20675 20676 20677 20678 20679 20680 20681 20682 20683 20684 20685 20686 20687 20688 20689 20690 20691 20692 20693 20694 20695 20696 20697 20698 20699 20700 20701 20702 20703 20704 20705 20706 20707 20708 20709 20710 20711 20712 20713 20714 20715 20716 20717 20718 20719 20720 20721 20722 20723 20724 20725 20726 20727 20728 20729 20730 20731 20732 20733 20734 20735 20736 20737 20738 20739 20740 20741 20742 20743 20744 20745 20746 20747 20748 20749 20750 20751 20752 20753 20754 20755 20756 20757 20758 20759 20760 20761 20762 20763 20764 20765 20766 20767 20768 20769 20770 20771 20772 20773 20774 20775 20776 20777 20778 20779 20780 20781 20782 20783 20784 20785 20786 20787 20788 20789 20790 20791 20792 20793 20794 20795 20796 20797 20798 20799 20800 20801 20802 20803 20804 20805 20806 20807 20808 20809 20810 20811 20812 20813 20814 20815 20816 20817 20818 20819 20820 20821 20822 20823 20824 20825 20826 20827 20828 20829 20830 20831 20832 20833 20834 20835 20836 20837 20838 20839 20840 20841 20842 20843 20844 20845 20846 20847 20848 20849 20850 20851 20852 20853 20854 20855 20856 20857 20858 20859 20860 20861 20862 20863 20864 20865 20866 20867 20868 20869 20870 20871 20872 20873 20874 20875 20876 20877 20878 20879 20880 20881 20882 20883 20884 20885 20886 20887 20888 20889 20890 20891 20892 20893 20894 20895 20896 20897 20898 20899 20900 20901 20902 20903 20904 20905 20906 20907 20908 20909 20910 20911 20912 20913 20914 20915 20916 20917 20918 20919 20920 20921 20922 20923 20924 20925 20926 20927 20928 20929 20930 20931 20932 20933 20934 20935 20936 20937 20938 20939 20940 20941 20942 20943 20944 20945 20946 20947 20948 20949 20950 20951 20952 20953 20954 20955 20956 20957 20958 20959 20960 20961 20962 20963 20964 20965 20966 20967 20968 20969 20970 20971 20972 20973 20974 20975 20976 20977 20978 20979 20980 20981 20982 20983 20984 20985 20986 20987 20988 20989 20990 20991 20992 20993 20994 20995 20996 20997 20998 20999 21000 21001 21002 21003 21004 21005 21006 21007 21008 21009 21010 21011 21012 21013 21014 21015 21016 21017 21018 21019 21020 21021 21022 21023 21024 21025 21026 21027 21028 21029 21030 21031 21032 21033 21034 21035 21036 21037 21038 21039 21040 21041 21042 21043 21044 21045 21046 21047 21048 21049 21050 21051 21052 21053 21054 21055 21056 21057 21058 21059 21060 21061 21062 21063 21064 21065 21066 21067 21068 21069 21070 21071 21072 21073 21074 21075 21076 21077 21078 21079 21080 21081 21082 21083 21084 21085 21086 21087 21088 21089 21090 21091 21092 21093 21094 21095 21096 21097 21098 21099 21100 21101 21102 21103 21104 21105 21106 21107 21108 21109 21110 21111 21112 21113 21114 21115 21116 21117 21118 21119 21120 21121 21122 21123 21124 21125 21126 21127 21128 21129 21130 21131 21132 21133 21134 21135 21136 21137 21138 21139 21140 21141 21142 21143 21144 21145 21146 21147 21148 21149 21150 21151 21152 21153 21154 21155 21156 21157 21158 21159 21160 21161 21162 21163 21164 21165 21166 21167 21168 21169 21170 21171 21172 21173 21174 21175 21176 21177 21178 21179 21180 21181 21182 21183 21184 21185 21186 21187 21188 21189 21190 21191 21192 21193 21194 21195 21196 21197 21198 21199 21200 21201 21202 21203 21204 21205 21206 21207 21208 21209 21210 21211 21212 21213 21214 21215 21216 21217 21218 21219 21220 21221 21222 21223 21224 21225 21226 21227 21228 21229 21230 21231 21232 21233 21234 21235 21236 21237 21238 21239 21240 21241 21242 21243 21244 21245 21246 21247 21248 21249 21250 21251 21252 21253 21254 21255 21256 21257 21258 21259 21260 21261 21262 21263 21264 21265 21266 21267 21268 21269 21270 21271 21272 21273 21274 21275 21276 21277 21278 21279 21280 21281 21282 21283 21284 21285 21286 21287 21288 21289 21290 21291 21292 21293 21294 21295 21296 21297 21298 21299 21300 21301 21302 21303 21304 21305 21306 21307 21308 21309 21310 21311 21312 21313 21314 21315 21316 21317 21318 21319 21320 21321 21322 21323 21324 21325 21326 21327 21328 21329 21330 21331 21332 21333 21334 21335 21336 21337 21338 21339 21340 21341 21342 21343 21344 21345 21346 21347 21348 21349 21350 21351 21352 21353 21354 21355 21356 21357 21358 21359 21360 21361 21362 21363 21364 21365 21366 21367 21368 21369 21370 21371 21372 21373 21374 21375 21376 21377 21378 21379 21380 21381 21382 21383 21384 21385 21386 21387 21388 21389 21390 21391 21392 21393 21394 21395 21396 21397 21398 21399 21400 21401 21402 21403 21404 21405 21406 21407 21408 21409 21410 21411 21412 21413 21414 21415 21416 21417 21418 21419 21420 21421 21422 21423 21424 21425 21426 21427 21428 21429 21430 21431 21432 21433 21434 21435 21436 21437 21438 21439 21440 21441 21442 21443 21444 21445 21446 21447 21448 21449 21450 21451 21452 21453 21454 21455 21456 21457 21458 21459 21460 21461 21462 21463 21464 21465 21466 21467 21468 21469 21470 21471 21472 21473 21474 21475 21476 21477 21478 21479 21480 21481 21482 21483 21484 21485 21486 21487 21488 21489 21490 21491 21492 21493 21494 21495 21496 21497 21498 21499 21500 21501 21502 21503 21504 21505 21506 21507 21508 21509 21510 21511 21512 21513 21514 21515 21516 21517 21518 21519 21520 21521 21522 21523 21524 21525 21526 21527 21528 21529 21530 21531 21532 21533 21534 21535 21536 21537 21538 21539 21540 21541 21542 21543 21544 21545 21546 21547 21548 21549 21550 21551 21552 21553 21554 21555 21556 21557 21558 21559 21560 21561 21562 21563 21564 21565 21566 21567 21568 21569 21570 21571 21572 21573 21574 21575 21576 21577 21578 21579 21580 21581 21582 21583 21584 21585 21586 21587 21588 21589 21590 21591 21592 21593 21594 21595 21596 21597 21598 21599 21600 21601 21602 21603 21604 21605 21606 21607 21608 21609 21610 21611 21612 21613 21614 21615 21616 21617 21618 21619 21620 21621 21622 21623 21624 21625 21626 21627 21628 21629 21630 21631 21632 21633 21634 21635 21636 21637 21638 21639 21640 21641 21642 21643 21644 21645 21646 21647 21648 21649 21650 21651 21652 21653 21654 21655 21656 21657 21658 21659 21660 21661 21662 21663 21664 21665 21666 21667 21668 21669 21670 21671 21672 21673 21674 21675 21676 21677 21678 21679 21680 21681 21682 21683 21684 21685 21686 21687 21688 21689 21690 21691 21692 21693 21694 21695 21696 21697 21698 21699 21700 21701 21702 21703 21704 21705 21706 21707 21708 21709 21710 21711 21712 21713 21714 21715 21716 21717 21718 21719 21720 21721 21722 21723 21724 21725 21726 21727 21728 21729 21730 21731 21732 21733 21734 21735 21736 21737 21738 21739 21740 21741 21742 21743 21744 21745 21746 21747 21748 21749 21750 21751 21752 21753 21754 21755 21756 21757 21758 21759 21760 21761 21762 21763 21764 21765 21766 21767 21768 21769 21770 21771 21772 21773 21774 21775 21776 21777 21778 21779 21780 21781 21782 21783 21784 21785 21786 21787 21788 21789 21790 21791 21792 21793 21794 21795 21796 21797 21798 21799 21800 21801 21802 21803 21804 21805 21806 21807 21808 21809 21810 21811 21812 21813 21814 21815 21816 21817 21818 21819 21820 21821 21822 21823 21824 21825 21826 21827 21828 21829 21830 21831 21832 21833 21834 21835 21836 21837 21838 21839 21840 21841 21842 21843 21844 21845 21846 21847 21848 21849 21850 21851 21852 21853 21854 21855 21856 21857 21858 21859 21860 21861 21862 21863 21864 21865 21866 21867 21868 21869 21870 21871 21872 21873 21874 21875 21876 21877 21878 21879 21880 21881 21882 21883 21884 21885 21886 21887 21888 21889 21890 21891 21892 21893 21894 21895 21896 21897 21898 21899 21900 21901 21902 21903 21904 21905 21906 21907 21908 21909 21910 21911 21912 21913 21914 21915 21916 21917 21918 21919 21920 21921 21922 21923 21924 21925 21926 21927 21928 21929 21930 21931 21932 21933 21934 21935 21936 21937 21938 21939 21940 21941 21942 21943 21944 21945 21946 21947 21948 21949 21950 21951 21952 21953 21954 21955 21956 21957 21958 21959 21960 21961 21962 21963 21964 21965 21966 21967 21968 21969 21970 21971 21972 21973 21974 21975 21976 21977 21978 21979 21980 21981 21982 21983 21984 21985 21986 21987 21988 21989 21990 21991 21992 21993 21994 21995 21996 21997 21998 21999 22000 22001 22002 22003 22004 22005 22006 22007 22008 22009 22010 22011 22012 22013 22014 22015 22016 22017 22018 22019 22020 22021 22022 22023 22024 22025 22026 22027 22028 22029 22030 22031 22032 22033 22034 22035 22036 22037 22038 22039 22040 22041 22042 22043 22044 22045 22046 22047 22048 22049 22050 22051 22052 22053 22054 22055 22056 22057 22058 22059 22060 22061 22062 22063 22064 22065 22066 22067 22068 22069 22070 22071 22072 22073 22074 22075 22076 22077 22078 22079 22080 22081 22082 22083 22084 22085 22086 22087 22088 22089 22090 22091 22092 22093 22094 22095 22096 22097 22098 22099 22100 22101 22102 22103 22104 22105 22106 22107 22108 22109 22110 22111 22112 22113 22114 22115 22116 22117 22118 22119 22120 22121 22122 22123 22124 22125 22126 22127 22128 22129 22130 22131 22132 22133 22134 22135 22136 22137 22138 22139 22140 22141 22142 22143 22144 22145 22146 22147 22148 22149 22150 22151 22152 22153 22154 22155 22156 22157 22158 22159 22160 22161 22162 22163 22164 22165 22166 22167 22168 22169 22170 22171 22172 22173 22174 22175 22176 22177 22178 22179 22180 22181 22182 22183 22184 22185 22186 22187 22188 22189 22190 22191 22192 22193 22194 22195 22196 22197 22198 22199 22200 22201 22202 22203 22204 22205 22206 22207 22208 22209 22210 22211 22212 22213 22214 22215 22216 22217 22218 22219 22220 22221 22222 22223 22224 22225 22226 22227 22228 22229 22230 22231 22232 22233 22234 22235 22236 22237 22238 22239 22240 22241 22242 22243 22244 22245 22246 22247 22248 22249 22250 22251 22252 22253 22254 22255 22256 22257 22258 22259 22260 22261 22262 22263 22264 22265 22266 22267 22268 22269 22270 22271 22272 22273 22274 22275 22276 22277 22278 22279 22280 22281 22282 22283 22284 22285 22286 22287 22288 22289 22290 22291 22292 22293 22294 22295 22296 22297 22298 22299 22300 22301 22302 22303 22304 22305 22306 22307 22308 22309 22310 22311 22312 22313 22314 22315 22316 22317 22318 22319 22320 22321 22322 22323 22324 22325 22326 22327 22328 22329 22330 22331 22332 22333 22334 22335 22336 22337 22338 22339 22340 22341 22342 22343 22344 22345 22346 22347 22348 22349 22350 22351 22352 22353 22354 22355 22356 22357 22358 22359 22360 22361 22362 22363 22364 22365 22366 22367 22368 22369 22370 22371 22372 22373 22374 22375 22376 22377 22378 22379 22380 22381 22382 22383 22384 22385 22386 22387 22388 22389 22390 22391 22392 22393 22394 22395 22396 22397 22398 22399 22400 22401 22402 22403 22404 22405 22406 22407 22408 22409 22410 22411 22412 22413 22414 22415 22416 22417 22418 22419 22420 22421 22422 22423 22424 22425 22426 22427 22428 22429 22430 22431 22432 22433 22434 22435 22436 22437 22438 22439 22440 22441 22442 22443 22444 22445 22446 22447 22448 22449 22450 22451 22452 22453 22454 22455 22456 22457 22458 22459 22460 22461 22462 22463 22464 22465 22466 22467 22468 22469 22470 22471 22472 22473 22474 22475 22476 22477 22478 22479 22480 22481 22482 22483 22484 22485 22486 22487 22488 22489 22490 22491 22492 22493 22494 22495 22496 22497 22498 22499 22500 22501 22502 22503 22504 22505 22506 22507 22508 22509 22510 22511 22512 22513 22514 22515 22516 22517 22518 22519 22520 22521 22522 22523 22524 22525 22526 22527 22528 22529 22530 22531 22532 22533 22534 22535 22536 22537 22538 22539 22540 22541 22542 22543 22544 22545 22546 22547 22548 22549 22550 22551 22552 22553 22554 22555 22556 22557 22558 22559 22560 22561 22562 22563 22564 22565 22566 22567 22568 22569 22570 22571 22572 22573 22574 22575 22576 22577 22578 22579 22580 22581 22582 22583 22584 22585 22586 22587 22588 22589 22590 22591 22592 22593 22594 22595 22596 22597 22598 22599 22600 22601 22602 22603 22604 22605 22606 22607 22608 22609 22610 22611 22612 22613 22614 22615 22616 22617 22618 22619 22620 22621 22622 22623 22624 22625 22626 22627 22628 22629 22630 22631 22632 22633 22634 22635 22636 22637 22638 22639 22640 22641 22642 22643 22644 22645 22646 22647 22648 22649 22650 22651 22652 22653 22654 22655 22656 22657 22658 22659 22660 22661 22662 22663 22664 22665 22666 22667 22668 22669 22670 22671 22672 22673 22674 22675 22676 22677 22678 22679 22680 22681 22682 22683 22684 22685 22686 22687 22688 22689 22690 22691 22692 22693 22694 22695 22696 22697 22698 22699 22700 22701 22702 22703 22704 22705 22706 22707 22708 22709 22710 22711 22712 22713 22714 22715 22716 22717 22718 22719 22720 22721 22722 22723 22724 22725 22726 22727 22728 22729 22730 22731 22732 22733 22734 22735 22736 22737 22738 22739 22740 22741 22742 22743 22744 22745 22746 22747 22748 22749 22750 22751 22752 22753 22754 22755 22756 22757 22758 22759 22760 22761 22762 22763 22764 22765 22766 22767 22768 22769 22770 22771 22772 22773 22774 22775 22776 22777 22778 22779 22780 22781 22782 22783 22784 22785 22786 22787 22788 22789 22790 22791 22792 22793 22794 22795 22796 22797 22798 22799 22800 22801 22802 22803 22804 22805 22806 22807 22808 22809 22810 22811 22812 22813 22814 22815 22816 22817 22818 22819 22820 22821 22822 22823 22824 22825 22826 22827 22828 22829 22830 22831 22832 22833 22834 22835 22836 22837 22838 22839 22840 22841 22842 22843 22844 22845 22846 22847 22848 22849 22850 22851 22852 22853 22854 22855 22856 22857 22858 22859 22860 22861 22862 22863 22864 22865 22866 22867 22868 22869 22870 22871 22872 22873 22874 22875 22876 22877 22878 22879 22880 22881 22882 22883 22884 22885 22886 22887 22888 22889 22890 22891 22892 22893 22894 22895 22896 22897 22898 22899 22900 22901 22902 22903 22904 22905 22906 22907 22908 22909 22910 22911 22912 22913 22914 22915 22916 22917 22918 22919 22920 22921 22922 22923 22924 22925 22926 22927 22928 22929 22930 22931 22932 22933 22934 22935 22936 22937 22938 22939 22940 22941 22942 22943 22944 22945 22946 22947 22948 22949 22950 22951 22952 22953 22954 22955 22956 22957 22958 22959 22960 22961 22962 22963 22964 22965 22966 22967 22968 22969 22970 22971 22972 22973 22974 22975 22976 22977 22978 22979 22980 22981 22982 22983 22984 22985 22986 22987 22988 22989 22990 22991 22992 22993 22994 22995 22996 22997 22998 22999 23000 23001 23002 23003 23004 23005 23006 23007 23008 23009 23010 23011 23012 23013 23014 23015 23016 23017 23018 23019 23020 23021 23022 23023 23024 23025 23026 23027 23028 23029 23030 23031 23032 23033 23034 23035 23036 23037 23038 23039 23040 23041 23042 23043 23044 23045 23046 23047 23048 23049 23050 23051 23052 23053 23054 23055 23056 23057 23058 23059 23060 23061 23062 23063 23064 23065 23066 23067 23068 23069 23070 23071 23072 23073 23074 23075 23076 23077 23078 23079 23080 23081 23082 23083 23084 23085 23086 23087 23088 23089 23090 23091 23092 23093 23094 23095 23096 23097 23098 23099 23100 23101 23102 23103 23104 23105 23106 23107 23108 23109 23110 23111 23112 23113 23114 23115 23116 23117 23118 23119 23120 23121 23122 23123 23124 23125 23126 23127 23128 23129 23130 23131 23132 23133 23134 23135 23136 23137 23138 23139 23140 23141 23142 23143 23144 23145 23146 23147 23148 23149 23150 23151 23152 23153 23154 23155 23156 23157 23158 23159 23160 23161 23162 23163 23164 23165 23166 23167 23168 23169 23170 23171 23172 23173 23174 23175 23176 23177 23178 23179 23180 23181 23182 23183 23184 23185 23186 23187 23188 23189 23190 23191 23192 23193 23194 23195 23196 23197 23198 23199 23200 23201 23202 23203 23204 23205 23206 23207 23208 23209 23210 23211 23212 23213 23214 23215 23216 23217 23218 23219 23220 23221 23222 23223 23224 23225 23226 23227 23228 23229 23230 23231 23232 23233 23234 23235 23236 23237 23238 23239 23240 23241 23242 23243 23244 23245 23246 23247 23248 23249 23250 23251 23252 23253 23254 23255 23256 23257 23258 23259 23260 23261 23262 23263 23264 23265 23266 23267 23268 23269 23270 23271 23272 23273 23274 23275 23276 23277 23278 23279 23280 23281 23282 23283 23284 23285 23286 23287 23288 23289 23290 23291 23292 23293 23294 23295 23296 23297 23298 23299 23300 23301 23302 23303 23304 23305 23306 23307 23308 23309 23310 23311 23312 23313 23314 23315 23316 23317 23318 23319 23320 23321 23322 23323 23324 23325 23326 23327 23328 23329 23330 23331 23332 23333 23334 23335 23336 23337 23338 23339 23340 23341 23342 23343 23344 23345 23346 23347 23348 23349 23350 23351 23352 23353 23354 23355 23356 23357 23358 23359 23360 23361 23362 23363 23364 23365 23366 23367 23368 23369 23370 23371 23372 23373 23374 23375 23376 23377 23378 23379 23380 23381 23382 23383 23384 23385 23386 23387 23388 23389 23390 23391 23392 23393 23394 23395 23396 23397 23398 23399 23400 23401 23402 23403 23404 23405 23406 23407 23408 23409 23410 23411 23412 23413 23414 23415 23416 23417 23418 23419 23420 23421 23422 23423 23424 23425 23426 23427 23428 23429 23430 23431 23432 23433 23434 23435 23436 23437 23438 23439 23440 23441 23442 23443 23444 23445 23446 23447 23448 23449 23450 23451 23452 23453 23454 23455 23456 23457 23458 23459 23460 23461 23462 23463 23464 23465 23466 23467 23468 23469 23470 23471 23472 23473 23474 23475 23476 23477 23478 23479 23480 23481 23482 23483 23484 23485 23486 23487 23488 23489 23490 23491 23492 23493 23494 23495 23496 23497 23498 23499 23500 23501 23502 23503 23504 23505 23506 23507 23508 23509 23510 23511 23512 23513 23514 23515 23516 23517 23518 23519 23520 23521 23522 23523 23524 23525 23526 23527 23528 23529 23530 23531 23532 23533 23534 23535 23536 23537 23538 23539 23540 23541 23542 23543 23544 23545 23546 23547 23548 23549 23550 23551 23552 23553 23554 23555 23556 23557 23558 23559 23560 23561 23562 23563 23564 23565 23566 23567 23568 23569 23570 23571 23572 23573 23574 23575 23576 23577 23578 23579 23580 23581 23582 23583 23584 23585 23586 23587 23588 23589 23590 23591 23592 23593 23594 23595 23596 23597 23598 23599 23600 23601 23602 23603 23604 23605 23606 23607 23608 23609 23610 23611 23612 23613 23614 23615 23616 23617 23618 23619 23620 23621 23622 23623 23624 23625 23626 23627 23628 23629 23630 23631 23632 23633 23634 23635 23636 23637 23638 23639 23640 23641 23642 23643 23644 23645 23646 23647 23648 23649 23650 23651 23652 23653 23654 23655 23656 23657 23658 23659 23660 23661 23662 23663 23664 23665 23666 23667 23668 23669 23670 23671 23672 23673 23674 23675 23676 23677 23678 23679 23680 23681 23682 23683 23684 23685 23686 23687 23688 23689 23690 23691 23692 23693 23694 23695 23696 23697 23698 23699 23700 23701 23702 23703 23704 23705 23706 23707 23708 23709 23710 23711 23712 23713 23714 23715 23716 23717 23718 23719 23720 23721 23722 23723 23724 23725 23726 23727 23728 23729 23730 23731 23732 23733 23734 23735 23736 23737 23738 23739 23740 23741 23742 23743 23744 23745 23746 23747 23748 23749 23750 23751 23752 23753 23754 23755 23756 23757 23758 23759 23760 23761 23762 23763 23764 23765 23766 23767 23768 23769 23770 23771 23772 23773 23774 23775 23776 23777 23778 23779 23780 23781 23782 23783 23784 23785 23786 23787 23788 23789 23790 23791 23792 23793 23794 23795 23796 23797 23798 23799 23800 23801 23802 23803 23804 23805 23806 23807 23808 23809 23810 23811 23812 23813 23814 23815 23816 23817 23818 23819 23820 23821 23822 23823 23824 23825 23826 23827 23828 23829 23830 23831 23832 23833 23834 23835 23836 23837 23838 23839 23840 23841 23842 23843 23844 23845 23846 23847 23848 23849 23850 23851 23852 23853 23854 23855 23856 23857 23858 23859 23860 23861 23862 23863 23864 23865 23866 23867 23868 23869 23870 23871 23872 23873 23874 23875 23876 23877 23878 23879 23880 23881 23882 23883 23884 23885 23886 23887 23888 23889 23890 23891 23892 23893 23894 23895 23896 23897 23898 23899 23900 23901 23902 23903 23904 23905 23906 23907 23908 23909 23910 23911 23912 23913 23914 23915 23916 23917 23918 23919 23920 23921 23922 23923 23924 23925 23926 23927 23928 23929 23930 23931 23932 23933 23934 23935 23936 23937 23938 23939 23940 23941 23942 23943 23944 23945 23946 23947 23948 23949 23950 23951 23952 23953 23954 23955 23956 23957 23958 23959 23960 23961 23962 23963 23964 23965 23966 23967 23968 23969 23970 23971 23972 23973 23974 23975 23976 23977 23978 23979 23980 23981 23982 23983 23984 23985 23986 23987 23988 23989 23990 23991 23992 23993 23994 23995 23996 23997 23998 23999 24000 24001 24002 24003 24004 24005 24006 24007 24008 24009 24010 24011 24012 24013 24014 24015 24016 24017 24018 24019 24020 24021 24022 24023 24024 24025 24026 24027 24028 24029 24030 24031 24032 24033 24034 24035 24036 24037 24038 24039 24040 24041 24042 24043 24044 24045 24046 24047 24048 24049 24050 24051 24052 24053 24054 24055 24056 24057 24058 24059 24060 24061 24062 24063 24064 24065 24066 24067 24068 24069 24070 24071 24072 24073 24074 24075 24076 24077 24078 24079 24080 24081 24082 24083 24084 24085 24086 24087 24088 24089 24090 24091 24092 24093 24094 24095 24096 24097 24098 24099 24100 24101 24102 24103 24104 24105 24106 24107 24108 24109 24110 24111 24112 24113 24114 24115 24116 24117 24118 24119 24120 24121 24122 24123 24124 24125 24126 24127 24128 24129 24130 24131 24132 24133 24134 24135 24136 24137 24138 24139 24140 24141 24142 24143 24144 24145 24146 24147 24148 24149 24150 24151 24152 24153 24154 24155 24156 24157 24158 24159 24160 24161 24162 24163 24164 24165 24166 24167 24168 24169 24170 24171 24172 24173 24174 24175 24176 24177 24178 24179 24180 24181 24182 24183 24184 24185 24186 24187 24188 24189 24190 24191 24192 24193 24194 24195 24196 24197 24198 24199 24200 24201 24202 24203 24204 24205 24206 24207 24208 24209 24210 24211 24212 24213 24214 24215 24216 24217 24218 24219 24220 24221 24222 24223 24224 24225 24226 24227 24228 24229 24230 24231 24232 24233 24234 24235 24236 24237 24238 24239 24240 24241 24242 24243 24244 24245 24246 24247 24248 24249 24250 24251 24252 24253 24254 24255 24256 24257 24258 24259 24260 24261 24262 24263 24264 24265 24266 24267 24268 24269 24270 24271 24272 24273 24274 24275 24276 24277 24278 24279 24280 24281 24282 24283 24284 24285 24286 24287 24288 24289 24290 24291 24292 24293 24294 24295 24296 24297 24298 24299 24300 24301 24302 24303 24304 24305 24306 24307 24308 24309 24310 24311 24312 24313 24314 24315 24316 24317 24318 24319 24320 24321 24322 24323 24324 24325 24326 24327 24328 24329 24330 24331 24332 24333 24334 24335 24336 24337 24338 24339 24340 24341 24342 24343 24344 24345 24346 24347 24348 24349 24350 24351 24352 24353 24354 24355 24356 24357 24358 24359 24360 24361 24362 24363 24364 24365 24366 24367 24368 24369 24370 24371 24372 24373 24374 24375 24376 24377 24378 24379 24380 24381 24382 24383 24384 24385 24386 24387 24388 24389 24390 24391 24392 24393 24394 24395 24396 24397 24398 24399 24400 24401 24402 24403 24404 24405 24406 24407 24408 24409 24410 24411 24412 24413 24414 24415 24416 24417 24418 24419 24420 24421 24422 24423 24424 24425 24426 24427 24428 24429 24430 24431 24432 24433 24434 24435 24436 24437 24438 24439 24440 24441 24442 24443 24444 24445 24446 24447 24448 24449 24450 24451 24452 24453 24454 24455 24456 24457 24458 24459 24460 24461 24462 24463 24464 24465 24466 24467 24468 24469 24470 24471 24472 24473 24474 24475 24476 24477 24478 24479 24480 24481 24482 24483 24484 24485 24486 24487 24488 24489 24490 24491 24492 24493 24494 24495 24496 24497 24498 24499 24500 24501 24502 24503 24504 24505 24506 24507 24508 24509 24510 24511 24512 24513 24514 24515 24516 24517 24518 24519 24520 24521 24522 24523 24524 24525 24526 24527 24528 24529 24530 24531 24532 24533 24534 24535 24536 24537 24538 24539 24540 24541 24542 24543 24544 24545 24546 24547 24548 24549 24550 24551 24552 24553 24554 24555 24556 24557 24558 24559 24560 24561 24562 24563 24564 24565 24566 24567 24568 24569 24570 24571 24572 24573 24574 24575 24576 24577 24578 24579 24580 24581 24582 24583 24584 24585 24586 24587 24588 24589 24590 24591 24592 24593 24594 24595 24596 24597 24598 24599 24600 24601 24602 24603 24604 24605 24606 24607 24608 24609 24610 24611 24612 24613 24614 24615 24616 24617 24618 24619 24620 24621 24622 24623 24624 24625 24626 24627 24628 24629 24630 24631 24632 24633 24634 24635 24636 24637 24638 24639 24640 24641 24642 24643 24644 24645 24646 24647 24648 24649 24650 24651 24652 24653 24654 24655 24656 24657 24658 24659 24660 24661 24662 24663 24664 24665 24666 24667 24668 24669 24670 24671 24672 24673 24674 24675 24676 24677 24678 24679 24680 24681 24682 24683 24684 24685 24686 24687 24688 24689 24690 24691 24692 24693 24694 24695 24696 24697 24698 24699 24700 24701 24702 24703 24704 24705 24706 24707 24708 24709 24710 24711 24712 24713 24714 24715 24716 24717 24718 24719 24720 24721 24722 24723 24724 24725 24726 24727 24728 24729 24730 24731 24732 24733 24734 24735 24736 24737 24738 24739 24740 24741 24742 24743 24744 24745 24746 24747 24748 24749 24750 24751 24752 24753 24754 24755 24756 24757 24758 24759 24760 24761 24762 24763 24764 24765 24766 24767 24768 24769 24770 24771 24772 24773 24774 24775 24776 24777 24778 24779 24780 24781 24782 24783 24784 24785 24786 24787 24788 24789 24790 24791 24792 24793 24794 24795 24796 24797 24798 24799 24800 24801 24802 24803 24804 24805 24806 24807 24808 24809 24810 24811 24812 24813 24814 24815 24816 24817 24818 24819 24820 24821 24822 24823 24824 24825 24826 24827 24828 24829 24830 24831 24832 24833 24834 24835 24836 24837 24838 24839 24840 24841 24842 24843 24844 24845 24846 24847 24848 24849 24850 24851 24852 24853 24854 24855 24856 24857 24858 24859 24860 24861 24862 24863 24864 24865 24866 24867 24868 24869 24870 24871 24872 24873 24874 24875 24876 24877 24878 24879 24880 24881 24882 24883 24884 24885 24886 24887 24888 24889 24890 24891 24892 24893 24894 24895 24896 24897 24898 24899 24900 24901 24902 24903 24904 24905 24906 24907 24908 24909 24910 24911 24912 24913 24914 24915 24916 24917 24918 24919 24920 24921 24922 24923 24924 24925 24926 24927 24928 24929 24930 24931 24932 24933 24934 24935 24936 24937 24938 24939 24940 24941 24942 24943 24944 24945 24946 24947 24948 24949 24950 24951 24952 24953 24954 24955 24956 24957 24958 24959 24960 24961 24962 24963 24964 24965 24966 24967 24968 24969 24970 24971 24972 24973 24974 24975 24976 24977 24978 24979 24980 24981 24982 24983 24984 24985 24986 24987 24988 24989 24990 24991 24992 24993 24994 24995 24996 24997 24998 24999 25000 25001 25002 25003 25004 25005 25006 25007 25008 25009 25010 25011 25012 25013 25014 25015 25016 25017 25018 25019 25020 25021 25022 25023 25024 25025 25026 25027 25028 25029 25030 25031 25032 25033 25034 25035 25036 25037 25038 25039 25040 25041 25042 25043 25044 25045 25046 25047 25048 25049 25050 25051 25052 25053 25054 25055 25056 25057 25058 25059 25060 25061 25062 25063 25064 25065 25066 25067 25068 25069 25070 25071 25072 25073 25074 25075 25076 25077 25078 25079 25080 25081 25082 25083 25084 25085 25086 25087 25088 25089 25090 25091 25092 25093 25094 25095 25096 25097 25098 25099 25100 25101 25102 25103 25104 25105 25106 25107 25108 25109 25110 25111 25112 25113 25114 25115 25116 25117 25118 25119 25120 25121 25122 25123 25124 25125 25126 25127 25128 25129 25130 25131 25132 25133 25134 25135 25136 25137 25138 25139 25140 25141 25142 25143 25144 25145 25146 25147 25148 25149 25150 25151 25152 25153 25154 25155 25156 25157 25158 25159 25160 25161 25162 25163 25164 25165 25166 25167 25168 25169 25170 25171 25172 25173 25174 25175 25176 25177 25178 25179 25180 25181 25182 25183 25184 25185 25186 25187 25188 25189 25190 25191 25192 25193 25194 25195 25196 25197 25198 25199 25200 25201 25202 25203 25204 25205 25206 25207 25208 25209 25210 25211 25212 25213 25214 25215 25216 25217 25218 25219 25220 25221 25222 25223 25224 25225 25226 25227 25228 25229 25230 25231 25232 25233 25234 25235 25236 25237 25238 25239 25240 25241 25242 25243 25244 25245 25246 25247 25248 25249 25250 25251 25252 25253 25254 25255 25256 25257 25258 25259 25260 25261 25262 25263 25264 25265 25266 25267 25268 25269 25270 25271 25272 25273 25274 25275 25276 25277 25278 25279 25280 25281 25282 25283 25284 25285 25286 25287 25288 25289 25290 25291 25292 25293 25294 25295 25296 25297 25298 25299 25300 25301 25302 25303 25304 25305 25306 25307 25308 25309 25310 25311 25312 25313 25314 25315 25316 25317 25318 25319 25320 25321 25322 25323 25324 25325 25326 25327 25328 25329 25330 25331 25332 25333 25334 25335 25336 25337 25338 25339 25340 25341 25342 25343 25344 25345 25346 25347 25348 25349 25350 25351 25352 25353 25354 25355 25356 25357 25358 25359 25360 25361 25362 25363 25364 25365 25366 25367 25368 25369 25370 25371 25372 25373 25374 25375 25376 25377 25378 25379 25380 25381 25382 25383 25384 25385 25386 25387 25388 25389 25390 25391 25392 25393 25394 25395 25396 25397 25398 25399 25400 25401 25402 25403 25404 25405 25406 25407 25408 25409 25410 25411 25412 25413 25414 25415 25416 25417 25418 25419 25420 25421 25422 25423 25424 25425 25426 25427 25428 25429 25430 25431 25432 25433 25434 25435 25436 25437 25438 25439 25440 25441 25442 25443 25444 25445 25446 25447 25448 25449 25450 25451 25452 25453 25454 25455 25456 25457 25458 25459 25460 25461 25462 25463 25464 25465 25466 25467 25468 25469 25470 25471 25472 25473 25474 25475 25476 25477 25478 25479 25480 25481 25482 25483 25484 25485 25486 25487 25488 25489 25490 25491 25492 25493 25494 25495 25496 25497 25498 25499 25500 25501 25502 25503 25504 25505 25506 25507 25508 25509 25510 25511 25512 25513 25514 25515 25516 25517 25518 25519 25520 25521 25522 25523 25524 25525 25526 25527 25528 25529 25530 25531 25532 25533 25534 25535 25536 25537 25538 25539 25540 25541 25542 25543 25544 25545 25546 25547 25548 25549 25550 25551 25552 25553 25554 25555 25556 25557 25558 25559 25560 25561 25562 25563 25564 25565 25566 25567 25568 25569 25570 25571 25572 25573 25574 25575 25576 25577 25578 25579 25580 25581 25582 25583 25584 25585 25586 25587 25588 25589 25590 25591 25592 25593 25594 25595 25596 25597 25598 25599 25600 25601 25602 25603 25604 25605 25606 25607 25608 25609 25610 25611 25612 25613 25614 25615 25616 25617 25618 25619 25620 25621 25622 25623 25624 25625 25626 25627 25628 25629 25630 25631 25632 25633 25634 25635 25636 25637 25638 25639 25640 25641 25642 25643 25644 25645 25646 25647 25648 25649 25650 25651 25652 25653 25654 25655 25656 25657 25658 25659 25660 25661 25662 25663 25664 25665 25666 25667 25668 25669 25670 25671 25672 25673 25674 25675 25676 25677 25678 25679 25680 25681 25682 25683 25684 25685 25686 25687 25688 25689 25690 25691 25692 25693 25694 25695 25696 25697 25698 25699 25700 25701 25702 25703 25704 25705 25706 25707 25708 25709 25710 25711 25712 25713 25714 25715 25716 25717 25718 25719 25720 25721 25722 25723 25724 25725 25726 25727 25728 25729 25730 25731 25732 25733 25734 25735 25736 25737 25738 25739 25740 25741 25742 25743 25744 25745 25746 25747 25748 25749 25750 25751 25752 25753 25754 25755 25756 25757 25758 25759 25760 25761 25762 25763 25764 25765 25766 25767 25768 25769 25770 25771 25772 25773 25774 25775 25776 25777 25778 25779 25780 25781 25782 25783 25784 25785 25786 25787 25788 25789 25790 25791 25792 25793 25794 25795 25796 25797 25798 25799 25800 25801 25802 25803 25804 25805 25806 25807 25808 25809 25810 25811 25812 25813 25814 25815 25816 25817 25818 25819 25820 25821 25822 25823 25824 25825 25826 25827 25828 25829 25830 25831 25832 25833 25834 25835 25836 25837 25838 25839 25840 25841 25842 25843 25844 25845 25846 25847 25848 25849 25850 25851 25852 25853 25854 25855 25856 25857 25858 25859 25860 25861 25862 25863 25864 25865 25866 25867 25868 25869 25870 25871 25872 25873 25874 25875 25876 25877 25878 25879 25880 25881 25882 25883 25884 25885 25886 25887 25888 25889 25890 25891 25892 25893 25894 25895 25896 25897 25898 25899 25900 25901 25902 25903 25904 25905 25906 25907 25908 25909 25910 25911 25912 25913 25914 25915 25916 25917 25918 25919 25920 25921 25922 25923 25924 25925 25926 25927 25928 25929 25930 25931 25932 25933 25934 25935 25936 25937 25938 25939 25940 25941 25942 25943 25944 25945 25946 25947 25948 25949 25950 25951 25952 25953 25954 25955 25956 25957 25958 25959 25960 25961 25962 25963 25964 25965 25966 25967 25968 25969 25970 25971 25972 25973 25974 25975 25976 25977 25978 25979 25980 25981 25982 25983 25984 25985 25986 25987 25988 25989 25990 25991 25992 25993 25994 25995 25996 25997 25998 25999 26000 26001 26002 26003 26004 26005 26006 26007 26008 26009 26010 26011 26012 26013 26014 26015 26016 26017 26018 26019 26020 26021 26022 26023 26024 26025 26026 26027 26028 26029 26030 26031 26032 26033 26034 26035 26036 26037 26038 26039 26040 26041 26042 26043 26044 26045 26046 26047 26048 26049 26050 26051 26052 26053 26054 26055 26056 26057 26058 26059 26060 26061 26062 26063 26064 26065 26066 26067 26068 26069 26070 26071 26072 26073 26074 26075 26076 26077 26078 26079 26080 26081 26082 26083 26084 26085 26086 26087 26088 26089 26090 26091 26092 26093 26094 26095 26096 26097 26098 26099 26100 26101 26102 26103 26104 26105 26106 26107 26108 26109 26110 26111 26112 26113 26114 26115 26116 26117 26118 26119 26120 26121 26122 26123 26124 26125 26126 26127 26128 26129 26130 26131 26132 26133 26134 26135 26136 26137 26138 26139 26140 26141 26142 26143 26144 26145 26146 26147 26148 26149 26150 26151 26152 26153 26154 26155 26156 26157 26158 26159 26160 26161 26162 26163 26164 26165 26166 26167 26168 26169 26170 26171 26172 26173 26174 26175 26176 26177 26178 26179 26180 26181 26182 26183 26184 26185 26186 26187 26188 26189 26190 26191 26192 26193 26194 26195 26196 26197 26198 26199 26200 26201 26202 26203 26204 26205 26206 26207 26208 26209 26210 26211 26212 26213 26214 26215 26216 26217 26218 26219 26220 26221 26222 26223 26224 26225 26226 26227 26228 26229 26230 26231 26232 26233 26234 26235 26236 26237 26238 26239 26240 26241 26242 26243 26244 26245 26246 26247 26248 26249 26250 26251 26252 26253 26254 26255 26256 26257 26258 26259 26260 26261 26262 26263 26264 26265 26266 26267 26268 26269 26270 26271 26272 26273 26274 26275 26276 26277 26278 26279 26280 26281 26282 26283 26284 26285 26286 26287 26288 26289 26290 26291 26292 26293 26294 26295 26296 26297 26298 26299 26300 26301 26302 26303 26304 26305 26306 26307 26308 26309 26310 26311 26312 26313 26314 26315 26316 26317 26318 26319 26320 26321 26322 26323 26324 26325 26326 26327 26328 26329 26330 26331 26332 26333 26334 26335 26336 26337 26338 26339 26340 26341 26342 26343 26344 26345 26346 26347 26348 26349 26350 26351 26352 26353 26354 26355 26356 26357 26358 26359 26360 26361 26362 26363 26364 26365 26366 26367 26368 26369 26370 26371 26372 26373 26374 26375 26376 26377 26378 26379 26380 26381 26382 26383 26384 26385 26386 26387 26388 26389 26390 26391 26392 26393 26394 26395 26396 26397 26398 26399 26400 26401 26402 26403 26404 26405 26406 26407 26408 26409 26410 26411 26412 26413 26414 26415 26416 26417 26418 26419 26420 26421 26422 26423 26424 26425 26426 26427 26428 26429 26430 26431 26432 26433 26434 26435 26436 26437 26438 26439 26440 26441 26442 26443 26444 26445 26446 26447 26448 26449 26450 26451 26452 26453 26454 26455 26456 26457 26458 26459 26460 26461 26462 26463 26464 26465 26466 26467 26468 26469 26470 26471 26472 26473 26474 26475 26476 26477 26478 26479 26480 26481 26482 26483 26484 26485 26486 26487 26488 26489 26490 26491 26492 26493 26494 26495 26496 26497 26498 26499 26500 26501 26502 26503 26504 26505 26506 26507 26508 26509 26510 26511 26512 26513 26514 26515 26516 26517 26518 26519 26520 26521 26522 26523 26524 26525 26526 26527 26528 26529 26530 26531 26532 26533 26534 26535 26536 26537 26538 26539 26540 26541 26542 26543 26544 26545 26546 26547 26548 26549 26550 26551 26552 26553 26554 26555 26556 26557 26558 26559 26560 26561 26562 26563 26564 26565 26566 26567 26568 26569 26570 26571 26572 26573 26574 26575 26576 26577 26578 26579 26580 26581 26582 26583 26584 26585 26586 26587 26588 26589 26590 26591 26592 26593 26594 26595 26596 26597 26598 26599 26600 26601 26602 26603 26604 26605 26606 26607 26608 26609 26610 26611 26612 26613 26614 26615 26616 26617 26618 26619 26620 26621 26622 26623 26624 26625 26626 26627 26628 26629 26630 26631 26632 26633 26634 26635 26636 26637 26638 26639 26640 26641 26642 26643 26644 26645 26646 26647 26648 26649 26650 26651 26652 26653 26654 26655 26656 26657 26658 26659 26660 26661 26662 26663 26664 26665 26666 26667 26668 26669 26670 26671 26672 26673 26674 26675 26676 26677 26678 26679 26680 26681 26682 26683 26684 26685 26686 26687 26688 26689 26690 26691 26692 26693 26694 26695 26696 26697 26698 26699 26700 26701 26702 26703 26704 26705 26706 26707 26708 26709 26710 26711 26712 26713 26714 26715 26716 26717 26718 26719 26720 26721 26722 26723 26724 26725 26726 26727 26728 26729 26730 26731 26732 26733 26734 26735 26736 26737 26738 26739 26740 26741 26742 26743 26744 26745 26746 26747 26748 26749 26750 26751 26752 26753 26754 26755 26756 26757 26758 26759 26760 26761 26762 26763 26764 26765 26766 26767 26768 26769 26770 26771 26772 26773 26774 26775 26776 26777 26778 26779 26780 26781 26782 26783 26784 26785 26786 26787 26788 26789 26790 26791 26792 26793 26794 26795 26796 26797 26798 26799 26800 26801 26802 26803 26804 26805 26806 26807 26808 26809 26810 26811 26812 26813 26814 26815 26816 26817 26818 26819 26820 26821 26822 26823 26824 26825 26826 26827 26828 26829 26830 26831 26832 26833 26834 26835 26836 26837 26838 26839 26840 26841 26842 26843 26844 26845 26846 26847 26848 26849 26850 26851 26852 26853 26854 26855 26856 26857 26858 26859 26860 26861 26862 26863 26864 26865 26866 26867 26868 26869 26870 26871 26872 26873 26874 26875 26876 26877 26878 26879 26880 26881 26882 26883 26884 26885 26886 26887 26888 26889 26890 26891 26892 26893 26894 26895 26896 26897 26898 26899 26900 26901 26902 26903 26904 26905 26906 26907 26908 26909 26910 26911 26912 26913 26914 26915 26916 26917 26918 26919 26920 26921 26922 26923 26924 26925 26926 26927 26928 26929 26930 26931 26932 26933 26934 26935 26936 26937 26938 26939 26940 26941 26942 26943 26944 26945 26946 26947 26948 26949 26950 26951 26952 26953 26954 26955 26956 26957 26958 26959 26960 26961 26962 26963 26964 26965 26966 26967 26968 26969 26970 26971 26972 26973 26974 26975 26976 26977 26978 26979 26980 26981 26982 26983 26984 26985 26986 26987 26988 26989 26990 26991 26992 26993 26994 26995 26996 26997 26998 26999 27000 27001 27002 27003 27004 27005 27006 27007 27008 27009 27010 27011 27012 27013 27014 27015 27016 27017 27018 27019 27020 27021 27022 27023 27024 27025 27026 27027 27028 27029 27030 27031 27032 27033 27034 27035 27036 27037 27038 27039 27040 27041 27042 27043 27044 27045 27046 27047 27048 27049 27050 27051 27052 27053 27054 27055 27056 27057 27058 27059 27060 27061 27062 27063 27064 27065 27066 27067 27068 27069 27070 27071 27072 27073 27074 27075 27076 27077 27078 27079 27080 27081 27082 27083 27084 27085 27086 27087 27088 27089 27090 27091 27092 27093 27094 27095 27096 27097 27098 27099 27100 27101 27102 27103 27104 27105 27106 27107 27108 27109 27110 27111 27112 27113 27114 27115 27116 27117 27118 27119 27120 27121 27122 27123 27124 27125 27126 27127 27128 27129 27130 27131 27132 27133 27134 27135 27136 27137 27138 27139 27140 27141 27142 27143 27144 27145 27146 27147 27148 27149 27150 27151 27152 27153 27154 27155 27156 27157 27158 27159 27160 27161 27162 27163 27164 27165 27166 27167 27168 27169 27170 27171 27172 27173 27174 27175 27176 27177 27178 27179 27180 27181 27182 27183 27184 27185 27186 27187 27188 27189 27190 27191 27192 27193 27194 27195 27196 27197 27198 27199 27200 27201 27202 27203 27204 27205 27206 27207 27208 27209 27210 27211 27212 27213 27214 27215 27216 27217 27218 27219 27220 27221 27222 27223 27224 27225 27226 27227 27228 27229 27230 27231 27232 27233 27234 27235 27236 27237 27238 27239 27240 27241 27242 27243 27244 27245 27246 27247 27248 27249 27250 27251 27252 27253 27254 27255 27256 27257 27258 27259 27260 27261 27262 27263 27264 27265 27266 27267 27268 27269 27270 27271 27272 27273 27274 27275 27276 27277 27278 27279 27280 27281 27282 27283 27284 27285 27286 27287 27288 27289 27290 27291 27292 27293 27294 27295 27296 27297 27298 27299 27300 27301 27302 27303 27304 27305 27306 27307 27308 27309 27310 27311 27312 27313 27314 27315 27316 27317 27318 27319 27320 27321 27322 27323 27324 27325 27326 27327 27328 27329 27330 27331 27332 27333 27334 27335 27336 27337 27338 27339 27340 27341 27342 27343 27344 27345 27346 27347 27348 27349 27350 27351 27352 27353 27354 27355 27356 27357 27358 27359 27360 27361 27362 27363 27364 27365 27366 27367 27368 27369 27370 27371 27372 27373 27374 27375 27376 27377 27378 27379 27380 27381 27382 27383 27384 27385 27386 27387 27388 27389 27390 27391 27392 27393 27394 27395 27396 27397 27398 27399 27400 27401 27402 27403 27404 27405 27406 27407 27408 27409 27410 27411 27412 27413 27414 27415 27416 27417 27418 27419 27420 27421 27422 27423 27424 27425 27426 27427 27428 27429 27430 27431 27432 27433 27434 27435 27436 27437 27438 27439 27440 27441 27442 27443 27444 27445 27446 27447 27448 27449 27450 27451 27452 27453 27454 27455 27456 27457 27458 27459 27460 27461 27462 27463 27464 27465 27466 27467 27468 27469 27470 27471 27472 27473 27474 27475 27476 27477 27478 27479 27480 27481 27482 27483 27484 27485 27486 27487 27488 27489 27490 27491 27492 27493 27494 27495 27496 27497 27498 27499 27500 27501 27502 27503 27504 27505 27506 27507 27508 27509 27510 27511 27512 27513 27514 27515 27516 27517 27518 27519 27520 27521 27522 27523 27524 27525 27526 27527 27528 27529 27530 27531 27532 27533 27534 27535 27536 27537 27538 27539 27540 27541 27542 27543 27544 27545 27546 27547 27548 27549 27550 27551 27552 27553 27554 27555 27556 27557 27558 27559 27560 27561 27562 27563 27564 27565 27566 27567 27568 27569 27570 27571 27572 27573 27574 27575 27576 27577 27578 27579 27580 27581 27582 27583 27584 27585 27586 27587 27588 27589 27590 27591 27592 27593 27594 27595 27596 27597 27598 27599 27600 27601 27602 27603 27604 27605 27606 27607 27608 27609 27610 27611 27612 27613 27614 27615 27616 27617 27618 27619 27620 27621 27622 27623 27624 27625 27626 27627 27628 27629 27630 27631 27632 27633 27634 27635 27636 27637 27638 27639 27640 27641 27642 27643 27644 27645 27646 27647 27648 27649 27650 27651 27652 27653 27654 27655 27656 27657 27658 27659 27660 27661 27662 27663 27664 27665 27666 27667 27668 27669 27670 27671 27672 27673 27674 27675 27676 27677 27678 27679 27680 27681 27682 27683 27684 27685 27686 27687 27688 27689 27690 27691 27692 27693 27694 27695 27696 27697 27698 27699 27700 27701 27702 27703 27704 27705 27706 27707 27708 27709 27710 27711 27712 27713 27714 27715 27716 27717 27718 27719 27720 27721 27722 27723 27724 27725 27726 27727 27728 27729 27730 27731 27732 27733 27734 27735 27736 27737 27738 27739 27740 27741 27742 27743 27744 27745 27746 27747 27748 27749 27750 27751 27752 27753 27754 27755 27756 27757 27758 27759 27760 27761 27762 27763 27764 27765 27766 27767 27768 27769 27770 27771 27772 27773 27774 27775 27776 27777 27778 27779 27780 27781 27782 27783 27784 27785 27786 27787 27788 27789 27790 27791 27792 27793 27794 27795 27796 27797 27798 27799 27800 27801 27802 27803 27804 27805 27806 27807 27808 27809 27810 27811 27812 27813 27814 27815 27816 27817 27818 27819 27820 27821 27822 27823 27824 27825 27826 27827 27828 27829 27830 27831 27832 27833 27834 27835 27836 27837 27838 27839 27840 27841 27842 27843 27844 27845 27846 27847 27848 27849 27850 27851 27852 27853 27854 27855 27856 27857 27858 27859 27860 27861 27862 27863 27864 27865 27866 27867 27868 27869 27870 27871 27872 27873 27874 27875 27876 27877 27878 27879 27880 27881 27882 27883 27884 27885 27886 27887 27888 27889 27890 27891 27892 27893 27894 27895 27896 27897 27898 27899 27900 27901 27902 27903 27904 27905 27906 27907 27908 27909 27910 27911 27912 27913 27914 27915 27916 27917 27918 27919 27920 27921 27922 27923 27924 27925 27926 27927 27928 27929 27930 27931 27932 27933 27934 27935 27936 27937 27938 27939 27940 27941 27942 27943 27944 27945 27946 27947 27948 27949 27950 27951 27952 27953 27954 27955 27956 27957 27958 27959 27960 27961 27962 27963 27964 27965 27966 27967 27968 27969 27970 27971 27972 27973 27974 27975 27976 27977 27978 27979 27980 27981 27982 27983 27984 27985 27986 27987 27988 27989 27990 27991 27992 27993 27994 27995 27996 27997 27998 27999 28000 28001 28002 28003 28004 28005 28006 28007 28008 28009 28010 28011 28012 28013 28014 28015 28016 28017 28018 28019 28020 28021 28022 28023 28024 28025 28026 28027 28028 28029 28030 28031 28032 28033 28034 28035 28036 28037 28038 28039 28040 28041 28042 28043 28044 28045 28046 28047 28048 28049 28050 28051 28052 28053 28054 28055 28056 28057 28058 28059 28060 28061 28062 28063 28064 28065 28066 28067 28068 28069 28070 28071 28072 28073 28074 28075 28076 28077 28078 28079 28080 28081 28082 28083 28084 28085 28086 28087 28088 28089 28090 28091 28092 28093 28094 28095 28096 28097 28098 28099 28100 28101 28102 28103 28104 28105 28106 28107 28108 28109 28110 28111 28112 28113 28114 28115 28116 28117 28118 28119 28120 28121 28122 28123 28124 28125 28126 28127 28128 28129 28130 28131 28132 28133 28134 28135 28136 28137 28138 28139 28140 28141 28142 28143 28144 28145 28146 28147 28148 28149 28150 28151 28152 28153 28154 28155 28156 28157 28158 28159 28160 28161 28162 28163 28164 28165 28166 28167 28168 28169 28170 28171 28172 28173 28174 28175 28176 28177 28178 28179 28180 28181 28182 28183 28184 28185 28186 28187 28188 28189 28190 28191 28192 28193 28194 28195 28196 28197 28198 28199 28200 28201 28202 28203 28204 28205 28206 28207 28208 28209 28210 28211 28212 28213 28214 28215 28216 28217 28218 28219 28220 28221 28222 28223 28224 28225 28226 28227 28228 28229 28230 28231 28232 28233 28234 28235 28236 28237 28238 28239 28240 28241 28242 28243 28244 28245 28246 28247 28248 28249 28250 28251 28252 28253 28254 28255 28256 28257 28258 28259 28260 28261 28262 28263 28264 28265 28266 28267 28268 28269 28270 28271 28272 28273 28274 28275 28276 28277 28278 28279 28280 28281 28282 28283 28284 28285 28286 28287 28288 28289 28290 28291 28292 28293 28294 28295 28296 28297 28298 28299 28300 28301 28302 28303 28304 28305 28306 28307 28308 28309 28310 28311 28312 28313 28314 28315 28316 28317 28318 28319 28320 28321 28322 28323 28324 28325 28326 28327 28328 28329 28330 28331 28332 28333 28334 28335 28336 28337 28338 28339 28340 28341 28342 28343 28344 28345 28346 28347 28348 28349 28350 28351 28352 28353 28354 28355 28356 28357 28358 28359 28360 28361 28362 28363 28364 28365 28366 28367 28368 28369 28370 28371 28372 28373 28374 28375 28376 28377 28378 28379 28380 28381 28382 28383 28384 28385 28386 28387 28388 28389 28390 28391 28392 28393 28394 28395 28396 28397 28398 28399 28400 28401 28402 28403 28404 28405 28406 28407 28408 28409 28410 28411 28412 28413 28414 28415 28416 28417 28418 28419 28420 28421 28422 28423 28424 28425 28426 28427 28428 28429 28430 28431 28432 28433 28434 28435 28436 28437 28438 28439 28440 28441 28442 28443 28444 28445 28446 28447 28448 28449 28450 28451 28452 28453 28454 28455 28456 28457 28458 28459 28460 28461 28462 28463 28464 28465 28466 28467 28468 28469 28470 28471 28472 28473 28474 28475 28476 28477 28478 28479 28480 28481 28482 28483 28484 28485 28486 28487 28488 28489 28490 28491 28492 28493 28494 28495 28496 28497 28498 28499 28500 28501 28502 28503 28504 28505 28506 28507 28508 28509 28510 28511 28512 28513 28514 28515 28516 28517 28518 28519 28520 28521 28522 28523 28524 28525 28526 28527 28528 28529 28530 28531 28532 28533 28534 28535 28536 28537 28538 28539 28540 28541 28542 28543 28544 28545 28546 28547 28548 28549 28550 28551 28552 28553 28554 28555 28556 28557 28558 28559 28560 28561 28562 28563 28564 28565 28566 28567 28568 28569 28570 28571 28572 28573 28574 28575 28576 28577 28578 28579 28580 28581 28582 28583 28584 28585 28586 28587 28588 28589 28590 28591 28592 28593 28594 28595 28596 28597 28598 28599 28600 28601 28602 28603 28604 28605 28606 28607 28608 28609 28610 28611 28612 28613 28614 28615 28616 28617 28618 28619 28620 28621 28622 28623 28624 28625 28626 28627 28628 28629 28630 28631 28632 28633 28634 28635 28636 28637 28638 28639 28640 28641 28642 28643 28644 28645 28646 28647 28648 28649 28650 28651 28652 28653 28654 28655 28656 28657 28658 28659 28660 28661 28662 28663 28664 28665 28666 28667 28668 28669 28670 28671 28672 28673 28674 28675 28676 28677 28678 28679 28680 28681 28682 28683 28684 28685 28686 28687 28688 28689 28690 28691 28692 28693 28694 28695 28696 28697 28698 28699 28700 28701 28702 28703 28704 28705 28706 28707 28708 28709 28710 28711 28712 28713 28714 28715 28716 28717 28718 28719 28720 28721 28722 28723 28724 28725 28726 28727 28728 28729 28730 28731 28732 28733 28734 28735 28736 28737 28738 28739 28740 28741 28742 28743 28744 28745 28746 28747 28748 28749 28750 28751 28752 28753 28754 28755 28756 28757 28758 28759 28760 28761 28762 28763 28764 28765 28766 28767 28768 28769 28770 28771 28772 28773 28774 28775 28776 28777 28778 28779 28780 28781 28782 28783 28784 28785 28786 28787 28788 28789 28790 28791 28792 28793 28794 28795 28796 28797 28798 28799 28800 28801 28802 28803 28804 28805 28806 28807 28808 28809 28810 28811 28812 28813 28814 28815 28816 28817 28818 28819 28820 28821 28822 28823 28824 28825 28826 28827 28828 28829 28830 28831 28832 28833 28834 28835 28836 28837 28838 28839 28840 28841 28842 28843 28844 28845 28846 28847 28848 28849 28850 28851 28852 28853 28854 28855 28856 28857 28858 28859 28860 28861 28862 28863 28864 28865 28866 28867 28868 28869 28870 28871 28872 28873 28874 28875 28876 28877 28878 28879 28880 28881 28882 28883 28884 28885 28886 28887 28888 28889 28890 28891 28892 28893 28894 28895 28896 28897 28898 28899 28900 28901 28902 28903 28904 28905 28906 28907 28908 28909 28910 28911 28912 28913 28914 28915 28916 28917 28918 28919 28920 28921 28922 28923 28924 28925 28926 28927 28928 28929 28930 28931 28932 28933 28934 28935 28936 28937 28938 28939 28940 28941 28942 28943 28944 28945 28946 28947 28948 28949 28950 28951 28952 28953 28954 28955 28956 28957 28958 28959 28960 28961 28962 28963 28964 28965 28966 28967 28968 28969 28970 28971 28972 28973 28974 28975 28976 28977 28978 28979 28980 28981 28982 28983 28984 28985 28986 28987 28988 28989 28990 28991 28992 28993 28994 28995 28996 28997 28998 28999 29000 29001 29002 29003 29004 29005 29006 29007 29008 29009 29010 29011 29012 29013 29014 29015 29016 29017 29018 29019 29020 29021 29022 29023 29024 29025 29026 29027 29028 29029 29030 29031 29032 29033 29034 29035 29036 29037 29038 29039 29040 29041 29042 29043 29044 29045 29046 29047 29048 29049 29050 29051 29052 29053 29054 29055 29056 29057 29058 29059 29060 29061 29062 29063 29064 29065 29066 29067 29068 29069 29070 29071 29072 29073 29074 29075 29076 29077 29078 29079 29080 29081 29082 29083 29084 29085 29086 29087 29088 29089 29090 29091 29092 29093 29094 29095 29096 29097 29098 29099 29100 29101 29102 29103 29104 29105 29106 29107 29108 29109 29110 29111 29112 29113 29114 29115 29116 29117 29118 29119 29120 29121 29122 29123 29124 29125 29126 29127 29128 29129 29130 29131 29132 29133 29134 29135 29136 29137 29138 29139 29140 29141 29142 29143 29144 29145 29146 29147 29148 29149 29150 29151 29152 29153 29154 29155 29156 29157 29158 29159 29160 29161 29162 29163 29164 29165 29166 29167 29168 29169 29170 29171 29172 29173 29174 29175 29176 29177 29178 29179 29180 29181 29182 29183 29184 29185 29186 29187 29188 29189 29190 29191 29192 29193 29194 29195 29196 29197 29198 29199 29200 29201 29202 29203 29204 29205 29206 29207 29208 29209 29210 29211 29212 29213 29214 29215 29216 29217 29218 29219 29220 29221 29222 29223 29224 29225 29226 29227 29228 29229 29230 29231 29232 29233 29234 29235 29236 29237 29238 29239 29240 29241 29242 29243 29244 29245 29246 29247 29248 29249 29250 29251 29252 29253 29254 29255 29256 29257 29258 29259 29260 29261 29262 29263 29264 29265 29266 29267 29268 29269 29270 29271 29272 29273 29274 29275 29276 29277 29278 29279 29280 29281 29282 29283 29284 29285 29286 29287 29288 29289 29290 29291 29292 29293 29294 29295 29296 29297 29298 29299 29300 29301 29302 29303 29304 29305 29306 29307 29308 29309 29310 29311 29312 29313 29314 29315 29316 29317 29318 29319 29320 29321 29322 29323 29324 29325 29326 29327 29328 29329 29330 29331 29332 29333 29334 29335 29336 29337 29338 29339 29340 29341 29342 29343 29344 29345 29346 29347 29348 29349 29350 29351 29352 29353 29354 29355 29356 29357 29358 29359 29360 29361 29362 29363 29364 29365 29366 29367 29368 29369 29370 29371 29372 29373 29374 29375 29376 29377 29378 29379 29380 29381 29382 29383 29384 29385 29386 29387 29388 29389 29390 29391 29392 29393 29394 29395 29396 29397 29398 29399 29400 29401 29402 29403 29404 29405 29406 29407 29408 29409 29410 29411 29412 29413 29414 29415 29416 29417 29418 29419 29420 29421 29422 29423 29424 29425 29426 29427 29428 29429 29430 29431 29432 29433 29434 29435 29436 29437 29438 29439 29440 29441 29442 29443 29444 29445 29446 29447 29448 29449 29450 29451 29452 29453 29454 29455 29456 29457 29458 29459 29460 29461 29462 29463 29464 29465 29466 29467 29468 29469 29470 29471 29472 29473 29474 29475 29476 29477 29478 29479 29480 29481 29482 29483 29484 29485 29486 29487 29488 29489 29490 29491 29492 29493 29494 29495 29496 29497 29498 29499 29500 29501 29502 29503 29504 29505 29506 29507 29508 29509 29510 29511 29512 29513 29514 29515 29516 29517 29518 29519 29520 29521 29522 29523 29524 29525 29526 29527 29528 29529 29530 29531 29532 29533 29534 29535 29536 29537 29538 29539 29540 29541 29542 29543 29544 29545 29546 29547 29548 29549 29550 29551 29552 29553 29554 29555 29556 29557 29558 29559 29560 29561 29562 29563 29564 29565 29566 29567 29568 29569 29570 29571 29572 29573 29574 29575 29576 29577 29578 29579 29580 29581 29582 29583 29584 29585 29586 29587 29588 29589 29590 29591 29592 29593 29594 29595 29596 29597 29598 29599 29600 29601 29602 29603 29604 29605 29606 29607 29608 29609 29610 29611 29612 29613 29614 29615 29616 29617 29618 29619 29620 29621 29622 29623 29624 29625 29626 29627 29628 29629 29630 29631 29632 29633 29634 29635 29636 29637 29638 29639 29640 29641 29642 29643 29644 29645 29646 29647 29648 29649 29650 29651 29652 29653 29654 29655 29656 29657 29658 29659 29660 29661 29662 29663 29664 29665 29666 29667 29668 29669 29670 29671 29672 29673 29674 29675 29676 29677 29678 29679 29680 29681 29682 29683 29684 29685 29686 29687 29688 29689 29690 29691 29692 29693 29694 29695 29696 29697 29698 29699 29700 29701 29702 29703 29704 29705 29706 29707 29708 29709 29710 29711 29712 29713 29714 29715 29716 29717 29718 29719 29720 29721 29722 29723 29724 29725 29726 29727 29728 29729 29730 29731 29732 29733 29734 29735 29736 29737 29738 29739 29740 29741 29742 29743 29744 29745 29746 29747 29748 29749 29750 29751 29752 29753 29754 29755 29756 29757 29758 29759 29760 29761 29762 29763 29764 29765 29766 29767 29768 29769 29770 29771 29772 29773 29774 29775 29776 29777 29778 29779 29780 29781 29782 29783 29784 29785 29786 29787 29788 29789 29790 29791 29792 29793 29794 29795 29796 29797 29798 29799 29800 29801 29802 29803 29804 29805 29806 29807 29808 29809 29810 29811 29812 29813 29814 29815 29816 29817 29818 29819 29820 29821 29822 29823 29824 29825 29826 29827 29828 29829 29830 29831 29832 29833 29834 29835 29836 29837 29838 29839 29840 29841 29842 29843 29844 29845 29846 29847 29848 29849 29850 29851 29852 29853 29854 29855 29856 29857 29858 29859 29860 29861 29862 29863 29864 29865 29866 29867 29868 29869 29870 29871 29872 29873 29874 29875 29876 29877 29878 29879 29880 29881 29882 29883 29884 29885 29886 29887 29888 29889 29890 29891 29892 29893 29894 29895 29896 29897 29898 29899 29900 29901 29902 29903 29904 29905 29906 29907 29908 29909 29910 29911 29912 29913 29914 29915 29916 29917 29918 29919 29920 29921 29922 29923 29924 29925 29926 29927 29928 29929 29930 29931 29932 29933 29934 29935 29936 29937 29938 29939 29940 29941 29942 29943 29944 29945 29946 29947 29948 29949 29950 29951 29952 29953 29954 29955 29956 29957 29958 29959 29960 29961 29962 29963 29964 29965 29966 29967 29968 29969 29970 29971 29972 29973 29974 29975 29976 29977 29978 29979 29980 29981 29982 29983 29984 29985 29986 29987 29988 29989 29990 29991 29992 29993 29994 29995 29996 29997 29998 29999 30000 30001 30002 30003 30004 30005 30006 30007 30008 30009 30010 30011 30012 30013 30014 30015 30016 30017 30018 30019 30020 30021 30022 30023 30024 30025 30026 30027 30028 30029 30030 30031 30032 30033 30034 30035 30036 30037 30038 30039 30040 30041 30042 30043 30044 30045 30046 30047 30048 30049 30050 30051 30052 30053 30054 30055 30056 30057 30058 30059 30060 30061 30062 30063 30064 30065 30066 30067 30068 30069 30070 30071 30072 30073 30074 30075 30076 30077 30078 30079 30080 30081 30082 30083 30084 30085 30086 30087 30088 30089 30090 30091 30092 30093 30094 30095 30096 30097 30098 30099 30100 30101 30102 30103 30104 30105 30106 30107 30108 30109 30110 30111 30112 30113 30114 30115 30116 30117 30118 30119 30120 30121 30122 30123 30124 30125 30126 30127 30128 30129 30130 30131 30132 30133 30134 30135 30136 30137 30138 30139 30140 30141 30142 30143 30144 30145 30146 30147 30148 30149 30150 30151 30152 30153 30154 30155 30156 30157 30158 30159 30160 30161 30162 30163 30164 30165 30166 30167 30168 30169 30170 30171 30172 30173 30174 30175 30176 30177 30178 30179 30180 30181 30182 30183 30184 30185 30186 30187 30188 30189 30190 30191 30192 30193 30194 30195 30196 30197 30198 30199 30200 30201 30202 30203 30204 30205 30206 30207 30208 30209 30210 30211 30212 30213 30214 30215 30216 30217 30218 30219 30220 30221 30222 30223 30224 30225 30226 30227 30228 30229 30230 30231 30232 30233 30234 30235 30236 30237 30238 30239 30240 30241 30242 30243 30244 30245 30246 30247 30248 30249 30250 30251 30252 30253 30254 30255 30256 30257 30258 30259 30260 30261 30262 30263 30264 30265 30266 30267 30268 30269 30270 30271 30272 30273 30274 30275 30276 30277 30278 30279 30280 30281 30282 30283 30284 30285 30286 30287 30288 30289 30290 30291 30292 30293 30294 30295 30296 30297 30298 30299 30300 30301 30302 30303 30304 30305 30306 30307 30308 30309 30310 30311 30312 30313 30314 30315 30316 30317 30318 30319 30320 30321 30322 30323 30324 30325 30326 30327 30328 30329 30330 30331 30332 30333 30334 30335 30336 30337 30338 30339 30340 30341 30342 30343 30344 30345 30346 30347 30348 30349 30350 30351 30352 30353 30354 30355 30356 30357 30358 30359 30360 30361 30362 30363 30364 30365 30366 30367 30368 30369 30370 30371 30372 30373 30374 30375 30376 30377 30378 30379 30380 30381 30382 30383 30384 30385 30386 30387 30388 30389 30390 30391 30392 30393 30394 30395 30396 30397 30398 30399 30400 30401 30402 30403 30404 30405 30406 30407 30408 30409 30410 30411 30412 30413 30414 30415 30416 30417 30418 30419 30420 30421 30422 30423 30424 30425 30426 30427 30428 30429 30430 30431 30432 30433 30434 30435 30436 30437 30438 30439 30440 30441 30442 30443 30444 30445 30446 30447 30448 30449 30450 30451 30452 30453 30454 30455 30456 30457 30458 30459 30460 30461 30462 30463 30464 30465 30466 30467 30468 30469 30470 30471 30472 30473 30474 30475 30476 30477 30478 30479 30480 30481 30482 30483 30484 30485 30486 30487 30488 30489 30490 30491 30492 30493 30494 30495 30496 30497 30498 30499 30500 30501 30502 30503 30504 30505 30506 30507 30508 30509 30510 30511 30512 30513 30514 30515 30516 30517 30518 30519 30520 30521 30522 30523 30524 30525 30526 30527 30528 30529 30530 30531 30532 30533 30534 30535 30536 30537 30538 30539 30540 30541 30542 30543 30544 30545 30546 30547 30548 30549 30550 30551 30552 30553 30554 30555 30556 30557 30558 30559 30560 30561 30562 30563 30564 30565 30566 30567 30568 30569 30570 30571 30572 30573 30574 30575 30576 30577 30578 30579 30580 30581 30582 30583 30584 30585 30586 30587 30588 30589 30590 30591 30592 30593 30594 30595 30596 30597 30598 30599 30600 30601 30602 30603 30604 30605 30606 30607 30608 30609 30610 30611 30612 30613 30614 30615 30616 30617 30618 30619 30620 30621 30622 30623 30624 30625 30626 30627 30628 30629 30630 30631 30632 30633 30634 30635 30636 30637 30638 30639 30640 30641 30642 30643 30644 30645 30646 30647 30648 30649 30650 30651 30652 30653 30654 30655 30656 30657 30658 30659 30660 30661 30662 30663 30664 30665 30666 30667 30668 30669 30670 30671 30672 30673 30674 30675 30676 30677 30678 30679 30680 30681 30682 30683 30684 30685 30686 30687 30688 30689 30690 30691 30692 30693 30694 30695 30696 30697 30698 30699 30700 30701 30702 30703 30704 30705 30706 30707 30708 30709 30710 30711 30712 30713 30714 30715 30716 30717 30718 30719 30720 30721 30722 30723 30724 30725 30726 30727 30728 30729 30730 30731 30732 30733 30734 30735 30736 30737 30738 30739 30740 30741 30742 30743 30744 30745 30746 30747 30748 30749 30750 30751 30752 30753 30754 30755 30756 30757 30758 30759 30760 30761 30762 30763 30764 30765 30766 30767 30768 30769 30770 30771 30772 30773 30774 30775 30776 30777 30778 30779 30780 30781 30782 30783 30784 30785 30786 30787 30788 30789 30790 30791 30792 30793 30794 30795 30796 30797 30798 30799 30800 30801 30802 30803 30804 30805 30806 30807 30808 30809 30810 30811 30812 30813 30814 30815 30816 30817 30818 30819 30820 30821 30822 30823 30824 30825 30826 30827 30828 30829 30830 30831 30832 30833 30834 30835 30836 30837 30838 30839 30840 30841 30842 30843 30844 30845 30846 30847 30848 30849 30850 30851 30852 30853 30854 30855 30856 30857 30858 30859 30860 30861 30862 30863 30864 30865 30866 30867 30868 30869 30870 30871 30872 30873 30874 30875 30876 30877 30878 30879 30880 30881 30882 30883 30884 30885 30886 30887 30888 30889 30890 30891 30892 30893 30894 30895 30896 30897 30898 30899 30900 30901 30902 30903 30904 30905 30906 30907 30908 30909 30910 30911 30912 30913 30914 30915 30916 30917 30918 30919 30920 30921 30922 30923 30924 30925 30926 30927 30928 30929 30930 30931 30932 30933 30934 30935 30936 30937 30938 30939 30940 30941 30942 30943 30944 30945 30946 30947 30948 30949 30950 30951 30952 30953 30954 30955 30956 30957 30958 30959 30960 30961 30962 30963 30964 30965 30966 30967 30968 30969 30970 30971 30972 30973 30974 30975 30976 30977 30978 30979 30980 30981 30982 30983 30984 30985 30986 30987 30988 30989 30990 30991 30992 30993 30994 30995 30996 30997 30998 30999 31000 31001 31002 31003 31004 31005 31006 31007 31008 31009 31010 31011 31012 31013 31014 31015 31016 31017 31018 31019 31020 31021 31022 31023 31024 31025 31026 31027 31028 31029 31030 31031 31032 31033 31034 31035 31036 31037 31038 31039 31040 31041 31042 31043 31044 31045 31046 31047 31048 31049 31050 31051 31052 31053 31054 31055 31056 31057 31058 31059 31060 31061 31062 31063 31064 31065 31066 31067 31068 31069 31070 31071 31072 31073 31074 31075 31076 31077 31078 31079 31080 31081 31082 31083 31084 31085 31086 31087 31088 31089 31090 31091 31092 31093 31094 31095 31096 31097 31098 31099 31100 31101 31102 31103 31104 31105 31106 31107 31108 31109 31110 31111 31112 31113 31114 31115 31116 31117 31118 31119 31120 31121 31122 31123 31124 31125 31126 31127 31128 31129 31130 31131 31132 31133 31134 31135 31136 31137 31138 31139 31140 31141 31142 31143 31144 31145 31146 31147 31148 31149 31150 31151 31152 31153 31154 31155 31156 31157 31158 31159 31160 31161 31162 31163 31164 31165 31166 31167 31168 31169 31170 31171 31172 31173 31174 31175 31176 31177 31178 31179 31180 31181 31182 31183 31184 31185 31186 31187 31188 31189 31190 31191 31192 31193 31194 31195 31196 31197 31198 31199 31200 31201 31202 31203 31204 31205 31206 31207 31208 31209 31210 31211 31212 31213 31214 31215 31216 31217 31218 31219 31220 31221 31222 31223 31224 31225 31226 31227 31228 31229 31230 31231 31232 31233 31234 31235 31236 31237 31238 31239 31240 31241 31242 31243 31244 31245 31246 31247 31248 31249 31250 31251 31252 31253 31254 31255 31256 31257 31258 31259 31260 31261 31262 31263 31264 31265 31266 31267 31268 31269 31270 31271 31272 31273 31274 31275 31276 31277 31278 31279 31280 31281 31282 31283 31284 31285 31286 31287 31288 31289 31290 31291 31292 31293 31294 31295 31296 31297 31298 31299 31300 31301 31302 31303 31304 31305 31306 31307 31308 31309 31310 31311 31312 31313 31314 31315 31316 31317 31318 31319 31320 31321 31322 31323 31324 31325 31326 31327 31328 31329 31330 31331 31332 31333 31334 31335 31336 31337 31338 31339 31340 31341 31342 31343 31344 31345 31346 31347 31348 31349 31350 31351 31352 31353 31354 31355 31356 31357 31358 31359 31360 31361 31362 31363 31364 31365 31366 31367 31368 31369 31370 31371 31372 31373 31374 31375 31376 31377 31378 31379 31380 31381 31382 31383 31384 31385 31386 31387 31388 31389 31390 31391 31392 31393 31394 31395 31396 31397 31398 31399 31400 31401 31402 31403 31404 31405 31406 31407 31408 31409 31410 31411 31412 31413 31414 31415 31416 31417 31418 31419 31420 31421 31422 31423 31424 31425 31426 31427 31428 31429 31430 31431 31432 31433 31434 31435 31436 31437 31438 31439 31440 31441 31442 31443 31444 31445 31446 31447 31448 31449 31450 31451 31452 31453 31454 31455 31456 31457 31458 31459 31460 31461 31462 31463 31464 31465 31466 31467 31468 31469 31470 31471 31472 31473 31474 31475 31476 31477 31478 31479 31480 31481 31482 31483 31484 31485 31486 31487 31488 31489 31490 31491 31492 31493 31494 31495 31496 31497 31498 31499 31500 31501 31502 31503 31504 31505 31506 31507 31508 31509 31510 31511 31512 31513 31514 31515 31516 31517 31518 31519 31520 31521 31522 31523 31524 31525 31526 31527 31528 31529 31530 31531 31532 31533 31534 31535 31536 31537 31538 31539 31540 31541 31542 31543 31544 31545 31546 31547 31548 31549 31550 31551 31552 31553 31554 31555 31556 31557 31558 31559 31560 31561 31562 31563 31564 31565 31566 31567 31568 31569 31570 31571 31572 31573 31574 31575 31576 31577 31578 31579 31580 31581 31582 31583 31584 31585 31586 31587 31588 31589 31590 31591 31592 31593 31594 31595 31596 31597 31598 31599 31600 31601 31602 31603 31604 31605 31606 31607 31608 31609 31610 31611 31612 31613 31614 31615 31616 31617 31618 31619 31620 31621 31622 31623 31624 31625 31626 31627 31628 31629 31630 31631 31632 31633 31634 31635 31636 31637 31638 31639 31640 31641 31642 31643 31644 31645 31646 31647 31648 31649 31650 31651 31652 31653 31654 31655 31656 31657 31658 31659 31660 31661 31662 31663 31664 31665 31666 31667 31668 31669 31670 31671 31672 31673 31674 31675 31676 31677 31678 31679 31680 31681 31682 31683 31684 31685 31686 31687 31688 31689 31690 31691 31692 31693 31694 31695 31696 31697 31698 31699 31700 31701 31702 31703 31704 31705 31706 31707 31708 31709 31710 31711 31712 31713 31714 31715 31716 31717 31718 31719 31720 31721 31722 31723 31724 31725 31726 31727 31728 31729 31730 31731 31732 31733 31734 31735 31736 31737 31738 31739 31740 31741 31742 31743 31744 31745 31746 31747 31748 31749 31750 31751 31752 31753 31754 31755 31756 31757 31758 31759 31760 31761 31762 31763 31764 31765 31766 31767 31768 31769 31770 31771 31772 31773 31774 31775 31776 31777 31778 31779 31780 31781 31782 31783 31784 31785 31786 31787 31788 31789 31790 31791 31792 31793 31794 31795 31796 31797 31798 31799 31800 31801 31802 31803 31804 31805 31806 31807 31808 31809 31810 31811 31812 31813 31814 31815 31816 31817 31818 31819 31820 31821 31822 31823 31824 31825 31826 31827 31828 31829 31830 31831 31832 31833 31834 31835 31836 31837 31838 31839 31840 31841 31842 31843 31844 31845 31846 31847 31848 31849 31850 31851 31852 31853 31854 31855 31856 31857 31858 31859 31860 31861 31862 31863 31864 31865 31866 31867 31868 31869 31870 31871 31872 31873 31874 31875 31876 31877 31878 31879 31880 31881 31882 31883 31884 31885 31886 31887 31888 31889 31890 31891 31892 31893 31894 31895 31896 31897 31898 31899 31900 31901 31902 31903 31904 31905 31906 31907 31908 31909 31910 31911 31912 31913 31914 31915 31916 31917 31918 31919 31920 31921 31922 31923 31924 31925 31926 31927 31928 31929 31930 31931 31932 31933 31934 31935 31936 31937 31938 31939 31940 31941 31942 31943 31944 31945 31946 31947 31948 31949 31950 31951 31952 31953 31954 31955 31956 31957 31958 31959 31960 31961 31962 31963 31964 31965 31966 31967 31968 31969 31970 31971 31972 31973 31974 31975 31976 31977 31978 31979 31980 31981 31982 31983 31984 31985 31986 31987 31988 31989 31990 31991 31992 31993 31994 31995 31996 31997 31998 31999 32000 32001 32002 32003 32004 32005 32006 32007 32008 32009 32010 32011 32012 32013 32014 32015 32016 32017 32018 32019 32020 32021 32022 32023 32024 32025 32026 32027 32028 32029 32030 32031 32032 32033 32034 32035 32036 32037 32038 32039 32040 32041 32042 32043 32044 32045 32046 32047 32048 32049 32050 32051 32052 32053 32054 32055 32056 32057 32058 32059 32060 32061 32062 32063 32064 32065 32066 32067 32068 32069 32070 32071 32072 32073 32074 32075 32076 32077 32078 32079 32080 32081 32082 32083 32084 32085 32086 32087 32088 32089 32090 32091 32092 32093 32094 32095 32096 32097 32098 32099 32100 32101 32102 32103 32104 32105 32106 32107 32108 32109 32110 32111 32112 32113 32114 32115 32116 32117 32118 32119 32120 32121 32122 32123 32124 32125 32126 32127 32128 32129 32130 32131 32132 32133 32134 32135 32136 32137 32138 32139 32140 32141 32142 32143 32144 32145 32146 32147 32148 32149 32150 32151 32152 32153 32154 32155 32156 32157 32158 32159 32160 32161 32162 32163 32164 32165 32166 32167 32168 32169 32170 32171 32172 32173 32174 32175 32176 32177 32178 32179 32180 32181 32182 32183 32184 32185 32186 32187 32188 32189 32190 32191 32192 32193 32194 32195 32196 32197 32198 32199 32200 32201 32202 32203 32204 32205 32206 32207 32208 32209 32210 32211 32212 32213 32214 32215 32216 32217 32218 32219 32220 32221 32222 32223 32224 32225 32226 32227 32228 32229 32230 32231 32232 32233 32234 32235 32236 32237 32238 32239 32240 32241 32242 32243 32244 32245 32246 32247 32248 32249 32250 32251 32252 32253 32254 32255 32256 32257 32258 32259 32260 32261 32262 32263 32264 32265 32266 32267 32268 32269 32270 32271 32272 32273 32274 32275 32276 32277 32278 32279 32280 32281 32282 32283 32284 32285 32286 32287 32288 32289 32290 32291 32292 32293 32294 32295 32296 32297 32298 32299 32300 32301 32302 32303 32304 32305 32306 32307 32308 32309 32310 32311 32312 32313 32314 32315 32316 32317 32318 32319 32320 32321 32322 32323 32324 32325 32326 32327 32328 32329 32330 32331 32332 32333 32334 32335 32336 32337 32338 32339 32340 32341 32342 32343 32344 32345 32346 32347 32348 32349 32350 32351 32352 32353 32354 32355 32356 32357 32358 32359 32360 32361 32362 32363 32364 32365 32366 32367 32368 32369 32370 32371 32372 32373 32374 32375 32376 32377 32378 32379 32380 32381 32382 32383 32384 32385 32386 32387 32388 32389 32390 32391 32392 32393 32394 32395 32396 32397 32398 32399 32400 32401 32402 32403 32404 32405 32406 32407 32408 32409 32410 32411 32412 32413 32414 32415 32416 32417 32418 32419 32420 32421 32422 32423 32424 32425 32426 32427 32428 32429 32430 32431 32432 32433 32434 32435 32436 32437 32438 32439 32440 32441 32442 32443 32444 32445 32446 32447 32448 32449 32450 32451 32452 32453 32454 32455 32456 32457 32458 32459 32460 32461 32462 32463 32464 32465 32466 32467 32468 32469 32470 32471 32472 32473 32474 32475 32476 32477 32478 32479 32480 32481 32482 32483 32484 32485 32486 32487 32488 32489 32490 32491 32492 32493 32494 32495 32496 32497 32498 32499 32500 32501 32502 32503 32504 32505 32506 32507 32508 32509 32510 32511 32512 32513 32514 32515 32516 32517 32518 32519 32520 32521 32522 32523 32524 32525 32526 32527 32528 32529 32530 32531 32532 32533 32534 32535 32536 32537 32538 32539 32540 32541 32542 32543 32544 32545 32546 32547 32548 32549 32550 32551 32552 32553 32554 32555 32556 32557 32558 32559 32560 32561 32562 32563 32564 32565 32566 32567 32568 32569 32570 32571 32572 32573 32574 32575 32576 32577 32578 32579 32580 32581 32582 32583 32584 32585 32586 32587 32588 32589 32590 32591 32592 32593 32594 32595 32596 32597 32598 32599 32600 32601 32602 32603 32604 32605 32606 32607 32608 32609 32610 32611 32612 32613 32614 32615 32616 32617 32618 32619 32620 32621 32622 32623 32624 32625 32626 32627 32628 32629 32630 32631 32632 32633 32634 32635 32636 32637 32638 32639 32640 32641 32642 32643 32644 32645 32646 32647 32648 32649 32650 32651 32652 32653 32654 32655 32656 32657 32658 32659 32660 32661 32662 32663 32664 32665 32666 32667 32668 32669 32670 32671 32672 32673 32674 32675 32676 32677 32678 32679 32680 32681 32682 32683 32684 32685 32686 32687 32688 32689 32690 32691 32692 32693 32694 32695 32696 32697 32698 32699 32700 32701 32702 32703 32704 32705 32706 32707 32708 32709 32710 32711 32712 32713 32714 32715 32716 32717 32718 32719 32720 32721 32722 32723 32724 32725 32726 32727 32728 32729 32730 32731 32732 32733 32734 32735 32736 32737 32738 32739 32740 32741 32742 32743 32744 32745 32746 32747 32748 32749 32750 32751 32752 32753 32754 32755 32756 32757 32758 32759 32760 32761 32762 32763 32764 32765 32766 32767 32768 32769 32770 32771 32772 32773 32774 32775 32776 32777 32778 32779 32780 32781 32782 32783 32784 32785 32786 32787 32788 32789 32790 32791 32792 32793 32794 32795 32796 32797 32798 32799 32800 32801 32802 32803 32804 32805 32806 32807 32808 32809 32810 32811 32812 32813 32814 32815 32816 32817 32818 32819 32820 32821 32822 32823 32824 32825 32826 32827 32828 32829 32830 32831 32832 32833 32834 32835 32836 32837 32838 32839 32840 32841 32842 32843 32844 32845 32846 32847 32848 32849 32850 32851 32852 32853 32854 32855 32856 32857 32858 32859 32860 32861 32862 32863 32864 32865 32866 32867 32868 32869 32870 32871 32872 32873 32874 32875 32876 32877 32878 32879 32880 32881 32882 32883 32884 32885 32886 32887 32888 32889 32890 32891 32892 32893 32894 32895 32896 32897 32898 32899 32900 32901 32902 32903 32904 32905 32906 32907 32908 32909 32910 32911 32912 32913 32914 32915 32916 32917 32918 32919 32920 32921 32922 32923 32924 32925 32926 32927 32928 32929 32930 32931 32932 32933 32934 32935 32936 32937 32938 32939 32940 32941 32942 32943 32944 32945 32946 32947 32948 32949 32950 32951 32952 32953 32954 32955 32956 32957 32958 32959 32960 32961 32962 32963 32964 32965 32966 32967 32968 32969 32970 32971 32972 32973 32974 32975 32976 32977 32978 32979 32980 32981 32982 32983 32984 32985 32986 32987 32988 32989 32990 32991 32992 32993 32994 32995 32996 32997 32998 32999 33000 33001 33002 33003 33004 33005 33006 33007 33008 33009 33010 33011 33012 33013 33014 33015 33016 33017 33018 33019 33020 33021 33022 33023 33024 33025 33026 33027 33028 33029 33030 33031 33032 33033 33034 33035 33036 33037 33038 33039 33040 33041 33042 33043 33044 33045 33046 33047 33048 33049 33050 33051 33052 33053 33054 33055 33056 33057 33058 33059 33060 33061 33062 33063 33064 33065 33066 33067 33068 33069 33070 33071 33072 33073 33074 33075 33076 33077 33078 33079 33080 33081 33082 33083 33084 33085 33086 33087 33088 33089 33090 33091 33092 33093 33094 33095 33096 33097 33098 33099 33100 33101 33102 33103 33104 33105 33106 33107 33108 33109 33110 33111 33112 33113 33114 33115 33116 33117 33118 33119 33120 33121 33122 33123 33124 33125 33126 33127 33128 33129 33130 33131 33132 33133 33134 33135 33136 33137 33138 33139 33140 33141 33142 33143 33144 33145 33146 33147 33148 33149 33150 33151 33152 33153 33154 33155 33156 33157 33158 33159 33160 33161 33162 33163 33164 33165 33166 33167 33168 33169 33170 33171 33172 33173 33174 33175 33176 33177 33178 33179 33180 33181 33182 33183 33184 33185 33186 33187 33188 33189 33190 33191 33192 33193 33194 33195 33196 33197 33198 33199 33200 33201 33202 33203 33204 33205 33206 33207 33208 33209 33210 33211 33212 33213 33214 33215 33216 33217 33218 33219 33220 33221 33222 33223 33224 33225 33226 33227 33228 33229 33230 33231 33232 33233 33234 33235 33236 33237 33238 33239 33240 33241 33242 33243 33244 33245 33246 33247 33248 33249 33250 33251 33252 33253 33254 33255 33256 33257 33258 33259 33260 33261 33262 33263 33264 33265 33266 33267 33268 33269 33270 33271 33272 33273 33274 33275 33276 33277 33278 33279 33280 33281 33282 33283 33284 33285 33286 33287 33288 33289 33290 33291 33292 33293 33294 33295 33296 33297 33298 33299 33300 33301 33302 33303 33304 33305 33306 33307 33308 33309 33310 33311 33312 33313 33314 33315 33316 33317 33318 33319 33320 33321 33322 33323 33324 33325 33326 33327 33328 33329 33330 33331 33332 33333 33334 33335 33336 33337 33338 33339 33340 33341 33342 33343 33344 33345 33346 33347 33348 33349 33350 33351 33352 33353 33354 33355 33356 33357 33358 33359 33360 33361 33362 33363 33364 33365 33366 33367 33368 33369 33370 33371 33372 33373 33374 33375 33376 33377 33378 33379 33380 33381 33382 33383 33384 33385 33386 33387 33388 33389 33390 33391 33392 33393 33394 33395 33396 33397 33398 33399 33400 33401 33402 33403 33404 33405 33406 33407 33408 33409 33410 33411 33412 33413 33414 33415 33416 33417 33418 33419 33420 33421 33422 33423 33424 33425 33426 33427 33428 33429 33430 33431 33432 33433 33434 33435 33436 33437 33438 33439 33440 33441 33442 33443 33444 33445 33446 33447 33448 33449 33450 33451 33452 33453 33454 33455 33456 33457 33458 33459 33460 33461 33462 33463 33464 33465 33466 33467 33468 33469 33470 33471 33472 33473 33474 33475 33476 33477 33478 33479 33480 33481 33482 33483 33484 33485 33486 33487 33488 33489 33490 33491 33492 33493 33494 33495 33496 33497 33498 33499 33500 33501 33502 33503 33504 33505 33506 33507 33508 33509 33510 33511 33512 33513 33514 33515 33516 33517 33518 33519 33520 33521 33522 33523 33524 33525 33526 33527 33528 33529 33530 33531 33532 33533 33534 33535 33536 33537 33538 33539 33540 33541 33542 33543 33544 33545 33546 33547 33548 33549 33550 33551 33552 33553 33554 33555 33556 33557 33558 33559 33560 33561 33562 33563 33564 33565 33566 33567 33568 33569 33570 33571 33572 33573 33574 33575 33576 33577 33578 33579 33580 33581 33582 33583 33584 33585 33586 33587 33588 33589 33590 33591 33592 33593 33594 33595 33596 33597 33598 33599 33600 33601 33602 33603 33604 33605 33606 33607 33608 33609 33610 33611 33612 33613 33614 33615 33616 33617 33618 33619 33620 33621 33622 33623 33624 33625 33626 33627 33628 33629 33630 33631 33632 33633 33634 33635 33636 33637 33638 33639 33640 33641 33642 33643 33644 33645 33646 33647 33648 33649 33650 33651 33652 33653 33654 33655 33656 33657 33658 33659 33660 33661 33662 33663 33664 33665 33666 33667 33668 33669 33670 33671 33672 33673 33674 33675 33676 33677 33678 33679 33680 33681 33682 33683 33684 33685 33686 33687 33688 33689 33690 33691 33692 33693 33694 33695 33696 33697 33698 33699 33700 33701 33702 33703 33704 33705 33706 33707 33708 33709 33710 33711 33712 33713 33714 33715 33716 33717 33718 33719 33720 33721 33722 33723 33724 33725 33726 33727 33728 33729 33730 33731 33732 33733 33734 33735 33736 33737 33738 33739 33740 33741 33742 33743 33744 33745 33746 33747 33748 33749 33750 33751 33752 33753 33754 33755 33756 33757 33758 33759 33760 33761 33762 33763 33764 33765 33766 33767 33768 33769 33770 33771 33772 33773 33774 33775 33776 33777 33778 33779 33780 33781 33782 33783 33784 33785 33786 33787 33788 33789 33790 33791 33792 33793 33794 33795 33796 33797 33798 33799 33800 33801 33802 33803 33804 33805 33806 33807 33808 33809 33810 33811 33812 33813 33814 33815 33816 33817 33818 33819 33820 33821 33822 33823 33824 33825 33826 33827 33828 33829 33830 33831 33832 33833 33834 33835 33836 33837 33838 33839 33840 33841 33842 33843 33844 33845 33846 33847 33848 33849 33850 33851 33852 33853 33854 33855 33856 33857 33858 33859 33860 33861 33862 33863 33864 33865 33866 33867 33868 33869 33870 33871 33872 33873 33874 33875 33876 33877 33878 33879 33880 33881 33882 33883 33884 33885 33886 33887 33888 33889 33890 33891 33892 33893 33894 33895 33896 33897 33898 33899 33900 33901 33902 33903 33904 33905 33906 33907 33908 33909 33910 33911 33912 33913 33914 33915 33916 33917 33918 33919 33920 33921 33922 33923 33924 33925 33926 33927 33928 33929 33930 33931 33932 33933 33934 33935 33936 33937 33938 33939 33940 33941 33942 33943 33944 33945 33946 33947 33948 33949 33950 33951 33952 33953 33954 33955 33956 33957 33958 33959 33960 33961 33962 33963 33964 33965 33966 33967 33968 33969 33970 33971 33972 33973 33974 33975 33976 33977 33978 33979 33980 33981 33982 33983 33984 33985 33986 33987 33988 33989 33990 33991 33992 33993 33994 33995 33996 33997 33998 33999 34000 34001 34002 34003 34004 34005 34006 34007 34008 34009 34010 34011 34012 34013 34014 34015 34016 34017 34018 34019 34020 34021 34022 34023 34024 34025 34026 34027 34028 34029 34030 34031 34032 34033 34034 34035 34036 34037 34038 34039 34040 34041 34042 34043 34044 34045 34046 34047 34048 34049 34050 34051 34052 34053 34054 34055 34056 34057 34058 34059 34060 34061 34062 34063 34064 34065 34066 34067 34068 34069 34070 34071 34072 34073 34074 34075 34076 34077 34078 34079 34080 34081 34082 34083 34084 34085 34086 34087 34088 34089 34090 34091 34092 34093 34094 34095 34096 34097 34098 34099 34100 34101 34102 34103 34104 34105 34106 34107 34108 34109 34110 34111 34112 34113 34114 34115 34116 34117 34118 34119 34120 34121 34122 34123 34124 34125 34126 34127 34128 34129 34130 34131 34132 34133 34134 34135 34136 34137 34138 34139 34140 34141 34142 34143 34144 34145 34146 34147 34148 34149 34150 34151 34152 34153 34154 34155 34156 34157 34158 34159 34160 34161 34162 34163 34164 34165 34166 34167 34168 34169 34170 34171 34172 34173 34174 34175 34176 34177 34178 34179 34180 34181 34182 34183 34184 34185 34186 34187 34188 34189 34190 34191 34192 34193 34194 34195 34196 34197 34198 34199 34200 34201 34202 34203 34204 34205 34206 34207 34208 34209 34210 34211 34212 34213 34214 34215 34216 34217 34218 34219 34220 34221 34222 34223 34224 34225 34226 34227 34228 34229 34230 34231 34232 34233 34234 34235 34236 34237 34238 34239 34240 34241 34242 34243 34244 34245 34246 34247 34248 34249 34250 34251 34252 34253 34254 34255 34256 34257 34258 34259 34260 34261 34262 34263 34264 34265 34266 34267 34268 34269 34270 34271 34272 34273 34274 34275 34276 34277 34278 34279 34280 34281 34282 34283 34284 34285 34286 34287 34288 34289 34290 34291 34292 34293 34294 34295 34296 34297 34298 34299 34300 34301 34302 34303 34304 34305 34306 34307 34308 34309 34310 34311 34312 34313 34314 34315 34316 34317 34318 34319 34320 34321 34322 34323 34324 34325 34326 34327 34328 34329 34330 34331 34332 34333 34334 34335 34336 34337 34338 34339 34340 34341 34342 34343 34344 34345 34346 34347 34348 34349 34350 34351 34352 34353 34354 34355 34356 34357 34358 34359 34360 34361 34362 34363 34364 34365 34366 34367 34368 34369 34370 34371 34372 34373 34374 34375 34376 34377 34378 34379 34380 34381 34382 34383 34384 34385 34386 34387 34388 34389 34390 34391 34392 34393 34394 34395 34396 34397 34398 34399 34400 34401 34402 34403 34404 34405 34406 34407 34408 34409 34410 34411 34412 34413 34414 34415 34416 34417 34418 34419 34420 34421 34422 34423 34424 34425 34426 34427 34428 34429 34430 34431 34432 34433 34434 34435 34436 34437 34438 34439 34440 34441 34442 34443 34444 34445 34446 34447 34448 34449 34450 34451 34452 34453 34454 34455 34456 34457 34458 34459 34460 34461 34462 34463 34464 34465 34466 34467 34468 34469 34470 34471 34472 34473 34474 34475 34476 34477 34478 34479 34480 34481 34482 34483 34484 34485 34486 34487 34488 34489 34490 34491 34492 34493 34494 34495 34496 34497 34498 34499 34500 34501 34502 34503 34504 34505 34506 34507 34508 34509 34510 34511 34512 34513 34514 34515 34516 34517 34518 34519 34520 34521 34522 34523 34524 34525 34526 34527 34528 34529 34530 34531 34532 34533 34534 34535 34536 34537 34538 34539 34540 34541 34542 34543 34544 34545 34546 34547 34548 34549 34550 34551 34552 34553 34554 34555 34556 34557 34558 34559 34560 34561 34562 34563 34564 34565 34566 34567 34568 34569 34570 34571 34572 34573 34574 34575 34576 34577 34578 34579 34580 34581 34582 34583 34584 34585 34586 34587 34588 34589 34590 34591 34592 34593 34594 34595 34596 34597 34598 34599 34600 34601 34602 34603 34604 34605 34606 34607 34608 34609 34610 34611 34612 34613 34614 34615 34616 34617 34618 34619 34620 34621 34622 34623 34624 34625 34626 34627 34628 34629 34630 34631 34632 34633 34634 34635 34636 34637 34638 34639 34640 34641 34642 34643 34644 34645 34646 34647 34648 34649 34650 34651 34652 34653 34654 34655 34656 34657 34658 34659 34660 34661 34662 34663 34664 34665 34666 34667 34668 34669 34670 34671 34672 34673 34674 34675 34676 34677 34678 34679 34680 34681 34682 34683 34684 34685 34686 34687 34688 34689 34690 34691 34692 34693 34694 34695 34696 34697 34698 34699 34700 34701 34702 34703 34704 34705 34706 34707 34708 34709 34710 34711 34712 34713 34714 34715 34716 34717 34718 34719 34720 34721 34722 34723 34724 34725 34726 34727 34728 34729 34730 34731 34732 34733 34734 34735 34736 34737 34738 34739 34740 34741 34742 34743 34744 34745 34746 34747 34748 34749 34750 34751 34752 34753 34754 34755 34756 34757 34758 34759 34760 34761 34762 34763 34764 34765 34766 34767 34768 34769 34770 34771 34772 34773 34774 34775 34776 34777 34778 34779 34780 34781 34782 34783 34784 34785 34786 34787 34788 34789 34790 34791 34792 34793 34794 34795 34796 34797 34798 34799 34800 34801 34802 34803 34804 34805 34806 34807 34808 34809 34810 34811 34812 34813 34814 34815 34816 34817 34818 34819 34820 34821 34822 34823 34824 34825 34826 34827 34828 34829 34830 34831 34832 34833 34834 34835 34836 34837 34838 34839 34840 34841 34842 34843 34844 34845 34846 34847 34848 34849 34850 34851 34852 34853 34854 34855 34856 34857 34858 34859 34860 34861 34862 34863 34864 34865 34866 34867 34868 34869 34870 34871 34872 34873 34874 34875 34876 34877 34878 34879 34880 34881 34882 34883 34884 34885 34886 34887 34888 34889 34890 34891 34892 34893 34894 34895 34896 34897 34898 34899 34900 34901 34902 34903 34904 34905 34906 34907 34908 34909 34910 34911 34912 34913 34914 34915 34916 34917 34918 34919 34920 34921 34922 34923 34924 34925 34926 34927 34928 34929 34930 34931 34932 34933 34934 34935 34936 34937 34938 34939 34940 34941 34942 34943 34944 34945 34946 34947 34948 34949 34950 34951 34952 34953 34954 34955 34956 34957 34958 34959 34960 34961 34962 34963 34964 34965 34966 34967 34968 34969 34970 34971 34972 34973 34974 34975 34976 34977 34978 34979 34980 34981 34982 34983 34984 34985 34986 34987 34988 34989 34990 34991 34992 34993 34994 34995 34996 34997 34998 34999 35000 35001 35002 35003 35004 35005 35006 35007 35008 35009 35010 35011 35012 35013 35014 35015 35016 35017 35018 35019 35020 35021 35022 35023 35024 35025 35026 35027 35028 35029 35030 35031 35032 35033 35034 35035 35036 35037 35038 35039 35040 35041 35042 35043 35044 35045 35046 35047 35048 35049 35050 35051 35052 35053 35054 35055 35056 35057 35058 35059 35060 35061 35062 35063 35064 35065 35066 35067 35068 35069 35070 35071 35072 35073 35074 35075 35076 35077 35078 35079 35080 35081 35082 35083 35084 35085 35086 35087 35088 35089 35090 35091 35092 35093 35094 35095 35096 35097 35098 35099 35100 35101 35102 35103 35104 35105 35106 35107 35108 35109 35110 35111 35112 35113 35114 35115 35116 35117 35118 35119 35120 35121 35122 35123 35124 35125 35126 35127 35128 35129 35130 35131 35132 35133 35134 35135 35136 35137 35138 35139 35140 35141 35142 35143 35144 35145 35146 35147 35148 35149 35150 35151 35152 35153 35154 35155 35156 35157 35158 35159 35160 35161 35162 35163 35164 35165 35166 35167 35168 35169 35170 35171 35172 35173 35174 35175 35176 35177 35178 35179 35180 35181 35182 35183 35184 35185 35186 35187 35188 35189 35190 35191 35192 35193 35194 35195 35196 35197 35198 35199 35200 35201 35202 35203 35204 35205 35206 35207 35208 35209 35210 35211 35212 35213 35214 35215 35216 35217 35218 35219 35220 35221 35222 35223 35224 35225 35226 35227 35228 35229 35230 35231 35232 35233 35234 35235 35236 35237 35238 35239 35240 35241 35242 35243 35244 35245 35246 35247 35248 35249 35250 35251 35252 35253 35254 35255 35256 35257 35258 35259 35260 35261 35262 35263 35264 35265 35266 35267 35268 35269 35270 35271 35272 35273 35274 35275 35276 35277 35278 35279 35280 35281 35282 35283 35284 35285 35286 35287 35288 35289 35290 35291 35292 35293 35294 35295 35296 35297 35298 35299 35300 35301 35302 35303 35304 35305 35306 35307 35308 35309 35310 35311 35312 35313 35314 35315 35316 35317 35318 35319 35320 35321 35322 35323 35324 35325 35326 35327 35328 35329 35330 35331 35332 35333 35334 35335 35336 35337 35338 35339 35340 35341 35342 35343 35344 35345 35346 35347 35348 35349 35350 35351 35352 35353 35354 35355 35356 35357 35358 35359 35360 35361 35362 35363 35364 35365 35366 35367 35368 35369 35370 35371 35372 35373 35374 35375 35376 35377 35378 35379 35380 35381 35382 35383 35384 35385 35386 35387 35388 35389 35390 35391 35392 35393 35394 35395 35396 35397 35398 35399 35400 35401 35402 35403 35404 35405 35406 35407 35408 35409 35410 35411 35412 35413 35414 35415 35416 35417 35418 35419 35420 35421 35422 35423 35424 35425 35426 35427 35428 35429 35430 35431 35432 35433 35434 35435 35436 35437 35438 35439 35440 35441 35442 35443 35444 35445 35446 35447 35448 35449 35450 35451 35452 35453 35454 35455 35456 35457 35458 35459 35460 35461 35462 35463 35464 35465 35466 35467 35468 35469 35470 35471 35472 35473 35474 35475 35476 35477 35478 35479 35480 35481 35482 35483 35484 35485 35486 35487 35488 35489 35490 35491 35492 35493 35494 35495 35496 35497 35498 35499 35500 35501 35502 35503 35504 35505 35506 35507 35508 35509 35510 35511 35512 35513 35514 35515 35516 35517 35518 35519 35520 35521 35522 35523 35524 35525 35526 35527 35528 35529 35530 35531 35532 35533 35534 35535 35536 35537 35538 35539 35540 35541 35542 35543 35544 35545 35546 35547 35548 35549 35550 35551 35552 35553 35554 35555 35556 35557 35558 35559 35560 35561 35562 35563 35564 35565 35566 35567 35568 35569 35570 35571 35572 35573 35574 35575 35576 35577 35578 35579 35580 35581 35582 35583 35584 35585 35586 35587 35588 35589 35590 35591 35592 35593 35594 35595 35596 35597 35598 35599 35600 35601 35602 35603 35604 35605 35606 35607 35608 35609 35610 35611 35612 35613 35614 35615 35616 35617 35618 35619 35620 35621 35622 35623 35624 35625 35626 35627 35628 35629 35630 35631 35632 35633 35634 35635 35636 35637 35638 35639 35640 35641 35642 35643 35644 35645 35646 35647 35648 35649 35650 35651 35652 35653 35654 35655 35656 35657 35658 35659 35660 35661 35662 35663 35664 35665 35666 35667 35668 35669 35670 35671 35672 35673 35674 35675 35676 35677 35678 35679 35680 35681 35682 35683 35684 35685 35686 35687 35688 35689 35690 35691 35692 35693 35694 35695 35696 35697 35698 35699 35700 35701 35702 35703 35704 35705 35706 35707 35708 35709 35710 35711 35712 35713 35714 35715 35716 35717 35718 35719 35720 35721 35722 35723 35724 35725 35726 35727 35728 35729 35730 35731 35732 35733 35734 35735 35736 35737 35738 35739 35740 35741 35742 35743 35744 35745 35746 35747 35748 35749 35750 35751 35752 35753 35754 35755 35756 35757 35758 35759 35760 35761 35762 35763 35764 35765 35766 35767 35768 35769 35770 35771 35772 35773 35774 35775 35776 35777 35778 35779 35780 35781 35782 35783 35784 35785 35786 35787 35788 35789 35790 35791 35792 35793 35794 35795 35796 35797 35798 35799 35800 35801 35802 35803 35804 35805 35806 35807 35808 35809 35810 35811 35812 35813 35814 35815 35816 35817 35818 35819 35820 35821 35822 35823 35824 35825 35826 35827 35828 35829 35830 35831 35832 35833 35834 35835 35836 35837 35838 35839 35840 35841 35842 35843 35844 35845 35846 35847 35848 35849 35850 35851 35852 35853 35854 35855 35856 35857 35858 35859 35860 35861 35862 35863 35864 35865 35866 35867 35868 35869 35870 35871 35872 35873 35874 35875 35876 35877 35878 35879 35880 35881 35882 35883 35884 35885 35886 35887 35888 35889 35890 35891 35892 35893 35894 35895 35896 35897 35898 35899 35900 35901 35902 35903 35904 35905 35906 35907 35908 35909 35910 35911 35912 35913 35914 35915 35916 35917 35918 35919 35920 35921 35922 35923 35924 35925 35926 35927 35928 35929 35930 35931 35932 35933 35934 35935 35936 35937 35938 35939 35940 35941 35942 35943 35944 35945 35946 35947 35948 35949 35950 35951 35952 35953 35954 35955 35956 35957 35958 35959 35960 35961 35962 35963 35964 35965 35966 35967 35968 35969 35970 35971 35972 35973 35974 35975 35976 35977 35978 35979 35980 35981 35982 35983 35984 35985 35986 35987 35988 35989 35990 35991 35992 35993 35994 35995 35996 35997 35998 35999 36000 36001 36002 36003 36004 36005 36006 36007 36008 36009 36010 36011 36012 36013 36014 36015 36016 36017 36018 36019 36020 36021 36022 36023 36024 36025 36026 36027 36028 36029 36030 36031 36032 36033 36034 36035 36036 36037 36038 36039 36040 36041 36042 36043 36044 36045 36046 36047 36048 36049 36050 36051 36052 36053 36054 36055 36056 36057 36058 36059 36060 36061 36062 36063 36064 36065 36066 36067 36068 36069 36070 36071 36072 36073 36074 36075 36076 36077 36078 36079 36080 36081 36082 36083 36084 36085 36086 36087 36088 36089 36090 36091 36092 36093 36094 36095 36096 36097 36098 36099 36100 36101 36102 36103 36104 36105 36106 36107 36108 36109 36110 36111 36112 36113 36114 36115 36116 36117 36118 36119 36120 36121 36122 36123 36124 36125 36126 36127 36128 36129 36130 36131 36132 36133 36134 36135 36136 36137 36138 36139 36140 36141 36142 36143 36144 36145 36146 36147 36148 36149 36150 36151 36152 36153 36154 36155 36156 36157 36158 36159 36160 36161 36162 36163 36164 36165 36166 36167 36168 36169 36170 36171 36172 36173 36174 36175 36176 36177 36178 36179 36180 36181 36182 36183 36184 36185 36186 36187 36188 36189 36190 36191 36192 36193 36194 36195 36196 36197 36198 36199 36200 36201 36202 36203 36204 36205 36206 36207 36208 36209 36210 36211 36212 36213 36214 36215 36216 36217 36218 36219 36220 36221 36222 36223 36224 36225 36226 36227 36228 36229 36230 36231 36232 36233 36234 36235 36236 36237 36238 36239 36240 36241 36242 36243 36244 36245 36246 36247 36248 36249 36250 36251 36252 36253 36254 36255 36256 36257 36258 36259 36260 36261 36262 36263 36264 36265 36266 36267 36268 36269 36270 36271 36272 36273 36274 36275 36276 36277 36278 36279 36280 36281 36282 36283 36284 36285 36286 36287 36288 36289 36290 36291 36292 36293 36294 36295 36296 36297 36298 36299 36300 36301 36302 36303 36304 36305 36306 36307 36308 36309 36310 36311 36312 36313 36314 36315 36316 36317 36318 36319 36320 36321 36322 36323 36324 36325 36326 36327 36328 36329 36330 36331 36332 36333 36334 36335 36336 36337 36338 36339 36340 36341 36342 36343 36344 36345 36346 36347 36348 36349 36350 36351 36352 36353 36354 36355 36356 36357 36358 36359 36360 36361 36362 36363 36364 36365 36366 36367 36368 36369 36370 36371 36372 36373 36374 36375 36376 36377 36378 36379 36380 36381 36382 36383 36384 36385 36386 36387 36388 36389 36390 36391 36392 36393 36394 36395 36396 36397 36398 36399 36400 36401 36402 36403 36404 36405 36406 36407 36408 36409 36410 36411 36412 36413 36414 36415 36416 36417 36418 36419 36420 36421 36422 36423 36424 36425 36426 36427 36428 36429 36430 36431 36432 36433 36434 36435 36436 36437 36438 36439 36440 36441 36442 36443 36444 36445 36446 36447 36448 36449 36450 36451 36452 36453 36454 36455 36456 36457 36458 36459 36460 36461 36462 36463 36464 36465 36466 36467 36468 36469 36470 36471 36472 36473 36474 36475 36476 36477 36478 36479 36480 36481 36482 36483 36484 36485 36486 36487 36488 36489 36490 36491 36492 36493 36494 36495 36496 36497 36498 36499 36500 36501 36502 36503 36504 36505 36506 36507 36508 36509 36510 36511 36512 36513 36514 36515 36516 36517 36518 36519 36520 36521 36522 36523 36524 36525 36526 36527 36528 36529 36530 36531 36532 36533 36534 36535 36536 36537 36538 36539 36540 36541 36542 36543 36544 36545 36546 36547 36548 36549 36550 36551 36552 36553 36554 36555 36556 36557 36558 36559 36560 36561 36562 36563 36564 36565 36566 36567 36568 36569 36570 36571 36572 36573 36574 36575 36576 36577 36578 36579 36580 36581 36582 36583 36584 36585 36586 36587 36588 36589 36590 36591 36592 36593 36594 36595 36596 36597 36598 36599 36600 36601 36602 36603 36604 36605 36606 36607 36608 36609 36610 36611 36612 36613 36614 36615 36616 36617 36618 36619 36620 36621 36622 36623 36624 36625 36626 36627 36628 36629 36630 36631 36632 36633 36634 36635 36636 36637 36638 36639 36640 36641 36642 36643 36644 36645 36646 36647 36648 36649 36650 36651 36652 36653 36654 36655 36656 36657 36658 36659 36660 36661 36662 36663 36664 36665 36666 36667 36668 36669 36670 36671 36672 36673 36674 36675 36676 36677 36678 36679 36680 36681 36682 36683 36684 36685 36686 36687 36688 36689 36690 36691 36692 36693 36694 36695 36696 36697 36698 36699 36700 36701 36702 36703 36704 36705 36706 36707 36708 36709 36710 36711 36712 36713 36714 36715 36716 36717 36718 36719 36720 36721 36722 36723 36724 36725 36726 36727 36728 36729 36730 36731 36732 36733 36734 36735 36736 36737 36738 36739 36740 36741 36742 36743 36744 36745 36746 36747 36748 36749 36750 36751 36752 36753 36754 36755 36756 36757 36758 36759 36760 36761 36762 36763 36764 36765 36766 36767 36768 36769 36770 36771 36772 36773 36774 36775 36776 36777 36778 36779 36780 36781 36782 36783 36784 36785 36786 36787 36788 36789 36790 36791 36792 36793 36794 36795 36796 36797 36798 36799 36800 36801 36802 36803 36804 36805 36806 36807 36808 36809 36810 36811 36812 36813 36814 36815 36816 36817 36818 36819 36820 36821 36822 36823 36824 36825 36826 36827 36828 36829 36830 36831 36832 36833 36834 36835 36836 36837 36838 36839 36840 36841 36842 36843 36844 36845 36846 36847 36848 36849 36850 36851 36852 36853 36854 36855 36856 36857 36858 36859 36860 36861 36862 36863 36864 36865 36866 36867 36868 36869 36870 36871 36872 36873 36874 36875 36876 36877 36878 36879 36880 36881 36882 36883 36884 36885 36886 36887 36888 36889 36890 36891 36892 36893 36894 36895 36896 36897 36898 36899 36900 36901 36902 36903 36904 36905 36906 36907 36908 36909 36910 36911 36912 36913 36914 36915 36916 36917 36918 36919 36920 36921 36922 36923 36924 36925 36926 36927 36928 36929 36930 36931 36932 36933 36934 36935 36936 36937 36938 36939 36940 36941 36942 36943 36944 36945 36946 36947 36948 36949 36950 36951 36952 36953 36954 36955 36956 36957 36958 36959 36960 36961 36962 36963 36964 36965 36966 36967 36968 36969 36970 36971 36972 36973 36974 36975 36976 36977 36978 36979 36980 36981 36982 36983 36984 36985 36986 36987 36988 36989 36990 36991 36992 36993 36994 36995 36996 36997 36998 36999 37000 37001 37002 37003 37004 37005 37006 37007 37008 37009 37010 37011 37012 37013 37014 37015 37016 37017 37018 37019 37020 37021 37022 37023 37024 37025 37026 37027 37028 37029 37030 37031 37032 37033 37034 37035 37036 37037 37038 37039 37040 37041 37042 37043 37044 37045 37046 37047 37048 37049 37050 37051 37052 37053 37054 37055 37056 37057 37058 37059 37060 37061 37062 37063 37064 37065 37066 37067 37068 37069 37070 37071 37072 37073 37074 37075 37076 37077 37078 37079 37080 37081 37082 37083 37084 37085 37086 37087 37088 37089 37090 37091 37092 37093 37094 37095 37096 37097 37098 37099 37100 37101 37102 37103 37104 37105 37106 37107 37108 37109 37110 37111 37112 37113 37114 37115 37116 37117 37118 37119 37120 37121 37122 37123 37124 37125 37126 37127 37128 37129 37130 37131 37132 37133 37134 37135 37136 37137 37138 37139 37140 37141 37142 37143 37144 37145 37146 37147 37148 37149 37150 37151 37152 37153 37154 37155 37156 37157 37158 37159 37160 37161 37162 37163 37164 37165 37166 37167 37168 37169 37170 37171 37172 37173 37174 37175 37176 37177 37178 37179 37180 37181 37182 37183 37184 37185 37186 37187 37188 37189 37190 37191 37192 37193 37194 37195 37196 37197 37198 37199 37200 37201 37202 37203 37204 37205 37206 37207 37208 37209 37210 37211 37212 37213 37214 37215 37216 37217 37218 37219 37220 37221 37222 37223 37224 37225 37226 37227 37228 37229 37230 37231 37232 37233 37234 37235 37236 37237 37238 37239 37240 37241 37242 37243 37244 37245 37246 37247 37248 37249 37250 37251 37252 37253 37254 37255 37256 37257 37258 37259 37260 37261 37262 37263 37264 37265 37266 37267 37268 37269 37270 37271 37272 37273 37274 37275 37276 37277 37278 37279 37280 37281 37282 37283 37284 37285 37286 37287 37288 37289 37290 37291 37292 37293 37294 37295 37296 37297 37298 37299 37300 37301 37302 37303 37304 37305 37306 37307 37308 37309 37310 37311 37312 37313 37314 37315 37316 37317 37318 37319 37320 37321 37322 37323 37324 37325 37326 37327 37328 37329 37330 37331 37332 37333 37334 37335 37336 37337 37338 37339 37340 37341 37342 37343 37344 37345 37346 37347 37348 37349 37350 37351 37352 37353 37354 37355 37356 37357 37358 37359 37360 37361 37362 37363 37364 37365 37366 37367 37368 37369 37370 37371 37372 37373 37374 37375 37376 37377 37378 37379 37380 37381 37382 37383 37384 37385 37386 37387 37388 37389 37390 37391 37392 37393 37394 37395 37396 37397 37398 37399 37400 37401 37402 37403 37404 37405 37406 37407 37408 37409 37410 37411 37412 37413 37414 37415 37416 37417 37418 37419 37420 37421 37422 37423 37424 37425 37426 37427 37428 37429 37430 37431 37432 37433 37434 37435 37436 37437 37438 37439 37440 37441 37442 37443 37444 37445 37446 37447 37448 37449 37450 37451 37452 37453 37454 37455 37456 37457 37458 37459 37460 37461 37462 37463 37464 37465 37466 37467 37468 37469 37470 37471 37472 37473 37474 37475 37476 37477 37478 37479 37480 37481 37482 37483 37484 37485 37486 37487 37488 37489 37490 37491 37492 37493 37494 37495 37496 37497 37498 37499 37500 37501 37502 37503 37504 37505 37506 37507 37508 37509 37510 37511 37512 37513 37514 37515 37516 37517 37518 37519 37520 37521 37522 37523 37524 37525 37526 37527 37528 37529 37530 37531 37532 37533 37534 37535 37536 37537 37538 37539 37540 37541 37542 37543 37544 37545 37546 37547 37548 37549 37550 37551 37552 37553 37554 37555 37556 37557 37558 37559 37560 37561 37562 37563 37564 37565 37566 37567 37568 37569 37570 37571 37572 37573 37574 37575 37576 37577 37578 37579 37580 37581 37582 37583 37584 37585 37586 37587 37588 37589 37590 37591 37592 37593 37594 37595 37596 37597 37598 37599 37600 37601 37602 37603 37604 37605 37606 37607 37608 37609 37610 37611 37612 37613 37614 37615 37616 37617 37618 37619 37620 37621 37622 37623 37624 37625 37626 37627 37628 37629 37630 37631 37632 37633 37634 37635 37636 37637 37638 37639 37640 37641 37642 37643 37644 37645 37646 37647 37648 37649 37650 37651 37652 37653 37654 37655 37656 37657 37658 37659 37660 37661 37662 37663 37664 37665 37666 37667 37668 37669 37670 37671 37672 37673 37674 37675 37676 37677 37678 37679 37680 37681 37682 37683 37684 37685 37686 37687 37688 37689 37690 37691 37692 37693 37694 37695 37696 37697 37698 37699 37700 37701 37702 37703 37704 37705 37706 37707 37708 37709 37710 37711 37712 37713 37714 37715 37716 37717 37718 37719 37720 37721 37722 37723 37724 37725 37726 37727 37728 37729 37730 37731 37732 37733 37734 37735 37736 37737 37738 37739 37740 37741 37742 37743 37744 37745 37746 37747 37748 37749 37750 37751 37752 37753 37754 37755 37756 37757 37758 37759 37760 37761 37762 37763 37764 37765 37766 37767 37768 37769 37770 37771 37772 37773 37774 37775 37776 37777 37778 37779 37780 37781 37782 37783 37784 37785 37786 37787 37788 37789 37790 37791 37792 37793 37794 37795 37796 37797 37798 37799 37800 37801 37802 37803 37804 37805 37806 37807 37808 37809 37810 37811 37812 37813 37814 37815 37816 37817 37818 37819 37820 37821 37822 37823 37824 37825 37826 37827 37828 37829 37830 37831 37832 37833 37834 37835 37836 37837 37838 37839 37840 37841 37842 37843 37844 37845 37846 37847 37848 37849 37850 37851 37852 37853 37854 37855 37856 37857 37858 37859 37860 37861 37862 37863 37864 37865 37866 37867 37868 37869 37870 37871 37872 37873 37874 37875 37876 37877 37878 37879 37880 37881 37882 37883 37884 37885 37886 37887 37888 37889 37890 37891 37892 37893 37894 37895 37896 37897 37898 37899 37900 37901 37902 37903 37904 37905 37906 37907 37908 37909 37910 37911 37912 37913 37914 37915 37916 37917 37918 37919 37920 37921 37922 37923 37924 37925 37926 37927 37928 37929 37930 37931 37932 37933 37934 37935 37936 37937 37938 37939 37940 37941 37942 37943 37944 37945 37946 37947 37948 37949 37950 37951 37952 37953 37954 37955 37956 37957 37958 37959 37960 37961 37962 37963 37964 37965 37966 37967 37968 37969 37970 37971 37972 37973 37974 37975 37976 37977 37978 37979 37980 37981 37982 37983 37984 37985 37986 37987 37988 37989 37990 37991 37992 37993 37994 37995 37996 37997 37998 37999 38000 38001 38002 38003 38004 38005 38006 38007 38008 38009 38010 38011 38012 38013 38014 38015 38016 38017 38018 38019 38020 38021 38022 38023 38024 38025 38026 38027 38028 38029 38030 38031 38032 38033 38034 38035 38036 38037 38038 38039 38040 38041 38042 38043 38044 38045 38046 38047 38048 38049 38050 38051 38052 38053 38054 38055 38056 38057 38058 38059 38060 38061 38062 38063 38064 38065 38066 38067 38068 38069 38070 38071 38072 38073 38074 38075 38076 38077 38078 38079 38080 38081 38082 38083 38084 38085 38086 38087 38088 38089 38090 38091 38092 38093 38094 38095 38096 38097 38098 38099 38100 38101 38102 38103 38104 38105 38106 38107 38108 38109 38110 38111 38112 38113 38114 38115 38116 38117 38118 38119 38120 38121 38122 38123 38124 38125 38126 38127 38128 38129 38130 38131 38132 38133 38134 38135 38136 38137 38138 38139 38140 38141 38142 38143 38144 38145 38146 38147 38148 38149 38150 38151 38152 38153 38154 38155 38156 38157 38158 38159 38160 38161 38162 38163 38164 38165 38166 38167 38168 38169 38170 38171 38172 38173 38174 38175 38176 38177 38178 38179 38180 38181 38182 38183 38184 38185 38186 38187 38188 38189 38190 38191 38192 38193 38194 38195 38196 38197 38198 38199 38200 38201 38202 38203 38204 38205 38206 38207 38208 38209 38210 38211 38212 38213 38214 38215 38216 38217 38218 38219 38220 38221 38222 38223 38224 38225 38226 38227 38228 38229 38230 38231 38232 38233 38234 38235 38236 38237 38238 38239 38240 38241 38242 38243 38244 38245 38246 38247 38248 38249 38250 38251 38252 38253 38254 38255 38256 38257 38258 38259 38260 38261 38262 38263 38264 38265 38266 38267 38268 38269 38270 38271 38272 38273 38274 38275 38276 38277 38278 38279 38280 38281 38282 38283 38284 38285 38286 38287 38288 38289 38290 38291 38292 38293 38294 38295 38296 38297 38298 38299 38300 38301 38302 38303 38304 38305 38306 38307 38308 38309 38310 38311 38312 38313 38314 38315 38316 38317 38318 38319 38320 38321 38322 38323 38324 38325 38326 38327 38328 38329 38330 38331 38332 38333 38334 38335 38336 38337 38338 38339 38340 38341 38342 38343 38344 38345 38346 38347 38348 38349 38350 38351 38352 38353 38354 38355 38356 38357 38358 38359 38360 38361 38362 38363 38364 38365 38366 38367 38368 38369 38370 38371 38372 38373 38374 38375 38376 38377 38378 38379 38380 38381 38382 38383 38384 38385 38386 38387 38388 38389 38390 38391 38392 38393 38394 38395 38396 38397 38398 38399 38400 38401 38402 38403 38404 38405 38406 38407 38408 38409 38410 38411 38412 38413 38414 38415 38416 38417 38418 38419 38420 38421 38422 38423 38424 38425 38426 38427 38428 38429 38430 38431 38432 38433 38434 38435 38436 38437 38438 38439 38440 38441 38442 38443 38444 38445 38446 38447 38448 38449 38450 38451 38452 38453 38454 38455 38456 38457 38458 38459 38460 38461 38462 38463 38464 38465 38466 38467 38468 38469 38470 38471 38472 38473 38474 38475 38476 38477 38478 38479 38480 38481 38482 38483 38484 38485 38486 38487 38488 38489 38490 38491 38492 38493 38494 38495 38496 38497 38498 38499 38500 38501 38502 38503 38504 38505 38506 38507 38508 38509 38510 38511 38512 38513 38514 38515 38516 38517 38518 38519 38520 38521 38522 38523 38524 38525 38526 38527 38528 38529 38530 38531 38532 38533 38534 38535 38536 38537 38538 38539 38540 38541 38542 38543 38544 38545 38546 38547 38548 38549 38550 38551 38552 38553 38554 38555 38556 38557 38558 38559 38560 38561 38562 38563 38564 38565 38566 38567 38568 38569 38570 38571 38572 38573 38574 38575 38576 38577 38578 38579 38580 38581 38582 38583 38584 38585 38586 38587 38588 38589 38590 38591 38592 38593 38594 38595 38596 38597 38598 38599 38600 38601 38602 38603 38604 38605 38606 38607 38608 38609 38610 38611 38612 38613 38614 38615 38616 38617 38618 38619 38620 38621 38622 38623 38624 38625 38626 38627 38628 38629 38630 38631 38632 38633 38634 38635 38636 38637 38638 38639 38640 38641 38642 38643 38644 38645 38646 38647 38648 38649 38650 38651 38652 38653 38654 38655 38656 38657 38658 38659 38660 38661 38662 38663 38664 38665 38666 38667 38668 38669 38670 38671 38672 38673 38674 38675 38676 38677 38678 38679 38680 38681 38682 38683 38684 38685 38686 38687 38688 38689 38690 38691 38692 38693 38694 38695 38696 38697 38698 38699 38700 38701 38702 38703 38704 38705 38706 38707 38708 38709 38710 38711 38712 38713 38714 38715 38716 38717 38718 38719 38720 38721 38722 38723 38724 38725 38726 38727 38728 38729 38730 38731 38732 38733 38734 38735 38736 38737 38738 38739 38740 38741 38742 38743 38744 38745 38746 38747 38748 38749 38750 38751 38752 38753 38754 38755 38756 38757 38758 38759 38760 38761 38762 38763 38764 38765 38766 38767 38768 38769 38770 38771 38772 38773 38774 38775 38776 38777 38778 38779 38780 38781 38782 38783 38784 38785 38786 38787 38788 38789 38790 38791 38792 38793 38794 38795 38796 38797 38798 38799 38800 38801 38802 38803 38804 38805 38806 38807 38808 38809 38810 38811 38812 38813 38814 38815 38816 38817 38818 38819 38820 38821 38822 38823 38824 38825 38826 38827 38828 38829 38830 38831 38832 38833 38834 38835 38836 38837 38838 38839 38840 38841 38842 38843 38844 38845 38846 38847 38848 38849 38850 38851 38852 38853 38854 38855 38856 38857 38858 38859 38860 38861 38862 38863 38864 38865 38866 38867 38868 38869 38870 38871 38872 38873 38874 38875 38876 38877 38878 38879 38880 38881 38882 38883 38884 38885 38886 38887 38888 38889 38890 38891 38892 38893 38894 38895 38896 38897 38898 38899 38900 38901 38902 38903 38904 38905 38906 38907 38908 38909 38910 38911 38912 38913 38914 38915 38916 38917 38918 38919 38920 38921 38922 38923 38924 38925 38926 38927 38928 38929 38930 38931 38932 38933 38934 38935 38936 38937 38938 38939 38940 38941 38942 38943 38944 38945 38946 38947 38948 38949 38950 38951 38952 38953 38954 38955 38956 38957 38958 38959 38960 38961 38962 38963 38964 38965 38966 38967 38968 38969 38970 38971 38972 38973 38974 38975 38976 38977 38978 38979 38980 38981 38982 38983 38984 38985 38986 38987 38988 38989 38990 38991 38992 38993 38994 38995 38996 38997 38998 38999 39000 39001 39002 39003 39004 39005 39006 39007 39008 39009 39010 39011 39012 39013 39014 39015 39016 39017 39018 39019 39020 39021 39022 39023 39024 39025 39026 39027 39028 39029 39030 39031 39032 39033 39034 39035 39036 39037 39038 39039 39040 39041 39042 39043 39044 39045 39046 39047 39048 39049 39050 39051 39052 39053 39054 39055 39056 39057 39058 39059 39060 39061 39062 39063 39064 39065 39066 39067 39068 39069 39070 39071 39072 39073 39074 39075 39076 39077 39078 39079 39080 39081 39082 39083 39084 39085 39086 39087 39088 39089 39090 39091 39092 39093 39094 39095 39096 39097 39098 39099 39100 39101 39102 39103 39104 39105 39106 39107 39108 39109 39110 39111 39112 39113 39114 39115 39116 39117 39118 39119 39120 39121 39122 39123 39124 39125 39126 39127 39128 39129 39130 39131 39132 39133 39134 39135 39136 39137 39138 39139 39140 39141 39142 39143 39144 39145 39146 39147 39148 39149 39150 39151 39152 39153 39154 39155 39156 39157 39158 39159 39160 39161 39162 39163 39164 39165 39166 39167 39168 39169 39170 39171 39172 39173 39174 39175 39176 39177 39178 39179 39180 39181 39182 39183 39184 39185 39186 39187 39188 39189 39190 39191 39192 39193 39194 39195 39196 39197 39198 39199 39200 39201 39202 39203 39204 39205 39206 39207 39208 39209 39210 39211 39212 39213 39214 39215 39216 39217 39218 39219 39220 39221 39222 39223 39224 39225 39226 39227 39228 39229 39230 39231 39232 39233 39234 39235 39236 39237 39238 39239 39240 39241 39242 39243 39244 39245 39246 39247 39248 39249 39250 39251 39252 39253 39254 39255 39256 39257 39258 39259 39260 39261 39262 39263 39264 39265 39266 39267 39268 39269 39270 39271 39272 39273 39274 39275 39276 39277 39278 39279 39280 39281 39282 39283 39284 39285 39286 39287 39288 39289 39290 39291 39292 39293 39294 39295 39296 39297 39298 39299 39300 39301 39302 39303 39304 39305 39306 39307 39308 39309 39310 39311 39312 39313 39314 39315 39316 39317 39318 39319 39320 39321 39322 39323 39324 39325 39326 39327 39328 39329 39330 39331 39332 39333 39334 39335 39336 39337 39338 39339 39340 39341 39342 39343 39344 39345 39346 39347 39348 39349 39350 39351 39352 39353 39354 39355 39356 39357 39358 39359 39360 39361 39362 39363 39364 39365 39366 39367 39368 39369 39370 39371 39372 39373 39374 39375 39376 39377 39378 39379 39380 39381 39382 39383 39384 39385 39386 39387 39388 39389 39390 39391 39392 39393 39394 39395 39396 39397 39398 39399 39400 39401 39402 39403 39404 39405 39406 39407 39408 39409 39410 39411 39412 39413 39414 39415 39416 39417 39418 39419 39420 39421 39422 39423 39424 39425 39426 39427 39428 39429 39430 39431 39432 39433 39434 39435 39436 39437 39438 39439 39440 39441 39442 39443 39444 39445 39446 39447 39448 39449 39450 39451 39452 39453 39454 39455 39456 39457 39458 39459 39460 39461 39462 39463 39464 39465 39466 39467 39468 39469 39470 39471 39472 39473 39474 39475 39476 39477 39478 39479 39480 39481 39482 39483 39484 39485 39486 39487 39488 39489 39490 39491 39492 39493 39494 39495 39496 39497 39498 39499 39500 39501 39502 39503 39504 39505 39506 39507 39508 39509 39510 39511 39512 39513 39514 39515 39516 39517 39518 39519 39520 39521 39522 39523 39524 39525 39526 39527 39528 39529 39530 39531 39532 39533 39534 39535 39536 39537 39538 39539 39540 39541 39542 39543 39544 39545 39546 39547 39548 39549 39550 39551 39552 39553 39554 39555 39556 39557 39558 39559 39560 39561 39562 39563 39564 39565 39566 39567 39568 39569 39570 39571 39572 39573 39574 39575 39576 39577 39578 39579 39580 39581 39582 39583 39584 39585 39586 39587 39588 39589 39590 39591 39592 39593 39594 39595 39596 39597 39598 39599 39600 39601 39602 39603 39604 39605 39606 39607 39608 39609 39610 39611 39612 39613 39614 39615 39616 39617 39618 39619 39620 39621 39622 39623 39624 39625 39626 39627 39628 39629 39630 39631 39632 39633 39634 39635 39636 39637 39638 39639 39640 39641 39642 39643 39644 39645 39646 39647 39648 39649 39650 39651 39652 39653 39654 39655 39656 39657 39658 39659 39660 39661 39662 39663 39664 39665 39666 39667 39668 39669 39670 39671 39672 39673 39674 39675 39676 39677 39678 39679 39680 39681 39682 39683 39684 39685 39686 39687 39688 39689 39690 39691 39692 39693 39694 39695 39696 39697 39698 39699 39700 39701 39702 39703 39704 39705 39706 39707 39708 39709 39710 39711 39712 39713 39714 39715 39716 39717 39718 39719 39720 39721 39722 39723 39724 39725 39726 39727 39728 39729 39730 39731 39732 39733 39734 39735 39736 39737 39738 39739 39740 39741 39742 39743 39744 39745 39746 39747 39748 39749 39750 39751 39752 39753 39754 39755 39756 39757 39758 39759 39760 39761 39762 39763 39764 39765 39766 39767 39768 39769 39770 39771 39772 39773 39774 39775 39776 39777 39778 39779 39780 39781 39782 39783 39784 39785 39786 39787 39788 39789 39790 39791 39792 39793 39794 39795 39796 39797 39798 39799 39800 39801 39802 39803 39804 39805 39806 39807 39808 39809 39810 39811 39812 39813 39814 39815 39816 39817 39818 39819 39820 39821 39822 39823 39824 39825 39826 39827 39828 39829 39830 39831 39832 39833 39834 39835 39836 39837 39838 39839 39840 39841 39842 39843 39844 39845 39846 39847 39848 39849 39850 39851 39852 39853 39854 39855 39856 39857 39858 39859 39860 39861 39862 39863 39864 39865 39866 39867 39868 39869 39870 39871 39872 39873 39874 39875 39876 39877 39878 39879 39880 39881 39882 39883 39884 39885 39886 39887 39888 39889 39890 39891 39892 39893 39894 39895 39896 39897 39898 39899 39900 39901 39902 39903 39904 39905 39906 39907 39908 39909 39910 39911 39912 39913 39914 39915 39916 39917 39918 39919 39920 39921 39922 39923 39924 39925 39926 39927 39928 39929 39930 39931 39932 39933 39934 39935 39936 39937 39938 39939 39940 39941 39942 39943 39944 39945 39946 39947 39948 39949 39950 39951 39952 39953 39954 39955 39956 39957 39958 39959 39960 39961 39962 39963 39964 39965 39966 39967 39968 39969 39970 39971 39972 39973 39974 39975 39976 39977 39978 39979 39980 39981 39982 39983 39984 39985 39986 39987 39988 39989 39990 39991 39992 39993 39994 39995 39996 39997 39998 39999 40000 40001 40002 40003 40004 40005 40006 40007 40008 40009 40010 40011 40012 40013 40014 40015 40016 40017 40018 40019 40020 40021 40022 40023 40024 40025 40026 40027 40028 40029 40030 40031 40032 40033 40034 40035 40036 40037 40038 40039 40040 40041 40042 40043 40044 40045 40046 40047 40048 40049 40050 40051 40052 40053 40054 40055 40056 40057 40058 40059 40060 40061 40062 40063 40064 40065 40066 40067 40068 40069 40070 40071 40072 40073 40074 40075 40076 40077 40078 40079 40080 40081 40082 40083 40084 40085 40086 40087 40088 40089 40090 40091 40092 40093 40094 40095 40096 40097 40098 40099 40100 40101 40102 40103 40104 40105 40106 40107 40108 40109 40110 40111 40112 40113 40114 40115 40116 40117 40118 40119 40120 40121 40122 40123 40124 40125 40126 40127 40128 40129 40130 40131 40132 40133 40134 40135 40136 40137 40138 40139 40140 40141 40142 40143 40144 40145 40146 40147 40148 40149 40150 40151 40152 40153 40154 40155 40156 40157 40158 40159 40160 40161 40162 40163 40164 40165 40166 40167 40168 40169 40170 40171 40172 40173 40174 40175 40176 40177 40178 40179 40180 40181 40182 40183 40184 40185 40186 40187 40188 40189 40190 40191 40192 40193 40194 40195 40196 40197 40198 40199 40200 40201 40202 40203 40204 40205 40206 40207 40208 40209 40210 40211 40212 40213 40214 40215 40216 40217 40218 40219 40220 40221 40222 40223 40224 40225 40226 40227 40228 40229 40230 40231 40232 40233 40234 40235 40236 40237 40238 40239 40240 40241 40242 40243 40244 40245 40246 40247 40248 40249 40250 40251 40252 40253 40254 40255 40256 40257 40258 40259 40260 40261 40262 40263 40264 40265 40266 40267 40268 40269 40270 40271 40272 40273 40274 40275 40276 40277 40278 40279 40280 40281 40282 40283 40284 40285 40286 40287 40288 40289 40290 40291 40292 40293 40294 40295 40296 40297 40298 40299 40300 40301 40302 40303 40304 40305 40306 40307 40308 40309 40310 40311 40312 40313 40314 40315 40316 40317 40318 40319 40320 40321 40322 40323 40324 40325 40326 40327 40328 40329 40330 40331 40332 40333 40334 40335 40336 40337 40338 40339 40340 40341 40342 40343 40344 40345 40346 40347 40348 40349 40350 40351 40352 40353 40354 40355 40356 40357 40358 40359 40360 40361 40362 40363 40364 40365 40366 40367 40368 40369 40370 40371 40372 40373 40374 40375 40376 40377 40378 40379 40380 40381 40382 40383 40384 40385 40386 40387 40388 40389 40390 40391 40392 40393 40394 40395 40396 40397 40398 40399 40400 40401 40402 40403 40404 40405 40406 40407 40408 40409 40410 40411 40412 40413 40414 40415 40416 40417 40418 40419 40420 40421 40422 40423 40424 40425 40426 40427 40428 40429 40430 40431 40432 40433 40434 40435 40436 40437 40438 40439 40440 40441 40442 40443 40444 40445 40446 40447 40448 40449 40450 40451 40452 40453 40454 40455 40456 40457 40458 40459 40460 40461 40462 40463 40464 40465 40466 40467 40468 40469 40470 40471 40472 40473 40474 40475 40476 40477 40478 40479 40480 40481 40482 40483 40484 40485 40486 40487 40488 40489 40490 40491 40492 40493 40494 40495 40496 40497 40498 40499 40500 40501 40502 40503 40504 40505 40506 40507 40508 40509 40510 40511 40512 40513 40514 40515 40516 40517 40518 40519 40520 40521 40522 40523 40524 40525 40526 40527 40528 40529 40530 40531 40532 40533 40534 40535 40536 40537 40538 40539 40540 40541 40542 40543 40544 40545 40546 40547 40548 40549 40550 40551 40552 40553 40554 40555 40556 40557 40558 40559 40560 40561 40562 40563 40564 40565 40566 40567 40568 40569 40570 40571 40572 40573 40574 40575 40576 40577 40578 40579 40580 40581 40582 40583 40584 40585 40586 40587 40588 40589 40590 40591 40592 40593 40594 40595 40596 40597 40598 40599 40600 40601 40602 40603 40604 40605 40606 40607 40608 40609 40610 40611 40612 40613 40614 40615 40616 40617 40618 40619 40620 40621 40622 40623 40624 40625 40626 40627 40628 40629 40630 40631 40632 40633 40634 40635 40636 40637 40638 40639 40640 40641 40642 40643 40644 40645 40646 40647 40648 40649 40650 40651 40652 40653 40654 40655 40656 40657 40658 40659 40660 40661 40662 40663 40664 40665 40666 40667 40668 40669 40670 40671 40672 40673 40674 40675 40676 40677 40678 40679 40680 40681 40682 40683 40684 40685 40686 40687 40688 40689 40690 40691 40692 40693 40694 40695 40696 40697 40698 40699 40700 40701 40702 40703 40704 40705 40706 40707 40708 40709 40710 40711 40712 40713 40714 40715 40716 40717 40718 40719 40720 40721 40722 40723 40724 40725 40726 40727 40728 40729 40730 40731 40732 40733 40734 40735 40736 40737 40738 40739 40740 40741 40742 40743 40744 40745 40746 40747 40748 40749 40750 40751 40752 40753 40754 40755 40756 40757 40758 40759 40760 40761 40762 40763 40764 40765 40766 40767 40768 40769 40770 40771 40772 40773 40774 40775 40776 40777 40778 40779 40780 40781 40782 40783 40784 40785 40786 40787 40788 40789 40790 40791 40792 40793 40794 40795 40796 40797 40798 40799 40800 40801 40802 40803 40804 40805 40806 40807 40808 40809 40810 40811 40812 40813 40814 40815 40816 40817 40818 40819 40820 40821 40822 40823 40824 40825 40826 40827 40828 40829 40830 40831 40832 40833 40834 40835 40836 40837 40838 40839 40840 40841 40842 40843 40844 40845 40846 40847 40848 40849 40850 40851 40852 40853 40854 40855 40856 40857 40858 40859 40860 40861 40862 40863 40864 40865 40866 40867 40868 40869 40870 40871 40872 40873 40874 40875 40876 40877 40878 40879 40880 40881 40882 40883 40884 40885 40886 40887 40888 40889 40890 40891 40892 40893 40894 40895 40896 40897 40898 40899 40900 40901 40902 40903 40904 40905 40906 40907 40908 40909 40910 40911 40912 40913 40914 40915 40916 40917 40918 40919 40920 40921 40922 40923 40924 40925 40926 40927 40928 40929 40930 40931 40932 40933 40934 40935 40936 40937 40938 40939 40940 40941 40942 40943 40944 40945 40946 40947 40948 40949 40950 40951 40952 40953 40954 40955 40956 40957 40958 40959 40960 40961 40962 40963 40964 40965 40966 40967 40968 40969 40970 40971 40972 40973 40974 40975 40976 40977 40978 40979 40980 40981 40982 40983 40984 40985 40986 40987 40988 40989 40990 40991 40992 40993 40994 40995 40996 40997 40998 40999 41000 41001 41002 41003 41004 41005 41006 41007 41008 41009 41010 41011 41012 41013 41014 41015 41016 41017 41018 41019 41020 41021 41022 41023 41024 41025 41026 41027 41028 41029 41030 41031 41032 41033 41034 41035 41036 41037 41038 41039 41040 41041 41042 41043 41044 41045 41046 41047 41048 41049 41050 41051 41052 41053 41054 41055 41056 41057 41058 41059 41060 41061 41062 41063 41064 41065 41066 41067 41068 41069 41070 41071 41072 41073 41074 41075 41076 41077 41078 41079 41080 41081 41082 41083 41084 41085 41086 41087 41088 41089 41090 41091 41092 41093 41094 41095 41096 41097 41098 41099 41100 41101 41102 41103 41104 41105 41106 41107 41108 41109 41110 41111 41112 41113 41114 41115 41116 41117 41118 41119 41120 41121 41122 41123 41124 41125 41126 41127 41128 41129 41130 41131 41132 41133 41134 41135 41136 41137 41138 41139 41140 41141 41142 41143 41144 41145 41146 41147 41148 41149 41150 41151 41152 41153 41154 41155 41156 41157 41158 41159 41160 41161 41162 41163 41164 41165 41166 41167 41168 41169 41170 41171 41172 41173 41174 41175 41176 41177 41178 41179 41180 41181 41182 41183 41184 41185 41186 41187 41188 41189 41190 41191 41192 41193 41194 41195 41196 41197 41198 41199 41200 41201 41202 41203 41204 41205 41206 41207 41208 41209 41210 41211 41212 41213 41214 41215 41216 41217 41218 41219 41220 41221 41222 41223 41224 41225 41226 41227 41228 41229 41230 41231 41232 41233 41234 41235 41236 41237 41238 41239 41240 41241 41242 41243 41244 41245 41246 41247 41248 41249 41250 41251 41252 41253 41254 41255 41256 41257 41258 41259 41260 41261 41262 41263 41264 41265 41266 41267 41268 41269 41270 41271 41272 41273 41274 41275 41276 41277 41278 41279 41280 41281 41282 41283 41284 41285 41286 41287 41288 41289 41290 41291 41292 41293 41294 41295 41296 41297 41298 41299 41300 41301 41302 41303 41304 41305 41306 41307 41308 41309 41310 41311 41312 41313 41314 41315 41316 41317 41318 41319 41320 41321 41322 41323 41324 41325 41326 41327 41328 41329 41330 41331 41332 41333 41334 41335 41336 41337 41338 41339 41340 41341 41342 41343 41344 41345 41346 41347 41348 41349 41350 41351 41352 41353 41354 41355 41356 41357 41358 41359 41360 41361 41362 41363 41364 41365 41366 41367 41368 41369 41370 41371 41372 41373 41374 41375 41376 41377 41378 41379 41380 41381 41382 41383 41384 41385 41386 41387 41388 41389 41390 41391 41392 41393 41394 41395 41396 41397 41398 41399 41400 41401 41402 41403 41404 41405 41406 41407 41408 41409 41410 41411 41412 41413 41414 41415 41416 41417 41418 41419 41420 41421 41422 41423 41424 41425 41426 41427 41428 41429 41430 41431 41432 41433 41434 41435 41436 41437 41438 41439 41440 41441 41442 41443 41444 41445 41446 41447 41448 41449 41450 41451 41452 41453 41454 41455 41456 41457 41458 41459 41460 41461 41462 41463 41464 41465 41466 41467 41468 41469 41470 41471 41472 41473 41474 41475 41476 41477 41478 41479 41480 41481 41482 41483 41484 41485 41486 41487 41488 41489 41490 41491 41492 41493 41494 41495 41496 41497 41498 41499 41500 41501 41502 41503 41504 41505 41506 41507 41508 41509 41510 41511 41512 41513 41514 41515 41516 41517 41518 41519 41520 41521 41522 41523 41524 41525 41526 41527 41528 41529 41530 41531 41532 41533 41534 41535 41536 41537 41538 41539 41540 41541 41542 41543 41544 41545 41546 41547 41548 41549 41550 41551 41552 41553 41554 41555 41556 41557 41558 41559 41560 41561 41562 41563 41564 41565 41566 41567 41568 41569 41570 41571 41572 41573 41574 41575 41576 41577 41578 41579 41580 41581 41582 41583 41584 41585 41586 41587 41588 41589 41590 41591 41592 41593 41594 41595 41596 41597 41598 41599 41600 41601 41602 41603 41604 41605 41606 41607 41608 41609 41610 41611 41612 41613 41614 41615 41616 41617 41618 41619 41620 41621 41622 41623 41624 41625 41626 41627 41628 41629 41630 41631 41632 41633 41634 41635 41636 41637 41638 41639 41640 41641 41642 41643 41644 41645 41646 41647 41648 41649 41650 41651 41652 41653 41654 41655 41656 41657 41658 41659 41660 41661 41662 41663 41664 41665 41666 41667 41668 41669 41670 41671 41672 41673 41674 41675 41676 41677 41678 41679 41680 41681 41682 41683 41684 41685 41686 41687 41688 41689 41690 41691 41692 41693 41694 41695 41696 41697 41698 41699 41700 41701 41702 41703 41704 41705 41706 41707 41708 41709 41710 41711 41712 41713 41714 41715 41716 41717 41718 41719 41720 41721 41722 41723 41724 41725 41726 41727 41728 41729 41730 41731 41732 41733 41734 41735 41736 41737 41738 41739 41740 41741 41742 41743 41744 41745 41746 41747 41748 41749 41750 41751 41752 41753 41754 41755 41756 41757 41758 41759 41760 41761 41762 41763 41764 41765 41766 41767 41768 41769 41770 41771 41772 41773 41774 41775 41776 41777 41778 41779 41780 41781 41782 41783 41784 41785 41786 41787 41788 41789 41790 41791 41792 41793 41794 41795 41796 41797 41798 41799 41800 41801 41802 41803 41804 41805 41806 41807 41808 41809 41810 41811 41812 41813 41814 41815 41816 41817 41818 41819 41820 41821 41822 41823 41824 41825 41826 41827 41828 41829 41830 41831 41832 41833 41834 41835 41836 41837 41838 41839 41840 41841 41842 41843 41844 41845 41846 41847 41848 41849 41850 41851 41852 41853 41854 41855 41856 41857 41858 41859 41860 41861 41862 41863 41864 41865 41866 41867 41868 41869 41870 41871 41872 41873 41874 41875 41876 41877 41878 41879 41880 41881 41882 41883 41884 41885 41886 41887 41888 41889 41890 41891 41892 41893 41894 41895 41896 41897 41898 41899 41900 41901 41902 41903 41904 41905 41906 41907 41908 41909 41910 41911 41912 41913 41914 41915 41916 41917 41918 41919 41920 41921 41922 41923 41924 41925 41926 41927 41928 41929 41930 41931 41932 41933 41934 41935 41936 41937 41938 41939 41940 41941 41942 41943 41944 41945 41946 41947 41948 41949 41950 41951 41952 41953 41954 41955 41956 41957 41958 41959 41960 41961 41962 41963 41964 41965 41966 41967 41968 41969 41970 41971 41972 41973 41974 41975 41976 41977 41978 41979 41980 41981 41982 41983 41984 41985 41986 41987 41988 41989 41990 41991 41992 41993 41994 41995 41996 41997 41998 41999 42000 42001 42002 42003 42004 42005 42006 42007 42008 42009 42010 42011 42012 42013 42014 42015 42016 42017 42018 42019 42020 42021 42022 42023 42024 42025 42026 42027 42028 42029 42030 42031 42032 42033 42034 42035 42036 42037 42038 42039 42040 42041 42042 42043 42044 42045 42046 42047 42048 42049 42050 42051 42052 42053 42054 42055 42056 42057 42058 42059 42060 42061 42062 42063 42064 42065 42066 42067 42068 42069 42070 42071 42072 42073 42074 42075 42076 42077 42078 42079 42080 42081 42082 42083 42084 42085 42086 42087 42088 42089 42090 42091 42092 42093 42094 42095 42096 42097 42098 42099 42100 42101 42102 42103 42104 42105 42106 42107 42108 42109 42110 42111 42112 42113 42114 42115 42116 42117 42118 42119 42120 42121 42122 42123 42124 42125 42126 42127 42128 42129 42130 42131 42132 42133 42134 42135 42136 42137 42138 42139 42140 42141 42142 42143 42144 42145 42146 42147 42148 42149 42150 42151 42152 42153 42154 42155 42156 42157 42158 42159 42160 42161 42162 42163 42164 42165 42166 42167 42168 42169 42170 42171 42172 42173 42174 42175 42176 42177 42178 42179 42180 42181 42182 42183 42184 42185 42186 42187 42188 42189 42190 42191 42192 42193 42194 42195 42196 42197 42198 42199 42200 42201 42202 42203 42204 42205 42206 42207 42208 42209 42210 42211 42212 42213 42214 42215 42216 42217 42218 42219 42220 42221 42222 42223 42224 42225 42226 42227 42228 42229 42230 42231 42232 42233 42234 42235 42236 42237 42238 42239 42240 42241 42242 42243 42244 42245 42246 42247 42248 42249 42250 42251 42252 42253 42254 42255 42256 42257 42258 42259 42260 42261 42262 42263 42264 42265 42266 42267 42268 42269 42270 42271 42272 42273 42274 42275 42276 42277 42278 42279 42280 42281 42282 42283 42284 42285 42286 42287 42288 42289 42290 42291 42292 42293 42294 42295 42296 42297 42298 42299 42300 42301 42302 42303 42304 42305 42306 42307 42308 42309 42310 42311 42312 42313 42314 42315 42316 42317 42318 42319 42320 42321 42322 42323 42324 42325 42326 42327 42328 42329 42330 42331 42332 42333 42334 42335 42336 42337 42338 42339 42340 42341 42342 42343 42344 42345 42346 42347 42348 42349 42350 42351 42352 42353 42354 42355 42356 42357 42358 42359 42360 42361 42362 42363 42364 42365 42366 42367 42368 42369 42370 42371 42372 42373 42374 42375 42376 42377 42378 42379 42380 42381 42382 42383 42384 42385 42386 42387 42388 42389 42390 42391 42392 42393 42394 42395 42396 42397 42398 42399 42400 42401 42402 42403 42404 42405 42406 42407 42408 42409 42410 42411 42412 42413 42414 42415 42416 42417 42418 42419 42420 42421 42422 42423 42424 42425 42426 42427 42428 42429 42430 42431 42432 42433 42434 42435 42436 42437 42438 42439 42440 42441 42442 42443 42444 42445 42446 42447 42448 42449 42450 42451 42452 42453 42454 42455 42456 42457 42458 42459 42460 42461 42462 42463 42464 42465 42466 42467 42468 42469 42470 42471 42472 42473 42474 42475 42476 42477 42478 42479 42480 42481 42482 42483 42484 42485 42486 42487 42488 42489 42490 42491 42492 42493 42494 42495 42496 42497 42498 42499 42500 42501 42502 42503 42504 42505 42506 42507 42508 42509 42510 42511 42512 42513 42514 42515 42516 42517 42518 42519 42520 42521 42522 42523 42524 42525 42526 42527 42528 42529 42530 42531 42532 42533 42534 42535 42536 42537 42538 42539 42540 42541 42542 42543 42544 42545 42546 42547 42548 42549 42550 42551 42552 42553 42554 42555 42556 42557 42558 42559 42560 42561 42562 42563 42564 42565 42566 42567 42568 42569 42570 42571 42572 42573 42574 42575 42576 42577 42578 42579 42580 42581 42582 42583 42584 42585 42586 42587 42588 42589 42590 42591 42592 42593 42594 42595 42596 42597 42598 42599 42600 42601 42602 42603 42604 42605 42606 42607 42608 42609 42610 42611 42612 42613 42614 42615 42616 42617 42618 42619 42620 42621 42622 42623 42624 42625 42626 42627 42628 42629 42630 42631 42632 42633 42634 42635 42636 42637 42638 42639 42640 42641 42642 42643 42644 42645 42646 42647 42648 42649 42650 42651 42652 42653 42654 42655 42656 42657 42658 42659 42660 42661 42662 42663 42664 42665 42666 42667 42668 42669 42670 42671 42672 42673 42674 42675 42676 42677 42678 42679 42680 42681 42682 42683 42684 42685 42686 42687 42688 42689 42690 42691 42692 42693 42694 42695 42696 42697 42698 42699 42700 42701 42702 42703 42704 42705 42706 42707 42708 42709 42710 42711 42712 42713 42714 42715 42716 42717 42718 42719 42720 42721 42722 42723 42724 42725 42726 42727 42728 42729 42730 42731 42732 42733 42734 42735 42736 42737 42738 42739 42740 42741 42742 42743 42744 42745 42746 42747 42748 42749 42750 42751 42752 42753 42754 42755 42756 42757 42758 42759 42760 42761 42762 42763 42764 42765 42766 42767 42768 42769 42770 42771 42772 42773 42774 42775 42776 42777 42778 42779 42780 42781 42782 42783 42784 42785 42786 42787 42788 42789 42790 42791 42792 42793 42794 42795 42796 42797 42798 42799 42800 42801 42802 42803 42804 42805 42806 42807 42808 42809 42810 42811 42812 42813 42814 42815 42816 42817 42818 42819 42820 42821 42822 42823 42824 42825 42826 42827 42828 42829 42830 42831 42832 42833 42834 42835 42836 42837 42838 42839 42840 42841 42842 42843 42844 42845 42846 42847 42848 42849 42850 42851 42852 42853 42854 42855 42856 42857 42858 42859 42860 42861 42862 42863 42864 42865 42866 42867 42868 42869 42870 42871 42872 42873 42874 42875 42876 42877 42878 42879 42880 42881 42882 42883 42884 42885 42886 42887 42888 42889 42890 42891 42892 42893 42894 42895 42896 42897 42898 42899 42900 42901 42902 42903 42904 42905 42906 42907 42908 42909 42910 42911 42912 42913 42914 42915 42916 42917 42918 42919 42920 42921 42922 42923 42924 42925 42926 42927 42928 42929 42930 42931 42932 42933 42934 42935 42936 42937 42938 42939 42940 42941 42942 42943 42944 42945 42946 42947 42948 42949 42950 42951 42952 42953 42954 42955 42956 42957 42958 42959 42960 42961 42962 42963 42964 42965 42966 42967 42968 42969 42970 42971 42972 42973 42974 42975 42976 42977 42978 42979 42980 42981 42982 42983 42984 42985 42986 42987 42988 42989 42990 42991 42992 42993 42994 42995 42996 42997 42998 42999 43000 43001 43002 43003 43004 43005 43006 43007 43008 43009 43010 43011 43012 43013 43014 43015 43016 43017 43018 43019 43020 43021 43022 43023 43024 43025 43026 43027 43028 43029 43030 43031 43032 43033 43034 43035 43036 43037 43038 43039 43040 43041 43042 43043 43044 43045 43046 43047 43048 43049 43050 43051 43052 43053 43054 43055 43056 43057 43058 43059 43060 43061 43062 43063 43064 43065 43066 43067 43068 43069 43070 43071 43072 43073 43074 43075 43076 43077 43078 43079 43080 43081 43082 43083 43084 43085 43086 43087 43088 43089 43090 43091 43092 43093 43094 43095 43096 43097 43098 43099 43100 43101 43102 43103 43104 43105 43106 43107 43108 43109 43110 43111 43112 43113 43114 43115 43116 43117 43118 43119 43120 43121 43122 43123 43124 43125 43126 43127 43128 43129 43130 43131 43132 43133 43134 43135 43136 43137 43138 43139 43140 43141 43142 43143 43144 43145 43146 43147 43148 43149 43150 43151 43152 43153 43154 43155 43156 43157 43158 43159 43160 43161 43162 43163 43164 43165 43166 43167 43168 43169 43170 43171 43172 43173 43174 43175 43176 43177 43178 43179 43180 43181 43182 43183 43184 43185 43186 43187 43188 43189 43190 43191 43192 43193 43194 43195 43196 43197 43198 43199 43200 43201 43202 43203 43204 43205 43206 43207 43208 43209 43210 43211 43212 43213 43214 43215 43216 43217 43218 43219 43220 43221 43222 43223 43224 43225 43226 43227 43228 43229 43230 43231 43232 43233 43234 43235 43236 43237 43238 43239 43240 43241 43242 43243 43244 43245 43246 43247 43248 43249 43250 43251 43252 43253 43254 43255 43256 43257 43258 43259 43260 43261 43262 43263 43264 43265 43266 43267 43268 43269 43270 43271 43272 43273 43274 43275 43276 43277 43278 43279 43280 43281 43282 43283 43284 43285 43286 43287 43288 43289 43290 43291 43292 43293 43294 43295 43296 43297 43298 43299 43300 43301 43302 43303 43304 43305 43306 43307 43308 43309 43310 43311 43312 43313 43314 43315 43316 43317 43318 43319 43320 43321 43322 43323 43324 43325 43326 43327 43328 43329 43330 43331 43332 43333 43334 43335 43336 43337 43338 43339 43340 43341 43342 43343 43344 43345 43346 43347 43348 43349 43350 43351 43352 43353 43354 43355 43356 43357 43358 43359 43360 43361 43362 43363 43364 43365 43366 43367 43368 43369 43370 43371 43372 43373 43374 43375 43376 43377 43378 43379 43380 43381 43382 43383 43384 43385 43386 43387 43388 43389 43390 43391 43392 43393 43394 43395 43396 43397 43398 43399 43400 43401 43402 43403 43404 43405 43406 43407 43408 43409 43410 43411 43412 43413 43414 43415 43416 43417 43418 43419 43420 43421 43422 43423 43424 43425 43426 43427 43428 43429 43430 43431 43432 43433 43434 43435 43436 43437 43438 43439 43440 43441 43442 43443 43444 43445 43446 43447 43448 43449 43450 43451 43452 43453 43454 43455 43456 43457 43458 43459 43460 43461 43462 43463 43464 43465 43466 43467 43468 43469 43470 43471 43472 43473 43474 43475 43476 43477 43478 43479 43480 43481 43482 43483 43484 43485 43486 43487 43488 43489 43490 43491 43492 43493 43494 43495 43496 43497 43498 43499 43500 43501 43502 43503 43504 43505 43506 43507 43508 43509 43510 43511 43512 43513 43514 43515 43516 43517 43518 43519 43520 43521 43522 43523 43524 43525 43526 43527 43528 43529 43530 43531 43532 43533 43534 43535 43536 43537 43538 43539 43540 43541 43542 43543 43544 43545 43546 43547 43548 43549 43550 43551 43552 43553 43554 43555 43556 43557 43558 43559 43560 43561 43562 43563 43564 43565 43566 43567 43568 43569 43570 43571 43572 43573 43574 43575 43576 43577 43578 43579 43580 43581 43582 43583 43584 43585 43586 43587 43588 43589 43590 43591 43592 43593 43594 43595 43596 43597 43598 43599 43600 43601 43602 43603 43604 43605 43606 43607 43608 43609 43610 43611 43612 43613 43614 43615 43616 43617 43618 43619 43620 43621 43622 43623 43624 43625 43626 43627 43628 43629 43630 43631 43632 43633 43634 43635 43636 43637 43638 43639 43640 43641 43642 43643 43644 43645 43646 43647 43648 43649 43650 43651 43652 43653 43654 43655 43656 43657 43658 43659 43660 43661 43662 43663 43664 43665 43666 43667 43668 43669 43670 43671 43672 43673 43674 43675 43676 43677 43678 43679 43680 43681 43682 43683 43684 43685 43686 43687 43688 43689 43690 43691 43692 43693 43694 43695 43696 43697 43698 43699 43700 43701 43702 43703 43704 43705 43706 43707 43708 43709 43710 43711 43712 43713 43714 43715 43716 43717 43718 43719 43720 43721 43722 43723 43724 43725 43726 43727 43728 43729 43730 43731 43732 43733 43734 43735 43736 43737 43738 43739 43740 43741 43742 43743 43744 43745 43746 43747 43748 43749 43750 43751 43752 43753 43754 43755 43756 43757 43758 43759 43760 43761 43762 43763 43764 43765 43766 43767 43768 43769 43770 43771 43772 43773 43774 43775 43776 43777 43778 43779 43780 43781 43782 43783 43784 43785 43786 43787 43788 43789 43790 43791 43792 43793 43794 43795 43796 43797 43798 43799 43800 43801 43802 43803 43804 43805 43806 43807 43808 43809 43810 43811 43812 43813 43814 43815 43816 43817 43818 43819 43820 43821 43822 43823 43824 43825 43826 43827 43828 43829 43830 43831 43832 43833 43834 43835 43836 43837 43838 43839 43840 43841 43842 43843 43844 43845 43846 43847 43848 43849 43850 43851 43852 43853 43854 43855 43856 43857 43858 43859 43860 43861 43862 43863 43864 43865 43866 43867 43868 43869 43870 43871 43872 43873 43874 43875 43876 43877 43878 43879 43880 43881 43882 43883 43884 43885 43886 43887 43888 43889 43890 43891 43892 43893 43894 43895 43896 43897 43898 43899 43900 43901 43902 43903 43904 43905 43906 43907 43908 43909 43910 43911 43912 43913 43914 43915 43916 43917 43918 43919 43920 43921 43922 43923 43924 43925 43926 43927 43928 43929 43930 43931 43932 43933 43934 43935 43936 43937 43938 43939 43940 43941 43942 43943 43944 43945 43946 43947 43948 43949 43950 43951 43952 43953 43954 43955 43956 43957 43958 43959 43960 43961 43962 43963 43964 43965 43966 43967 43968 43969 43970 43971 43972 43973 43974 43975 43976 43977 43978 43979 43980 43981 43982 43983 43984 43985 43986 43987 43988 43989 43990 43991 43992 43993 43994 43995 43996 43997 43998 43999 44000 44001 44002 44003 44004 44005 44006 44007 44008 44009 44010 44011 44012 44013 44014 44015 44016 44017 44018 44019 44020 44021 44022 44023 44024 44025 44026 44027 44028 44029 44030 44031 44032 44033 44034 44035 44036 44037 44038 44039 44040 44041 44042 44043 44044 44045 44046 44047 44048 44049 44050 44051 44052 44053 44054 44055 44056 44057 44058 44059 44060 44061 44062 44063 44064 44065 44066 44067 44068 44069 44070 44071 44072 44073 44074 44075 44076 44077 44078 44079 44080 44081 44082 44083 44084 44085 44086 44087 44088 44089 44090 44091 44092 44093 44094 44095 44096 44097 44098 44099 44100 44101 44102 44103 44104 44105 44106 44107 44108 44109 44110 44111 44112 44113 44114 44115 44116 44117 44118 44119 44120 44121 44122 44123 44124 44125 44126 44127 44128 44129 44130 44131 44132 44133 44134 44135 44136 44137 44138 44139 44140 44141 44142 44143 44144 44145 44146 44147 44148 44149 44150 44151 44152 44153 44154 44155 44156 44157 44158 44159 44160 44161 44162 44163 44164 44165 44166 44167 44168 44169 44170 44171 44172 44173 44174 44175 44176 44177 44178 44179 44180 44181 44182 44183 44184 44185 44186 44187 44188 44189 44190 44191 44192 44193 44194 44195 44196 44197 44198 44199 44200 44201 44202 44203 44204 44205 44206 44207 44208 44209 44210 44211 44212 44213 44214 44215 44216 44217 44218 44219 44220 44221 44222 44223 44224 44225 44226 44227 44228 44229 44230 44231 44232 44233 44234 44235 44236 44237 44238 44239 44240 44241 44242 44243 44244 44245 44246 44247 44248 44249 44250 44251 44252 44253 44254 44255 44256 44257 44258 44259 44260 44261 44262 44263 44264 44265 44266 44267 44268 44269 44270 44271 44272 44273 44274 44275 44276 44277 44278 44279 44280 44281 44282 44283 44284 44285 44286 44287 44288 44289 44290 44291 44292 44293 44294 44295 44296 44297 44298 44299 44300 44301 44302 44303 44304 44305 44306 44307 44308 44309 44310 44311 44312 44313 44314 44315 44316 44317 44318 44319 44320 44321 44322 44323 44324 44325 44326 44327 44328 44329 44330 44331 44332 44333 44334 44335 44336 44337 44338 44339 44340 44341 44342 44343 44344 44345 44346 44347 44348 44349 44350 44351 44352 44353 44354 44355 44356 44357 44358 44359 44360 44361 44362 44363 44364 44365 44366 44367 44368 44369 44370 44371 44372 44373 44374 44375 44376 44377 44378 44379 44380 44381 44382 44383 44384 44385 44386 44387 44388 44389 44390 44391 44392 44393 44394 44395 44396 44397 44398 44399 44400 44401 44402 44403 44404 44405 44406 44407 44408 44409 44410 44411 44412 44413 44414 44415 44416 44417 44418 44419 44420 44421 44422 44423 44424 44425 44426 44427 44428 44429 44430 44431 44432 44433 44434 44435 44436 44437 44438 44439 44440 44441 44442 44443 44444 44445 44446 44447 44448 44449 44450 44451 44452 44453 44454 44455 44456 44457 44458 44459 44460 44461 44462 44463 44464 44465 44466 44467 44468 44469 44470 44471 44472 44473 44474 44475 44476 44477 44478 44479 44480 44481 44482 44483 44484
|
2025-03-20 Vincent Lefevre <vincent@vinc17.net>
Updated version to 4.2.2.
2025-03-14 Vincent Lefevre <vincent@vinc17.net>
Corrected documentation about the failing check_null() tests (bug in GMP)
following commit e545a46332bc41f15eab7de7e19c851f311762ff.
This is not specific to Visual C++ under MS Windows, but due to a bug
in GMP's vsnprintf replacement (now fixed in its development branch).
* INSTALL: moved and updated text about failures in the testsuite.
New section: "tfprintf and tsprintf failures in check_null".
* doc/README.dev: updated MPFR_TESTS_SKIP_CHECK_NULL description.
2025-03-14 Vincent Lefevre <vincent@vinc17.net>
ChangeLog update with tools/update-changelog
Updated version to 4.2.2-rc1.
2025-03-12 Vincent Lefevre <vincent@vinc17.net>
[NEWS] Update for 4.2.2 (mention 2 bug fixes)
2025-03-12 Vincent Lefevre <vincent@vinc17.net>
Added MPFR_TESTS_SKIP_CHECK_NULL: optionally skip the check_null() tests.
Build the MPFR tests with the MPFR_TESTS_SKIP_CHECK_NULL macro defined
in order to skip the check_null() tests in tfprintf.c and tsprintf.c
(failures with Visual C++ under MS Windows have been reported). The
goal is just to avoid a failure of the MPFR testsuite, as the bug seems
to come from neither MPFR nor GMP.
* INSTALL: mention the failures with Microsoft Visual C++ and how
to skip the corresponding tests.
* doc/README.dev: document MPFR_TESTS_SKIP_CHECK_NULL.
* tests/{tfprintf.c,tsprintf.c}: skip the check_null() tests if
the MPFR_TESTS_SKIP_CHECK_NULL macro is defined.
2025-03-12 Vincent Lefevre <vincent@vinc17.net>
[INSTALL] Moved notes for the CompCert and Intel OneApi compilers.
They were added under the "MPFR for use with Windows Applications"
section[*], but they actually concerned Linux.
[*] commit 5075ec08449b4d59aba7700a127bc7f35718cc3f (SVN r13849)
commit 5543355cd613d1cfdd428b87101b0606648a50fa (SVN r14552)
2025-03-12 Vincent Lefevre <vincent@vinc17.net>
[NEWS] Update for 4.2.2
Added "Changes from version 4.2.1 to version 4.2.2" and moved an item
there (from commit a8cc66a9cc960545514470e41d5bbfaa64d89743).
2025-03-12 Vincent Lefevre <vincent@vinc17.net>
[src/mpfr-longlong.h] __int128__ → __int128 for portability (clang).
This is an update from the current GMP development code
(18482:d6c6436467ab in the GMP repository).
2025-03-12 Vincent Lefevre <vincent@vinc17.net>
[tests/tversion.c] Do not output gmp_*printf info when meaningless.
In particular, mini-gmp does not provide gmp_*printf functions, thus
it does not make any sense to output the corresponding lines.
Until now, one was getting
[tversion] gmp_printf: hhd = yes, lld = yes, jd = yes, td = ?, Lf = ?
[tversion] gmp_snprintf/vsnprintf on "%a" = ?
The "?" corresponded to the absence of the tests, thus could be
regarded as correct. But the "yes" was just the default, thus was
actually incorrect and misleading. Note that this default does not
matter for mini-gmp since the formatted output functions are not
tested: the corresponding test files have
#if defined(HAVE_STDARG) && !defined(MPFR_USE_MINI_GMP)
and we are now using the same test.
2025-03-12 Vincent Lefevre <vincent@vinc17.net>
Detect the use of GMP's buggy vsnprintf replacement at configure time.
* acinclude.m4: detect the use of GMP's buggy vsnprintf replacement
at configure time. With it, the tests of "%a" will be disabled to
avoid an assertion failure in the MPFR testsuite. A warning will
be displayed in the configure output in such a case.
* doc/mpfr.texi: corrected/improved the documentation of the
conversion specification not involving "P" and "R" types.
* tests/tsprintf.c: disable the tests of "%a" if need be (see above).
* tests/tversion.c: output information about gmp_snprintf/vsnprintf
support of "%a".
* NEWS: added an item about this.
2025-03-12 Vincent Lefevre <vincent@vinc17.net>
[tests/tversion.c] Typo in output.
For NPRINTF_L / PRINTF_L (see acinclude.m4), it should be "Lf",
not "Ld" (f: floating-point type; d: signed integer type).
2025-03-07 Vincent Lefevre <vincent@vinc17.net>
[acinclude.m4] Clean up support for binary128 (correction).
commit c37c9d599b9aced92e182507bf223440bbc9a9f1 was incomplete.
We also need to get rid of the "#define _Float128 __float128" in
the configure test (but this one does not affect Clang).
2025-03-06 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
2025-03-06 Vincent Lefevre <vincent@vinc17.net>
Portability: clean up support for binary128 (a.k.a. float128).
This fixes a configure failure with Clang and glibc 2.41:
https://bugs.gentoo.org/949962
https://sourceware.org/bugzilla/show_bug.cgi?id=32750
https://sympa.inria.fr/sympa/arc/mpfr/2025-02/msg00025.html
https://sympa.inria.fr/sympa/arc/mpfr/2025-03/msg00001.html
The issue is the following: in its configure script, GNU MPFR first
tests whether _Float128 is supported (without header inclusions);
if it isn't, MPFR then tests whether __float128 is supported, and
in such a case, it defines _Float128 as __float128 with
AC_DEFINE([_Float128],[__float128],[__float128 fallback])
As Clang supports __float128 but not _Float128 (at least on x86_64,
up to version 19), this fallback is selected. But glibc 2.41 has a
similar fallback, with a typedef:
typedef __float128 _Float128;
With the MPFR _Float128 macro defined as __float128, as soon as some
header such as <stdio.h> is included, this yields
typedef __float128 __float128;
which is incorrect. This first occurs in the
AC_MSG_CHECKING(for GMP_NUMB_BITS and sizeof(mp_limb_t) consistency)
[...]
configure test (in configure.ac), hence the failure of this test and
the configure script.
As an attempt to avoid such an issue with header inclusion, a solution
should be to include the common headers in every configure test.
But since _Float128 is a reserved identifier, we must avoid defining
it as a macro (a typedef would also be incorrect). This is done here,
by defining a mpfr_float128 macro instead. In the public mpfr.h header
file, if the user has defined MPFR_WANT_FLOAT128: mpfr_float128 will
be defined as _Float128 by default (thus this will not change the API),
but if _Float128 is not supported, the user should define mpfr_float128
as __float128 (or an equivalent type that is supported).
* acinclude.m4: changed _Float128 to mpfr_float128 in AC_DEFINE.
* configure.ac: updated a comment about _Float128.
* doc/README.dev: update about MPFR_WANT_FLOAT128 and _Float128.
* doc/mpfr.texi: in "Nomenclature and Types", added a paragraph about
binary128 support and the mpfr_float128 macro; update concerning the
functions related to binary128 (in particular, in the prototypes,
changed _Float128 to mpfr_float128).
* src/mpfr.h: under "#ifdef MPFR_WANT_FLOAT128", define mpfr_float128
as _Float128 if not defined yet; in the prototypes, changed
_Float128 to mpfr_float128.
* src/get_float128.c, src/set_float128.c, tests/tset_float128.c:
changed _Float128 to mpfr_float128; updated comments.
* tests/tversion.c: for "float128 = yes", also output the actual type.
2025-02-13 Vincent Lefevre <vincent@vinc17.net>
[MPFR manual] Added a paragraph for formatted output functions and a/A.
Reference and discussion about the choice of the exponent:
https://sympa.inria.fr/sympa/arc/mpfr/2021-05/msg00002.html
2025-02-12 Vincent Lefevre <vincent@vinc17.net>
[MPFR manual] mpfr_subnormalize: corrected subnormal exponent range.
For mpfr_subnormalize, the subnormal exponent range is
[emin,emin+PREC(x)-2], not [emin,emin+PREC(x)-1].
Indeed, in precision p, there are p-1 exponents in the subnormal domain
(the subnormal numbers are represented with 1 to p-1 significant bits).
Note: the range got corrected in a src/subnormal.c comment on 2011-01-27
(SVN r7437, commit 49086d17298227973015e3c6fa97d95ea533cd43), but the
old range remained in doc/mpfr.texi, where it was added on 2005-04-14
(SVN r3442, commit 1ba17a49315bb425028e8613b89fa7c48d6b2c53).
2025-02-01 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Mention the Pascaline project-team.
[tools/check_mparam.c] Updated the "Contributed" line.
2025-02-01 Vincent Lefevre <vincent@vinc17.net>
Updated the "Contributed" lines.
Replaced
Contributed by the AriC and Caramba projects
by
Contributed by the Pascaline and Caramba projects
in every file (except ChangeLog).
2025-02-01 Vincent Lefevre <vincent@vinc17.net>
[src/set_d128.c] Replaced "Caramel" by "Caramba".
This file was added with an incorrect "Contributed" line in SVN r12766
(commit 39cfc1ede643df1288f3d6fce2eafa408161f2c1).
Note: there is a bug in git, which thinks that this file comes from
src/set_d64.c, thus lists the change from "Caramel" to "Caramba" in
its history, which is wrong!
2025-01-02 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
2025-01-02 Vincent Lefevre <vincent@vinc17.net>
Copyright notice update: added 2025.
Command used:
perl -pi -e 's/ (\d{4}-)?(2024)(?= Free Software)/
" ".($1||"$2-").($2+1)/e' **/*(^/)
under zsh (note: doc/texinfo.tex, from GNU Texinfo, isn't modified).
Removed 2024 from the example in the doc/README.dev file.
2024-12-10 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
2024-12-10 Vincent Lefevre <vincent@vinc17.net>
MPFR manual: replaced variable "bool" by "cond" in examples.
As bool is a keyword in ISO C23, we should not use it as a variable name
(even in examples).
2024-12-10 Vincent Lefevre <vincent@vinc17.net>
[doc/README.dev] Update from the master branch, except new features.
Documentation of features present in master but not in the 4.2 branch
has been removed.
2024-09-09 Vincent Lefevre <vincent@vinc17.net>
[src/get_str.c] Renamed a variable.
Renamed variable "reste" (French) to "rem".
"reste" was triggering a error with codespell 2.3.0.
2024-09-05 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
2024-09-04 Vincent Lefevre <vincent@vinc17.net>
[doc] Update to GNU Free Documentation License 1.3
In practice, this doesn't change anything for MPFR users, but
the FSF address in FDL 1.2 became obsolete, and this also fixes
a bug ("GNU Free Documentation License" was appearing twice in
the Concept Index).
See other details at
https://sympa.inria.fr/sympa/arc/mpfr/2024-09/msg00001.html
At the same time, 2 old tweaks from GMP (added in 2002) have been
removed:
* one to help texinfo-mode (which should have now been fixed);
* one that was using @appendixsec for the addendum (adding "A.1"
before the addendum title and possibly an item in the table of
contents, but this is not really needed and this is strange for
HTML output).
2024-09-04 Vincent Lefevre <vincent@vinc17.net>
[tools/mbench/Makefile] Updated copyright notice (FSF address changed).
The postal address of the FSF has changed. Updated the copyright notice
as in commit 9f2e53ef36ac196348ffafcc45ce8e5cc03fe007.
2024-09-04 Vincent Lefevre <vincent@vinc17.net>
[tests/data/*] Updated copyright notice (FSF address changed).
Some of the files under tests/data contained a very old FSF address.
No longer use the postal address. Updated the copyright notice as in
commit 9f2e53ef36ac196348ffafcc45ce8e5cc03fe007.
File gonnet.mpl updated manually, and other files with
perl -p0i -e 'BEGIN { $s =
"if not, write to the Free Software\n# Foundation, Inc.,".
" 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
} s#\Q$s\E#if not, see <https://www.gnu.org/licenses/>.#g'
2024-09-04 Vincent Lefevre <vincent@vinc17.net>
[tests/data/*] Updated copyright notice (FSF address changed).
The postal address of the FSF has changed. Updated the copyright notice
as in commit 9f2e53ef36ac196348ffafcc45ce8e5cc03fe007.
2024-09-04 Vincent Lefevre <vincent@vinc17.net>
[acinclude.m4] Updated copyright notice (FSF address changed).
The postal address of the FSF has changed. Updated the copyright notice
as in commit 9f2e53ef36ac196348ffafcc45ce8e5cc03fe007.
Moreover, make the copyright notice fit on 80 columns.
2024-09-04 Vincent Lefevre <vincent@vinc17.net>
Updated copyright notice of almost all files (FSF address changed).
This commit in the 4.2 branch is similar to the one in master
(9f2e53ef36ac196348ffafcc45ce8e5cc03fe007).
The postal address of the FSF has changed. Instead of updating it,
use the recommendation from
https://www.gnu.org/licenses/gpl-howto.en.html
for the copyright notice, i.e. no longer use the postal address;
just give the web page <https://www.gnu.org/licenses/>.
This commit updates the copyright notice of almost all files (the
remaining files will be updated later). It has been obtained with
perl -p0i -e 'BEGIN { $s =
"If not, see\nhttps://www.gnu.org/licenses/ or write".
" to the Free Software Foundation, Inc.,\n51 Franklin St,".
" Fifth Floor, Boston, MA 02110-1301, USA." }
s# +\Q$s\E#\nIf not, see <https://www.gnu.org/licenses/>.#g' \
$(git ls-files)
2024-08-23 Vincent Lefevre <vincent@vinc17.net>
[src/logging.c] Replaced the obsolescent ctime() by strftime().
We use the "%Y-%m-%d %H:%M:%S" time format (human-readable ISO 8601),
which is easier to read than the ctime/asctime format.
2024-08-23 Vincent Lefevre <vincent@vinc17.net>
[src/logging.c] Added FIXME for ctime(), deprecated in POSIX & ISO C23.
See https://www.open-std.org/JTC1/SC22/WG14/www/docs/n2566.pdf
for details.
2024-02-15 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
2024-02-15 Vincent Lefevre <vincent@vinc17.net>
Copyright notice update: added 2024.
Command used:
perl -pi -e 's/ (\d{4}-)?(2023)(?= Free Software)/
" ".($1||"$2-").($2+1)/e' **/*(^/)
under zsh.
Removed 2023 from the example in the doc/README.dev file.
2023-12-15 Vincent Lefevre <vincent@vinc17.net>
MPFR manual: added a note for mpfr_free_str.
[doc/mpfr.texi] Updated the month.
2023-12-15 Vincent Lefevre <vincent@vinc17.net>
MPFR manual: corrections for formatted output functions (mpfr_*printf).
Needed due to the possible use of %c with the value 0, thus with
potential (non-terminating) null characters in the output.
* Replaced "string" by "array" (term used in the ISO C standard).
* Document requirements concerning the use of mpfr_free_str to free
the block of memory allocated by mpfr_asprintf / mpfr_vasprintf.
2023-12-13 Vincent Lefevre <vincent@vinc17.net>
Fixed bugs in the formatted output functions triggered with %c on 0.
Possible consequences of these bugs:
- possible memory corruption with custom memory allocators that
do not ignore the size parameter of the "free" function;
- a part of the buffer fails to be overwritten;
- an assertion failure when GNU MPFR has been configured with
assertion checking (--enable-assert).
* src/vasprintf.c: No longer use the strncpy, strncat and strlen
functions (thus mpfr_free_str as well), as they are incorrect
when the buffer contains a non-terminating null character, which
is possible when %c is used with the value 0. Instead, use memcpy
and mpfr_free_func; and removed 2 MPFR_ASSERTD occurrences that
were using strlen.
* src/printf.c: No longer use *printf (with %s) and mpfr_free_str
functions, for the same reason. Instead, use fwrite, memcpy and
mpfr_free_func.
* tests/tfprintf.c, tests/tsprintf.c: added a check_null test to
check mpfr_vfprintf and mpfr_sprintf with %c on 0.
2023-10-20 Vincent Lefevre <vincent@vinc17.net>
English language correction.
Issue detected by codespell 2.2.6. Indeed, according to
https://www.merriam-webster.com/dictionary/determinate
"determinate" is only an adjective, not a verb. 1913 Webster says
that as a verb, it is obsolete.
2023-10-20 Vincent Lefevre <vincent@vinc17.net>
mpfrlint: for codespell, ignore URLs.
This currently avoids a false positive "debbugs" with codespell 2.2.6.
2023-08-31 Vincent Lefevre <vincent@vinc17.net>
[src/sub1sp1_extracted.c] Fixed #include lines.
However, this doesn't change anything in practice since this code
is not used yet (see sub1sp.c and its "#if 0 && ...").
2023-08-31 Vincent Lefevre <vincent@vinc17.net>
[src] Added missing "#define int32_t int" for --enable-formally-proven-code
Bug detected on FreeBSD/RISC-V, reported by Dennis Clarke.
We didn't detect it under Linux because the GNU C Library defines
these types when <stdlib.h> is included:
#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED
# include <sys/types.h> /* we need int32_t... */
Note: the code shouldn't use these standard types with #define, though
this is probably safe as we don't use standard functions/macros here.
2023-08-22 Vincent Lefevre <vincent@vinc17.net>
[src/Makefile.am] Updated -version-info to 8:2:2 for MPFR 4.2.2.
Updated version to 4.2.2-dev (with tools/update-version).
ChangeLog update with tools/update-changelog
Updated version to 4.2.1.
2023-08-18 Vincent Lefevre <vincent@vinc17.net>
ChangeLog update with tools/update-changelog
[tools/gitlog-to-changelog] Improve --strip-cherry-pick for this repository.
Updated version to 4.2.1-rc1.
2023-08-18 Vincent Lefevre <vincent@vinc17.net>
[configure.ac] More checks for the support of old dtags.
There is an attempt to use the old dtags when LD_LIBRARY_PATH is
defined in order to avoid issues with the testsuite when this path
contains some compatible version of the MPFR library. However, the
old dtags do not work everywhere at run time, even when they appear
to work at link time (via -Wl,--disable-new-dtags).
So, let's restrict to *-*-linux-gnu hosts. Unfortunately, this is
not sufficient for Android/Termux, where config.guess currently
identifies the host as GNU/Linux (matching *-*-linux-gnu) instead of
Android, but the old dtags do not work at run time. So, let's also
exclude Termux explicitly (a test to exclude all Android hosts would
be better, though).
Note: in most cases, LD_LIBRARY_PATH is not set, so that there should
be no issues in practice.
2023-08-18 Vincent Lefevre <vincent@vinc17.net>
[NEWS] Update for 4.2.1
2023-08-18 Vincent Lefevre <vincent@vinc17.net>
[src/compound.c] Removed obsolete FIXME.
The implementation changed in 63cc8dfaf4dd93d68bb4f12c0787046f8a525893
(cherry picked in 952fb0f5cc2df1fffde3eb54c462fdae5f123ea6).
2023-08-17 Vincent Lefevre <vincent@vinc17.net>
[strtofr.c] Fixed 2 mpfr_strtofr bugs in case of huge negative exponent.
This fixes the bugs triggered by bug20230606, mentioned at
https://sympa.inria.fr/sympa/arc/mpfr/2023-06/msg00000.html
https://sympa.inria.fr/sympa/arc/mpfr/2023-06/msg00001.html
These bugs are integer overflows, meaning undefined behavior.
In practice, the consequences may be incorrect results. But
for the first bug, it has been seen that a GCC optimization
makes the bug invisible.
Note: There are other issues with the code for huge exponents
(in strtofr.c and the MPFR_SADD_OVERFLOW macro from mpfr-impl.h).
See FIXME from commits
aa30bfe3c868640852fa2510b0f228170e39c0c5
e06a073c157fe95dd24d16d9fc3eef3781b58795
in master. But it is not clear whether the problematic cases can
occur in the context of mpfr_strtofr: my attempts to trigger a
problematic case failed, so that there is a chance that the code
is actually correct; but many parameters are involved, including
those based on the internal structure in limbs, so that it is
difficult to say for now. A closer analysis needs to be done.
Even if correct, the code would need to be cleaned up, proved,
and better documented.
2023-08-17 Vincent Lefevre <vincent@vinc17.net>
[tests/tstrtofr.c] Added testcases for mpfr_strtofr integer overflows.
These bugs occur on inputs with a large negative exponents, such as
"0.1E-99999999999999999999".
A first bug was reported by Michael Jones at
https://sympa.inria.fr/sympa/arc/mpfr/2023-06/msg00000.html
Second bug mentioned at
https://sympa.inria.fr/sympa/arc/mpfr/2023-06/msg00001.html
2023-08-16 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
2023-08-15 Vincent Lefevre <vincent@vinc17.net>
Formatted output functions: fixed ‘+’/space flags on NaN and Inf.
This is about the documentation and behavior of the mpfr_printf,
etc. functions on MPFR numbers (mpfr_t) only, i.e. with the ‘R’
type specifier.
The ‘+’ and space flags were ignored on NaN and Inf. While this
was loosely documented as such (without an explicit mention of
these flags), the GNU MPFR manual also says that the flags have
the same meaning as for the standard ‘printf’ function. So this
was contradictory and regarded as a bug.
Behaving like the ISO C standard should give less surprise, and
this is probably what is expected (better for alignment purpose).
This was partly discussed at
https://sympa.inria.fr/sympa/arc/mpfr/2023-03/msg00003.html
(only for NaN and the ‘+’ flag at that time).
* doc/mpfr.texi: corrected the documentation.
* src/vasprintf.c: fixed (the code is now simpler since the rule
is the same in all cases: real and non-real values).
* tests/tsprintf.c: grouped all the tests of NaN and Inf, and
added much more tests (by constructing the format string in
nested loops instead of just a few hardcoded cases).
2023-08-15 Vincent Lefevre <vincent@vinc17.net>
[src/vasprintf.c] Coding style.
2023-08-10 Vincent Lefevre <vincent@vinc17.net>
[configure.ac] For libgmp, replaced AC_CHECK_LIB by our own link test.
The issue with AC_CHECK_LIB is that it cannot know the prototype of
mpz_init. Thus it declares the function without a prototype, which
is obsolescent in ISO C, so that the compiler may complain (e.g.
with GCC's -Werror=strict-prototypes option, which may be useful to
detect bugs in MPFR). Moreover, the call is done with an incorrect
prototype, which could also be an issue on some systems (currently,
no prototype check is done when linking, but this might change in
the future).
Note also that this new test is more robust, in case GMP changes the
symbol name in the future (the API does not need to be changed).
For the reference:
https://sympa.inria.fr/sympa/arc/mpfr/2023-08/msg00003.html
2023-08-10 Vincent Lefevre <vincent@vinc17.net>
[configure.ac] Do the MPFR_CHECK_MP_LIMB_T_VS_* tests without -lgmp.
Moved the two tests
MPFR_CHECK_MP_LIMB_T_VS_LONG
MPFR_CHECK_MP_LIMB_T_VS_INTMAX
before the LIBS="-lgmp $LIBS" as linking with GMP is not needed for
these tests (only mp_limb_t is used from gmp.h), and it is actually
better not to link with GMP. Indeed, as said for these tests, which
use AC_LINK_IFELSE:
AC_LINK_IFELSE is safer than AC_COMPILE_IFELSE, as it will detect
undefined function-like macros (which otherwise may be regarded
as valid function calls with AC_COMPILE_IFELSE since prototypes
are not required by the C standard).
So linking with GMP could make a failure disappear in case of a bug
somewhere, so that the bug could remain undetected.
2023-08-10 Vincent Lefevre <vincent@vinc17.net>
[acinclude.m4] Replaced <gmp.h> by "gmp.h" for #include.
The tests from configure.ac all use #include "gmp.h", and for the
MPFR build and tests, gmp.h is also included with #include "gmp.h"
(by mpfr-impl.h). For consistency, do the same in acinclude.m4.
Note: In practice, there should not be a difference, except if there
is a gmp.h file somewhere in the MPFR build tree. But this is not
supported, and this may break the build or the testsuite (whatever
is used in the configure tests).
2023-07-19 Vincent Lefevre <vincent@vinc17.net>
[src/mpfr-gmp.h] Fix integer overflow when mp_limb_t < int (mini-gmp).
When mp_limb_t is shorter than int (which is possible with mini-gmp),
an integer promotion in udiv_qr_3by2 triggers an integer overflow,
detected by testing MPFR with
./configure --with-mini-gmp=/path/to/mini-gmp CC=gcc-13 \
CFLAGS="-O2 -fsanitize=undefined -fno-sanitize-recover
-DMINI_GMP_LIMB_TYPE=short"
(many tests fail).
Note that this is not detected by GCC 12 and before, probably due to
an optimization bug that hides the UBsan error.
Moreover, mini-gmp currently has the same bug in gmp_udiv_qr_3by2,
but also in gmp_udiv_qrnnd_preinv; it needs to be fixed too in order
to avoid the failures in the MPFR tests.
2023-07-19 Vincent Lefevre <vincent@vinc17.net>
[tests/trint.c] C2x compat: replaced function without a prototype.
The second parameter of test_fct was "int (*g)()", i.e. a pointer to
a function without a prototype, because 2 kinds of prototypes can be
used:
* one with args (mpfr_ptr, mpfr_srcptr);
* one with args (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t),
but only for mpfr_rint.
This was not a problem thanks to the test "g == &mpfr_rint", i.e.
we knew which one to use. However, as the Clang 16 warning message
says for -Wdeprecated-non-prototype:
"passing arguments to a function without a prototype is deprecated
in all versions of C and is not supported in C2x".
The best way to fix this is to use the prototype with 2 arguments
(mpfr_ptr, mpfr_srcptr) for the parameter, as this is the general
case. All we need to do is to cast &mpfr_rint to this prototype
(this appears only twice).
As these casts trigger the -Wcast-function-type warning when enabled,
let's explicitly disable this warning for GCC and Clang in versions
where it has been introduced.
2023-07-18 Vincent Lefevre <vincent@vinc17.net>
[tests/tfpif.c] Removed "fclose (fh);" under "if (fh == NULL)".
The fopen() failed, so fclose() is not needed, and this is even UB.
Issue reported by Jerry James:
https://sympa.inria.fr/sympa/arc/mpfr/2023-07/msg00002.html
as GNU libc recently added a "nonnull" function attribute:
https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=71d9e0fe766a3c22a730995b9d024960970670af
2023-07-12 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
[src/inp_str.c] Resolved the FIXME on a deprecated use of ungetc.
2023-07-12 Vincent Lefevre <vincent@vinc17.net>
Fixed mpfr_strtofr bug in parse_string when isspace(0) is true.
When isspace(0) is true (allowed by ISO C for non-"C" locales), '\0'
would be skipped if part of the leading whitespace. But it must be
regarded as the terminating null character, from the definition of
a string (before the notion of whitespace is involved). So let's
stop explicitly on '\0'.
Note: in such locales (Mutt's lib.h suggests that some systems are
affected, but this was in 1998), this is a security vulnerability,
because characters after the terminating null character are read to
determine the result.
2023-07-12 Vincent Lefevre <vincent@vinc17.net>
[inp_str.c] mpfr_inp_str: fixed the handling of '\0' in the word.
When '\0' is not a whitespace character (which is almost always the
case in practice), it was not handled correctly. For instance, if the
word is the sequence { '1', '\0', '2' }, the string "1" was passed to
mpfr_set_str because '\0' is regarded as a terminating null character,
and one was getting a valid number while '\0' in a word is necessarily
invalid. This is fixed by putting '*' at the beginning of the string,
which is thus necessarily invalid.
This fixes the failure after c9523bc6fb11c8eefc75524e947e5eb81e682675
(4642e68fb3cd6793a51537cfc86a7cb3ef1c0a4c in the 4.2 branch).
2023-07-12 Vincent Lefevre <vincent@vinc17.net>
[tests/inp_str.dat] Make the word that contains '\0' look like a number.
Changed ".\0." to "1\01" (\0 being the null character) in order to
trigger a failure with the current mpfr_inp_str code. The issue is
that '\0' makes the word look like the string "1", the '\0' being
regarded as a terminating null character. This is incorrect as '\0'
is part of the full word.
2023-07-12 Vincent Lefevre <vincent@vinc17.net>
[manual] Clarified the return value of mpfr_inp_str.
2023-07-12 Vincent Lefevre <vincent@vinc17.net>
Added a '\0' test for mpfr_inp_str.
After ensuring that isspace(0) is false, make sure that '\0' is
handled as a normal non-whitespace character.
Also note that inp_str.dat does not end with a newline character
on purpose, in order to check that a number at the end of the file
(with no whitespace after it) is handled correctly.
2023-07-12 Vincent Lefevre <vincent@vinc17.net>
Improved the mpfr_inp_str tests.
2023-07-12 Vincent Lefevre <vincent@vinc17.net>
[tests/inp_str.dat] Added the other standard whitespace characters.
These are:
* space (' ');
* ^I (horizontal tab '\t');
* ^J (newline '\n', already there);
* ^K (vertical tab '\v');
* ^L (form feed '\f');
* ^M (carriage return '\r').
2023-07-12 Vincent Lefevre <vincent@vinc17.net>
[MPFR manual] Corrected description of mpfr_inp_str.
The description seemed to assume that there was leading and trailing
whitespace (due to "between whitespace"). Also clarify what whitespace
is: defined by isspace(), which depends on the current locale.
2023-06-26 Vincent Lefevre <vincent@vinc17.net>
[tests/tfpif.c] Workaround for GCC bug 106155.
This GCC bug is:
[12/13/14 Regression] spurious "may be used uninitialized" warning
This bug appeared in GCC 12, but it is more serious in GCC 13
(at least for tfpif.c), which warns also at -O2:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106155#c12
Silencing this warning avoids an error when -Werror is used.
2023-06-26 Vincent Lefevre <vincent@vinc17.net>
[src/pow.c] Typo detected by codespell.
2023-05-26 Vincent Lefevre <vincent@vinc17.net>
[tests/tsprintf.c] Fixed large_prec_for_g with 32-bit mpfr_intmax_t.
If mpfr_intmax_t is a 32-bit type (meaning that int is a 32-bit type
too), then allow a failure on "%.2147483648Rg" (return value < 0),
due to a (reasonable) limit on the current implementation.
This can currently be tested with
-std=c90 -Werror -pedantic -Wformat -Wno-error=overlength-strings
2023-05-25 Vincent Lefevre <vincent@vinc17.net>
[tests/tsprintf.c] large_prec_for_g: C++ compatibility.
Note that after this change, the test is still meaningful.
2023-05-23 Vincent Lefevre <vincent@vinc17.net>
[tests/tsprintf.c] Improved large_prec_for_g even more.
2023-05-23 Vincent Lefevre <vincent@vinc17.net>
[tests/tsprintf.c] A few more tests for large_prec_for_g.
... to really check that the results are correct.
2023-05-22 Vincent Lefevre <vincent@vinc17.net>
[tests/trec_sqrt.c] Updated bad_case3() test.
Also check the result, though this is not the real purpose of
this test (the purpose is to detect a stack overflow, which
just makes the program crash).
2023-05-22 Vincent Lefevre <vincent@vinc17.net>
[tests/trec_sqrt.c] Added bad_case3() test.
Simple hardcoded test for the stack overflow bug fixed on 2023-04-17
in commits
270f4df6b3a49caae1cf564dcdc1c55b1c5989eb (master)
934dd8842b4bdeb919a73123203bc8ce56db38d1 (4.2 branch)
Otherwise, this bug was triggered by a generic bad_cases() test,
based on random values.
2023-05-22 Vincent Lefevre <vincent@vinc17.net>
[tests.c] In bad_cases(), improved alignment in debug messages.
Needed as some trec_sqrt tests use a precision with up to 6 digits.
2023-05-17 Vincent Lefevre <vincent@vinc17.net>
[tcompound.c] Updated comment for bug_20230517.
Similar to b8ee84929ef6caf66d7c694cf74534b7190339c5 in master.
2023-05-17 Vincent Lefevre <vincent@vinc17.net>
[compound.c] Improved tests and corresponding comment.
[compound.c] Avoid a possible integer overflow; other improvements.
2023-05-17 Vincent Lefevre <vincent@vinc17.net>
[tcompound.c] Added bug_20230517 (integer overflow in compound.c).
and updated comment for the 4.2 branch.
2023-05-16 Vincent Lefevre <vincent@vinc17.net>
[src/vasprintf.c] Fixed bug triggered by the large_prec_for_g test.
Bug fixes in partition_number():
* Fixed the type of the variable `threshold`: as this variable may
contain spec.prec, it needs to be of type mpfr_intmax_t.
This was the cause of the "MPFR assertion failed: threshold >= 1"
(or the incorrect size when assertions are not checked) with the
large_prec_for_g test.
* Also make sure that the 4th argument given to mpfr_get_str fits
in a size_t (if it doesn't, return with a failure, as done when
reaching other environmental limits).
In practice, this could be an issue only with a 32-bit size_t and
mpfr_exp_t on more than 32 bits.
2023-05-16 Vincent Lefevre <vincent@vinc17.net>
[tests/tsprintf.c] Added large_prec_for_g, which makes MPFR crash.
On a 64-bit Linux machine, the case %.2147483648Rg yields an incorrect
size computation and MPFR wants to allocate 18446744071562070545 bytes.
This case should either succeed or fail as reaching an environmental
limit like with glibc (note that the precision does not fit in an int).
2023-05-16 Vincent Lefevre <vincent@vinc17.net>
[manual] Detailed mpfr_compound_si description (special cases).
The MPFR manual should be self-contained. So, let's describe
the special cases of mpfr_compound_si that do not follow the
usual rules (or are ambiguous), instead of just referring to
the IEEE 754 standard.
2023-05-16 Vincent Lefevre <vincent@vinc17.net>
[compound.c] Fixes concerning the overflow and underflow detection.
Note: It is not clear whether overflow and underflow detection is
now correct. There may still be potential issues, but currently,
after these fixes, no tests yield any failure (however, we do not
test some of the most problematic cases yet; this should be a
future improvement of ofuf_thresholds in the master branch).
Note: compound.c now corresponds to the version in master.
2023-05-16 Vincent Lefevre <vincent@vinc17.net>
[tcompound.c] Added various tests.
* Added bug_20230206, based on a bug report by Patrick Pélissier.
* Implemented the inverse function x^(1/n) - 1 of the compound function
on non-special cases: useful to build and check hard-to-round cases
and test the behavior close to the overflow and underflow thresholds.
* Check hard-to-round cases for n = 2, 3, 4, 5, 17, 120 (like in tpow.c)
and also call the generic tests for these values.
* Added bug_20230211 (buggy overflow detection for 32 bits after the
fix of bug_20230206 in master).
and updated two comments for the 4.2 branch.
Note: Every change has been cherry picked from master, except a
TODO comment and the ofuf_thresholds() calls (feature not yet in
the 4.2 branch). And bug_20230206 has not been fixed yet in the
4.2 branch.
2023-05-15 Vincent Lefevre <vincent@vinc17.net>
[tests.c] In bad_cases(), handle the inex_inv case better.
The "f exact while f^(-1) inexact" case is actually almost the same
as the "inverse doesn't match" case. So, handle it in the same way,
avoiding a fatal error (which would be bad for the non-developers):
a few occurrences of this case should be regarded as normal, and if
this occurs too often, this will be detected like the other case
when the MPFR_CHECK_BADCASES environment variable is set.
This is useful for future bad_cases() calls.
2023-05-12 Vincent Lefevre <vincent@vinc17.net>
[src/pow.c] Fixed a corner case in mpfr_pow_general (bug20230427).
This fixes the bug triggered by bug20230427 added in commit 85bc7331c:
bug20230427 triggers another bug in mpfr_pow_general, which
occurs in destination precision 1 in the particular case of
rounding to nearest, z * 2^k = 2^(emin - 2) and real result
larger than this value.
This corresponds to a particular hunk of a diff from master,
or with a cherry-pick from commits
ef31bb98521ecf7d100593346e2f4d7a7724c573
27bc582645e513200c56c99a9da83eb4e47c669a
e1f9f14a3829081503c027f4d38eb51778da26e6
ff5012b61d5e5fee5156c57b8aa8fc1739c2a771
3b63024c640181cb5fe7fd87bac94a8f942a07da
4f5de980be290687ac1409aa02873e9e0dd1a030
467b17025a5b05e888ed7117d6730ac0954f01cb
restoring the changes not related to this hunk.
2023-05-12 Vincent Lefevre <vincent@vinc17.net>
[src/pow.c] Fixed error bound in mpfr_pow_general (bug20230213).
This fixes the bug triggered by bug20230213 added in commit 85bc7331c:
bug20230213 triggers a bug in mpfr_pow_general, where the
computation of the error term is incorrect when there has
been an intermediate underflow or overflow (k_non_zero is
true); the error analysis is correct, but the associated
code is not (due to the change of the value of a variable).
2023-05-12 Vincent Lefevre <vincent@vinc17.net>
[tests/texp10.c] Added bug20230213 and bug20230427 tests.
* bug20230213 triggers a bug in mpfr_pow_general, where the
computation of the error term is incorrect when there has
been an intermediate underflow or overflow (k_non_zero is
true); the error analysis is correct, but the associated
code is not (due to the change of the value of a variable).
* bug20230427 triggers another bug in mpfr_pow_general, which
occurs in destination precision 1 in the particular case of
rounding to nearest, z * 2^k = 2^(emin - 2) and real result
larger than this value.
Note: The code has been copied from master (and because of changes
of other parts of the code by commits in master, cherry-picking
was impossible or much more complex). These bugs have been fixed
in master, but these fixes will be provided in the 4.2 branch by
separate commits in order to facilitate testing (e.g., to check
that one gets failures without these fixes).
Both bugs were found by the current ofuf_thresholds tests in master
(but there are currently issues with these tests).
2023-05-12 Vincent Lefevre <vincent@vinc17.net>
Added bad_cases tests for mpfr_exp2, mpfr_exp10, mpfr_log2, mpfr_log10.
[tests/tui_pow.c] Added generic tests.
Added /treldiff to tests/.gitignore
2023-05-12 Vincent Lefevre <vincent@vinc17.net>
[tests/tui_pow.c] Some small corrections.
* Improved organization and style.
* Replaced output to stderr by output to stdout (as usual).
* Added missing "\n" at the end of 2 printf strings.
2023-05-05 Vincent Lefevre <vincent@vinc17.net>
[tests/tset_float128.c] check_special(): output values in error messages.
2023-05-04 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
[src/Makefile.am] Updated -version-info to 8:1:2 for MPFR 4.2.1.
2023-05-04 Vincent Lefevre <vincent@vinc17.net>
Updated version to 4.2.1-dev (with tools/update-version).
This should have been done just after 4.2.0 was published,
i.e. just after the 4.2.0 tag, but I forgot.
2023-05-04 Vincent Lefevre <vincent@vinc17.net>
Added treldiff.c test, assuming that mpfr_reldiff behaves as documented.
Basically, mpfr_reldiff is tested with all special numbers and some
regular ones, with various precisions and all the rounding modes
(including MPFR_RNDF since in practice, the implementation cannot
exploit it to give failures). The result is just compared with the
basic algorithm (as documented), which does not use any optimization
(i.e. it does not treat special numbers in a particular way): the
formula is just computed using the precision of the destination and
the provided rounding mode for all operations (thus, in general,
this mpfr_reldiff function is not correctly rounded).
This test would detect the bugs on special values that have been fixed
in 81e4d4427eed0404292ac69c17f986a6cb640562.
2023-05-04 Vincent Lefevre <vincent@vinc17.net>
[src/reldiff.c] Fixed mpfr_reldiff on special values.
The mpfr_reldiff function, which computes |b-c|/b, was buggy on
special values, e.g. on the following (b,c) values:
* (+Inf,+Inf) gave ±0 instead of NaN (like NaN/Inf).
* (+0,+0) gave 1 instead of NaN (like 0/0).
* (+0,1) gave 1 instead of Inf (like 1/0).
The sign of 0 for (+Inf,+Inf) or (-Inf,-Inf) was not set, i.e. it
was just the sign of the destination before the call. This made
the "reuse" test fail after its update to check the sign of zero
(commit e6d47b8f5ab666e658e05fe282e3490a06c0278e), as the results
were not consistent.
For b = 0, there was a comment "reldiff = abs(c)/c = sign(c)", which
mixed up b and c (one should divide by b, not by c), and this could
explain some bugs.
Note that this comment (and associated code), if corrected, seemed to
imply that for c = 0 and b finite (and non-zero?), the intent was to
return sign(b). However, this does not follow the documentation, which
says that the formula is just computed using the precision of the
destination and the provided rounding mode for all operations. So the
final result may be affected by intermediate roundings, while sign(b)
assumes that the function is correctly rounded, which is not the case
for this function (just there for compatibility with MPF). Deviating
from the documentation in some cases could break some properties (like
monotonicity?).
These bugs were not found because mpfr_reldiff is not tested at all,
except by "reuse", which just checks some consistency when a variable
is reused for the destination.
2023-05-04 Vincent Lefevre <vincent@vinc17.net>
[tests/reuse.c] Check the sign of zero; other improvements.
* Replaced the static mpfr_compare by "! SAME_VAL" to do a complete
comparison of MPFR numbers. In particular, this checks the sign of
zero, revealing a bug in mpfr_reldiff (failure 0 vs -0).
* More consistent output of errors (use of mpfr_dump for ref and res
in all cases).
* Code style.
2023-04-20 Vincent Lefevre <vincent@vinc17.net>
[tests/tsprintf.c] Updated comment for snprintf_size.
Like commit 524c7bf4ff4f0dc1c83bc9a36d621a4a9607ee3b in master,
but without the "Code reworked..." line, as this isn't done in
the 4.2 branch.
2023-04-17 Vincent Lefevre <vincent@vinc17.net>
[tests/tsprintf.c] Update about the glibc 2.37 bug.
This updates commit 78ff7526dea103f73acc98d9a9ffa7429050c0dd.
2023-04-17 Vincent Lefevre <vincent@vinc17.net>
Fixed possible stack overflow in mpfr_rec_sqrt + non-regression test.
* src/rec_sqrt.c: use a standard Ziv loop.
* tests/trec_sqrt.c: added a non-regression test with bad_cases().
Details:
The issue is due to many allocations in the stack (with alloca(),
via MPFR_TMP_LIMBS_ALLOC) on cases that are very hard to round (from
an analysis on a testcase given by Fredrik Johansson, not included
here) with a not too large destination precision: many iterations
are needed due to a specific Ziv loop where the working precision
is increased additively, and it is not possible to free the data
allocated in the previous iterations.
The fix is to use a standard Ziv loop, as it increases the working
precision multiplicatively instead of additively, so that it needs
much fewer iterations in such cases. This should also make the code
much faster in such cases.
This issue was not detected by bad_cases() in tests/trec_sqrt.c
because to be able to reproduce it, one needs a much larger precision
than the ones tested with the chosen parameters.
A new bad_cases() instance, with a large enough precision for the
input (py = 9999, psup = 120000, giving px = py + psup = 129999),
is added here in order to be able to reproduce the failure.
The testcase given by Fredrik Johansson is not included here because
it uses a very large string for the input (the point of bad_cases()
is to generate such an input automatically).
2023-04-15 Vincent Lefevre <vincent@vinc17.net>
[src] Since mpfr_prec_t is signed, changed %Pu to %Pd.
Note: Even the mpfr_prec_t is not supposed to contain negative values
(at least in these cases), this may still be useful in case of bugs.
2023-04-14 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
2023-04-14 Vincent Lefevre <vincent@vinc17.net>
[manual] Improved example on how to print a mpfr_prec_t value.
mpfr_prec_t is signed, so that it is better to use %Pd than %Pu.
2023-04-12 Vincent Lefevre <vincent@vinc17.net>
[src/mpfr-thread.h] Output a message in case of lock/unlock failure.
The message is output just before abort(), so that one can know
the cause of the abort().
Tested with --enable-shared-cache CC=i686-w64-mingw32-gcc-posix
(which has the effect to enable POSIX threads inside MPFR via
AX_PTHREAD, with MinGW), where
MPFR_LOCK_DECL(mpfr_lock_memory)
int main (void)
{
MPFR_LOCK_WRITE(mpfr_lock_memory);
return 0;
}
fails with the "MPFR lock failure" message and exit status 3 due to
the abort(). Note that there is no failure with GNU/Linux.
2023-03-22 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
[manual] Detailed mpfr_set_str a bit more.
2023-02-28 Vincent Lefevre <vincent@vinc17.net>
[tests] Added/improved tests for the log, log2 and log10 functions.
* Added log(1) test.
* For the special tests of these functions: test in all rounding modes
and use MPFR_IS_ZERO(x) rather than mpfr_cmp_ui(x,0) to exclude NaN.
2023-02-21 Vincent Lefevre <vincent@vinc17.net>
Fixed mpfr_ui_pow_ui infinite loop in case of overflow, with testcases.
* src/ui_pow_ui.c:
- Cleanup. In particular, renamed a variable as this was confusing:
one usually uses y = f(x), but here it was x = f(y,n). Let's use
x = f(k,n) since here, both arguments are integers.
- Added mpfr_ui_pow_ui logging.
- Handle the +Inf case in the Ziv iteration.
This is done by calling mpfr_pow_z (this should be a bit more
efficient than calling mpfr_pow_ui, which would eventually call
mpfr_pow_z to handle the overflow).
Note that mpfr_pow_z avoids spurious overflows by internally
rounding toward 1 (for positive results). This might be an
alternative solution here to avoid calling mpfr_pow_z.
* tests/tlog10.c: added bug20230213 test: infinite loop in mpfr_log10,
which was occurring before the above bug fix.
* tests/tui_pow.c: added testcase for this mpfr_ui_pow_ui bug.
2023-02-14 Vincent Lefevre <vincent@vinc17.net>
For -dev versions, enable timeout support by default (when possible).
* configure.ac:
- added dev_version variable, set to 1 for -dev versions;
- updated --enable-tests-timeout handling;
- use $dev_version for a test that already considers -dev versions.
* acinclude.m4:
- handle absent --enable-tests-timeout option and case "yes".
2023-02-03 Vincent Lefevre <vincent@vinc17.net>
[tests/tsprintf.c] Added a comment about a failure with glibc 2.37.
Klaus Dittrich reported in the MPFR mailing-list that the modified
test from commit 4f03d40b5a5ceeb3126dc51c3511bdceef3bab19 was still
failing with the glibc git. But this time, this is entirely a bug
in glibc, present in glibc 2.37:
https://sourceware.org/bugzilla/show_bug.cgi?id=30068
with even a possible buffer overflow in sprintf (as I guessed
in Comment 2 and was confirmed later). → CVE-2023-25139
Thus the test still fails with glibc 2.37, and the future fix of
the glibc vulnerability should also fix this failure.
2023-02-01 Vincent Lefevre <vincent@vinc17.net>
[tests/{tfprintf.c,tprintf.c}] Fix when decimal_point > 1 byte.
These tests were failing in locales where localeconv()->decimal_point
takes several bytes, such as in the ps_AF locale under Linux, where
decimal_point is U+066B ARABIC DECIMAL SEPARATOR, which takes 2 bytes
(d9 ab, as encoded in UTF-8).
Note: A multibyte decimal-point is currently honored only with
native C types (via the C library), so that the length of the
decimal-point had to be taken into account only for a small number
of tests. Once a multibyte decimal-point is supported for the MPFR
numbers ("R" type specifier), the expected lengths in many tests
will have to be updated. See the code about MPFR_DECIMAL_POINT in
"src/mpfr-impl.h".
2023-02-01 Vincent Lefevre <vincent@vinc17.net>
[tests] Consistency in the error messages.
2023-02-01 Vincent Lefevre <vincent@vinc17.net>
[src/mpfr-impl.h] Updated FIXME comment for decimal_point/thousands_sep.
* Added info for the fr_FR.UTF-8 and ps_AF locales.
* Removed the sentence about the C standard (since multibyte characters
are used for decimal_point and thousands_sep in practice, the term
"character" could have a broader mean, e.g. the abstract one in 3.7).
This completes commit 00ad47c8ec4ba31ad0afd067286f2fab8d7283ff.
2023-01-11 Vincent Lefevre <vincent@vinc17.net>
[tests/tsprintf.c] Modified a buggy test of the thousands separator.
The test
check_vsprintf ("+01,234,567 :", "%0+ -'13.10Pd:", (mpfr_prec_t) 1234567);
is based on the output from glibc up to 2.36, which is incorrect:
https://sourceware.org/bugzilla/show_bug.cgi?id=23432
The GNU C Library has apparently been partially fixed in its Git
repository for the future 2.37, since a tsprintf failure has been
reported (this is a bug in this test, not in the MPFR library):
https://sympa.inria.fr/sympa/arc/mpfr/2023-01/msg00001.html
So, modified the test to avoid the particular case of leading zeros
due to the precision field larger than the number of digits. This
case has already been tested without the thousands separator (where
there are no issues with the C libraries), so that we do not miss
much testing. Added a comment explaining the issue and a possible
solution for future testing of this particular case (if need be).
2023-01-06 Vincent Lefevre <vincent@vinc17.net>
[BUGS] Added a note for a bug that cannot occur in practice.
[doc/README.dev] Updated "To make a release".
ChangeLog update with tools/update-changelog
Updated version to 4.2.0.
2023-01-05 Vincent Lefevre <vincent@vinc17.net>
[src/zeta.c] For s < 1/2, use mpfr_sinpi now that it is available.
This replaces the use of mpfr_sin with a multiplication by π and
resolves a potential (but very unlikely) underflow issue; a comment
is updated, with an explanation about that.
2023-01-05 Vincent Lefevre <vincent@vinc17.net>
Updated copyright notice for all the Makefile.am files.
To be similar to the other files, added:
* Contributed by the AriC and Caramba projects, INRIA.
* This file is part of the GNU MPFR Library.
(These Makefile.am files still have their special license.)
2023-01-05 Vincent Lefevre <vincent@vinc17.net>
Copyright notice update: added 2023.
Command used:
perl -pi -e 's/ (\d{4}-)?(2022)(?= Free Software)/
" ".($1||"$2-").($2+1)/e' **/*(^/)
under zsh, reverting doc/texinfo.tex (copied from GNU Texinfo)
and the tools/mbench directory (not distributed with MPFR).
Removed 2022 from the example in the doc/README.dev file.
2023-01-04 Vincent Lefevre <vincent@vinc17.net>
[src/zeta.c] Updated a comment about mpfr_sinpi.
[doc/mpfr.texi] Updated the month.
2022-12-17 Vincent Lefevre <vincent@vinc17.net>
[tools/mpfrlint] Updated the __gmp_ test.
* No longer exclude '^tests/tabort_defalloc': this is no longer needed
since commit 41bed90365fd1296cd05f49c813ab0a0b151a62e in 2017.
* Exclude a new comment.
2022-12-15 Vincent Lefevre <vincent@vinc17.net>
[tests/tsprintf.c] Added a comment about a possible test failure.
In short, if the error is like
repl-vsnprintf.c:389: GNU MP assertion failed: len < total_width
this is a GMP (or MPIR) issue in __gmp_replacement_vsnprintf.
References:
https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00001.html
https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00027.html
https://gmplib.org/list-archives/gmp-bugs/2022-October/005200.html
2022-12-15 Vincent Lefevre <vincent@vinc17.net>
Documentation: update about requirements for building MPFR.
* doc/mpfr.texi: mentioned C++ compilers and the potential issue
with type punning via union.
* INSTALL: completed (0) to be similar to what doc/mpfr.texi says.
2022-12-15 Vincent Lefevre <vincent@vinc17.net>
[tools/update-version] Fixed replacements in "INSTALL".
Due to commit 4885b57add174f390eff29abe14d12fb5ebd6a61, only the first
of the 4 replacements in INSTALL was done.
2022-12-14 Vincent Lefevre <vincent@vinc17.net>
[configure.ac] Added a comment about a possible AM_PROG_AR failure.
The reason is that on some platforms, GMP chooses a non-default mode
(a.k.a. ABI). MPFR has some workaround thanks to GMP_CC and GMP_CFLAGS
provided by GMP, but this may not be sufficient, e.g. on power-aix. In
such a case, the user needs to either force GMP to use the default mode
or provide an AR variable for MPFR's configure; see INSTALL file.
2022-12-13 Vincent Lefevre <vincent@vinc17.net>
ChangeLog update with tools/update-changelog
[doc/README.dev] "To make a release": update.
[NEWS] Update for the 4.2.0 release: binary compatibility.
[doc/README.dev] "To make a release": update about <branch>-root tag.
[README] Updated URL of the README.dev file (for the 4.2 branch).
Updated version to 4.2.0-rc1.
ChangeLog update with tools/update-changelog
[src/Makefile.am] Updated -version-info to 8:0:2 for MPFR 4.2.0.
[manual] Section "API Compatibility": lexicographic order.
2022-12-13 Vincent Lefevre <vincent@vinc17.net>
[NEWS,doc/mpfr.texi] Clarification for mpfr_pown.
Note: Though implemented as a macro, it is mainly documented as a
function (not as a macro) because it cannot be distinguished from
a function (for instance, one can take the function pointer).
2022-12-13 Vincent Lefevre <vincent@vinc17.net>
[tests/tget_flt.c] Added a comment.
2022-12-13 Vincent Lefevre <vincent@vinc17.net>
[doc/README.dev] Updated a pathname.
This should have been done with the source reorganization on 2010-08-17
(see commit a6c9580d75b967e0d121d606edf03515ada45a7a).
2022-12-12 Vincent Lefevre <vincent@vinc17.net>
Updated doc/texinfo.tex to 2022-12-10.11
The only change concerning MPFR is that in the PDF manual, the
section titles in the table of contents are now clickable.
2022-12-12 Vincent Lefevre <vincent@vinc17.net>
[tests/tstdint.c] Added missing conditional config.h inclusion.
The consequence of the missing inclusion is that on build systems that
need config.h (some MS Windows ones?), this test would be skipped.
2022-12-12 Vincent Lefevre <vincent@vinc17.net>
[doc/README.dev] Clarification about the need of config.h inclusion.
[tests/tstdint.c] Updated comment.
2022-12-12 Vincent Lefevre <vincent@vinc17.net>
[tests/tstdint.c] Added a comment.
In short, this test allows one to detect that mpfr.h can be included
without any other inclusion before. For instance, it can detect any
unprotected use of FILE in the mpfr.h header file.
2022-12-12 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Added comment about the update of the version string.
2022-12-12 Vincent Lefevre <vincent@vinc17.net>
Revert "changed %.8e into %a to avoid potential decimal output bug"
This reverts commit e18ebe062042c01ad44b238df212f229bd251cd6.
We currently still support C90 (in particular, here this concerns
the C library of the platform).
2022-12-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed %.8e into %a to avoid potential decimal output bug
(cf https://sympa.inria.fr/sympa/arc/mpfr/2022-12/msg00015.html)
2022-12-12 Vincent Lefevre <vincent@vinc17.net>
[src/mpfr-cvers.h] Added a comment about (major,minor) tests.
2022-12-12 Vincent Lefevre <vincent@vinc17.net>
[tests/mpfr-test.h] Improved the change done a few hours earlier.
The code introduced by commit 558a246e612fa230623fb0dfa0570b1c626a103c
was changing the conditions under which IGNORE_CPP_COMPAT is defined
(to ignore -Wc++-compat with a GCC pragma). Let's simplify it by using
our __MPFR_GNUC() macro. The only possible change of behavior is that
this excludes Intel's compiler (which is probably better as testing
the GCC version on Intel's compiler doesn't make sense).
Note concerning the behavior of Intel icx 2021.3.0 under Linux: Before
the above commit, it was not excluded; but after this above commit, it
was excluded as it identifies itself as GCC 4.2.1 (like Clang). With
this new change, it is still excluded. Anyway, it ignores -Wc++-compat
and doesn't complain on the GCC pragmas, so the above choice currently
doesn't matter.
2022-12-11 Vincent Lefevre <vincent@vinc17.net>
Avoid a testsuite build failure with GCC older than 4.6.
In tests/mpfr-test.h, we must not define IGNORE_CPP_COMPAT for
GCC < 4.6 as it does not allow "#pragma GCC diagnostic" inside
functions. Moreover, let's define it for all Clang versions,
including MS Windows (where __GNUC__ is not defined).
Changes based on information and a patch by Bruno Haible:
https://sympa.inria.fr/sympa/arc/mpfr/2022-12/msg00007.html
2022-12-09 Vincent Lefevre <vincent@vinc17.net>
[autogen.sh] Improved comment about the INSTALL file.
[autogen.sh] Updated comment about the INSTALL file.
2022-12-07 Vincent Lefevre <vincent@vinc17.net>
[Makefile.am] Corrected a note about version-ext.sh in EXTRA_DIST.
In short, since commit a6e9d69047a358bfd1aaa1418d9999b8abe0bb62,
version-ext.sh should no longer be needed in EXTRA_DIST because
it will no longer be executed. But since this script is small,
we distribute it just in case it would be used.
2022-12-06 Vincent Lefevre <vincent@vinc17.net>
Fixed version-ext.sh usage, avoiding "make check" failure and incorrect
version information.
The use of version-ext.sh could be incorrect when the MPFR source tree
was in a Git working tree:
* "make check" could fail in some cases, see the bug report by
Trevor Spiteri:
https://sympa.inria.fr/sympa/arc/mpfr/2022-12/msg00000.html
* Version information output by "make check" could be incorrect.
Changes:
* tests/Makefile.am: For output_info, we now also check whether
$(top_srcdir)/.git is readable in order to avoid escaping the
MPFR source tree. In particular, if one extracts an MPFR tarball
within a Git working tree (e.g. after "make dist"), then running
"make check" in this extracted source tree will work as expected,
giving correct version information.
* tests/Makefile.am, version-ext.sh: Updated comments. In particular,
moved a comment from tests/Makefile.am to version-ext.sh; this should
have been done in commit 0d3abf10458ca4fdd26daa77a02f7f1f4e361deb,
i.e. when version-ext.sh was created.
2022-12-06 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Removed useless leading spaces in examples.
All examples should have at least one line that does not have
leading spaces. Texinfo already indents examples in all cases.
2022-12-06 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Removed useless single quotes in an example.
Texinfo changes these quotes to U+2019 RIGHT SINGLE QUOTATION MARK
with TeX output (PDF), and it is no part of ASCII, which might yield
issues in case of reuse in actual code. The subsequent example does
not use quotes, so let's do the same.
2022-12-06 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
2022-12-06 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Added a FIXME about the @need issue.
Context:
https://lists.gnu.org/archive/html/bug-texinfo/2022-11/msg00228.html
2022-11-30 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] 2 replacements of ASCII "-" by @minus{}.
Note: these should be the last remaining issues with the minus sign.
2022-11-30 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] 3 replacements of ASCII "-" by @minus{}.
2022-11-28 Vincent Lefevre <vincent@vinc17.net>
[src/mpfr-impl.h] Added a comment for the umul_hi(h, x, y) macro.
Say that MPFR_NEED_LONGLONG_H needs to be defined to use it.
This macro is defined unconditionally (this is not an issue) because
MPFR_NEED_LONGLONG_H has been undefined earlier in mpfr-impl.h (why?),
so we can no longer test MPFR_NEED_LONGLONG_H.
2022-11-28 Vincent Lefevre <vincent@vinc17.net>
Get rid of the _mulx_u64 intrinsic.
It was found that this intrinsic has issues with ICC, Cygwin, and more
generally, the Microsoft toolchain; even MPFR's strong detection at
configure time (an AC_RUN_IFELSE test) was not sufficient. Moreover,
_mulx_u64 is useless as umul_ppmm from mpfr-longlong.h does the same
thing from the spec point of view (and thus was used as the fallback).
So, if there is a reliable way to use the mulx instruction whenever
possible (including via compiler optimization and the use of __int128
when available, as done by GCC's _mulx_u64 implementation), this
should be done in the umul_ppmm definition. Alternatively, we could
redefine umul_ppmm for the use of __int128 when possible.
Context and references:
https://sympa.inria.fr/sympa/arc/mpfr/2022-11/msg00008.html
https://sympa.inria.fr/sympa/arc/mpfr/2022-11/msg00027.html
https://sympa.inria.fr/sympa/arc/mpfr/2022-11/msg00030.html
https://sympa.inria.fr/sympa/arc/mpfr/2022-11/msg00031.html
https://stackoverflow.com/a/54815033/3782797
* src: corrected the umul_hi(h, x, y) macro (the only code that was
using _mulx_u64) and moved it from invert_limb.h and invsqrt_limb.h
to mpfr-impl.h.
* tests/tversion.c: removed the output info about _mulx_u64.
* acinclude.m4: removed the check for _mulx_u64.
2022-11-25 Vincent Lefevre <vincent@vinc17.net>
[NEWS] Added release name for 4.2.0: "fondue savoyarde".
mpfr-longlong.h update from the current GMP development code.
2022-11-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[doc/mini-gmp] updated svn revision to git revision
[tools/bench/README] likewise
2022-11-23 Vincent Lefevre <vincent@vinc17.net>
[tools/build-patch] Update for patches generated by git.
Such patches are of the form
--- a/path/name
+++ b/path/name
so with need to use the -p1 patch option if the --- line
starts with "--- a/".
2022-11-23 Vincent Lefevre <vincent@vinc17.net>
[tools/build-patch] Updated a comment for Git.
2022-11-22 Vincent Lefevre <vincent@vinc17.net>
Fix mpfr_custom_get_kind() macro bug.
* src/mpfr.h: in the mpfr_custom_get_kind() macro, changed mpfr_ptr to
mpfr_srcptr for _x to agree with the function prototype, in order to
avoid a compilation failure of user code in some cases. This bug was
introduced by commit 9f94e0311ed53d0c64d4fbca249d19cc4888027e, which
introduced the temporary variable _x to avoid an incorrect number of
evaluations of the x argument.
* tests/tstckintc.c: improved the tests to detect this bug.
This should fix mpfr bug #1.
Bug initially reported by FX Coudert:
https://github.com/CGAL/cgal/issues/7064
It affects Fedora Linux:
https://bugzilla.redhat.com/show_bug.cgi?id=2144197
2022-11-17 Vincent Lefevre <vincent@vinc17.net>
ChangeLog update with tools/update-changelog
2022-11-17 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Changed a @need command due to a bug in @need.
A page break was introduced for "@need 800" while there was the
space for 12 lines of text + 3 paragraph skips, as seen after the
change. That's much more than the 8/10 in needed by "@need 800".
So the page break was incorrect!
2022-11-17 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Added @need commands to prevent page breaks.
2022-11-17 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Hack to improve TeX output (PDF).
Define a @fptt macro to fix the TeX output (PDF) issue mentioned
in commit 1877cf9aef96c2280aab60f67e5e7302676d199a (if the style
of HTML output is fixed to be more like TeX output, this code will
need an update).
2022-11-17 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Added a note about a TeX output (PDF) issue.
This affects "[]", which appears in the mpfr_sum and mpfr_dot
function prototypes.
2022-11-16 Vincent Lefevre <vincent@vinc17.net>
Consistency: s/non(zero|positive|negative)/non-$1/
Changed non(zero|positive|negative) to non-zero, etc. for consistency
(target files: src & tests directory, doc/README.dev, doc/mpfr.texi).
Did it this way because the former was in minority (21 vs 165) and
the IEEE 754-2019 standard uses a hyphen.
2022-11-16 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Final typographic and style corrections.
Actually a bit more than that, since this affected the textual part
of the PDF file (used for searching and copy-paste): the underscore
character needs to be in something like @code or @samp to be present
in this textual part.
2022-11-16 Vincent Lefevre <vincent@vinc17.net>
Updated version to 4.2.0-dev with the new tools/update-version.
All the expected replacements have now *really* been done thanks to
commit a4dec8938b85afbca2d448ae2dd4e0d3ab72b00c.
2022-11-16 Vincent Lefevre <vincent@vinc17.net>
[tools/update-version] Fixed replacements in "doc/mpfr.texi".
The change done in commits 4885b57add174f390eff29abe14d12fb5ebd6a61
and 7eda345244f503359d14cd5bae1ed42865d39ee8 was incorrect as there
are 2 identical replacements to do in "doc/mpfr.texi", not just one.
The previous code changed lines separately. But for the check of
failing replacements, a global change on the full file is needed;
thus the 2 identical replacements were expected to be done at the
same time, so that the "g" modifier is needed on the regexp.
2022-11-15 Vincent Lefevre <vincent@vinc17.net>
Updated doc/texinfo.tex to 2022-11-13.08
[TODO] Added URL for the Clang multiprecision arithmetic builtins.
2022-11-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] add reference to __builtin_addcll
2022-11-11 Vincent Lefevre <vincent@vinc17.net>
[doc/README.dev] "To make a release": mention the README file.
2022-11-10 Vincent Lefevre <vincent@vinc17.net>
Updated version to 4.2.0-dev with the new tools/update-version.
All the expected replacements have now been done in doc/mpfr.texi,
thanks to commit 7eda345244f503359d14cd5bae1ed42865d39ee8.
2022-11-10 Vincent Lefevre <vincent@vinc17.net>
[tools/update-version] Updated a replacement.
This was needed due to a change done on 2018-09-07 in doc/mpfr.texi
(commit 84796030c7c732e8e66e5e650ec929c541dd207f / SVN r13153), as
said in the previous commit.
2022-11-10 Vincent Lefevre <vincent@vinc17.net>
[tools/update-version] Check for failing replacements.
This script currently fails due to a change done on 2018-09-07 in
doc/mpfr.texi (commit 84796030c7c732e8e66e5e650ec929c541dd207f /
SVN r13153), and this issue remained unnoticed until now,
in particular due to the absence of checking for failing
replacements.
The penultimate non-patchlevel release was done on 2017-12-25, i.e.
before this change, and no patchlevel releases have been done yet
for the latest release, so that no current releases are affected by
this issue, but the 4.1.1 release candidate is affected.
2022-11-09 Vincent Lefevre <vincent@vinc17.net>
Updated doc/texinfo.tex to 2022-11-07.17 (from GNU Texinfo 7.0).
2022-11-08 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Updated comment about an issue with math operators.
[doc/mpfr.texi] Added a comment about an issue with math operators.
[doc/mpfr.texi] Another typographic improvement.
2022-11-08 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Added a comment for \mathop with a single character.
Workaround to avoid an alignment issue described at
https://tex.stackexchange.com/questions/41261/mathop-shifts-the-baseline-declaremathoperator-doesnt
when the math operator @EXP{} was just "E".
2022-11-08 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] More typographic corrections and improvements.
Also did some changes to improve the consistency.
2022-11-07 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Added a comment (ref to the GNU Texinfo spacing bug).
2022-11-07 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] More typographic corrections for math expressions.
* Note a spacing bug in texi2dvi from GNU Texinfo 6.8 with macros
(found while testing).
* Define macro @EXP (and \EXP in TeX).
* Typographic corrections for math expressions.
2022-11-07 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Added a comment.
[doc/mpfr.texi] Improved typography and English usage.
[doc/mpfr.texi] More documentation for the @m{T,N} macro.
2022-11-04 Vincent Lefevre <vincent@vinc17.net>
[src/set_zero.c] IEEE 754 terminology in a comment.
2022-11-04 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Improved consistency about infinity and zero.
Note: one writes "+0", but "positive zero", not "plus zero", etc.
See the IEEE 754 standard.
2022-11-03 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Minor corrections related to infinity.
This completes commit 75041697429ba467c448195b4f0863d0eb92e20c
done in 2021-02.
2022-11-03 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Style corrections.
2022-11-03 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Style improvement for TeX (PDF) output.
For mpfr_acosu, mpfr_asinu, mpfr_atanu and mpfr_atan2u, make the style
similar to the one for mpfr_cosu, mpfr_sinu and mpfr_tanu.
2022-11-03 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] More use of @tm (typographic corrections).
2022-11-01 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
[doc/mpfr.texi] Completed the description of the @mm macro.
2022-11-01 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Improved typography for the formatted output functions.
For what is displayed (or output text), @samp{...} should be used,
as already done in some cases (note: never enclose @samp{...} with
quotes as this is already done in the Texinfo processing).
2022-11-01 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Improved the readability of an example.
2022-11-01 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] More typographic corrections for TeX (PDF) output.
* Define a @mm{T} macro to be used for math symbols outside of @m,
@tm, @code or similar (but not for the "+" in "C++").
* Use this macro when applicable.
* Add missing @tm for some simple math expressions.
2022-10-28 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Added tm macro and improved math typography.
2022-10-27 Vincent Lefevre <vincent@vinc17.net>
[tools/nightly-test] Corrections and cleanup.
In particular, reverted most changes done in SVN r9832
(commit 1ca64e34907c5a968ca7fcc3d22cdca2ede7f28b):
* switch back to /bin/sh (bash is not needed by this script);
* do not use --enable-decimal-float and --enable-float128 with
a C++ compiler as they are not supported (configure fails).
And for the "git clone" command:
* take the BRANCH argument into account;
* use --depth 1 to avoid an unnecessary full clone.
Better g++ detection (e.g. g++-12 or /usr/bin/g++, not just g++).
2022-10-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tools/nightly-test] change to git
2022-10-26 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Cosmetic consistency change in the .texi source.
Let's use the same code for "start of header" and "end of header".
2022-10-25 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Updated @m{T,N} macro, with comments.
The @m{T,N} macro is used for math formatting and textual equivalent
(human-readable text). However, it was generating emphasis in HTML,
which was unexpected. This commit removes the use of @math for the
Info and HTML output (for Info, this does not change anything, and
for HTML, this removes the incorrect emphasis). It also updates the
documentation and adds a comment about the history of this macro and
various issues related to it.
2022-10-24 Vincent Lefevre <vincent@vinc17.net>
Updated doc/texinfo.tex to 2022-10-18.18
Update from the texinfo Git repository.
* The generated mpfr.html and mpfr.info files remain the same.
* For mpfr.pdf, there are some spacing improvements.
2022-10-11 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
2022-10-11 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Fix formatting for mpfr_can_round.
Consistency changes and use of no-break space (@tie{}).
Note: Once @math{...} has been clarified/fixed, apply the suggestions
by Ivan Panchenko:
https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00020.html
2022-10-11 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Consistency correction for mpfr_get_str_ndigits.
Use @math{m} (instead of just m) as already used a bit earlier.
But the use of @math may need to be revised. See
https://lists.gnu.org/archive/html/bug-texinfo/2022-10/msg00045.html
2022-10-11 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Improved spacing.
2 changes suggested by Ivan Panchenko at
https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00020.html
but do not use @math{...} as with HTML output, it puts everything
in italics with <em class='math'>...</em>, which is incorrect for
things like digits.
However, this behavior of @math{...} is not what is documented in
the GNU Texinfo 6.8 manual, which says:
The '@math' command has no special effect on the Info output or (by
default) the HTML output, merely outputting the contents verbatim.
2022-10-11 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Added a comment about the use of @math{...}.
2022-10-11 Vincent Lefevre <vincent@vinc17.net>
[doc/mpfr.texi] Fixed italicization for mpfr_eint.
An issue reported by Ivan Panchenko:
https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00020.html
I also had to fix the occurrences of k in @ifnottex for HTML.
2022-10-11 Vincent Lefevre <vincent@vinc17.net>
Fixed some minor mistakes.
* Minor mistakes in doc/mpfr.texi reported by Ivan Panchenko:
https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00020.html
(spacing and italicization not fixed yet).
* Fixed similar mistakes in the other files.
2022-10-11 Vincent Lefevre <vincent@vinc17.net>
mpfrlint: updated text checking (spelling...)
2022-10-05 Vincent Lefevre <vincent@vinc17.net>
ChangeLog update with tools/update-changelog
[tools/update-changelog] Use UTC to generate the ChangeLog file.
2022-10-05 Vincent Lefevre <vincent@vinc17.net>
[tools/gitlog-to-changelog] Improve --strip-cherry-pick for this repository.
Remove all the cherry-pick information from what can be found in
the 4.1 branch.
2022-10-05 Vincent Lefevre <vincent@vinc17.net>
[doc/README.dev] "To make a release": precision about the tag.
[doc/README.dev] "To make a release": correction about the tag.
[tests/tnrandom.c] Fixed compilation failure with mini-gmp.
2022-10-05 Vincent Lefevre <vincent@vinc17.net>
[tools] Improvement for the ChangeLog generation.
* tools/gitlog-to-changelog: modified regexp for --strip-cherry-pick
to support some log message in the MPFR Git repository (currently,
only commit 4c5973c2f0153a3a4708cab79ed142e72c4a50eb, but similar
ones could occur in the future).
* tools/update-changelog: use this --strip-cherry-pick option.
2022-10-05 Vincent Lefevre <vincent@vinc17.net>
[doc/README.dev] "To make a release": update for the ChangeLog file.
See commit 1dc281851408fc7d330576327545857c93392521 for the reason.
2022-10-05 Vincent Lefevre <vincent@vinc17.net>
[doc/README.dev] "To make a release": update for abi-compliance-checker.
Added an example of use of build-multi and abi-compliance-checker
for the 4.1.1 release candidate.
2022-10-05 Vincent Lefevre <vincent@vinc17.net>
Fix for "make dist" / "make distcheck" about ChangeLog regeneration.
The "ChangeLog: FORCE" rule in Makefile.am was incompatible with
GNU Automake's "make dist" / "make distcheck" because GNU Automake
creates a "distdir-am: $(DISTFILES)" rule, which was regenerating
the ChangeLog file in "make dist"; such a change is not allowed
(it fails with "make distcheck") and not wanted anyway.
Issue introduced by commit 52652c41978089be57aca658bacf19b758c73be4.
* Added tools/update-changelog sh script to update the ChangeLog file.
* Makefile.am: replaced the incorrect rule mentioned above by a rule
update-changelog to run tools/update-changelog; added a comment.
2022-10-05 Vincent Lefevre <vincent@vinc17.net>
[doc/README.dev] "To make a release": update for abi-compliance-checker.
2022-10-05 Vincent Lefevre <vincent@vinc17.net>
[doc/README.dev] "To make a release": update about build-multi.
Needed due to the switch from InriaForge to Inria GitLab.
2022-10-04 Vincent Lefevre <vincent@vinc17.net>
[tests/tnrandom.c] Improved the support non-default seed.
As suggested by mpfrlint, use a different randstate rather than
re-seeding mpfr_rands (with a fixed seed). So the corresponding
test no longer needs to be at the end.
2022-10-04 Vincent Lefevre <vincent@vinc17.net>
[tests/tnrandom.c] Added a comment for tnrandom with an argument.
This concerns a slowness of mpfr_clear() in the MPFR tests due to
the O(n) search in tests_memory_find(), used to detect memory leaks.
2022-10-04 Vincent Lefevre <vincent@vinc17.net>
[tests/tnrandom.c] Support non-default seed (GMP_CHECK_RANDOMIZE).
This fixes a failure due to 4c5973c2f0153a3a4708cab79ed142e72c4a50eb
when GMP_CHECK_RANDOMIZE is set.
2022-10-04 Vincent Lefevre <vincent@vinc17.net>
[doc/README.dev] "To make a release": added note about GMP_CHECK_RANDOMIZE.
2022-10-03 Vincent Lefevre <vincent@vinc17.net>
[doc/update-faq] Ensure that the code is run from the doc directory.
[tools/coverage] Typo.
[doc/README.dev] Updated "To make a release".
Updated URLs.
Updated URLs.
Updated URLs.
2022-10-03 Vincent Lefevre <vincent@vinc17.net>
[doc/README.dev] Corrected "To make a release".
The addition of the <branch>-root tag applies only after a branch
is created, i.e. for non-patchlevel releases (item 0).
2022-09-14 Vincent Lefevre <vincent@vinc17.net>
Updated doc/texinfo.tex to 2022-09-14.01
Update from the texinfo Git repository.
* The generated mpfr.html and mpfr.info files remain the same.
* For mpfr.pdf, this version fixes all the issues I've reported.
2022-09-09 Vincent Lefevre <vincent@vinc17.net>
[doc/README.dev] Updated "To make a release".
[src/mpfr-impl.h] Added TODO for MPFR_MAYBE_UNUSED.
2022-09-07 Vincent Lefevre <vincent@vinc17.net>
[doc/README.dev] New C2x draft (N3054).
2022-09-05 Vincent Lefevre <vincent@vinc17.net>
[doc/README.dev] Updated "To make a release" (about texinfo.tex).
[autogen.sh] Added a comment about files we handle in the repository.
2022-09-05 Vincent Lefevre <vincent@vinc17.net>
[doc/.gitignore] Removed /texinfo.tex since it is in the repository.
doc/texinfo.tex was added to the Subversion repository on 2017-11-27
and the svn:ignore property should have been updated at this time,
but I forgot.
2022-09-03 Vincent Lefevre <vincent@vinc17.net>
[tests/RRTest.c] Replaced "egrep" by "grep -E" in comment.
In the GNU grep 3.8 release notes:
The egrep and fgrep commands, which have been deprecated since
release 2.5.3 (2007), now warn that they are obsolescent and should
be replaced by grep -E and grep -F.
2022-08-27 Vincent Lefevre <vincent@vinc17.net>
[doc/README.dev] Changed "trunk" (Subversion) to "master" (Git).
[doc/README.dev] New C2x draft (N3047).
2022-08-26 Vincent Lefevre <vincent@vinc17.net>
[tools/announce-text] Updated key ID for the future releases.
2022-08-19 Vincent Lefevre <vincent@vinc17.net>
[codespell.ignore] Ignore RO and SIZ (codespell 2.2.0).
Corrected spelling mistake found by codespell 2.2.0
2022-08-16 Vincent Lefevre <vincent@vinc17.net>
Cleanup about decimal floating constants matching ".0d".
In general, the trailing 0 is not needed, and even not wanted
(this has the effect to decrease the quantum by 1 compared to the
"natural value"), though the quantum is not yet specified in MPFR.
In tests/tget_set_d64.c, kept this trailing 0 in mpfr_set_decimal64,
but added similar tests without this trailing 0.
2022-08-08 Vincent Lefevre <vincent@vinc17.net>
version-ext.sh: replaced a remaining "sed" by "$SED".
Thanks to Trevor Spiteri for noticing that.
2022-08-08 Vincent Lefevre <vincent@vinc17.net>
version-ext.sh: handle the case where no Git branches are found.
This should solve the issue reported on 2022-08-08 by Trevor Spiteri:
https://sympa.inria.fr/sympa/arc/mpfr/2022-08/msg00002.html
2022-07-08 Vincent Lefevre <vincent@vinc17.net>
doc/mpfr.texi: Updated the month.
2022-07-08 Vincent Lefevre <vincent@vinc17.net>
[manual] Added a note for mpfr_nexttoward (exceptions, sign of 0).
Also applies to mpfr_nextabove and mpfr_nextbelow, whose description
refers to mpfr_nexttoward.
See additional details in the comment in the src/next.c source.
2022-07-08 Vincent Lefevre <vincent@vinc17.net>
[src/next.c] Updated comment (exceptions and sign of 0).
Concerned functions: mpfr_nexttoward, mpfr_nextabove, mpfr_nextbelow.
Clarification was needed due to the differences between the
IEEE 754-1985, IEEE 754-2008/2019 and ISO C99+ standards on
similar functions (nextafter, nextUp, nextDown).
2022-07-06 Vincent Lefevre <vincent@vinc17.net>
[configure.ac] Update about GNU gold ld and LD_RUN_PATH.
* Comment update: added URL of the upstream bug report.
* Mention the GNU gold linker in the warning.
2022-06-13 Vincent Lefevre <vincent@vinc17.net>
[README] Replaced "Subversion" by "Git".
[doc/README.dev] Completed the update for Git.
[doc/README.dev] Moved and clarified a paragraph about the tests.
2022-06-11 Vincent Lefevre <vincent@vinc17.net>
Fixed tsprintf %a tests when GMP and libc produce different outputs.
With some 32-bit mingw-w64 implementations, the GMP and libc
formatted output functions produce different outputs for %a (this
is not completely specified by the C standard). In the MPFR tests
introduced by commit 22db634294c27eabbc0c55b04267d3ab5bc9a648 on
2022-05-19, the comparison is done between the MPFR result, which
is based on GMP, and the libc result; hence a failure.
So, changed the 4 concerned tests of tests/tsprintf.c to compare
the MPFR result with the GMP result (for the other tests on the
C native types, it is still better to compare MPFR with libc).
Bug report:
https://sympa.inria.fr/sympa/arc/mpfr/2022-06/msg00004.html
2022-06-10 Vincent Lefevre <vincent@vinc17.net>
[tools/announce-text] Completed the update for Git.
[tools/announce-text] Check that one has an annotated tag at origin.
[tools/announce-text] Update.
[tools/announce-text] Minor git-related simplification.
[tools/announce-text] Started the update for Git.
[tools/announce-text] Removed code and text related to InriaForge (obsolete).
2022-06-08 Vincent Lefevre <vincent@vinc17.net>
Updated www.open-std.org URLs: http → https.
2022-06-07 Vincent Lefevre <vincent@vinc17.net>
[doc/README.dev] New C2x draft (N2912).
2022-06-02 Vincent Lefevre <vincent@vinc17.net>
[doc/README.dev] Updated "To make a release".
This completes the update for Git and Inria GitLab. But the
tools/announce-text script has not been updated yet.
2022-06-02 Vincent Lefevre <vincent@vinc17.net>
[tools/export-release] Completed the script.
Fix the timestamps so that each file or directory has a timestamp
corresponding to its last change.
2022-06-02 Vincent Lefevre <vincent@vinc17.net>
Added tools/export-release sh script.
Export some release identified by a Git tag in order to get a tarball.
2022-06-02 Vincent Lefevre <vincent@vinc17.net>
[mbench] Updated Copyright lines.
Added tools/mbench/.gitignore file.
[mbench/Makefile] Added missing dependencies on timp.h
2022-06-02 Vincent Lefevre <vincent@vinc17.net>
[mbench/timp.h] Bug fix for "make rt" on 32-bit machines. Reindent.
For the code used when USE_CLOCK_MONOTONIC is defined ("make rt"):
If both time_t (type of tv_sec) and long are 32-bit types, there was
an overflow in the timp_rdtsc() macro, due to the multiplication of
the tv_sec (coming from CLOCK_MONOTONIC, thus typically larger than 5)
by the value 1000000000 (≈ 2^32 / 4.3) of type unsigned long, because
this multiplication would be done on 32 bits. Changed the type of the
constant to unsigned long long so that the operations are done with
the target type unsigned long long (at least).
2022-06-02 Vincent Lefevre <vincent@vinc17.net>
[mbench] Removed trailing whitespace.
2022-06-01 Vincent Lefevre <vincent@vinc17.net>
[doc/README.dev] Updated "To make a release" (about ChangeLog).
ChangeLog update with "make ChangeLog"
[tools/ck-copyright-notice] Better indentation.
[tools/ck-copyright-notice] Support the future ChangeLog format.
2022-06-01 Vincent Lefevre <vincent@vinc17.net>
[tools/ck-copyright-notice] Better error handling.
Note: One currently gets a failure with the future ChangeLog format,
obtained with gitlog-to-changelog (via "make ChangeLog").
2022-06-01 Vincent Lefevre <vincent@vinc17.net>
Support ChangeLog regeneration from a Git working tree.
* Added tools/gitlog-to-changelog file from Gnulib.
* Makefile.am: added a rule for the Changelog file.
Needed as the GNU MPFR repository has been converted to Git.
The '%B%n' format string is used rather than the default '%s%n%b%n'
because Git's commit message convention is not always followed
(in particular before the conversion of the repository to Git).
Note: In the future, if there is any change to do to a Git commit
message (typo, etc.), the --amend option could be used.
2022-05-30 Vincent Lefevre <vincent@vinc17.net>
Started to update doc/README.dev for Git.
2022-05-19 Vincent Lefevre <vincent@vinc17.net>
[manual] Clarify the description of the formatted output functions.
Emphasize the fact that the conv specifier F is not supported, except
for the type specifier R (for mpfr_t arguments).
2022-05-19 Vincent Lefevre <vincent@vinc17.net>
[src/vasprintf.c] Consistency with the non-support of %F by GMP.
The F conversion specifier as defined by the C standard is not
supported by the GMP formatted output functions because it is
already used as the type specifier for mpf_t (which comes before
the conversion specifier). Let's take this fact into account.
Note: this conversion specifier is still allowed with MPFR numbers
(e.g., "%RF") to avoid breaking the compatibility (it has never
been an issue).
2022-05-19 Vincent Lefevre <vincent@vinc17.net>
[tests/tsprintf.c] native_types: added tests to differentiate %G from %g.
The tested value -1.25 had the same output -1.25 with %g and %G.
Added 7.62939453125e-6 (= 2^(-17)), whose output by %g and %G has
an exponent introduced by 'e' and 'E' respectively.
2022-05-19 Vincent Lefevre <vincent@vinc17.net>
[tests/tsprintf.c] native_types: added tests for %a, %A, %la, %lA
2022-05-19 Vincent Lefevre <vincent@vinc17.net>
[tests/tsprintf.c] Added/fixed native_types tests.
* Added tests of %E and %G.
* Removed the test of %lF, which is not supported by GMP (and yields
a heap buffer overflow, detected by AddressSanitizer): even though
there would be no ambiguity in this particular case, it is not
supported because the standard F conversion specifier isn't due to
the use of the F type specifier for mpf_t.
2022-05-19 Vincent Lefevre <vincent@vinc17.net>
[tests/tsprintf.c] Correction for %la, %lA, %le, %lE, %lf, %lF, %lg, %lG
Reverted commit 2b60707d22717e0f582be5de680d7fa7004e2512 and added
tests for the missing %lE, %lF, %lG in native_types, protected by
a #if (see commit ecd3279f3dfd281fc8e51aac7509b76b27497a6c) as they
may need an ISO C99 compiler.
Note: The test of %la and %lA was incorrect because the first digit
is unspecified (and really depends on the C library). A test could
be added in the future, perhaps also with a configure test, because
the compiler may support ISO C99 but not the C library (there was
an issue like that at least with old versions of Solaris).
2022-05-19 Vincent Lefevre <vincent@vinc17.net>
[tests/tsprintf.c] native_types: test %le, %lf, %lg only with C99+
… since the l length modifier for the FP types (a, A, e, E, f, F, g, G
conversion specifiers) has been added in ISO C99.
2022-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tsprintf.c] added tests for %la, %lA, %le, %lE, %lf, %lF, %lg, %lG
2022-05-19 Vincent Lefevre <vincent@vinc17.net>
[src/vasprintf.c] Bug fix for the l length modifier with FP type.
The l length modifier is now supported with the a, A, e, E, f, F, g, G
conversion specifiers, as required by the ISO C standard on printf and
other formatted output functions. As specified, it is just ignored.
For that, to improve code maintainability, the CASE_LONG_ARG() macro
was simplified:
* The c and s conversion specifiers are always supported by this
macro (this is a potential fix for implementations with incomplete
wide-character handling, without any guarantee to work).
* A MPFR_RET_NEVER_GO_HERE() for unsupported conversion specifiers
has been added (if specinfo_is_valid() is consistent with this
macro, one should effectively never reach this case).
2022-05-19 Vincent Lefevre <vincent@vinc17.net>
[src/vasprintf.c] Made case ordering consistent (no change of behavior).
The "case" ordering in specinfo_is_valid() and in CONSUME_VA_ARG() for
integer specifiers and for floating-point specifiers was not the same.
Improved code readability by using the same order across the code
(also OK with CASE_LONG_ARG()).
2022-05-19 Vincent Lefevre <vincent@vinc17.net>
[tests/tsprintf.c] native_types: test %le, %lf, %lg.
These tests are currently failing. Bug reported by Paul Zimmermann
for %la (but %a and %la are not currently tested, because of their
possible lack of support in the C library).
2022-05-19 Vincent Lefevre <vincent@vinc17.net>
[tests/tsprintf.c] native_types: same tests for i as for d.
[tests/tnrandom.c] With mini-gmp, disable the tests that check the values.
[acinclude.m4] Added a comment about the unreliable NAN != NAN check.
2022-05-19 Vincent Lefevre <vincent@vinc17.net>
[tests/cmp_str.c] In mpfr_cmp_str, check that s is a valid number.
In the tests, the string provided to mpfr_cmp_str is normally a
valid number (the common use is to check that a result is equal to
some hardcoded value given by a string). A string s that does not
represent a valid number probably has a typo, and the consequence
was that in such a case, any non-NaN result was regarded as correct.
2022-05-19 Vincent Lefevre <vincent@vinc17.net>
[tests/tsubnormal.c] Removed invalid testcase bug20220518.
The testcase bug20220518 added in
commit 7640a832fbf0b7f9057889e076cf7f42fe4f8e58
was invalid as the mpfr_subnormalize input was not in the current
exponent range (it had exponent -1074 while emin = -1073).
As usual, inputs outside the current exponent range are not supported
(the mpfr_subnormalize description in the manual is explicit:
"The subnormal exponent range is from ‘emin’ to ‘emin+PREC(X)-1’.").
Supporting values outside the current exponent range is not needed
in practice (see examples in the manual).
2022-05-19 Vincent Lefevre <vincent@vinc17.net>
[tests/tsubnormal.c] Code style in coverage().
[tests/tsubnormal.c] Added missing cleanup at the end of bug20220518.
[tests/tsubnormal.c] Simplified bug20220518.
[tests/tsubnormal.c] C90 compatibility.
2022-05-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tsubnormal.c] added test case that exhibits a bug in mpfr_subnormalize
[src/subnormal.c] fixed typo
2022-05-18 Vincent Lefevre <vincent@vinc17.net>
[tests/tnrandom.c] Check some mpfr_nrandom values to detect changes.
The values should be the same on different machines and with
different MPFR versions (or this would be an ABI change).
2022-05-17 Vincent Lefevre <vincent@vinc17.net>
For version-ext.sh, use "$SED" instead of "sed".
* tests/Makefile.am: pass $SED to version-ext.sh.
* version-ext.sh: use $SED (default to "sed").
2022-05-17 Vincent Lefevre <vincent@vinc17.net>
Fixed version-ext.sh when in an origin/* remote branch.
2022-05-13 Vincent Lefevre <vincent@vinc17.net>
Tests: the check of subnormal support is done when running the tests.
The check of support for double and float subnormals was done at
configure time, but it could not be done when cross-compiling.
Since it is useful only for the tests, it is better to do it when
running the tests.
* tests/tests.c: added have_subnorm_dbl() and have_subnorm_flt()
functions to check support for double and float subnormals;
removed such a check from mpfr_test_init().
* tests/mpfr-test.h: declare these functions.
* tests/tget_flt.c: use have_subnorm_flt() instead of HAVE_SUBNORM_FLT.
* tests/tset_d.c, tests/tsprintf.c: removed the useless test of
HAVE_SUBNORM_DBL (this was a minor optimization).
* acinclude.m4: updated comment about the check of subnormal support;
minor improvement in the check for float subnormals.
Note: keep the check just for build information (it might be useful
for debugging or in case of a related bug report).
* tools/mpfrlint: check that the HAVE_SUBNORM_* macros are not used.
2022-05-13 Vincent Lefevre <vincent@vinc17.net>
[acinclude.m4] Updated comment about the check of subnormal numbers.
* Removed text about DBL_HAS_SUBNORM and FLT_HAS_SUBNORM (which
was added in commit 3ee30bcf34bfb5d042e5a1aa9b7cf8a42b51cb91
on 2019-10-01) since these macros should be made obsolescent:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2981.htm
And their use would be incorrect in C++ (different meaning):
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2988.pdf
* A bit more details.
* Added a FIXME for better cross-compiling support.
2022-05-10 Vincent Lefevre <vincent@vinc17.net>
doc/mpfr.texi: Updated the month.
[NEWS] Mention the fixes of the macros of the custom interface.
2022-05-10 Vincent Lefevre <vincent@vinc17.net>
Improved 2 macros of the custom interface and updated manual.
* src/mpfr.h: The mpfr_custom_init() and mpfr_custom_move() macros
could not be used in contexts where an expression was expected.
This limitation was not necessary and is now removed.
* doc/mpfr.texi: In commit 743a63c480318f60ac2a953007bac08f37b7d71d,
the manual was clarified about the macros of the custom interface,
i.e. behaving like macros, which may evaluate arguments multiple
times or none. This was incomplete and error prone, in addition
to being undocumented in the current MPFR versions. Almost all
issues have now been fixed (the only minor limitation is that the
mpfr_custom_init_set() macro is not usable in contexts where an
expression is expected, but this cannot yield unnoticed bugs).
So, changed the manual to reflect these fixes and added an item
in Section "API Compatibility" (also removed an obsolete comment
about that from src/mpfr.h).
2022-05-08 Vincent Lefevre <vincent@vinc17.net>
Improved a comment.
2022-05-06 Vincent Lefevre <vincent@vinc17.net>
[doc/README.dev] Added text about tests of function-like macros.
2022-05-06 Vincent Lefevre <vincent@vinc17.net>
In comments, changed "stack interface" to "custom interface".
* src/mpfr.h: changed "stack interface" and "mpfr_stack interface"
to "(the) custom interface".
* src/stack_interface.c: changed "mpfr_stack" to "custom interface".
The mpfr_stack_ prefix was changed to mpfr_custom_ in 2005
(see commit 0a010e55364d1cc3681273eee70c91dab0a61946) and
the MPFR manual says "Custom Interface".
2022-05-06 Vincent Lefevre <vincent@vinc17.net>
Other corrections about the custom interface.
This time, the build of tstckintc was failing with "gcc -Wc++-compat"
because __cplusplus is not defined.
* tests/tstckintc.c: use the same solution as already done in
tcopysign.c (commit 3dbf3387669030b264317202806fc3d938704618),
i.e. ignore -Wc++-compat with "GCC diagnostic" pragmas when
testing with void * arguments.
Also simplified the code thanks to the VOIDP_CAST macro that
was introduced at that time (cast to void * except in C++):
commit 9076e47ceb41c60cab526870757f2098ced5c26d.
Everything should now be OK.
2022-05-06 Vincent Lefevre <vincent@vinc17.net>
Other corrections about the custom interface.
In C++, implicit pointer conversions are forbidden. This made the
build of tstckintc fail with g++ and -DMPFR_USE_NO_MACRO in CFLAGS.
* src/mpfr.h: do not attempt to support implicit pointer conversions
with a C++ compiler in the macros, since this is not supported by
the functions, i.e. removed 2 useless casts; this is a bit like the
code like before commit 9f94e0311ed53d0c64d4fbca249d19cc4888027e.
* tests/tstckintc.c: test a "void *" argument instead of mpfr_ptr only
in C, not C++ (which cannot work if -DMPFR_USE_NO_MACRO is used).
Note: for newx and newx2, revert to the code that was before the
commit mentioned above.
2022-05-06 Vincent Lefevre <vincent@vinc17.net>
Testsuite: C++11 compatibility (GCC's -Wliteral-suffix).
With "g++ -Werror", several .c files in the "tests" directory were
yielding
error: invalid suffix on literal; C++11 requires a space between
literal and string macro [-Werror=literal-suffix]
2022-05-06 Vincent Lefevre <vincent@vinc17.net>
Fixed build failure of user code using mpfr_custom_get_kind() / g++.
* src/mpfr.h: added missing cast in the mpfr_custom_get_kind() macro
(invalid C++ code, but this is in a GNU __extension__ block, thus
unfortunately, it was not detected by "gcc -Werror=c++-compat";
see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105499>).
Bug introduced in commit 9f94e0311ed53d0c64d4fbca249d19cc4888027e.
2022-05-05 Vincent Lefevre <vincent@vinc17.net>
Fixed issues with the macro versions of the custom interface.
* src/mpfr.h: fixed issues with the mpfr_custom_* macros:
- a "void *" argument instead of mpfr_ptr could make the
compilation fail (with the function, the conversion is
implicit, thus this should be accepted by the macro);
- some arguments could be evaluated 0 times, which is wrong
if their evaluation has side effects.
* tests/tstckintc.c: added various tests to check these kinds
of issues.
2022-05-05 Vincent Lefevre <vincent@vinc17.net>
Avoid a -Wsign-conversion warning that could occur in user code.
Issue reported by Andreas Enge concerning PariTwine.
* src/mpfr.h: added a cast in the mpfr_custom_get_size() macro so that
a size_t * size_t product is done instead of mpfr_prec_t * size_t
(where mpfr_prec_t is signed and size_t is unsigned, triggering a
warning when GCC's -Wsign-conversion is used).
2022-05-05 Vincent Lefevre <vincent@vinc17.net>
Fixed mpfr_custom_get_size() macro and added non-regression test.
* src/mpfr.h: added missing cast in mpfr_custom_get_size() macro.
* tests/tstckintc.c: added testcases (would fail on LP64 platforms).
2022-04-22 Vincent Lefevre <vincent@vinc17.net>
[mpfr-impl.h] Rounding mode macros: added assertion; updated comments.
2022-04-22 Vincent Lefevre <vincent@vinc17.net>
Updated TODO to improve mpfr_pow_si/sj for negative n.
I thought that there would be some drawbacks with the underflow
by computing the power before the division, but this actually
seems to be more or less equivalent (mpfr_pow_general is already
used for MPFR_RNDN).
Also, removed the suggestion with rescaling as this may not be
possible for large values of n compared to the maximum exponent.
2022-04-17 Vincent Lefevre <vincent@vinc17.net>
Corrected comment about the ".POSIX" line in all Makefile.am files.
2022-04-08 Vincent Lefevre <vincent@vinc17.net>
[TODO] Added idea of implementation for to_chars.
2022-04-07 Vincent Lefevre <vincent@vinc17.net>
[manual] For sqrt and rec_sqrt, mention the relation with rootn.
Updated TODO about rootn (now that mpfr_rootn_si is implemented).
2022-04-06 Vincent Lefevre <vincent@vinc17.net>
[src/pow_si.c] Added a static assertion and comments about code improvement.
2022-04-06 Vincent Lefevre <vincent@vinc17.net>
[src/log_ui.c] Updated comments to better understand that the code is correct.
Note: these are the same as in the 4.1 branch (commit 8f357dd48).
So the ULONG2LONG macro was not necessary, but let's keep it for
maintainability. This does not change for GCC and Clang. But tcc
even generates shorter x86_64 code with this macro.
2022-04-06 Vincent Lefevre <vincent@vinc17.net>
[tests/tpow.c] Improved/added bad_cases tests of mpfr_pow_ui/si (x^n).
* For n odd, generate negative values y (thus x) with a probability
1/2 (instead of a very low probability), as there is no reason to
favor positive values in this case.
* Added bad_cases tests of mpfr_pow_si with n negative (with the help
of mpfr_rootn_si). This was the TODO from commit 58fc9fb0e.
2022-04-06 Vincent Lefevre <vincent@vinc17.net>
[tests] In some bad_cases messages, output the name of the function.
This is useful for tests with several bad_cases invocations,
such as tpow, troot and trootn_si.
2022-04-06 Vincent Lefevre <vincent@vinc17.net>
[tests/{troot,trootn_si}.c] Added a comment about bad_cases.
2022-04-05 Vincent Lefevre <vincent@vinc17.net>
Added /trootn_si to tests/.gitignore
2022-04-05 Vincent Lefevre <vincent@vinc17.net>
src/root.c: for mpfr_rootn_si with k = -2, use mpfr_rec_sqrt.
The mpfr_rec_sqrt code is faster than the generic mpfr_rootn_si code
for k = -2.
Also added a TODO: if MPFR_WANT_ASSERT >= 2, do both computations
and compare the results.
2022-04-05 Vincent Lefevre <vincent@vinc17.net>
tests/trootn_si.c: fixed typo in error messages.
2022-04-05 Vincent Lefevre <vincent@vinc17.net>
src/pow_ui.c: bug fix with mini-gmp and limb < unsigned long.
The initial precision was too small for large values of n.
→ tpow and trootn_si no longer fail.
2022-04-05 Vincent Lefevre <vincent@vinc17.net>
tests/tpow.c: better generic tests for mpfr_pow_ui and mpfr_pow_si.
Changed INT_RAND_FUNCTION, in particular to use randulong / randlong
for mini-gmp, yielding an assertion failure when MINI_GMP_LIMB_TYPE
is shorter than "long".
2022-04-05 Vincent Lefevre <vincent@vinc17.net>
mpfrlint: ignore mini-gmp in some test.
2022-04-05 Vincent Lefevre <vincent@vinc17.net>
mpfr_rootn_si(): bug fix for n = LONG_MIN; added generic tests.
* src/root.c: bug fix in mpfr_rootn_si() for n = LONG_MIN
(integer overflow on -n, triggered by the generic tests).
* tests/trootn_si.c: added generic tests.
Note: they currently yield an assertion failure in pow_ui.c with
mini-gmp when MINI_GMP_LIMB_TYPE is shorter than "long".
2022-04-05 Vincent Lefevre <vincent@vinc17.net>
[tests] Add randulong and randlong functions (useful with mini-gmp).
To get a random unsigned long, randlimb() is currently used, but with
mini-gmp, a limb may be shorter than an unsigned long, so that one
does not get all the possible "unsigned long" values. So these new
randulong() and randlong() functions should now be used instead.
2022-04-05 Vincent Lefevre <vincent@vinc17.net>
Define a ULONG2LONG() macro to convert from unsigned long to long.
The conversion is done with the two's complement rule
(i.e. modular arithmetic) in a portable way.
* doc/README.dev: mention this macro (the technique was already
described).
* src/log_ui.c: use this macro instead of non-portable code due to
the case n = LONG_MAX + 1.
* src/mpfr-impl.h: define this macro.
2022-04-05 Vincent Lefevre <vincent@vinc17.net>
trootn_si.c: more mpfr_rootn_si tests on special values
doc/mpfr.texi: Updated the month.
New function mpfr_rootn_si
2022-04-04 Vincent Lefevre <vincent@vinc17.net>
[src/root.c] Updated a comment for mpfr_rootn_ui.
This comment was correct for mpfr_root, but I forgot to update it when
changing this function to mpfr_rootn_ui (where this case differs) in
commit 117c726a863e243634c8e5fbaae0265cac90a4a1.
2022-04-04 Vincent Lefevre <vincent@vinc17.net>
[tests/troot.c] Added a comment.
[tests/tpow.c] Added a TODO about tests with bad_cases.
[tests/tpow.c] Corrected messages.
[tests/tpow.c] For rootN, use mpfr_root and mpfr_rootn_ui randomly.
2022-04-04 Vincent Lefevre <vincent@vinc17.net>
[tests] Define RAND_BOOL() macro (random boolean) and use it.
In the tests directory:
* mpfr-test.h: define RAND_BOOL() macro, with type int.
* mpfr-test.h and various .c files: replace "randlimb () & 1" and
"randlimb () % 2" by "RAND_BOOL ()".
* tfprintf.c, tsprintf.c: use the same code as tprintf.c.
2022-04-04 Vincent Lefevre <vincent@vinc17.net>
In the tests, fixed "randlimb () % 1", mistaken for "randlimb () & 1".
This occurred only in tests/tfmma.c (5 occurrences), with the
consequence of fewer cases of different kinds in the tests.
Such a kind of mistake is now detected by mpfrlint (commit 2a90f0c91).
2022-04-04 Vincent Lefevre <vincent@vinc17.net>
mpfrlint: detect "% 1" (modulo 1), which always gives 0.
This is probably mistaken for "& 1" or "% 2", as currently in
"tests/tfmma.c".
2022-03-30 Vincent Lefevre <vincent@vinc17.net>
[TODO] Moved and updated item.
Since this is about functions in IEEE 754-2019, it makes more sense
to have this item after the new functions of IEEE 754-2008.
2022-03-30 Vincent Lefevre <vincent@vinc17.net>
[TODO] Updated item (with non-public URL removed).
2022-03-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] added item
2022-03-29 Vincent Lefevre <vincent@vinc17.net>
Fixed version-ext.sh, in particular when used after "./autogen.sh".
After running autogen.sh, version-ext.sh incorrectly detected files
as modified. Solution: refresh the git index before git diff-index.
2022-03-28 Vincent Lefevre <vincent@vinc17.net>
[acinclude.m4] Fix/improve MPFR_CHECK_LIBM and MPFR_CHECK_LIBQUADMATH.
With a GCC snapshot, -Werror=infinite-recursion was yielding an
error in AC_CHECK_LIB for function "main". So, define MPFR_HAVE_LIB
to be used instead of AC_CHECK_LIB when it is not needed to test any
function. So, use it in MPFR_CHECK_LIBM and MPFR_CHECK_LIBQUADMATH.
Also updated MPFR_CHECK_LIBM from the current libtool.m4 code, as
done in the past.
2022-03-24 Vincent Lefevre <vincent@vinc17.net>
[get_d128.c] Updated FIXME comment.
2022-03-24 Vincent Lefevre <vincent@vinc17.net>
Added a TODO efficiency item about the size of the MPFR library.
Reduce the size of the MPFR library generated by GCC by avoiding
operations on _Decimal128 in get_d128.c when its encoding is BID.
2022-02-18 Vincent Lefevre <vincent@vinc17.net>
[algorithms.tex] Cleanup: ^\infty → ^{\infty}
Using a command after _ (subscript) or ^ (superscript) is discouraged
as it might break with future TeX versions, as already seen.
Discussion:
https://tug.org/pipermail/tex-live/2022-February/047780.html
2022-02-18 Vincent Lefevre <vincent@vinc17.net>
[algorithms.tex] Updated 2 URLs in comments (http → https).
2022-02-03 Vincent Lefevre <vincent@vinc17.net>
Updated a comment: added a ref to WG14/N2921 about large bit-fields.
2022-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/nrandom.c] added reference
2022-01-18 Vincent Lefevre <vincent@vinc17.net>
Updated the FIXME in acinclude.m4 for MPFR_CHECK_LIBM.
2022-01-18 Vincent Lefevre <vincent@vinc17.net>
Added FIXME in acinclude.m4 for MPFR_CHECK_LIBM.
With a GCC snapshot:
error: infinite recursion detected [-Werror=infinite-recursion]
2022-01-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] removed an item (done in the web page for each release)
2022-01-14 Vincent Lefevre <vincent@vinc17.net>
doc/mpfr.texi: Updated the month.
2022-01-12 Vincent Lefevre <vincent@vinc17.net>
[tests] Added a comment about the output of pointer values.
2022-01-10 Vincent Lefevre <vincent@vinc17.net>
[doc/README.dev] Updated "To make a release".
Added a paragraph about config.guess and config.sub.
2022-01-06 Vincent Lefevre <vincent@vinc17.net>
Added a TODO to improve mpfr_pow_si/sj.
Computing POW_U before the division (instead of after) would reduce
the error in the intermediate result.
2022-01-06 Vincent Lefevre <vincent@vinc17.net>
Updated a comment about a clang bug.
Updated a comment about a clang bug.
2022-01-06 Vincent Lefevre <vincent@vinc17.net>
Copyright notice update: added 2022.
Command used:
perl -pi -e 's/ (\d{4}-)?(2021)(?= Free Software)/
" ".($1||"$2-").($2+1)/e' **/*(^/)
under zsh.
Removed 2021 from the example in the doc/README.dev file.
2021-12-26 Vincent Lefevre <vincent@vinc17.net>
README.dev: added C2x draft URL (N2731).
Corrected style (spurious space before comma).
2021-12-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
gnu style
2021-11-25 Vincent Lefevre <vincent@vinc17.net>
Move code for git info to its own shell script "version-ext.sh".
* New version-ext.sh file: sh script to output MPFR version information
for a Git working tree (old code from tests/Makefile.am).
* tests/Makefile.am: replace some output_info code by the use of this
script.
* Makefile.am: add version-ext.sh to EXTRA_DIST as a consequence
(a comment explains why).
* README: list this new version-ext.sh file as a consequence.
2021-11-25 Vincent Lefevre <vincent@vinc17.net>
Another fix in the code for git info output by "make check".
tests/Makefile.am: in output_info, replaced "grep" by "$(GREP)".
2021-11-25 Vincent Lefevre <vincent@vinc17.net>
Fixed git info output by "make check".
tests/Makefile.am: when discarding excluded branches, the match should
be done on the full branch name, not a subword; so, added the -x grep
option (specified by POSIX).
2021-11-25 Vincent Lefevre <vincent@vinc17.net>
Updated tests_run_within_valgrind() comment in "tests/tests.c".
2021-11-23 Vincent Lefevre <vincent@vinc17.net>
README.dev: added note about the formally proven code and requirements.
Update of INSTALL file about CompCert.
2021-11-22 Vincent Lefevre <vincent@vinc17.net>
doc/mpfr.texi: Updated the month.
2021-11-22 Vincent Lefevre <vincent@vinc17.net>
For git info output by "make check", check for modifications.
tests/Makefile.am: updated output_info code to add " (modified)"
when the working tree has been modified (compared to HEAD).
2021-11-22 Vincent Lefevre <vincent@vinc17.net>
Added info to doc/README.dev about <branch>-root tags.
2021-11-22 Vincent Lefevre <vincent@vinc17.net>
Removed a usless comment about git info output by "make check".
tests/Makefile.am: removed the comment about the unimplemented
solution with possible *-branch tags (I think that it would not
work well with merges).
2021-11-22 Vincent Lefevre <vincent@vinc17.net>
Improved code to output git info from "make check".
tests/Makefile.am: updated output_info code and comment.
We now use <branch>-root tags to find to correct branch, by excluding
branches created after the current HEAD.
2021-11-22 Vincent Lefevre <vincent@vinc17.net>
Fixed git info output by "make check".
tests/Makefile.am: in output_info, added a "|| true" on a shell command
that may fail (grep with no matches).
2021-11-22 Vincent Lefevre <vincent@vinc17.net>
Added a FIXME for git info output by "make check".
The recent additions to tests/Makefile.am work well for master (and
detached HEAD state), but not for the 4.1 branch, where $gitb gets
empty, even though testing from an interactive shell (/bin/sh = dash)
does not show any issue.
2021-11-22 Vincent Lefevre <vincent@vinc17.net>
Improved git info output by "make check".
tests/Makefile.am: modified output_info to output:
* the detected branch, which also works in detached HEAD state
(for old commits that can be found in multiple branches,
"master" is prefered over the other branches);
* the total commit count;
* the commit id (hash).
2021-11-22 Vincent Lefevre <vincent@vinc17.net>
Add git info with "git describe" for "make check" (to be improved).
tests/Makefile.am: in output_info, add git info, but this does not
output the branch. For instance, on master, one gets something like
"4.1-root-491-g2933fad3a", and something similar on the 4.1 branch.
As the solution needs to work in detached HEAD state, we may want to
add *-branch tags to identify the first commit of a branch, and use
git describe --match '*-branch'
instead of
git describe --match '*-root'
2021-11-15 Vincent Lefevre <vincent@vinc17.net>
Documentation: some improvements about the "decimal-point character".
* doc/README.dev: update about the use in the MPFR manual (mpfr.texi).
* doc/mpfr.texi: minor correction.
2021-11-05 Vincent Lefevre <vincent@vinc17.net>
[doc/algorithms.tex] Add \pdfglyphtounicode{lscript}{2113} for \ell.
Otherwise one gets a grave accent (thus "s − l" cannot be found).
If the "ℓ" is still an issue, one could alternatively use
\pdfglyphtounicode{lscript}{006C}
to get an "l" (but "l" also matches "ℓ" in xpdf and atril).
2021-11-05 Vincent Lefevre <vincent@vinc17.net>
[doc/algorithms.tex] Add some ToUnicode mappings.
This fixes some regressions compared to old LaTeX versions (in 2009).
2021-10-24 Vincent Lefevre <vincent@vinc17.net>
doc/mpfr.texi: Updated the month.
2021-10-24 Vincent Lefevre <vincent@vinc17.net>
mpfrlint: fixed git usage.
The change done in 52138701d9b920d608871b20d4bee30f59adede6 wasn't
working when the latest commit wasn't on "doc/mpfr.texi".
2021-10-24 Vincent Lefevre <vincent@vinc17.net>
mpfrlint: update for git.
This is used to check that the doc/mpfr.texi UPDATED-MONTH value is
up-to-date by comparing it with the date of the latest commit.
2021-10-24 Vincent Lefevre <vincent@vinc17.net>
In mpfr.texi, added a "@." to avoid a warning from mpfrlint.
Note: This is not needed at the end of a paragraph like here, but
this is a general warning, just in case text is added or moved.
2021-10-24 Vincent Lefevre <vincent@vinc17.net>
mpfr.texi cleanup: removed the obsolete @refill command.
This command was needed in the past, but it now generates a warning
"@refill is obsolete" (as of Texinfo 6.8 - 2021-07-03).
It is no longer needed, as least since Texinfo 4.2:
https://ftp.gnu.org/old-gnu/Manuals/texinfo-4.2/html_node/Refilling-Paragraphs.html
2021-10-19 Vincent Lefevre <vincent@vinc17.net>
Added .mailmap file.
2021-10-17 Vincent Lefevre <vincent@vinc17.net>
Added a TODO/FIXME to add Git information to "make check".
Partial update of doc/README.dev due to the migration to Inria GitLab.
Updated README due to the migration to Inria GitLab.
2021-09-27 Vincent Lefèvre <vincent@vinc17.net>
[src/mparam_h.in] Updated comment about GCC.
2021-09-24 Vincent Lefèvre <vincent@vinc17.net>
[INSTALL] Update about MinGW: the old mingw.org website no longer
exists, and MinGW has actually been replaced by Mingw-w64, which
is for both 32-bit and 64-bit Windows.
[README] Updated URLs.
2021-09-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
missing url
added new preprint
2021-09-16 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
2021-09-16 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Corrected garbled mpfr_set* description.
Thanks to Rob for noticing:
https://sympa.inria.fr/sympa/arc/mpfr/2021-09/msg00003.html
The cause is a sentence that was inserted at the wrong place in r8225
(2012-06-25).
2021-09-14 Vincent Lefèvre <vincent@vinc17.net>
[src/inp_str.c] Added a FIXME on a deprecated use of ungetc.
2021-09-13 Vincent Lefèvre <vincent@vinc17.net>
Autoconf / AX_PTHREAD related update and cleanup.
* m4/ax_pthread.m4: update to AX_PTHREAD 31, fixing a change
from AX_PTHREAD 29, which has eventually been regarded as
a bug (workaround in r14481).
* configure.ac: removed the now unneeded AC_CANONICAL_TARGET;
updated the corresponding comment.
2021-09-09 Vincent Lefèvre <vincent@vinc17.net>
[TODO] More about intrinsics (e.g. _addcarry_u64).
[TODO] + use intrinsics when available (needs a configure test).
2021-09-07 Vincent Lefèvre <vincent@vinc17.net>
[tests/tests.c] In a comment with a GMP_CHECK_RANDOMIZE value, mention
the SVN revision and date, as this value may no longer be valid in the
future (when tests are added or changed).
[tests/tests.c] Fixed bad_cases when y is ±0 (rare case).
2021-08-23 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Updated/reduced note about MinGW and stdio.
2021-08-23 Vincent Lefèvre <vincent@vinc17.net>
[INSTALL] Updated information about MinGW and the formatted output
functions (printf, etc.).
Thanks to Pali Rohár for the information about -std=c89.
2021-08-23 Vincent Lefèvre <vincent@vinc17.net>
[tests/tget_set_d128.c] Removed a useless C99 comment, which makes
the MPFR build fail with "i686-w64-mingw32-gcc -std=c89" (e.g. via
./configure --host=i686-w64-mingw32, and -std=c89 in CFLAGS).
[tests/tsprintf.c] In locale_da_DK(), also try da_DK.utf8 (preferably):
in Debian/unstable, da_DK no longer exists.
2021-08-20 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
[doc/mpfr.texi] Corrected latest change (typography).
[doc/mpfr.texi] Detail the mpfr_min and mpfr_max description.
2021-08-03 Vincent Lefèvre <vincent@vinc17.net>
[tests/tget_flt.c] Avoid a warning about unused function equal_flt
when HAVE_SUBNORM_FLT is not defined.
[tests/tget_flt.c] Code style: replaced "… == 0" by "! …" on
the Boolean _p functions.
2021-08-03 Vincent Lefèvre <vincent@vinc17.net>
[tests/tget_flt.c] Removed bug_icx (duplicate test).
What was tested was just mpfr_get_flt on a NaN mpfr_t. But this was
already tested in main(). And one gets the same result and error with
icx (without -fp-model=strict). Moreover, the old test was correctly
protected by "#if !defined(MPFR_ERRDIVZERO)", needed because NaN is
defined by 0.0 / 0.0.
2021-08-03 Vincent Lefèvre <vincent@vinc17.net>
[tests/tget_flt.c] In bug_icx: replaced mpfr_set_flt, whose float
argument was yielding an underflow (not portable), by mpfr_set_si_2exp
(it is mpfr_get_flt that is tested, not mpfr_set_flt).
[tests/tget_flt.c] Added FIXME for test added in r14552.
[tests/tget_flt.c] Portability correction.
2021-08-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
need -fp-model=strict for icx
2021-07-27 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Mention "[[noreturn]]".
2021-07-15 Vincent Lefèvre <vincent@vinc17.net>
[src/ieee_floats.h] URL update (http → https).
2021-07-01 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Detect when the return value of fclose() or fflush()
is compared with -1 instead of EOF.
2021-06-30 Vincent Lefèvre <vincent@vinc17.net>
[tests/tprintf.c] Portability correction (EOF is not necessarily -1).
2021-06-21 Vincent Lefèvre <vincent@vinc17.net>
Punctuation (missing comma after "however").
[doc/README.dev] No longer use /tmp in examples so that the reader is
not encouraged to use it. Punctuation.
2021-06-08 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] Fixed subnormal detection (issue found with icx).
2021-06-03 Vincent Lefèvre <vincent@vinc17.net>
[tests/tget_d.c] Improved error messages.
2021-06-03 Vincent Lefèvre <vincent@vinc17.net>
[tests/tget_d.c] Error message when check_inf_nan() fails for NaN.
Note: With "icx -O2" (at least), 8 tests are now failing with
Intel(R) oneAPI DPC++ Compiler 2021.2.0 (2021.2.0.20210317).
But no failures when the compiler is invoked as "clang".
2021-06-02 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
2021-06-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[doc/mpfr.texi] some figures about slowdown with C++ interface
2021-06-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/data/j1] added more tests
[tests/tests.c] fixed bug introduced in r13787, which invalidated data_check
in some cases
2021-05-20 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Completed mpfr_fmodquo and mpfr_remquo description.
[src/rem1.c] Improved comments.
2021-05-17 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsprintf.c] Cosmetic revert of blank line removal in r14519.
2021-05-17 Vincent Lefèvre <vincent@vinc17.net>
[src/vasprintf.c] Fixed buffer_cat: replaced incorrect assertion len > 0
by a test.
Note that len == 0 is possible when outputting an integer 0 (either a
native one or mpfr_prec_t) with precision field = 0. The consequence
of this bug:
* In debug mode (MPFR_ASSERTD assertion checking), one would get an
assertion failure.
* Otherwise, there should be no side effects since the code was valid
for len == 0, possibly except with LTO (very unlikely, though).
This incorrect assertion was added on 2009-03-13 in r6099.
2021-05-17 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsprintf.c] Similarly to r14514, added tests of native integer 0
with precision field 0 (also yields a call to buffer_cat with len = 0).
[tests/tsprintf.c] For various test functions, changed the return type
from int to void (when the value is never used).
2021-05-16 Vincent Lefèvre <vincent@vinc17.net>
[src/vasprintf.c] Updated comment about the output for the 'a'/'A'
conversion specifier.
[doc/mpfr.texi] Formatted output functions (mpfr_*printf): completed
the specification concerning the precision (this was needed because
the conversion specifier 'b' does not exist in C).
2021-05-12 Vincent Lefèvre <vincent@vinc17.net>
[src/vasprintf.c] Added a comment about the output for the 'a'/'A'
conversion specifier, which is completely unintuitive. FIXME?
[doc/mpfr.texi] Punctuation.
[tests/tsprintf.c] Added tests of specifier 'P' with precision field 0.
2021-05-11 Vincent Lefèvre <vincent@vinc17.net>
[TODO] More about mpfr_fda / mpfr_fds.
[TODO] + Fused divide-add and fused divide-subtract (mpfr_fda, mpfr_fds).
2021-05-03 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi,src/mpfr.h] Detail about the mpfr_pown implementation.
2021-05-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[NEWS] added missing mpfr_pown (alias for mpfr_pow_sj)
[manual] added mpfr_powm in NEWS
(https://sympa.inria.fr/sympa/arc/mpfr/2021-05/msg00000.html)
2021-05-03 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month (due to r14505).
2021-04-30 Vincent Lefèvre <vincent@vinc17.net>
[src/sin.c] Added a TODO about range reduction.
2021-04-26 Vincent Lefèvre <vincent@vinc17.net>
[tests/tstrtofr.c] Check more infinity strings.
2021-04-26 Vincent Lefèvre <vincent@vinc17.net>
[doc] Update about "case insensitive" and issue with Turkish locales
for "I" / "i".
* mpfr.texi: added "with the rules of the C locale" in the
mpfr_strtofr description.
* README.dev: completed information about Turkish locales.
2021-04-24 Vincent Lefèvre <vincent@vinc17.net>
[tests/tpowr.c] Added generic tests.
[src/exceptions.c] Corrected latest comment.
2021-04-23 Vincent Lefèvre <vincent@vinc17.net>
[src/exceptions.c] Replaced comment about logging (the issue was due to
the mpfr_check_range macro).
[src/exceptions.c] Completed comment about a logging issue.
[src/exceptions.c] Added a comment about a logging issue.
[src/mpfr-impl.h] Logging: output the flags at "IN" and "OUT".
[tests/tsgn.c] Also test in a very reduced exponent range.
[tests/tsgn.c] Also test the flags.
2021-04-23 Vincent Lefèvre <vincent@vinc17.net>
[src/get_str.c] Fixed bug in mpfr_get_str_ndigits introduced in r14494.
Note: the issue (an uninitialized variable) was detected by GCC 6.5.0;
recent GCC versions miss the -Wmaybe-uninitialized warning.
2021-04-23 Vincent Lefèvre <vincent@vinc17.net>
mpfr_get_str_ndigits: added an assertion / exploitable compiler hint.
[src/get_str.c] Improved mpfr_get_str_ndigits code structure.
2021-04-23 Vincent Lefèvre <vincent@vinc17.net>
In various functions, use mpfr_equal_p() instead of mpfr_cmp() == 0.
Note: In these cases, the test should be false if one of the arguments
is NaN (it is not always clear whether NaN is impossible, but just in
case, mpfr_equal_p is safer, in particular if the code around changes;
and this is more readable too).
2021-04-23 Vincent Lefèvre <vincent@vinc17.net>
[src/get_str.c] Use mpfr_equal_p() instead of mpfr_cmp() == 0.
[tests] Added tpowr to svn:ignore property.
2021-04-23 Vincent Lefèvre <vincent@vinc17.net>
Fixed bug in mpfr_get_str_ndigits.
* src/get_str.c: use MPFR_SAVE_EXPO_MARK / MPFR_SAVE_EXPO_FREE to fix
2 issues in mpfr_get_str_ndigits: the inexact flag could be raised
(bug reported by Pierre Chatelier[*]); undefined behavior in a very
reduced exponent range.
* tests/tget_str.c: check the above issues in the tests.
[*] https://sympa.inria.fr/sympa/arc/mpfr/2021-04/msg00000.html
2021-04-16 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Added cast to int for __LINE__ in formatted output.
The standard just says that __LINE__ in an integer constant. So its
type might be larger than int, even though the value is representable
in an int (like in MPFR). This concerns logging code, only available
for GCC compatible compilers, so that there should not be any issue
without the cast, but just in case...
2021-04-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/thypot.c] added one test
2021-03-19 Vincent Lefèvre <vincent@vinc17.net>
Added m4/ax_pthread.m4 file, and related updates.
Added m4/ax_pthread.m4 from
https://github.com/autoconf-archive/autoconf-archive
and updated:
* acinclude.m4 (in particular, set CXX and CXXFLAGS)
* doc/README.dev
2021-03-19 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] Avoid an issue with ordering of macros we don't use
explicitly, which appears with ax_pthread.m4 29, i.e. with
https://github.com/autoconf-archive/autoconf-archive/commit/2567e0ce0f3a11b535c6b527386197fb49ff172b
2021-03-18 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] Added a comment about AX_PTHREAD.
2021-03-18 Vincent Lefèvre <vincent@vinc17.net>
Get rid of obsolescent AC_HEADER_TIME. Cleanup about sys/time.h usage.
The AC_HEADER_TIME macro is obsolescent in autoconf 2.69 (2012),
and autoconf 2.71 (2021) outputs a warning, which makes autogen.sh
fail due to "--warnings=all,error", so let's avoid the warnings.
This macro defines TIME_WITH_SYS_TIME, used only in tests/tests.c
(but actually not needed). We actually have two cases:
1. HAVE_GETTIMEOFDAY is defined: we use gettimeofday(), which
needs <sys/time.h>.
2. Otherwise: we use time(), which needs <time.h>.
Based on that, we can simplify the condition in tests/tests.c for
the inclusion of time-related headers, and we no longer need to
check the <sys/time.h> availability. If gettimeofday() is defined
but <sys/time.h> is not available (which shouldn't occur), then
the current gettimeofday() usage may be incorrect anyway.
Changes:
* acinclude.m4:
- no longer use AC_HEADER_TIME;
- no longer check the sys/time.h header.
* tests/tests.c: simplify the inclusion of time-related headers.
2021-03-18 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Detect mpn_mul_n with identical 2nd and 3rd arguments,
which can be replaced by the faster mpn_sqr.
2021-03-16 Vincent Lefèvre <vincent@vinc17.net>
Replaced "intensional" by "intentional" in comments.
Untabify and remove trailing spaces.
2021-03-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/rec_sqrt.c] replace a call to mpn_mul_n with identical arguments by
a call to mpn_sqr + similar changes in other files
(thanks Fredrik Johansson)
[tests/trec_sqrt.c] added timing test
2021-03-09 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
[src/mpfr.h] Comment: no need to write "user" with uppercase letters.
2021-03-08 Vincent Lefèvre <vincent@vinc17.net>
[tests/{tset_si.c,tset_sj.c}] Fix when -DMPFR_USE_NO_MACRO is used.
The mpfr_get_exp() function checks that the argument is a regular
number, but the corresponding macro doesn't. The test code was
calling mpfr_get_exp() on 0, thus failed with MPFR_USE_NO_MACRO
defined. Here, the code was correct with the macro, because the
value was not used for the particular case 0.
This is fixed by testing 0 earlier (and doing a goto, but the code
has fewer tests and should be simpler to understand). Moreover,
mpfr_get_exp has been replaced by MPFR_GET_EXP, so that the argument
is checked with --enable-assert.
2021-03-08 Vincent Lefèvre <vincent@vinc17.net>
[tests/{texceptions.c,tset_exp.c}] Forgot to protect the tests with
casts to "void *", invalid in C++ (completing r14460 and r14461).
2021-03-08 Vincent Lefèvre <vincent@vinc17.net>
Clarification about the custom interface and macros.
* doc/mpfr.texi: added some text in Section "Custom Interface".
* src/mpfr.h: replaced the remaining FIXME by another comment.
2021-03-08 Vincent Lefèvre <vincent@vinc17.net>
[tests] Ignore GCC's -Wc++-compat in the tests that are invalid in C++
(these tests are enabled only if __cplusplus is not defined).
2021-03-06 Vincent Lefèvre <vincent@vinc17.net>
[tests] In C++, do not cast to "void *" in the tests of macros.
These casts make the build of these tests fail with a C++ compiler.
But this means that the use of macros will not introduce any issue
concerning the type of the arguments, i.e. with a C++ compiler, the
tests are still complete after this change.
However, GCC's -Werror=c++-compat still cannot be used.
To avoid this issue, diagnostic pragmas will be needed.
2021-03-06 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr.h] Fixed mpfr_set macro (now only available with __GNUC__).
2021-03-06 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset.c] Added tests of the mpfr_set macro.
Without MPFR_USE_NO_MACRO, the compilation currently fails because
the second argument is not converted to mpfr_srcptr when MPFR_SIGN
is applied.
2021-03-06 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr.h] Fixed mpfr_copysign and mpfr_signbit macros.
2021-03-06 Vincent Lefèvre <vincent@vinc17.net>
Added tests of mpfr_copysign, mpfr_setsign and mpfr_signbit macros.
Without MPFR_USE_NO_MACRO, the compilation of these tests in tcopysign.c
currently fails because some arguments are not converted to mpfr_srcptr.
2021-03-06 Vincent Lefèvre <vincent@vinc17.net>
[src/ubf.c] Forgot a cast from UBF pointer to mpfr_t pointer.
This became visible with the fix of the mpfr_get_prec macro in r14454.
2021-03-06 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr.h] Fixed mpfr_get_prec and mpfr_get_exp macros.
2021-03-06 Vincent Lefèvre <vincent@vinc17.net>
Added tests of mpfr_get_prec and mpfr_get_exp macros.
Without MPFR_USE_NO_MACRO, the compilation of these tests
in texceptions.c and tset_exp.c currently fails because
the argument is not converted to mpfr_srcptr.
2021-03-06 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr.h] Better implementation of macros changed in r14451.
__GNUC__ is no longer needed.
2021-03-06 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr.h] Fixed some macros implementing functions.
Macros mpfr_nan_p, mpfr_inf_p, mpfr_zero_p and mpfr_regular_p were
incorrect since they yielded a compilation error when the argument
was of type void *, for instance. Their definition as macros is now
available only with __GNUC__.
The tisnan test r14448 should no longer fail.
Also added a comment for mpfr_sgn, which is correct since documented
as a macro.
2021-03-06 Vincent Lefèvre <vincent@vinc17.net>
[tests/tisnan.c] Added commented code for testing compilation errors.
2021-03-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mpfr.h] fixed typo
2021-03-06 Vincent Lefèvre <vincent@vinc17.net>
[tests/tisnan.c] Check that when mpfr_nan_p, mpfr_inf_p, mpfr_number_p,
mpfr_zero_p and mpfr_regular_p is implemented as a macro, it behaves
like a function.
[src/mpfr.h] Added a comment and a FIXME for functions implemented
as macros.
2021-03-06 Vincent Lefèvre <vincent@vinc17.net>
Reverted r14445: This is about functions implemented as macros, and
in this case, a macro must behave like a function.
In particular, each argument must be evaluated one time exactly.
Macros that behave differently will need to be fixed.
Tests should also be added like the one in tests/tset_si.c with the
comment:
/* Note: the ++'s below allow one to check that the corresponding
arguments are evaluated only once by the macros. */
2021-03-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[doc/mpfr.texi] document that functions defined as macros might evaluate
their arguments several times
(see https://sympa.inria.fr/sympa/arc/mpfr/2021-03/msg00007.html)
[src/mpfr.h] fixed typo
2021-03-04 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Clarification.
[TODO] Updated item on pkg-config due to a bug in pkg-config.
[TODO] Added "add some option to use pkg-config...".
2021-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/invsqrt_limb.h] use "unsigned short" for table T[] instead of mp_limb_t.
On araignee.loria.fr, this saves about 1 cycle, when GMP 6.2.1 and MPFR are
configured with --disable-shared, using mbench.
Before this change (medium of 5 runs, with turbo-boost disabled):
$ numactl --physcpubind=0 ./mfv5 -i0 -p53 mpfr_sqrt mpfr_sqrt mpfr_sqrt
mpfr_sqrt: 48 / 53.39 / 60
$ numactl --physcpubind=0 ./mfv5 -i0 -p113 mpfr_sqrt mpfr_sqrt mpfr_sqrt
mpfr_sqrt: 75 / 81.44 / 89
After this change:
$ numactl --physcpubind=0 ./mfv5 -i0 -p53 mpfr_sqrt mpfr_sqrt mpfr_sqrt
mpfr_sqrt: 48 / 52.37 / 60
$ numactl --physcpubind=0 ./mfv5 -i0 -p113 mpfr_sqrt mpfr_sqrt mpfr_sqrt
mpfr_sqrt: 75 / 80.27 / 88
2021-02-15 Vincent Lefèvre <vincent@vinc17.net>
[tests/mpfr-test.h] Added mpfr_cmp_si_2exp0 macro (check NaN).
[tests/tj1.c] Replaced mpfr_cmp_si_2exp by mpfr_cmp_si_2exp0.
[tests/tdigamma.c] Use mpfr_cmp_ui0 to detect NaN.
[src/digamma.c] Use MPFR_NOTZERO instead of !MPFR_IS_ZERO.
2021-02-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/jyn_asympt.c] fixed bug when s=0 at the end of the for loop
[tests/tj1.c] added corresponding non-regression test
[src/digamma.c] fixed a bug in mpfr_digamma_reflection when the approximations
of Digamma(1-x) and Pi*cot(Pi*x) cancel exactly
[tests/tdigamma.c] added corresponding non-regression test
renamed mpfr_compound to mpfr_compound_si, since in C2X, compoundn takes
an intmax_t and not a long, thus we can later implement mpfr_compoundn
taking as input an intmax_t
2021-02-10 Vincent Lefèvre <vincent@vinc17.net>
[tests/texpm1.c] Improved special tests.
2021-02-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/pow_sj.c] removed spurious comment
2021-02-09 Vincent Lefèvre <vincent@vinc17.net>
[src/{pow_sj.c,pow_uj.c}] Added missing "#ifdef _MPFR_H_HAVE_INTMAX_T".
[doc/mpfr.texi] General cleanup, in particular related to the IEEE 754
standard. Added IEEE Standard 754-2019 to the references.
[src/pow_{si,sj,ui,uj}.c] Fixed logging for mpfr_pow_{sj,uj}.
[src/pow_uj.c] untabify
[tests/tpow.c] Replaced mpfr_cmp_ui by versions that can detect NaN.
Note: this is particularly important to check that pow(NaN,0) returns 1,
not NaN.
[src/pow_uj.c] Some corrections in the mpfr_mpz_set_uj helper function,
still with limitations (which could be avoided by sharing code with
mpfr_set_uj_2exp).
2021-02-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
forgot to commit those files
added mpfr_powr
2021-02-09 Vincent Lefèvre <vincent@vinc17.net>
[src/{pow_si.c,pow_ui.c}] untabify
2021-02-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added mpfr_pow_uj and mpfr_pow_sj
now mpfr_pown is an alias for mpfr_pow_sj
2021-02-09 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi,src/mpfr.h] Added a FIXME for mpfr_pown, which should
be an alias of mpfr_pow_sj (not implemented yet) to follow ISO C2x,
where pown is defined with intmax_t n.
2021-02-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added mpfr_pown (alias for mpfr_pow_si)
2021-02-08 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr.h] Updated comments on the types for mpfr_prec_t/mpfr_exp_t.
* For mpfr_prec_t, removed the comment saying that under Windows 64,
"long long" could be used (this would imply that mpfr_prec_t and
mpfr_exp_t will not fit in a long, and this is not supported yet,
see below).
* For mpfr_exp_t and _MPFR_EXP_FORMAT == 4, changed an unclear note
and added other information; in particular, this value is currently
not supported since the MPFR code assumes that mpfr_exp_t fits in a
long.
2021-02-08 Vincent Lefèvre <vincent@vinc17.net>
[tests] Added texp2m1 and texp10m1 to svn:ignore property.
[src/jyn_asympt.c] Use mpfr_set4 instead of mpfr_set or mpfr_neg.
[tests/tj0.c] Latest test: also check the flags.
[src/digamma.c] Added a comment about the bug fixed in r14399.
[tests/tdigamma.c] Latest test: also check the flags.
[tests/tdigamma.c] Moved the r14399 test to its own test function.
Note: for this one, there is no need to use the maximum exponent range.
[src/digamma.c] Use MPFR_NOTZERO instead of !MPFR_IS_ZERO.
2021-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/jyn_asympt.c] fixed bug when sin(z)+cos(z) or sin(z)-cos(z) round to 0
[tests/tj0.c] added corresponding non-regression test
[src/digamma.c] fixed bug in mpfr_digamma_positive when t-u is zero
[tests/tdigamma.c] added corresponding non-regression test
2021-02-08 Vincent Lefèvre <vincent@vinc17.net>
[src/digamma.c] Fix: increased GUARD from 20 to 30.
[tests/tdigamma.c] Added 2 precisions for which GUARD=20 is not
sufficient, yielding a "too much memory" error.
2021-02-07 Vincent Lefèvre <vincent@vinc17.net>
[src/digamma.c] Punctuation in a comment.
2021-02-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/digamma.c] fixed bug20210206
2021-02-06 Vincent Lefèvre <vincent@vinc17.net>
[src/digamma.c] Added a FIXME for mpfr_digamma_positive: q can be
too large, e.g. equal to the maximum exponent!
[src/digamma.c] In mpfr_digamma_positive, log the value of q.
[src/digamma.c] In mpfr_digamma_positive, do not compute the precision q
until we are certain that it will be used.
[src/digamma.c] In mpfr_digamma_positive, added an assertion, as a
precision is set from the exponent of x, and I suppose that it may
be larger than MPFR_PREC_MAX when mpfr_exp_t > mpfr_prec_t.
[tests/tdigamma.c] Added testcase for a bug found by test_generic.
[tests/tgeneric.c] Added debug info.
2021-02-05 Vincent Lefèvre <vincent@vinc17.net>
[src/exp2m1.c] Use block-level flags.
2021-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added new function mpfr_exp10m1
[tests/texp2m1.c] added a test for exact values
2021-02-05 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Added mpfr_mul_uj and mpfr_mul_sj.
[src/log.c] Optimization: avoid a temporary variable for a*2^m;
use an alias to a instead. In corner cases, this could yield a
new internal TMD for the mpfr_div when the precision of a is
very large, but this is avoided by changing the RNDN to RNDF.
The error bound of 2 ulp on the mpfr_div should still be valid
(it should now actually be 1 ulp).
2021-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added new function mpfr_exp2m1 for 2^x-1
2021-02-05 Vincent Lefèvre <vincent@vinc17.net>
[tests/tversion.c] Fixed length modifier in error messages.
[src/log10p1.c] In mpfr_log10p1_small: an "else" case is better than
a "goto"; do not initialize inex to an arbitrary value.
[src/compound.c] Exact cases: additional detail in the comment.
[src/compound.c] Exact cases: this is simpler without a separate
function (the t = 0 was artificial). Added full explanations.
2021-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/compound.c] removed FIXME corresponding to previous commit
[src/compound.c] fixed infinite loop for exact results like compound(0.5,2)
which are not powers of 2
2021-02-05 Vincent Lefèvre <vincent@vinc17.net>
[src/compound.c] Fixed 2 issues with mpfr_compound_near_one:
* this function must be called in the extended exponent range,
to be sure that 1 is representable;
* it wasn't setting the inexact flag, and this is now done via
mpfr_check_range.
[src/compound.c] Added missing MPFR_ZIV_FREE before the "return" in
the Ziv loop.
[tests/tcompound.c] Added generic tests with n = 2 and n = 3.
They trigger a failure: bad inexact flag for mpfr_compound2.
[src/compound.c] Added a FIXME: possible infinite loop when the result
is exact.
[src/compound.c] Optimize the easy case n = 1.
[src/compound.c] Special cases: fixed compound(-Inf,0) and improved
comments.
[tests/tcompound.c] More tests of compound(x,n) for x < -1, showing
a failure on compound(-Inf,0).
[doc/README.dev] Note that the logging feature (--enable-logging)
needs GCC to build MPFR, and it is not available with mini-gmp,
since mpfr_fprintf cannot be defined with mini-gmp.
2021-02-04 Vincent Lefèvre <vincent@vinc17.net>
[tests/tcompound.c] Fixed a test in the case mpfr_exp_t < long.
[tests/tcompound.c] Corrected an error message.
[src/compound.c] Fixed bug found by clang:
compound.c:32:29: error: use of logical '||' with constant operand [-Werror,-Wconstant-logical-operand]
if (rnd_mode == MPFR_RNDN || MPFR_RNDF
^ ~~~~~~~~~
[tests/tatan2u.c] Fixed a bug (as of C99, for *decimal* constants, one
must use a suffix that contains "U" if the constant cannot be signed).
[tests/tcompound.c] Corrected the conditions of a test for machines
with 32-bit long. Added comments.
[tests] Added tlog10p1 to svn:ignore property.
[tests/tatan2u.c] Improved comment in bug20210203 about type sizes.
[tests/tatan2u.c] Make sure that the bug20210203 test is run only
when the value for u is representable.
2021-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] added section number
[src/compound.c] fixed case n < 0 and underflow
[tests/tcompound.c] added corresponding non-regression tests
compound(NaN,0) is 1
2021-02-04 Vincent Lefèvre <vincent@vinc17.net>
[src/compound.c] Correction for n = LONG_MIN. Added FIXMEs.
2021-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tcompound.c] fixed comment
2021-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/atan2u.c] fixed error analysis
2021-02-03 Vincent Lefèvre <vincent@vinc17.net>
[src/compound.c] Portability.
[tests/tatan2u.c] Make sure that 64-bit constants are supported before
using one.
[src/log10p1.c] Improved checking / debugging support.
2021-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tatan2u.c] added a test which currently fails
[src/log2p1.c] added note about underflow
added a new function mpfr_log10p1 to compute log10(1+x)
[tests/tlog2p1.c] set the precision locally to one test
[doc/mpfr.texi] document atan2u and atan2pi
2021-02-03 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Typography.
[doc/mpfr.texi] In Section "Added Functions", do not put the patchlevel
in MPFR versions (changed "4.2.0" to "4.2").
[src/log2p1.c] Bug fix: memory accessed after it is cleared.
[src/log2p1.c] More logging.
2021-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[doc/mpfr.texi] document mpfr_compound
2021-02-03 Vincent Lefèvre <vincent@vinc17.net>
[src/set_prec.c] Log the precision.
2021-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/compound.c] completed the general case
[tests/tcompound.c] added one hard-coded test
2021-02-03 Vincent Lefèvre <vincent@vinc17.net>
[tests] Added tcompound and tlog2p1 to svn:ignore property.
[tests/tlog2p1.c] Use mpfr_cmp_si0 to detect NaN.
[tests/tcompound.c] Do not use mpfr_printf in the tests.
2021-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/log2p1.c] use ULSIZE as in atan2u.c
[src/atan2u.c] better explain the choice of prec in mpfr_atan2u_aux3
2021-02-03 Vincent Lefèvre <vincent@vinc17.net>
[src/compound.c] Fixed logging.
2021-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/atan2u.c] simplified code
2021-02-03 Vincent Lefèvre <vincent@vinc17.net>
[src/atan2u.c] Support unsigned long != 64-bit type. Avoid a warning.
2021-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tlog2p1.c] added tests for exact cases
added log2p1 and compound (mpfr_compound is not finished yet)
[src/log1p.c] fixed comment
[src/atan2u.c] deal with underflow and overflow in y/x
2021-02-03 Vincent Lefèvre <vincent@vinc17.net>
[src/atan2u.c] Added a FIXME: the code is incorrect if y/x yields
an overflow or an underflow.
[src/atan2u.c] Fixed 2 bugs in mpfr_atan2u_aux2. Minor changes.
[src/atan2u.c] Minor corrections in comments.
2021-02-02 Vincent Lefèvre <vincent@vinc17.net>
[tests] Added tatan2u and tatanu to svn:ignore property.
[tests/tatan2u.c] Do not use mpfr_printf in the tests.
[src/atan2u.c] Use MPFR_RET_NEVER_GO_HERE.
[tests]
* tgeneric.c: cleanup about the type of the arguments; added support
for functions with 3 arguments (x1,x2,u), such as mpfr_atan2u.
* tatan2u.c: enabled the generic tests (test_generic).
2021-02-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/atan2u.c] fixed atan2u with respect to the four quadrants
[tests/tatan2u.c] added corresponding non-regression tests
added mpfr_atan2u (work in progress)
[src/atanu.c] fixed bug for u=0
[tests/tatanu.c] added non-regression test case
2021-02-02 Vincent Lefèvre <vincent@vinc17.net>
Changed "plus/minus infinity" to "positive/negative infinity".
[tools/mpfrlint] In the "+/- infinity" test (just added), also check
the doc/algorithms.tex file.
[tools/mpfrlint] Added a test for the use of "plus/minus infinity"
instead of "positive/negative infinity".
[doc/mpfr.texi] Minor corrections related to infinity. The IEEE 754-2019
standard says "positive/negative infinity", not "plus/minus infinity".
2021-02-01 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Typos.
[{src,tests}/Makefile.am] Untabified values of variables to avoid
wrapping in diffs on 80 columns.
2021-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] asinpi, acospi and atanpi are done (and their *u variants)
[src/atanu.c] added comment
[src/acosu.c] simplified the code when x is tiny
added mpfr_atanu and mpfr_atanpi
2021-02-01 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Correction about mpfr_get_* and NaN.
2021-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/asinu.c] improved a comment
[src/asinu.c] fixed typo
[src/asinu.c] resolved FIXME
[tests/tasinu.c] added more underflow tests
2021-02-01 Vincent Lefèvre <vincent@vinc17.net>
[src/set_ld.c] Replaced a useless goto.
Code readability.
2021-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/set_ld.c] added comment about LONGDOUBLE_NAN_ACTION
2021-02-01 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Typography.
[doc/mpfr.texi] Updated the month.
2021-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/get_ld.c] forgot get_ld in previous commit
make it clear that we don't propagate the sign bit in mpfr_get_d and mpfr_set_d
and similar functions for binary32, decimal64 and binary128
added asinu and asinpi
[src/asinu.c] return NaN for u=0 and |x| > 1
[tests/tasinu.c] added more tests
[src/acosu.c] for u=0 and |x| > 1, return NaN
[tests/tacosu.c] added corresponding test
2021-01-31 Vincent Lefèvre <vincent@vinc17.net>
[tests] Use RND_LOOP.
Changes with:
perl -pi -e 's/^( *)for *\((\w+) *= *0 *; *\2 *< *MPFR_RND_MAX *; *\2 *\+\+\) *$/\1RND_LOOP (\2)/' *.c
[tests] Added tacosu and tasinu to svn:ignore property.
[tests/mpfr-test.h] Added mpfr_cmp_si0 macro (check NaN).
[tests/tasinu.c] Replaced mpfr_cmp_ui / mpfr_cmp_si by the ...0 version.
[tests/tasinu.c] Replaced mpfr_cmp by !mpfr_equal_p.
[tests/tacosu.c] Replaced mpfr_cmp by !mpfr_equal_p.
[tests/tacosu.c] Fixed failing test with --with-mini-gmp
and -DMINI_GMP_LIMB_TYPE=int under Linux/x86_64.
[tools/mpfrlint] Detect the use of mpfr_set_emin / mpfr_set_emax
when set_emin / set_emax could be used (checking failures).
[tests/tdiv.c] Use set_emax rather than mpfr_set_emax with a test.
[tests/*.c] When not in a test, use set_emin and set_emax rather than
mpfr_set_emin and mpfr_set_emax, in order to check failures.
Done with: perl -pi -e 's/^ *\Kmpfr_(set_e(min|max) *\()/\1/' *.c
[tests/tests.c] Improved error message in set_emin / set_emax to
better support platforms where mpfr_exp_t > long int.
[tests/tcot.c] Use set_emin and set_emax rather than mpfr_set_emin and
mpfr_set_emax with a test (test done in set_emin / set_emax).
[src/{acosu.c,asinu.c,cosu.c,sinu.c,tanu.c}] Typos in comments.
[tests/tasinu.c] Use set_emin rather than mpfr_set_emin.
2021-01-31 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/acosu.c] fixed case x=-1/2 which was wrong
[tests/tacosu.c] added test cases
2021-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tacosu.c] reduced number of generic tests
[tests/tasinu.c] likewise
[src/asinu.c] fixed case x=-1 and underflow case
[tests/tasinu.c] added test for underflow
2021-01-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added asinu (work in progress, not yet usable)
[doc/mpfr.texi] improve description of mpfr_acosu
[src/acosu.c] fixed another typo
[src/acosu.c] fixed typo
2021-01-29 Vincent Lefèvre <vincent@vinc17.net>
[src/acosu.c] Simplified code.
[tests/tgeneric.c] Added a cast for printf.
[tests/tgeneric.c] Corrected indentation.
[tests/tgeneric.c] Corrected indentation.
2021-01-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added cosu and cospi in the manual and NEWS
new function mpfr_acosu (still to be added in NEWS and mpfr.texi)
2021-01-29 Vincent Lefèvre <vincent@vinc17.net>
[src/{cosu.c,sinu.c,tanu.c}] Function logging: added missing u.
[TODO] LIA-2 URL after redirection (i.e. https).
2021-01-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] added pointer to LIA-2
2021-01-26 Vincent Lefèvre <vincent@vinc17.net>
[INSTALL,doc/update-faq,tools/announce-text] With wget, use
the --no-config option as the user's .wgetrc file may significantly
change the behavior and possibly yield errors. See discussion at
<https://lists.debian.org/debian-user/2021/01/msg01021.html>.
2021-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] update about powr, rootn and rsqrt
[TODO] update about reserved cr_xxx names from C standard
2021-01-14 Vincent Lefèvre <vincent@vinc17.net>
[src/{cosu.c,sinu.c,tanu.c}] Range reduction: improved a test, renamed
a variable (e to p, as this is more like a precision), and updated
comments, making the code and comments similar for these 3 functions.
Added function logging for mpfr_fmod_ui and mpfr_sqrt_ui.
2021-01-14 Vincent Lefèvre <vincent@vinc17.net>
[tests/memory.c] Call "fflush (NULL)" before abort() in order to flush
all the output streams, in particular the log file (when there is one),
so that setting MPFR_LOG_FLUSH (which may be inefficient) is not needed
to debug tests that end with a memory error.
This fixes a regression with glibc 2.27+: the streams are no longer
flushed by abort(), as permitted by POSIX; see the abort(3) man page.
2021-01-14 Vincent Lefèvre <vincent@vinc17.net>
[src] Fixed typo in mpfr_printf format from MPFR_LOG_FUNC for several
functions.
[doc/mpfr.texi] Completed mpfr_fmod_ui description.
[src/cosu.c] Fixed bug when the reduced argument is 0.
[tests/tcosu.c] Added tests that give a reduced argument equal to 0.
[src/cosu.c] Fixed memory leak with very small reduced arguments.
2021-01-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tcosu.c] increase nmax in test_generic call
[tests/tsinu.c] likewise
[tests/ttanu.c] likewise
2021-01-13 Vincent Lefèvre <vincent@vinc17.net>
[tests/{tcosu.c,tsinu.c,ttanu.c}] For the generic tests, no need
to reduce emax any longer, now that the fast range reduction has
been implemented.
[src/tanu.c] Implemented range reduction for mpfr_tanu.
[src/{cosu.c,sinu.c}] Corrected the position of a comment.
[src/cosu.c] Implemented range reduction for mpfr_cosu.
2021-01-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sinu.c] removed FIXME (done)
2021-01-13 Vincent Lefèvre <vincent@vinc17.net>
[NEWS,doc/mpfr.texi] For the new trigonometric functions mpfr_cosu,
mpfr_sinu, mpfr_tanu, mpfr_cospi, mpfr_sinpi, mpfr_tanpi, removed the
"experimental" mention. In mpfr.texi, also added missing functions to
Section "Added Functions" (API Compatibility).
[doc/mpfr.texi] Style consistency: more "[unsigned] long int"
instead of just "[unsigned] long".
[doc/mpfr.texi] Style: use always "[unsigned] long int" in prototypes
rather than sometimes just "[unsigned] long".
[NEWS,doc/mpfr.texi] New function mpfr_fmod_ui.
2021-01-13 Vincent Lefèvre <vincent@vinc17.net>
Implemented range reduction for mpfr_sinu (and defined mpfr_fmod_ui).
This is done by computing x mod u; and a new function mpfr_fmod_ui
has been defined for this purpose. As mpfr_fmod_ui could be useful
to the user, its declaration is put in src/mpfr.h, with the intent
to document this new function later.
In the src directory:
* Added fmod_ui.c file (mpfr_fmod_ui function) based on sqrt_ui.c
(hence the same copyright line).
* Makefile.am: added fmod_ui.c to libmpfr_la_SOURCES.
* mpfr.h: added mpfr_fmod_ui.
* sinu.c: implemented range reduction for mpfr_sinu.
2021-01-13 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsinu.c] Added tests where x/u is a "big" integer, so that
the reduced argument is 0 (exactly).
[tests/tsinu.c] Added a test on a large input such that x mod u may need
more precision than x. This will be important to test range reduction.
[src/sqrt_ui.c] Coding style.
[src/{cosu.c,sinu.c,tanu.c}] Changed MPFR_PREC to MPFR_GET_PREC.
2021-01-12 Vincent Lefèvre <vincent@vinc17.net>
[tests/{tcosu.c,tsinu.c,ttanu.c}] C90 compatibility for the tests with
large inputs (added in r14236). Also avoid the hardcoded size by using
the numberof() macro.
2021-01-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tcosu.c] added hard-coded tests with large inputs
[tests/tsinu.c] likewise
[tests/ttanu.c] likewise
2021-01-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/set_ld.c] added pointer to "double double" format
2021-01-04 Vincent Lefèvre <vincent@vinc17.net>
[doc] Updated FAQ.html with update-faq.
2021-01-03 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
Copyright notice update: added 2021 with
perl -pi -e 's/ (\d{4}-)?(2020)(?= Free Software)/
" ".($1||"$2-").($2+1)/e' **/*(^/)
under zsh. Removed 2020 from the example in the doc/README.dev file.
[src/mpfr-impl.h] Removed a now useless test on __clang__, corresponding
to a bug fixed in Clang 3.4 (see <https://bugs.debian.org/705583>).
2020-12-20 Vincent Lefèvre <vincent@vinc17.net>
Optimize mpfr_abs, mpfr_copysign and mpfr_setsign in the case of reused
argument, like what was already done for mpfr_neg: one can just set the
sign and handle NaN instead of calling mpfr_set4.
Completed tests/tcopysign.c to test with a reused argument.
[src/cosu.c] Avoid a possible integer overflow (triggered by the tests
with UBsan) from r14225.
2020-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed initial precision in sinu, cosu and tanu
also in cosu, treat special case when 2*pi*x/u is small
2020-12-17 Vincent Lefèvre <vincent@vinc17.net>
[tests/tgeneric.c] Removed the use of __func__ as it is not supported
by ISO C90 (it was not really useful here, though).
[tests/tcosu.c] Increased the maximum precision for test_generic and
added a comment about this.
[tests] Added tcosu, tsinu and ttanu to svn:ignore property.
For the generic tests, output the number of normal cases and the total
if the MPFR_TGENERIC_STAT environment variable is defined.
Added description to the README.dev file.
[tests/tcosu.c] Increased the number of generic tests. This should make
the warning "Too few normal cases in generic tests" much less common.
[tests]
* Added data/tan2pi: hardest-to-round cases of tanu with u = 1
in double precision, interval [0,1/4].
* ttanu.c: test tan2pi values with u = 1.
[tests/ttanu.c] C89 compatibility.
2020-12-16 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Removed spurious blank line; .texi source reformat.
[doc/mpfr.texi] Typography: "resp." must be followed by "@:".
[doc/check-typography] Also check "resp.".
[doc/mpfr.texi] Removed misplaced @tie{}.
2020-12-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[doc/mpfr.texi] fixed another typo
[doc/mpfr.texi] fixed typos
added sinpi, cospi, tanpi
added new function mpfr_tanu
[src/sinu.c] improved comment
2020-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sinu.c] added reference
[src/sinu.c] fixed compiler warning
[src/cosu.c] deal with other exact cases
[tests/tcosu.c] added tests for other exact cases
[src/sinu.c] fixed bug in detection of pi/6 and friends
2020-12-15 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] mpfr_cosu and mpfr_sinu: improved item.
2020-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tsinu.c] added more tests
[src/sinu.c] fixed case where 2xpi/u is +/-pi/6 mod pi
[tests/tsinu.c] added corresponding test case
2020-12-15 Vincent Lefèvre <vincent@vinc17.net>
[tests]
* Added data/{cos2pi,sin2pi}: hardest-to-round cases of cosu and sinu
with u = 1 in double precision, interval [0,1/2].
* tcosu.c, tsinu.c: test cos2pi and sin2pi values with u = 1.
[tests/tests.c] test5rm(): mention test5rm in the error message.
[src/{cosu.c,sinu.c}] Added function logging.
2020-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added new function mpfr_cosu
[src/sinu.c] fixed typo in comment
[tests/tsinu.c] fixed typos in comments
2020-12-15 Vincent Lefèvre <vincent@vinc17.net>
[src/sin_cos.c] Code improvement:
* replaced a MPFR_PREC(c) by m since the precision of c was set to m;
* as a consequence, the initial precision of xr in the Ziv loop will
always be m (whether expx >= 2 or not), so that one can use this
precision for the mpfr_init2.
2020-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sinu.c] forgot to count the rounding error in mpfr_sin (t, t, MPFR_RNDA)
[src/sinu.c] fixed issue with case t=0
2020-12-15 Vincent Lefèvre <vincent@vinc17.net>
[src/{sin.c,sin_cos.c}]
* Do not initialize variables with the default precision, which
could have been set to a large value by the user; this would
be a waste of memory.
* In sin.c, do not initialize xr in the case where this variable
will not be used (in sin_cos.c, let's initialize it with the
minimum precision as it is used with different purposes).
[src/{ai.c,yn.c}] Do not initialize variables with the default
precision, which could have been set to a large value by the
user; this would be a waste of memory.
[tools/mpfrlint] Added a test to detect when mpfr_init or mpfr_inits is
used, i.e. when a variable is initialized with the default precision.
This should not be done as the default precision could have been set to
a large value by the user, so that this is a waste of memory.
[src/sinu.c] Correction: variables must not be initialized with the
default precision, which could have been set to a large value by the
user, and this would be a waste of memory.
2020-12-14 Vincent Lefèvre <vincent@vinc17.net>
[src/sinu.c] Fixed 2 bugs:
* in case of underflow, the flags were not set;
* mpfr_odd_p(t) could be called with t = 0, which is unsupported.
2020-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sinu.c] fixed typo (thanks Jeffrey Sarnoff)
2020-12-14 Vincent Lefèvre <vincent@vinc17.net>
[src/sinu.c] Added a FIXME: the range reduction should be done in this
function (that's the whole point of sinu compared to sin, besides a
smaller rounding error).
[tests/tsinu.c] Added a FIXME concerning the size of the exponent.
[doc/mpfr.texi] Typographic correction of math formulas.
[doc/mpfr.texi] mpfr_sinu: corrections and improvements.
[doc/mpfr.texi] Updated the month.
2020-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[NEWS] added mpfr_sinu
[doc/mpfr.texi] improve documentation of mpfr_sinu, and say it is experimental
added mpfr_sinu (work in progress)
2020-12-13 Vincent Lefèvre <vincent@vinc17.net>
[src/zeta.c] Minor correction of a comment.
2020-12-02 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr.h] Added a comment about Intel's compiler ICC and the
unsupported returns_nonnull attribute.
2020-11-15 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Added an item to add "const" in prototypes in the manual.
[doc/mpfr.texi] mpfr_subnormalize: define EXP(x) and PREC(x).
[doc/mpfr.texi] More detailed beginning of "Nomenclature and Types",
which now specifies the convention for the significand and the exponent.
[doc/mpfr.texi] Updated the month.
[doc/mpfr.texi] Document the mpfr_srcptr type.
2020-10-28 Vincent Lefèvre <vincent@vinc17.net>
[tests/talloc-cache.c] Check that malloc() doesn't return a null pointer
(in order to avoid an error with GCC's -fanalyzer, dev version).
2020-10-23 Vincent Lefèvre <vincent@vinc17.net>
[src/invert_limb.h] Added a comment about r14171.
[src/invert_limb.h] Fixed potential issues introduced in 14170.
* The code isn't valid with 16-bit int (allowed by ISO C). So,
make sure with MPFR_STAT_STATIC_ASSERT that unsigned int is
large enough for invert_limb_table2.
Note: since the code is under "#if GMP_NUMB_BITS == 64",
this is unlikely to affect any system in practice, as
GMP_NUMB_BITS == 32 (or 16, if supported) should be better
on such a system.
* Make sure that the "<< 11" shifts do not overflow.
2020-10-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/invert_limb.h] patch from Alexei Sibidanov, which reduces memory usage,
without degrading performance
2020-10-23 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Replaced WG14 N2405 reference by the new N2579.
2020-10-21 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Updated UBF comment about aliasing rules.
[src/mpfr-impl.h] Updated UBF comment about aliasing rules.
[src/mpfr-impl.h] Updated UBF comment about aliasing rules.
2020-10-19 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated mpfr_rootn_ui description about "agree with
the rootn function", now that IEEE 754-2019 is there (needed as
rootn was underspecified in IEEE 754-2008, so that TS 18661-4
incorrectly specified the case rootn(-inf, n even); see WG14 N2309
from the C FP group for the correction).
2020-10-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed typo
2020-10-08 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Added a note about _Float128 vs long double.
[src/mpfr-impl.h] Added a TODO for the numberof() macro: make it a
constant expression and possibly change its type "long" to "ptrdiff_t".
[doc/mpfr.texi] Minor changes in Section "Formatted Output Functions".
[NEWS] Update.
[doc/mpfr.texi] Section "API Compatibility", formatted output functions
(mpfr_printf, etc.): completed r14155.
[doc/mpfr.texi] Updated the month.
[src/vasprintf.c] Improved comment for READ_INT.
2020-10-07 Vincent Lefèvre <vincent@vinc17.net>
Fixed the formatted output functions (mpfr_printf, etc.) in the case
the precision consists only of a period.
* doc/mpfr.texi: correction and clarifications (be closer to ISO C);
note the change in Section "API Compatibility".
* src/vasprintf.c: fixed the bug.
* tests/tsprintf.c: update.
2020-10-07 Vincent Lefèvre <vincent@vinc17.net>
[src] Consistency: in prototypes, changed
mpz_t to mpz_ptr (mpfr-impl.h, pool.c);
mpfr_random_deviate_t to mpfr_random_deviate_ptr (random_deviate.c).
Note: This completes the changes I had done in r14103 (2020-08-21) for
mpfr_t. This time, the issue was detected by a GCC 11 snapshot, thanks
to the -Warray-parameter option (included in -Wall), which was added
on 2020-09-19 in GCC commit 6450f07388f9fe575a489c9309c36012b17b88b0.
2020-10-07 Vincent Lefèvre <vincent@vinc17.net>
[src/vasprintf.c] Updated a comment.
Added tests/gen-printf-dot-prec Perl script to generate a .c file
showing printf and mpfr_printf output with:
* a missing precision field;
* a precision field with just a period (".");
* a precision field with an explicit precision 0 (".0").
2020-09-27 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset_z_2exp.c] Fixed typo detected by GCC.
[src/set_z_2exp.c] Fixed overflow/underflow detection in exponent ranges
where emax < 0 or emin >= 0 (bug introduced in r14145).
[tests/tset_z_2exp.c] Added some tests in a reduced exponent range (and
improved existing tests).
Note: Due to an incorrect change in set_z_2exp.c r14145, various tests
are failing with mini-gmp (for which mpfr_set_z_2exp is used more often
because a long does not fit into a limb) in unusual exponent ranges. So
such tests were obviously missing in tset_z_2exp.c before this commit.
2020-09-25 Vincent Lefèvre <vincent@vinc17.net>
[src/set_z_2exp.c] Fix: avoid possible integer overflows.
[tests/tset_z_2exp.c] Test a result.
[doc/README.dev] Added how to convert an unsigned integer to the
corresponding signed integer with the two's complement rule (i.e.
modular arithmetic) but in a portable way.
[tests] Updated svn:ignore property due to the rename in r14125.
2020-09-24 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset_z_2exp.c] Added another test that fails with just
"-m32 -fsanitize=undefined -fno-sanitize-recover".
This corresponds to what is described in the FIXME in src/set_z_2exp.c
(about the modified tnrandom.c test yielding an integer overflow).
[tests/tset_z_2exp.c] Added a test that triggers an integer overflow
in set_z_2exp.c with MPFR_CHECK_LARGEMEM=1 when MPFR is compiled with
"-m32 -fsanitize=undefined -fno-sanitize-recover -D_MPFR_EXP_FORMAT=4"
in CFLAGS:
set_z_2exp.c:71:26: runtime error: signed integer overflow:
134217726 * 32 cannot be represented in type 'long int'
2020-09-23 Vincent Lefèvre <vincent@vinc17.net>
[src/exp2.c] Added support for -D_MPFR_EXP_FORMAT=4 in the 32-bit ABI,
i.e. 32-bit long, so that the MPFR compilation no longer fails due to
a static assertion in this file. Note: many tests fail (not texp2),
but at least this allows some testing of various functions.
2020-09-23 Vincent Lefèvre <vincent@vinc17.net>
[INSTALL] Update concerning MinGW and the __USE_MINGW_ANSI_STDIO macro.
The change done in r13668 seems to be a bit wrong (at least unclear).
This was done after finding
https://fr.osdn.net/projects/mingw/lists/archive/users/2019-January/000199.html
saying that __USE_MINGW_ANSI_STDIO became deprecated, during a
discussion on the vsnprintf() behavior:
https://gmplib.org/list-archives/gmp-bugs/2020-January/004716.html
However, it seems that printf() conformity issues have completely been
resolved only recently, in version 8.
http://mingw-w64.org/doku.php says:
Version 8 has been released
v8.0.0: 2020-09-18
Notable changes:
[...]
* __USE_MINGW_ANSI_STDIO now automatically enabled in C99 and C11
mode when not using UCRT by Pali Rohár
[...]
Compiling
#include <stdio.h>
int main (void) { volatile double d = -1.25; printf ("%e\n", d); }
gives with mingw-w64 version 7: -1.250000e+000
and with mingw-w64 version 8: -1.250000e+00
So, when testing MPFR with mingw-w64 version 8 but with GMP still built
with mingw-w64 version 7 (and static libraries), one gets a failure in
tsprintf:
Error in mpfr_vsprintf (s, "%e", ...);
expected: "-1.250000e+00"
got: "-1.250000e+000"
because the expected result has changed (it comes from sprintf used in
the MPFR test, which is now ISO-compliant).
2020-09-18 Vincent Lefèvre <vincent@vinc17.net>
[src/set_z_2exp.c] Added a FIXME: possible integer overflow, which
can be reproduced with a 32-bit ABI by defining MPFR_PREC_MAX as
((mpfr_prec_t) ((((mpfr_uprec_t) -1) >> 1) - 63)) and in tnrandom.c,
using "test_special (MPFR_PREC_MAX);".
2020-09-16 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
[doc/mini-gmp] Say that the build with mini-gmp may require ISO C99+
features (as "long long" is currently needed by src/get_ld.c in the
case GMP_NUMB_BITS == 8).
For consistency, changed "C89" to "C90" in comments of *.{c,h} files.
[doc/mpfr.texi] Changed C89 to C90, as when mentioning ISO, one must
say C90 (C89 is the ANSI version). The GCC manual uses "C90" rather
than "C89", so this is probably better anyway.
[src/get_ld.c] Bug fix with GMP_NUMB_BITS == 8 (thus mini-gmp) and
32-bit long (e.g. with -m32 on x86_64).
2020-09-15 Vincent Lefèvre <vincent@vinc17.net>
Renamed some .c files for consistency:
src/get_z_exp.c → src/get_z_2exp.c
src/set_z_exp.c → src/set_z_2exp.c
tests/tset_z_exp.c → tests/tset_z_2exp.c
and updated src/Makefile.am and tests/Makefile.am files.
[src/random_deviate.c] The latest change r14123 was actually incorrect:
the real issue was non-portable code (with an incorrect comment) to
convert an unsigned integer to a signed, negative integer. Incorrect
behavior could occur with some C implementations and/or when mpfr_exp_t
does not have the same size as long. So, fixed this portability issue,
and avoid an assertion failure in a very rare case.
[src/random_deviate.c] Corrected an assertion. → Test failures.
[tests/tests.c] Added a note about tests done in "src/init2.c".
[src/init2.c] Check that __MPFR_EXP_MAX == MPFR_EXP_MAX too.
[tests/tget_z.c] Updated comment to mention that mpfr_get_z_2exp is
tested by this file.
[src/mpfr-mini-gmp.c] Fixed bug in gmp_urandomb_ui when the parameter n
is equal to the width of unsigned long.
Note: This case occurs in function random_deviate_generate() from
src/random_deviate.c with a 32-bit ABI (thus 32-bit unsigned long)
since n = W, which is defined as 32.
2020-09-14 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-mini-gmp.c] Simplified gmp_randseed_ui (note: the code in
r14114 and r14115 was not the intended one due to the wrong variable
in srand).
[src/mpfr-mini-gmp.c] Corrected latest change for gmp_randseed_ui.
With mini-gmp, use the standard rand() and srand() functions instead of
the POSIX (thus less portable) lrand48() and srand48().
2020-09-10 Vincent Lefèvre <vincent@vinc17.net>
ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC0 svn log -rHEAD:0 -v".
Note: this includes URL updates.
Updated URLs.
[src/sub1sp.c] Updated a URL (http → https).
[doc/README.dev] Updated URLs.
[configure.ac] Updated a URL (http → https).
[configure.ac] Updated a URL concerning the "Intel® C++ Compiler 9.0
for Linux Release Notes" (the URL was not archived).
Updated a freebsd.org URL (bug tracker).
2020-08-21 Vincent Lefèvre <vincent@vinc17.net>
[src,tests] Consistency: in prototypes, changed
const mpfr_t to mpfr_srcptr
mpfr_t to mpfr_ptr
(except for mpfr_t *), as this is equivalent (the array is converted
to a pointer) and the mpfr_srcptr/mpfr_ptr form is the usual one.
2020-08-20 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Added a note about "string + integer" expressions.
[tests/tsprintf.c] Replaced another occurrence of the code triggering
the warning "adding 'int' to a string does not append to the string
[-Wstring-plus-int]" with Clang (at least with 3.5 and above).
2020-08-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed a compiler warning found by Clang 10.0.1 on armv8-a (Samsung S8
aarch64-unknown-linux-android):
tsprintf.c:1613:27: warning: adding 'int' to a string does not append to the string [-Wstring-plus-int]
strcat (buf, ",0" + (j % 3 != 0));
~~~~~^~~~~~~~~~~~~~
2020-08-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed a compiler warning found by Clang 10.0.1 on armv8-a (Samsung S8
aarch64-unknown-linux-android):
./tgeneric.c:208:40: warning: implicit conversion from 'mp_limb_t' (aka 'unsigned long') to 'double' changes value from 18446744073709551615 to 18446744073709551616 [-Wimplicit-int-float-conversion]
(double) randlimb () / MPFR_LIMB_MAX;
~ ^~~~~~~~~~~~~
../src/mpfr-impl.h:1277:28: note: expanded from macro 'MPFR_LIMB_MAX'
#define MPFR_LIMB_MAX ((mp_limb_t) -1)
^~~~~~~~~~~~~~
2020-08-09 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
[doc/mpfr.texi] In the paragraph about cases that are hard to round,
also mention potentially exact cases.
2020-07-20 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Added a paragraph on the issue with GCC and
conversions between binary and decimal types.
[src/get_d128.c] Updated FIXME comment (after r14087).
[src/get_d128.c] Removed unused variable due to r14087.
[src/get_d128.c] For the special values, avoid double to _Decimal128
conversions, as for such conversions, GCC generates from 2 to 3 MB in
the shared library when the decimal encoding is BID, and there will be
no fix in GCC:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96173
We now use computations on _Decimal128 constants directly, which could
thus be done at compile time. We expect no problems similar to double,
as the _Decimal128 implementation should follow the IEEE 754 rules.
This commit should avoid a large part of the problem reported at:
https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=21849&group_id=136
2020-07-15 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset_ld.c] Improved an error message.
2020-07-13 Vincent Lefèvre <vincent@vinc17.net>
[tests/tests.c] Simplified the d_trace and ld_trace functions:
we do not need a union (with its potentional padding) as there
are no aliasing issues with unsigned char.
[tests/tset_ld.c] Fixed mpfr_out_str usage in error messages
(see the change in r12520).
[tests/tget_ld_2exp.c] Corrected a function call in an error message.
[examples/version.c] "Compiler:" line: detect TCC (__TINYC__ macro).
(merged r14078 from tests/tversion.c)
[tests/tversion.c] "Compiler:" line: detect TCC (__TINYC__ macro).
2020-07-12 Vincent Lefèvre <vincent@vinc17.net>
[src/get_d128.c] Updated the FIXME.
[src/get_d128.c] Added a FIXME to work around GCC bug 96173.
2020-07-10 Vincent Lefèvre <vincent@vinc17.net>
[src/jyn_asympt.c] Added an assertion.
[doc/README.dev] In the MPFR_CHECK_EXPENSIVE description, say that
--enable-assert=full should not be used (too expensive, not needed).
[tests/tjn.c] Added a related comment for the expensive bug20200703
test (which may take more than 1 hour with --enable-assert=full).
[tests/tjn.c] Corrected indentation.
2020-07-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tjn.c] added another test
[src/jyn_asympt.c] fixed previous commit
[src/jyn_asympt.c] partly solved the slowness of jn(733333,733333)
2020-07-03 Vincent Lefèvre <vincent@vinc17.net>
[src/jyn_asympt.c] Replaced some MPFR_EXP by MPFR_GET_EXP.
[src/jyn_asympt.c] Added a log message.
[tests/tjn.c] Added testcase for bug reported by Alex Coplan:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96044
mpfr_jn is very slow or doesn't terminate on (733333,733333).
2020-07-01 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] For MPFR 4.1.0, added an item saying that TLS can safely be
(re-)enabled on Sparc.
2020-06-29 Vincent Lefèvre <vincent@vinc17.net>
[tests/mpfr-test.h] Avoid a GCC bug on Sparc, at least when using TLS.
The MPFR library itself is not affected, only a particular test. Normal
code using the MPFR library should not be affected either, as the bug
occurs when accessing __gmpfr_flags directly (and the public mpfr.h
header file does not provide any macro that accesses an internal
variable directly). So a workaround for the tests is the best solution.
2020-06-18 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Update for the next release.
[src/mpfr-longlong.h] Mention applied patch (in r14035).
2020-06-17 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-longlong.h] Applied patch on
https://gmplib.org/list-archives/gmp-bugs/2020-June/004807.html
to fix add_ssaaaa and sub_ddmmss on arm / aarch64 (after a
reverse-merge of r14032 and r13997), in order to resolve
https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00017.html
https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00059.html
[tests/tcmp_ui.c] Added a comment about a failing test with tcc if
one adds tcc support for macros using __builtin_constant_p in mpfr.h
by testing __TINYC__.
Bug report against tcc: https://savannah.nongnu.org/bugs/?58606
2020-06-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mpfr-longlong.h] disable buggy sub_ddmmss for aarch64
2020-06-15 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Corrected and detailed the description of
mpfr_get_str_ndigits.
[src/get_str.c] Since the mpfr_get_str_ndigits function is in the
public API, use MPFR_ASSERTN instead of MPFR_ASSERTD on the condition
on the argument b in order to get an assertion failure (by default)
if this condition is not satisfied.
2020-06-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[doc/mpfr.texi] specify the range of b for mpfr_get_str_ndigits
2020-06-14 Vincent Lefèvre <vincent@vinc17.net>
[tests/tdigamma.c] Increase the number of tests.
2020-06-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/digamma.c] fixed bug found while testing mpfr-4.1.0-rc1
2020-06-14 Vincent Lefèvre <vincent@vinc17.net>
[src/digamma.c] Added a FIXME.
[src/digamma.c] Replaced mpfr_get_exp by MPFR_GET_EXP.
[src/digamma.c]
* Replaced some MPFR_EXP by MPFR_GET_EXP to check that the MPFR number
has an exponent (i.e. it is not a special value).
→ Assertion failure in tdigamma (on x86_64).
Note: this might be the cause of an unexpected loop (infinite loop?)
on a Debian 10.4 POWER9 machine:
https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00025.html
* Added an integer overflow check on a precision.
2020-06-13 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset_ld.c] In a test specific to x86 extended precision, in case
of incorrect result, detect whether Valgrind is used and one gets the
result obtained with Valgrind due to
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=890215
https://bugs.kde.org/show_bug.cgi?id=421262
(long double behaves as double); in this case, output a message without
an error since Valgrind is the only cause of the miscalculation.
[tests/tset_ld.c] bug_20160907 (tests on subnormals):
* Replaced an assertion by a test with detailed output.
* Corrected a value in a test, which did not match the comment.
[tests] Skip tabort_defalloc1 and tabort_defalloc2 under Valgrind, as
Valgrind complains due to the large allocation size.
* mpfr-test.h, tests.c: added tests_run_within_valgrind() function to
guess whether the test runs within Valgrind.
* tabort_defalloc1.c, tabort_defalloc2.c: skip the test (exit code 77)
if this function returns true.
[configure.ac] Improvements concerning the default CFLAGS with GCC.
* Add -Wc++-compat option to CFLAGS with GCC ≥ 4.1 not in C++ mode.
Changes based on Bruno Haible's patch suggested at
https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00008.html
(with some autoconf related fixes).
* Output the $CFLAGS value that is eventually used.
[configure.ac] No longer add -Wc++-compat to CFLAGS when the compiler
is GCC not in C++ mode (reverting the change done in r13406) since this
option is not available before GCC 4.1:
https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00008.html
[doc/mpfr.texi] ACM TOMS article: use the preferred DOI URL.
[tests/tfpif.c] Updated comment about the bug detected on AIX.
[tools/announce-text] For release candidates, automatically adapt the
flow of the text.
[NEWS] Updated mpfr.org URLs (http → https).
[tools/announce-text] Better line lengths for release candidates.
2020-06-12 Vincent Lefèvre <vincent@vinc17.net>
[README] Added URL of the official GNU MPFR website and a note about the
future migration, since InriaForge will shut down in December 2020.
[tests/tests.c] Removed a useless "#include <errno.h>" (added in r5252,
useless since r5253).
[tests/tfpif.c] Fixed a bug (in the test) detected on AIX[*], where
an fclose failed due to a previous read failure. At the same time,
check that a read failure no longer occurs. Note: the read failure
made mpfr_fpif_import fail, but this is a test where it is expected
to fail, i.e. we now check that it fails for a good reason.
[*] gcc119.fsffrance.org on the GCC Compile farm.
[tools/update-version] Improved a message.
[src/mpfr-longlong.h] Corrected a comment from GMP's longlong.h, which
makes codespell complain in particular.
[tools/mpfrlint] Improved the __GMP_DECLSPEC test:
* No longer exclude "src/mpfr.h".
* Avoid false positives in "src/mpfr.h" and "src/mpfr-longlong.h".
[doc/mpfr.texi] Updated the month.
Updated version to 4.2.0-dev.
ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC0 svn log -rHEAD:0 -v".
2020-06-11 Vincent Lefèvre <vincent@vinc17.net>
Renamed mpfr_total_order to mpfr_total_order_p for consistency with the
other predicates (by convention, the function name should end with _p).
[NEWS] New function mpfr_total_order. Detailed mpfr_get_str_ndigits.
[doc/README.dev] Updated "To make a release".
[doc/README.dev] Updated "To make a release".
[src/Makefile.am] Updated -version-info to 7:0:1 for MPFR 4.1.0.
[NEWS] Additional details, in particular binary compatibility.
[NEWS] Some improvements.
2020-06-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[doc/mini-gmp] one more test is skipped now
[doc/mini-gmp] add test results with reduced limb size (int)
2020-06-11 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Updated "To make a release".
2020-06-10 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Added release name for 4.1.0: "épinards à la crème".
[doc/mini-gmp] English usage improvement.
Fixed 2 issues with tests/tvalist.c:
1. When building with mini-gmp (--with-mini-gmp=DIR) without
optimizations (-O0), the build of tvalist was failing because
the formatted output functions are not supported (this issue
wasn't noticed with optimizations due to dead code elimination).
Fix: this test is disabled with mini-gmp (not needed anyway).
2. Dead code elimination with optimizations partly broke the goal
of this test, i.e. checking that mpfr_vfprintf was available.
This dead code was introduced in r7648 "Make sure that fct is
used (avoid a warning)." (where fct = mpfr_vfprintf) but was
actually not sufficient.
Fix: call mpfr_vfprintf unconditionally, but on an empty string
in order to avoid output to stdout.
In addition to these changes in tests/tvalist.c, src/mpfr-impl.h could
be simplified as a consequence.
Removed '# undef HAVE_STDARG' before '# include "config.h"' when it
was used, as it was not always undefined (e.g. in tests/tsprintf.c)
and there are no reasons to undefine this macro specifically.
Note: this code was introduced in r2665 (2004-02-06), perhaps for
the MPFR build inside GMP, which has been dropped a long time ago.
[tests/tvalist.c] Updated a comment.
[tests/tvalist.c] Correction when config.h is used (code copied from
src/inits.c).
2020-06-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[doc/mini-gmp] review
2020-06-10 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Typo in option name.
[src/mpfr-longlong.h]
* Updated comment about this file and the changes against GMP 6.2.0.
* Define __GMP_GNUC_PREREQ if it isn't defined (this is currently not
needed since it is defined in gmp.h as used also there, but this is
useful in case some future gmp.h version no longer defines it).
[src/mpfr-longlong.h] Update: applied the diff of GMP's longlong.h
between GMP 6.1.0 and GMP 6.2.0, after reverting changesets 13251,
11042, 11025, and 10727, as these changes are present in the diff.
[configure.ac] With mini-gmp, also check the availability of srand48.
[src/mpfr-mini-gmp.c] For gmp_randseed_ui, which uses srand48, use
a portable version of the conversion from unsigned long to long.
[doc/mini-gmp] Note also that the random functions are not thread-safe.
[doc/mini-gmp] Major update.
[NEWS] Removed a FIXME (no problems found).
2020-06-09 Vincent Lefèvre <vincent@vinc17.net>
[tests/tversion.c] Code style: replaced (mp_limb_t) -1 by MPFR_LIMB_MAX.
[src/mul_ui.c] Bug fix: in the code where MPFR_LONG_WITHIN_LIMB is
not defined, update the flags (needed for the possible overflow).
[tests/tmul_ui.c] Added an overflow check that fails in MPFR_RNDZ with
mini-gmp and mp_limb_t < long (e.g. "-DMINI_GMP_LIMB_TYPE=short").
[tests/tgeneric.c] In the MPFR_SUSPICIOUS_OVERFLOW case, output yprec.
[src/mpfr-impl.h] Changed the code that defines MPFR_LONG_WITHIN_LIMB
in order to support mini-gmp with -DMINI_GMP_LIMB_TYPE=...
[src/get_ld.c] Fixed build failure with GMP_NUMB_BITS == 8 due to the
use of uint64_t in src/get_ld.c, while <stdint.h> was not included:
replaced it by "unsigned long long", which does not need a specific
header (an exact 64-bit type is not needed, we just need at least a
64-bit width, which unsigned long long is guaranteed to have).
Note: unsigned long long may not be available with a pre-C99 compiler,
but this is not worse than uint64_t. This limitation is currently OK
as GMP_NUMB_BITS == 8 support is just for testing.
[acinclude.m4] Make MPFR_CHECK_MP_LIMB_T_VS_LONG and
MPFR_CHECK_MP_LIMB_T_VS_INTMAX similar:
* Use AC_LINK_IFELSE in MPFR_CHECK_MP_LIMB_T_VS_LONG too: this
is safer than AC_COMPILE_IFELSE, as it will detect undefined
function-like macros.
* Define MPFR_USE_STATIC_ASSERT in MPFR_CHECK_MP_LIMB_T_VS_INTMAX
too in order to make sure that a static assertion is used (not
the MPFR_ASSERTN fallback).
Note: These constitute redundant safeguards because if MPFR_ASSERTN
is used, it will be regarded as a function since the macro is not
defined in this context, and linking will fail as a consequence.
But this redundancy will protect more against MPFR code evolution.
[acinclude.m4] Fixed MPFR_CHECK_MP_LIMB_T_VS_LONG macro by forcing
MPFR_USE_STATIC_ASSERT to 1 before including mpfr-sassert.h, i.e.
by requiring static assertions: because AC_COMPILE_IFELSE is used
(i.e. just compiling, no linking), the test could incorrectly succeed
when MPFR_USE_STATIC_ASSERT was not defined, i.e. whatever the value
of "(mp_limb_t) -1 >= (unsigned long) -1"; indeed, in this case,
MPFR_ASSERTN() was used instead of a static assertion, and since the
macro was not defined here, MPFR_ASSERTN was regarded as a function
(without a prototype), which was fine for compiling (except when the
compiler is configured to regard warnings such as missing prototype
as errors). In short, one could get "yes" while long was larger than
mp_limb_t.
Note: In uncommon cases (non-standard compiler...), one can still get
"no" while a long fits in mp_limb_t, but this isn't much an issue as
the MPFR code should work in such a case. Moreover, src/mpfr-impl.h
will also have the chance to set MPFR_LONG_WITHIN_LIMB in practice.
Removed MPFR_DECL_STATIC_ASSERT macro as it was buggy, unused, rather
useless, and it had drawbacks. Details:
* In src/mpfr-sassert.h, the default definition of this macro in the
MPFR_USE_STATIC_ASSERT case ended with a spurious ";". Since this
macro was unused, this wasn't noticeable... except in the configure
test for static assertions, which failed in some cases (e.g. with
CFLAGS="-std=c99 -pedantic-errors -Wno-error=overlength-strings")
for this reason, which had the effect to let MPFR_USE_STATIC_ASSERT
undefined, while static assertions were actually working.
* Still in src/mpfr-sassert.h, but when MPFR_USE_STATIC_ASSERT is not
defined, the MPFR_DECL_STATIC_ASSERT(c) expanded to nothing, which
would yield invalid code as
MPFR_DECL_STATIC_ASSERT(some_assertion);
would yield an extra ";" (about the same issue as above). Given
the fact that the portable MPFR_USE_STATIC_ASSERT code does not
work with this compiler, it is not clear whether this is fixable
in a completely reliable way.
* MPFR_DECL_STATIC_ASSERT can be replaced by MPFR_STAT_STATIC_ASSERT
after moving it to the statement section of a function, with almost
no drawbacks (just a bit readability in some cases?).
* When MPFR_USE_STATIC_ASSERT is not defined, MPFR_STAT_STATIC_ASSERT
will check the assertion at run time (for free, since the result is
known at compile time), while MPFR_DECL_STATIC_ASSERT would not be
able to do anything useful.
Changes:
* acinclude.m4: removed the test of MPFR_DECL_STATIC_ASSERT.
* src/mpfr-sassert.h: removed MPFR_DECL_STATIC_ASSERT definitions.
* tune/tuneup.c: removed MPFR_DECL_STATIC_ASSERT redefinition.
2020-06-08 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] MPFR_CHECK_MP_LIMB_T_VS_LONG: updated comment to say
that using MPFR_ASSERTN (as the code tries to do if static assertions
are not supported, but currently fails) would be incorrect.
[acinclude.m4] In MPFR_CHECK_MP_LIMB_T_VS_INTMAX, do the test only if
intmax_t is defined (assuming that it is iff uintmax_t is defined).
[tests/tversion.c] Also output the results of the detection of
"long within limb" and "intmax_t within limb".
2020-06-04 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] Removed an obsolete FIXME, which is probably wrong.
[configure.ac] Updated a comment, replacing a resolved FIXME.
[acinclude.m4] MPFR_CHECK_DBL2INT_BUG test: avoid potentially reserved
exit status.
[acinclude.m4] Fixed r13938: the new MPFR_C_REALFP_FORMAT macro also
needs to take the printf length modifier in argument.
[acinclude.m4] Improved the code to determine the format of double,
resolving the FIXME. The issue was that it used an AC_RUN_IFELSE,
so that the format could not be determined when cross-compiling.
The code to determine the format of long double did not have such
an issue: the object file was analyzed by an awk script. Since a
long double can have the same format as a double, this code was
already able to recognize a double, in particular. So the change
consisted in slightly adapting this code to accept the tested type
as an argument ("double" or "long double", the mpfr_cv_… variable
name being obtained thanks to AS_VAR_PUSHDEF) and reusing it for
the detection of the format of double.
[acinclude.m4] MPFR_C_LONG_DOUBLE_FORMAT cleanup:
* Removed an unused AH_VERBATIM.
* Removed "not available" condition, no longer possible since r13936.
[acinclude.m4] Fix concerning r13935: also removed code that tested
the availability of long double. This code was useless since it was
just outputting "not available" if long double was missing, and one
would get an error later since MPFR requires long double. But since
long double is in ISO C89, it is useless to add a test just to return
an error for pre-C89 compilers.
[acinclude.m4] Removed "AC_CHECK_TYPES([long double])", whose only
purpose is to define a HAVE_LONG_DOUBLE macro.
[configure.ac] Removed HAVE_LONG_DOUBLE from the cleanup: no longer
needed with the change in acinclude.m4.
2020-06-03 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] Minor change in a comment.
Cleanup about the function detection by autoconf.
* acinclude.m4: removed the detection of memmove, memset and strtol,
which was not used (a macro "HAVE_..." was defined... to be removed
in configure.ac!); for AC_CHECK_FUNCS, remove options starting with
"-Werror" as they can yield a spurious failure due to the way this
test is done (this occurred on memmove and memset with GCC due to
builtins, and similar issues could still occur in practice with the
remaining functions in the AC_CHECK_FUNCS list).
* configure.ac: removed HAVE_STRTOL from the macro cleanup: no longer
needed since strtol has been removed from the AC_CHECK_FUNCS list.
[acinclude.m4] Minor improvement: in the MPFR_CHECK_GMP test, changed
the exit status values 1..3 to 81..83 in order to avoid confusion, as
low values can typically be returned in case of compile or link error.
2020-06-02 Vincent Lefèvre <vincent@vinc17.net>
[tests/memory.c] Updated a comment.
[src/mpfr-longlong.h] Added code to check that mpfr-longlong.h is not
included directly; MPFR_NEED_LONGLONG_H must be defined instead.
[acinclude.m4] To complete r13928, one also needs to define
MPFR_NEED_INTMAX_H here when mpfr-intmax.h is used.
[src/{mpfr-impl.h,mpfr-intmax.h}] Added code to check that mpfr-intmax.h
is not included directly; MPFR_NEED_INTMAX_H must be defined instead.
2020-06-01 Vincent Lefèvre <vincent@vinc17.net>
Bug fixes and cleanup related to "src/mpfr-intmax.h" by introducing
a new macro MPFR_NEED_INTMAX_H, which should be defined instead of
using: #include "mpfr-intmax.h"
Details on the bugs fixed:
* The code added in r13916 forgot a #include <limits.h> since this
code does a test on ULLONG_MAX. With the cleanup, <limits.h> is
already always included by mpfr-impl.h (early enough).
* In src/get_str.c and tests/memory.c, a #include "config.h" was
missing before #include "mpfr-intmax.h"; this issue would affect
platforms where "config.h" is needed and where <inttypes.h> or
<stdint.h> does not exist or does not work.
2020-06-01 Vincent Lefèvre <vincent@vinc17.net>
[tests/tgamma.c] For the non-regression test added in r13907, one
also needs to temporarily increase the memory limit, thus require
MPFR_CHECK_LARGEMEM too.
2020-05-26 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] If decimal floats are explicitly disabled, do not do
the check of the bit-field ordering for _Decimal128.
[acinclude.m4] Fixed detection of bit-field ordering for _Decimal128:
a compiler error with exit status 1 was mixed up with little endian.
2020-05-24 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-intmax.h] Added support for Silicon Graphics IRIX 6.5 (1998)
with native /usr/bin/cc, which knows the long long type but defines
ULONGLONG_MAX, etc. instead of ULLONG_MAX, etc.
[tests/tget_ld_2exp.c] Reverted r13914 as we still need to support
pre-C99 compilers (and this change was useless).
If C99 syntax is needed, there should be a configure test, and the
code should be conditional.
2020-05-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tget_ld_2exp.c] put expected value in hex in bug20180904()
2020-05-20 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] "To make a release": mention MPFR_CHECK_EXPENSIVE.
2020-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tgamma.c] added comment about bug fix
[src/bernoulli.c] improve initial precision in mpfr_bernoulli_internal()
(avoid failures for n <= 10000)
[src/bernoulli.c] fix bug with non-regression test added in r13907
[src/bernoulli.c] temporary fix for the bug in mpfr_gamma, something must be
wrong in the error analysis of mpfr_bernoulli_internal()
[doc/README.dev] added MPFR_CHECK_EXPENSIVE
[tests/tgamma.c] use MPFR_CHECK_EXPENSIVE
added non-regression test for bug reported by Frithjof Blomquist
2020-05-04 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Use of codespell: better workaround to python ugliness.
2020-04-27 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Section "Rounding" / even-rounding rule: the odd
radices β are actually not concerned since in such radices, β^k
is always odd, so that the exponent does not matter.
[doc/mpfr.texi] In Section "Rounding", for MPFR_RNDN, added a note
about the even-rounding rule in particular cases: 1-digit precision
and odd radices.
Note: A short explanation was already in the mpfr_get_str description,
which is where the issue could occur at the time the minimum precision
of MPFR numbers was 2. Now that the minimum precision is 1, this rule
in such special cases is more general.
[doc/mpfr.texi] + "than": also in a comment.
[doc/mpfr.texi] Corrected a typo. Changed "{less,greater} or equal to"
to the more common "{less,greater} than or equal to".
2020-04-26 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] In the paragraph on mpfr_rnd_t, give a reference
to Section "Rounding".
[doc/mpfr.texi] s/can not/cannot/
[doc/mpfr.texi] Improved Section "Rounding" even more:
* Added a note about the sign of the result (important for 0).
* Described the directed rounding modes (BTW, this notion of
"directed rounding modes" was used but never defined).
[doc/mpfr.texi] Improved the description of the rounding modes:
* Be more clear that MPFR_RNDN uses the even rounding rule.
* In "two representable numbers", add "consecutive".
* Be more general than radix 2 (due to conversions to a string).
* Consistent typography.
2020-04-25 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi]
* mpfr_init2: mention mpfr_prec_round; added a note about
memory allocation.
* mpfr_prec_round: clarification ("new allocation" could be
surprising since one needs less memory).
2020-04-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[doc/mpfr.texi] document that mpfr_prec_round does no new allocation
in case the allocated memory is enough
2020-04-22 Vincent Lefèvre <vincent@vinc17.net>
[src/atan.c] Removing the FIXME: I can't see anything wrong in the
MPFR code. This could be a bug in GCC's analyzer (which is currently
experimental). And GCC bug 94713 in the analyzer prevents debugging
as it makes impossible to track uninitialized values: warnings do not
occur the first time an uninitialized value occurs.
[src/atan.c] Added an assertion.
[src/atan.c] Reduce the number of mpz_get_ui calls with assertions.
[src/atan.c] Added a FIXME.
2020-04-14 Vincent Lefèvre <vincent@vinc17.net>
[doc/texinfo.tex] Update to 2020-02-11.09 with "autoreconf -i -f"
under Debian/unstable.
Note: The generated mpfr.html and mpfr.info files remain the same.
In mpfr.pdf, there are minor changes concerning horizontal spacing
in paragraphs with a URL.
2020-04-11 Vincent Lefèvre <vincent@vinc17.net>
[tests/tget_set_d64.c] Fixed missing "#if _MPFR_IEEE_FLOATS" that
became visible with r13878 now that the encoding of decimal floats
can be detected at compile time. But by fixing the defined macros
manually, this issue could be visible before r13878.
2020-04-10 Vincent Lefèvre <vincent@vinc17.net>
Reworked decimal support and detection, resolving FIXMEs.
* INSTALL, acinclude.m4, configure.ac: --enable-decimal-float can
take new values. Change of macro DPD_FORMAT (DPD was assumed in
case of cross-compilation, which could be wrong) to 3 new macros:
DECIMAL_DPD_FORMAT, DECIMAL_BID_FORMAT, DECIMAL_GENERIC_CODE.
* doc/README.dev: documented these 3 new macros.
* src/mpfr-impl.h: the detection of the BID encoding can now be
done at compile time when GCC defines __DECIMAL_BID_FORMAT__
(as on x86); support of the 3 new macros.
* src/{get_d64.c,set_d64.c,set_d128.c}: update.
* tests/{tget_set_d64.c,tget_set_d128.c,tversion.c}: update.
2020-04-08 Vincent Lefèvre <vincent@vinc17.net>
Updated URLs of the GCC mailing-list archives.
2020-04-06 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-gmp.h] Updated FIXME about AC_FUNC_ALLOCA (in 2019-01, I
already noticed a probable bug in the AC_FUNC_ALLOCA description,
but forgot about it).
[doc/mpfr.texi] Updated the month.
[doc/mpfr.texi] Formatted output functions: added a comment with the URL
of the bug report.
[NEWS,doc/mpfr.texi] Documented the improvement in the formatted output
functions (mpfr_printf, etc.) with an empty precision field, about
trailing zeros.
2020-04-03 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsub.c] Corrected MPFR_ASSERTD to MPFR_ASSERTN.
[tests/tsub.c] Reverted r13862 and fixed the test_ubf test: A random
precision was too small, so that an input for the test was not computed
exactly (I had modified the values of the inputs for better tests, but
forgot to change the minimum precision). Also check that the inputs are
computed exactly (which is what I often do, but here, I had forgotten),
in order to make errors like the above one easier to understand in case
the test will have to be modified later.
Note: With the incorrect input, the mpfr_sub1 result and flags were
actually correct, so that this was only a bug in the test.
2020-04-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[INSTALL] update CompCert instructions
2020-04-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[INSTALL] fixed CompCert instructions
2020-04-02 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset_ld.c] Reverted r13858: the check_overflow test was already
in MPFR 4.0.1 and was succeeding on armv5tejl-unknown-linux-gnueabi,
which had mpfr_cv_c_long_double_format='IEEE double, little endian'.
The issue should be investigated.
Note: MPFR_LDBL_MANT_DIG may be larger than the actual number of bits,
but this should not cause a failure in the tests.
[tests/tget_ld_2exp.c] Proper fix: the bug20180904 test was designed
for the x87 extended precision, so enable it only in this case.
2020-04-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tsub.c] modify test_ubf() to always hit a current failing test
2020-04-02 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] Fixed the change done in r13853 (about removed macros),
making the code simpler and more maintainable at the same time.
2020-04-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[INSTALL] added configuration for CompCert test
2020-04-02 Vincent Lefèvre <vincent@vinc17.net>
[src/set_ld.c] Removed obsolete workaround due to LDBL_MAX being buggy
on old i386 systems (the tests were not using this workaround).
2020-04-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tget_ld_2exp.c] fixed for case where long double = double
[tests/tset_ld.c] likewise
2020-04-02 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] Moved MPFR_CONFIGS invocation: MPFR_CONFIGS uses LDFLAGS,
thus must be invoked after LDFLAGS has been determined completely.
2020-04-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[INSTALL] now all tests pass with compcert
[acinclude.m4] added missing LDFLAGS for long double test
2020-04-02 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Added HAVE_ALLOCA description.
[configure.ac] Do not remove the HAVE_ALLOCA macro, which is now used
by MPFR to determine the default MPFR_ALLOCA_MAX value.
2020-04-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[INSTALL] update CompCert instructions
2020-04-02 Vincent Lefèvre <vincent@vinc17.net>
[tests/tversion.c] Output whether MPFR is built with the GMP build,
and the MPFR_ALLOCA_MAX value if not.
[src/mpfr-gmp.h] If HAVE_ALLOCA is not defined, i.e. if alloca() is
not available (as detected by the configure script), then set the
default MPFR_ALLOCA_MAX value to 0 so that alloca() is not used.
2020-04-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[INSTALL] added instructions for CompCert
2020-04-02 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Updated MPFR_ALLOCA_MAX description.
[src/mpfr-gmp.h] When MPFR_ALLOCA_MAX = 0 (set at configure time),
do not reference alloca() since we don't need it.
2020-03-31 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] About mpfr_printf with %Re and empty precision field,
added a comment with URLs of the discussion and the bug report.
2020-03-30 Vincent Lefèvre <vincent@vinc17.net>
[src/sub1.c] Typo in a comment.
[configure.ac] Updated message output when the gmp.h vs libgmp test
fails: another cause may be that LD_RUN_PATH is not honored (problem
seen under OpenBSD 6.6 / gcc302.fsffrance.org).
2020-03-27 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset_sj.c] Forgot a "#ifndef NPRINTF_J" for printf("%jd",...).
[src/set_uj.c] Fixed underflow detection.
[src/set_uj.c] Added early overflow detection to avoid a possible
integer overflow. Added a FIXME (incorrect underflow detection).
[tests/tset_sj.c] Added tests of mpfr_set_sj_2exp and mpfr_set_uj_2exp
in precision 3 with integers from -31 to 31 and exponents MPFR_EXP_MIN,
MPFR_EMIN_MIN-7 to MPFR_EMIN_MIN, MPFR_EMAX_MAX-7 to MPFR_EMAX_MAX,
MPFR_EXP_MAX-7 to MPFR_EXP_MAX (like in tset_si.c, see r13808), but
also exponents INTMAX_MIN and INTMAX_MAX. This shows bugs in set_uj.c,
to be fixed...
[src/set_sj.c] Coding style.
[src] Moved the definition of the numberof() macro from mpfr-gmp.h to
mpfr-impl.h in order to always use our own. Also make sure that the
type is signed, so that the value can be used in arbitrary expressions
without the risk of silently switching to unsigned arithmetic.
2020-03-26 Vincent Lefèvre <vincent@vinc17.net>
[tests/texpm1.c] Updated the bad_cases() parameters to increase the
proportion of generated bad cases.
[tests/tset_si.c] Forgot a cast for MPFR_EXP_FSPEC argument.
[doc/mpfr.texi] Updated the month.
Consistency: "a UBF" → "an UBF" since UBF stands for "unbounded float".
[src/mpfr-impl.h] Updated UBF comment about aliasing rules.
[src/mpfr-impl.h] Updated UBF comment about aliasing rules.
[src/mpfr-impl.h] Bug fix (MPFR_ZEXP(x) as used for an assignment
could yield undefined behavior on platforms where mpfr_exp_t has
trap representations); this is also a general improvement.
[tests/tsub.c] Avoid the build failure with -Werror=strict-aliasing by
replacing x[…] by p[…] (but this doesn't eliminate the problem itself).
[src/mpfr-impl.h] UBF: updated comment: this breaks aliasing rules, but
there isn't any other acceptable solution.
Note: when trying to build MPFR without --enable-assert, with GCC and
CFLAGS="-O2 -Werror=strict-aliasing", the compilation of tests/tsub.c
currently fails because of that.
2020-03-25 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsub.c] Fixed tests on UBF.
[src/sub1.c] Fixed underflow handling in case c small (can occur only
with UBF).
[tests/tfma.c] Minor correction.
[tests/tfma.c] Changed a RND_LOOP to RND_LOOP_NO_RNDF as the behavior
with RNDF changed after a bug fix.
[tests/tsub.c] Completed tests for UBF (currently fail).
[src/sub1.c] Bug fix for UBF and MPFR_RNDF.
[src/set_{si,ui}_2exp.c] Bug fix in MPFR_LONG_WITHIN_LIMB defined case:
added early underflow/overflow checking to avoid integer overflow or
errors due to special exponent values.
[tests/tset_si.c] Added tests of mpfr_set_si_2exp and mpfr_set_ui_2exp
in precision 3 with integers from -31 to 31 and exponents MPFR_EXP_MIN,
MPFR_EMIN_MIN-7 to MPFR_EMIN_MIN, MPFR_EMAX_MAX-7 to MPFR_EMAX_MAX,
MPFR_EXP_MAX-7 to MPFR_EXP_MAX, showing bugs in these functions when
MPFR_LONG_WITHIN_LIMB is defined.
2020-03-24 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsub.c] More tests on UBF. The results are not checked yet,
but running the tests with UBsan could allow one to trigger bugs
(such as the one fixed in r13806).
[src/sub1.c] If exp_b = MPFR_EXP_MIN, an integer overflow may occur in
the "MAX (aq, bq) + 2 <= diff_exp" branch. This is possible only with
UBF. Fixed this bug with an early underflow detection in the UBF case.
[tests/tfmma.c] Added extreme_underflow test: before the r13798 bug fix,
this was triggering an integer overflow.
[tests/tsub.c] Corrected a function name.
[tests/tsub.c] More tests on UBF, in particular with an exponent change
(including subnormal → normal and normal → overflow due to that).
[tests/tsub.c] Tests on UBF: underflow/overflow cases done.
2020-03-23 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsub.c] More tests on UBF.
[src/mpfr-impl.h] UBF: reordered macro definitions.
[src]
* mpfr-impl.h: define MPFR_UBF_GET_EXP macro.
* add1.c, sub1.c: use this macro.
[src/sub1.c] Detect an underflow case (before the main detection) to
avoid a possible integer overflow with UBF.
[tests/tsub.c] Added comments.
[tests/tsub.c] First tests on UBF.
[src/agm.c] Avoid a potential integer overflow with huge precisions.
2020-03-16 Vincent Lefèvre <vincent@vinc17.net>
[src/root.c] Removed useless cast in a comparison, as both operands are
non-negative.
[src/rem1.c]
* Portability fix: when mpfr_exp_t <= long (which is the default),
an addition was done in unsigned integer arithmetic instead of
signed integer arithmetic, with a conversion back to a signed
type, i.e. with potentially implementation-defined behavior.
There could also be an integer overflow on huge-precision values
if mp_bitcnt_t > unsigned long.
* Updated a comment.
[src/pow.c]
* Portability fix: when mpfr_exp_t <= long (which is the default),
an addition with a negative result was done in unsigned integer
arithmetic instead of signed integer arithmetic, with a conversion
back to a signed type, i.e. with implementation-defined behavior.
There could also be an integer overflow on huge-precision values
if mp_bitcnt_t > unsigned long.
* Updated comments.
[src/cos.c] Updated a comment.
[src/cos.c] Updated a comment.
[src/const_log2.c] Corrected type for the return value of mpz_scan1.
2020-03-13 Vincent Lefèvre <vincent@vinc17.net>
[tests/tests.c] Revert a change done in r13783 for function bad_cases():
no longer fail if a generated value does not correspond to a bad case.
But fail if the MPFR_CHECK_BADCASES environment variable is defined
and too few bad cases are generated (less than 90%).
[doc/README.dev] Document MPFR_CHECK_BADCASES.
[tests] Update to test the ternary value in test5rm() when possible,
and support the exact cases.
* tests.c:
- test5rm(): modified the prototype again and the behavior.
Now, either only one test is done and the ternary value is
not checked, or the test is done in the 5 rounding modes and
the ternary value is checked.
- data_check(): corresponding update; updated description.
- bad_cases(): test the exact cases too.
* tatanh.c: for the bad_cases() call, reduce emax to avoid errors in
the generation of bad cases due to the rounding of tanh(y) to 1,
which does not correspond to a bad case for atanh, but to an exact
case.
* tlog1p.c: for the bad_cases() call, reduce emax to avoid errors in
the generation of bad cases due to the rounding of expm1(y) to -1,
which does not correspond to a bad case for log1p, but to an exact
case.
* trec_sqrt.c: corrected the bad_cases() call to avoid negative
numbers.
Note: the following tests
GMP_CHECK_RANDOMIZE=5 ./tacos
GMP_CHECK_RANDOMIZE=6 ./tatan
GMP_CHECK_RANDOMIZE=4 ./tcos
currently fail, but because of a change in r13783 (see associated log
for the reason). To be fixed later.
[tests/tests.c] Modified the prototype of test5rm() to support a
parameter "exact". Therefore the parameter "test_one" is now a boolean
(the value 2 is no longer supported, as redundant with "exact"), and
about data_check() with rnd = '*', the loop is now done in test5rm(),
i.e. test5rm() is called with test_one being false.
2020-03-12 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsqrt.c] For bad_cases(), use the same pos and psup parameters
as in troot.c for "rootn[2]", allowing inexact cases.
[tests/tcbrt.c] For bad_cases(), use the same pos and psup parameters
as in troot.c for "rootn[3]", allowing inexact cases.
[tests]
* tests.c, function bad_cases(): updated/added debug messages;
assume that the parameters are chosen in such a way that this
test always generates hard-to-round cases (including exact cases),
i.e. exit with an error if one does not get a bad case, otherwise
this can leave unexpected failures unnoticed (either due to a bug
in the MPFR library or due to poorly chosen parameters such as in
troot.c until now).
Note: ideally, this would require a proof, but it is better to get
(unlikely) spurious failures with a non-default GMP_CHECK_RANDOMIZE
value than missing important tests.
* troot.c, bad_cases() invocation:
- corrected the pos parameter: when n is even, it is useless to
generate a negative number as the function is not defined (the
inverse function generates a positive number, and the mismatch
now yields a failure due to the change in bad_cases); when n is
odd, generate as many negative numbers as positive ones.
- for n ≤ 5, reduce the psup parameter in order to also generate
inexact cases, instead of always exact cases.
[tests/tests.c] Added a TODO for bad_cases, as the exact cases are not
tested yet. As a consequence, the bad_cases test added in tcbrt.c r13776
is not really useful yet, as the cbrt bad cases are only exact cases.
[tests/tests.c]
* test5rm: removed additional useless tests added in r6037 in the
case test_one true and rnd = MPFR_RNDZ or MPFR_RNDA, since the
description was a bit incorrect and this was used only by
- data/digamma, where this yielded only duplicate tests (mode *);
- data/li2, where mode z is used on a few tests and could be
replaced by mode Z (i.e. test_one false) if need be;
updated description and added details.
* data_check: corrected/updated description.
[tests/tests.c] Minor change in an initialization.
[tests/tget_set_{d64,d128}.c] Added a FIXME and improved a message.
[acinclude.m4] Added a FIXME: in case of cross-compiling, the guess
"DPD" can be wrong, e.g. for the build with MinGW under Linux. One
does not get a failure just because of other issues in the code,
forcing the portable implementation of the decimal functions.
2020-03-11 Vincent Lefèvre <vincent@vinc17.net>
Added bad_cases tests for mpfr_cbrt.
[src/cbrt.c] Improved the algorithm in the case the precision of the
input is larger than 3n, where n is the precision of the output, + 1
if the rounding mode is MPFR_RNDN: instead of truncating the output,
call mpz_root on the truncated input.
[tests/tcbrt.c] Test the ternary value on other exact cases.
[tests/tcbrt.c] Test the ternary value on special cases.
[src/cbrt.c] Description of the algorithm: improvement; corrected the
end, which was incorrect and did not match the code (the comment was
introduced in r2057 and was already incorrect in the round-down case;
then the round-to-nearest case was improved in r2070, but the comment
was not updated).
[src/cbrt.c] Description of the algorithm: correction; added a TODO.
2020-03-10 Vincent Lefèvre <vincent@vinc17.net>
[src/cbrt.c] Description of the algorithm: corrected indentation;
renamed variable r to t in order to avoid confusion with the code
(where r has a different meaning).
[src/cbrt.c] Clarified a comment.
[src/cbrt.c] Resolved the second FIXME and simplified the code
(basically by removing duplicate code).
[src/cbrt.c] Description of the algorithm:
* Since there was no upper bound on s, let's remove the upper bound
on m (this now matches the code).
* Replaced the FIXME by one due to the lack of upper bound on s.
[src/cbrt.c] Added another FIXME as the code does not match the
algorithm described in a comment.
[src/cbrt.c] Improved a condition to avoid operations that correspond
to a no-op.
[src/cbrt.c] Added an assertion.
[src/cbrt.c] Code cleanup and simplification. Added logging messages and
a FIXME about a comment (coming from r2057 with its associated code).
[src/cbrt.c] Removed a useless cast on a comparison operand, since
both operands are non-negative.
[src/atan.c] Added assertions.
[tools/mpfrlint] Workaround to Debian bug 953369 in libpython3.8-minimal
for the codespell invocation.
2020-03-09 Vincent Lefèvre <vincent@vinc17.net>
[src/eint.c] Bug fix: possible integer overflow with some
C implementations (or some _MPFR_PREC_FORMAT / _MPFR_EXP_FORMAT values)
due to the use of incorrect integer types.
[src/eint.c] Added other logging messages.
[src/eint.c] Added some logging messages.
2020-03-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tsin.c] added one test
2020-03-04 Vincent Lefèvre <vincent@vinc17.net>
[src/sub1.c] cancel: also log its value; range checking/tracking.
[src/cmp2.c] Added a comment giving the range of the value returned
in "cancel" and explaining why there is no integer overflow in the
computation of this value.
[src/cmp2.c] Comment: some absolute values are not needed (again).
[src/cmp2.c] Minor correction for |EXP(b) - EXP(c)| >= MPFR_EXP_MAX.
[src/cmp2.c] Better explanation when |EXP(b) - EXP(c)| >= MPFR_EXP_MAX.
2020-03-03 Vincent Lefèvre <vincent@vinc17.net>
[src/cmp2.c] Finished the review of mpfr_cmp2: simplified the code even
more; corrected/updated comments (in the case high_dif = 0, one can have
dif = 1 if c has entirely been taken into account, so that the comment
"dif > 1 here" was incorrect; only dif >= 1 is needed anyway).
[src/cmp2.c] Changed high_dif to type int since it is manipulated like
a boolean. Updated comments.
2020-03-02 Vincent Lefèvre <vincent@vinc17.net>
[src/cmp2.c] Simplified the mpfr_cmp2 code and updated comments.
[src/cmp2.c] Updated comments.
2020-03-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mpfr.h] added comment
2020-03-02 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr.h] _MPFR_PREC_FORMAT and _MPFR_EXP_FORMAT: improved comment.
[src/mpfr.h] _MPFR_PREC_FORMAT and _MPFR_EXP_FORMAT: added a detailed
comment (the previous comment was not obsolete, but misleading).
2020-03-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mpfr.h] removed obsolete comment (_MPFR_PREC_FORMAT=3 is the default
under Linux x86_64)
2020-03-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sin.c] increase initial precision even more
2020-03-01 Vincent Lefèvre <vincent@vinc17.net>
[tests/tpow.c] Replaced mpfr_cmp by !mpfr_equal_p for NaN detection.
[tests/tsin.c] Replaced obsolete function mpfr_mul_2exp by mpfr_mul_2ui.
2020-02-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sin.c] increase initial precision when x is large
2020-02-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/rem1.c] workaround for efficiency bug in mpz_powm_ui, which was making
argument reduction in mpfr_sin for huge x very slow.
Before:
$ ./mfv5 -p113 -e16384 -d-2 mpfr_sin
mpfr_sin: 3289620 / 3576511.59 / 6841956
After this commit:
mpfr_sin: 166868 / 182661.01 / 343224
2020-02-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tpow.c] added one test
added value -2 for option -d to generate random number with exponent
exactly e. Example:
$ mfv5 -p113 -e16384 -d-2 -v mpfr_sin
2020-02-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tpow.c] added a test
[tests/tsin.c] fixed and completed check_binary128()
2020-02-28 Vincent Lefèvre <vincent@vinc17.net>
[src/cmp2.c] Started to review mpfr_cmp2. Minor changes.
[src/cmp2.c] Detailed a comment concerning UBF.
2020-02-27 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsin.c] Cleanup of the latest test (note: mpfr_equal_p is better
than mpfr_cmp as it makes the test fail on a NaN result).
2020-02-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tsin.c] added one test with precision 128
2020-02-27 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr.h] Updated a comment (underscore version of attribute name).
[tools/mpfrlint] Detect the use of the non-underscore version of the
attribute names in mpfr.h (see README.dev).
2020-02-25 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr.h] Use the underscore version of the attribute names.
[doc/README.dev] Added information on this subject.
[TODO] Added item on GNU Automake and -I options.
2020-02-14 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Removed an incorrect comment before MPFR_TMP_INIT1
(this macro does not allocate anything, and MPFR_TMP_INIT just after
can allocate more than 1 limb).
[TODO] About the use of MPFR_MANT(x).
2020-02-13 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Typo.
2020-02-12 Vincent Lefèvre <vincent@vinc17.net>
[tests/tcmpabs.c] Added missing tests of mpfr_cmpabs with NaN.
[tests/tcmpabs.c] For mpfr_cmpabs: like mpfr_cmpabs_ui, do each test
in 4 different contexts, combinations of:
* flags all unset or flags all set;
* usual exponent range or reduced exponent range.
Minor corrections in the old tests.
[tests/tcmpabs.c] For mpfr_cmpabs_ui: do each test in 4 different
contexts, combinations of:
* flags all unset or flags all set;
* usual exponent range or reduced exponent range.
2020-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tcmpabs.c] added tests for mpfr_cmpabs_ui
2020-02-12 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h]
* MPFR_ALIAS: use the comma operator instead of "do ... while (0)"
so that this macro can be used in an expression context.
* MPFR_TMP_INIT_ABS, MPFR_TMP_INIT_NEG: use MPFR_ALIAS.
[src/mpfr.h] Added prototype for mpfr_cmpabs_ui.
[doc/mpfr.texi] Added mpfr_cmpabs_ui to Section "Added Functions"
(API Compatibility).
[tests/trint.c] Replaced obsolete mpfr_cmp_abs by mpfr_cmpabs.
[doc/mpfr.texi] Typo from r13708.
2020-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[NEWS] mention new mpfr_cmpabs_ui
added new function mpfr_cmpabs_ui
renamed cmp_abs.c to cmpabs.c
2020-02-12 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Typo.
[TODO] + Serialization / Deserialization (suggested by Frédéric Pétrot).
I've also added an idea of implementation to reuse most of the code and
change very little.
[src/ubf.c]
* Optimized mpfr_init_get_zexp() for _MPFR_EXP_FORMAT <= 3
(as in the default configuration).
* Updated comments.
[src/mpfr-impl.h] Added UBF-related comments.
[src/mpfr-impl.h] Added UBF-related comments.
[src/mpfr-impl.h] Added a comment for UBF and types.
2020-02-11 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Added a comment for INEXPOS.
[src/mpfr-impl.h] INEXPOS and VSIGN code improvement.
Removed duplicate macro definitions.
[tests/tfmma.c] Use mpfr_set_str instead of mpfr_set_d.
[src/sub1.c] Got rid of some goto's. Added log messages.
2020-02-10 Vincent Lefèvre <vincent@vinc17.net>
[src/sub1.c] Bug fix: the underflow case (possible with UBF, e.g. via
mpfr_fmma or mpfr_fmms) was not tested in the case c small.
Note: this completes r11418 and r12752 for underflow detection.
[src/sub1.c] Added log messages and checked the UBF cases yielding
exp_b == MPFR_EXP_MAX and/or diff_exp == MPFR_EXP_MAX.
2020-02-08 Vincent Lefèvre <vincent@vinc17.net>
[src/vasprintf.c] Added log messages for MPFR_PREC_ARG ('P' specifier).
[tests/tsprintf.c] Fixed some tests: the 'P' specifier was missing.
2020-02-06 Vincent Lefèvre <vincent@vinc17.net>
[src/fmma.c] Reverted the mpfr_check_range from r13688.
The exponent range has not been extended by mpfr_fmma_aux, and the
result comes from mpfr_add, mpfr_sub, or mpfr_set_1_2, which return
results in the current range. If the result of mpfr_fmma_aux is not
in the current range, this is due to a bug in one of these functions.
Note: mpfr_add and mpfr_sub accept UBF inputs.
2020-02-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/fmma.c] fixed bug (result might be out of exponent range)
[tests/tfmma.c] added non-regression test
2020-02-03 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
[doc/mpfr.texi] In the paragraph "MPFR internal data such as flags",
no longer mention caches as caches may now also be global when MPFR
has been compiled as thread safe (locking is used). Caches have been
discussed earlier in the section anyway.
2020-01-23 Vincent Lefèvre <vincent@vinc17.net>
[INSTALL] URL update.
2020-01-20 Vincent Lefèvre <vincent@vinc17.net>
ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
[tests/Makefile.am] Updated a comment; in particular, replaced the two
obsolete gmane.org URLs by lists.gnu.org/archive/html/bug-gnulib ones.
[INSTALL] Removed reference to a gmane.org URL, which no longer exists.
2020-01-16 Vincent Lefèvre <vincent@vinc17.net>
[src/beta.c,tests/ttanh.c] towards → toward (for consistency).
2020-01-10 Vincent Lefèvre <vincent@vinc17.net>
[tests/{tfprintf.c,tprintf.c}] Updated an error message about MinGW,
now output only if MinGW is used.
[doc/README.dev] Concerning MinGW, added a sentence about the use of
the __USE_MINGW_ANSI_STDIO macro, confirming the existing note.
[TODO] Removed obsolete item on MinGW and -D__USE_MINGW_ANSI_STDIO.
[INSTALL] Update concerning MinGW and the __USE_MINGW_ANSI_STDIO macro.
[doc/mpfr.texi] Updated mpfr_get_str documentation, correcting r13666
(we still need the extra two bytes and to take -@Inf@ into account).
2020-01-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr.texi] fixed out-dated documentation for mpfr_get_str
2020-01-09 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] In the latest update, forgot to remove the CC=...
[doc/README.dev] Update about the test under Wine.
[acinclude.m4,configure.ac]
* Moved the code that tries to determine the format of double from
configure.ac to acinclude.m4 in MPFR_CONFIGS (as required), just
before the one for long double.
* Added a FIXME comment: This code uses AC_RUN_IFELSE, which cannot
run the test when cross-compiling; use a test like for long double
instead.
[acinclude.m4] English usage.
[acinclude.m4] Updated messages about the format of "long double".
[configure.ac] Ditto for "double". Added missing AC_MSG_RESULT.
[tests/tversion.c] Updated/fixed an output line to match the other ones.
[tests/tsprintf.c] Added tests for %Ra and %Rb on the value 0 with an
empty precision field.
[src/vasprintf.c] Fixed output precision bug with decimal output
(i.e. e, f and g conversion specifiers) and an empty precision field
on the value 0.
[tests/tsprintf.c] Also added tests with %Rf, %Rg and %#Rg on 0.
[tests/tsprintf.c] Added a test with %Re and an empty precision field
on the value 0; it currently fails.
2020-01-08 Vincent Lefèvre <vincent@vinc17.net>
[tools/ck-copyright-notice] Added a note about the mpfr.pc.in file.
Copyright notice update: added 2020 with
perl -pi -e 's/ (\d{4}-)?(2019)(?= Free Software)/
" ".($1||"$2-").($2+1)/e' **/*(^/)
under zsh. Removed 2019 from the example in the doc/README.dev file.
[TODO] + base conversion with the round-trip property using a minimal
precision, such as the to_chars functions from the C++ standard.
[doc/mpfr.texi] Updated the month.
[doc/mpfr.texi] Formatted output: improved the text concerning the
empty precision field, i.e. focus on the chosen precision rather
than the round-trip property (as the rounding mode is not necessarily
to nearest).
[doc/mpfr.texi] Formatted output with %Re (empty precision field):
added a reference to mpfr_get_str_ndigits.
[src/vasprintf.c] Simplified the conditions under which trailing zeros
are kept (the spec_g variable is no longer needed as a consequence).
[tests/tsprintf.c] Re-added tests changed by r13644 and r13645, but
with a variable of smaller precision in order to get the same output
as before.
[tests/tsprintf.c] Updated other two tests (in da_DK locale).
2020-01-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed tests for new more precise semantics for mpfr_printf ("%Re", x),
and documented it
[src/vasprintf.c] tentative fix so that mpfr_printf ("%.Re", x) prints a number
of decimal digits independent from x
2019-12-24 Vincent Lefèvre <vincent@vinc17.net>
[INSTALL,doc/mpfr.texi] Typography.
2019-10-10 Vincent Lefèvre <vincent@vinc17.net>
[doc/algorithms.tex] Ulp calculus: put the old Rule 8 just after Rule 2,
as the old Rule 3 (now Rule 4) uses it directly (proof updated).
[doc/algorithms.tex] Ulp calculus: simplified the proof of Rule 8.
[doc/algorithms.tex] Ulp calculus Rule 3: missing absolute values in
the proof.
[doc/algorithms.tex] Actually assume that no underflows nor overflows
occur for the whole section "Error calculus".
[doc/algorithms.tex] Ulp calculus Rule 6: corrected it (we need to
assume no underflows nor overflows) and its proof, and generalized
it with absolute values (like in the previous rules).
2019-10-07 Vincent Lefèvre <vincent@vinc17.net>
[doc/algorithms.tex] Ulp calculus Rule 3: more powerful result and
much simpler proof.
[doc/algorithms.tex] Section 2 (Error calculus): When n was a precision,
replaced it by p as this is the usual notation (see Section 1) and n
sometimes had a double meaning.
2019-10-04 Vincent Lefèvre <vincent@vinc17.net>
[tests/tcmp_ui.c] Updated comment: this is a bug in Clang 9.
[tests/tcmp_ui.c] Added a comment: failure of a test with the
clang-9 1:9-1 Debian package.
2019-10-01 Vincent Lefèvre <vincent@vinc17.net>
Clean-up concerning the tests of subnormals for double and float.
* acinclude.m4: renamed variables
mpfr_cv_have_denorms_flt to mpfr_cv_have_subnorm_flt
mpfr_cv_have_denorms to mpfr_cv_have_subnorm_dbl
and improved messages.
* acinclude.m4, tests/tget_flt.c: renamed macro
HAVE_DENORMS_FLT to HAVE_SUBNORM_FLT
* acinclude.m4, tests/{tests.c,tset_d.c,tsprintf.c}: renamed macro
HAVE_DENORMS to HAVE_SUBNORM_DBL
* doc/README.dev: updated / completed the corresponding documentation.
* tests/tget_d.c: renamed function check_denorms to check_subnorm.
[acinclude.m4] Updated comment about the tests for subnormal numbers.
[acinclude.m4] Added a comment about the tests for subnormal numbers.
2019-09-24 Vincent Lefèvre <vincent@vinc17.net>
[doc/Makefile.am] Added missing texinfo.tex prerequisite.
2019-09-16 Vincent Lefèvre <vincent@vinc17.net>
[tests] Added FIXME comment in tfprintf.c, tout_str.c and tprintf.c:
The output is not tested (thus coverage data are meaningless).
2019-09-10 Vincent Lefèvre <vincent@vinc17.net>
[src/{add1sp.c,sub1sp.c}] Get rid of useless goto's.
2019-09-06 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
[src/hypot.c] Replaced a TODO by a FIXME.
The mpfr_out_str function now accepts bases from -2 to -36, in order to
follow mpfr_get_str and GMP's mpf_out_str functions.
[doc/mpfr.texi] Changed an incorrect use of @xref, which must always
occur at the beginning of a sentence (use "see @ref{...}" instead).
[doc/mpfr.texi] At the end of "Arithmetic Functions", added a sentence
referencing the power functions (since x^n is an arithmetic function).
2019-09-05 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Removed the useless "Float ..." index entries.
[doc/mpfr.texi] Moved the mpfr_pow class of functions from
"Arithmetic Functions" to "Transcendental Functions".
[doc/mpfr.texi] Added "Float transcendental functions" to the index
for consistency ("transcendental functions" implies floating point,
but the user should expect to find it with the other index terms
starting with "Float").
[doc/mpfr.texi] Renamed "Basic Arithmetic Functions" to just
"Arithmetic Functions".
[doc/mpfr.texi] Transcendental functions: added a sentence to the
important note (about cases theoretically very hard to round).
[doc/mpfr.texi] Renamed Section "Special Functions" to
"Transcendental Functions" (as after changes in r13605 and r13606,
it now contains only the transcendental functions), and slightly
rewrote its important note.
[doc/mpfr.texi] Moved mpfr_free_cache, mpfr_free_cache2, mpfr_free_pool
and mpfr_mp_memory_cleanup from "Special Functions" to a new section
"Memory Handling Functions".
[doc/mpfr.texi]
* Moved mpfr_fac_ui, mpfr_fma, mpfr_fms, mpfr_fmma, mpfr_fmms,
mpfr_hypot, mpfr_sum and mpfr_dot from "Special Functions" to
"Basic Arithmetic Functions" (as these are functions based on
+, -, *, / and roots).
* Added a FIXME for mpfr_pow: does this function really belong
to "Basic Arithmetic Functions"?
[doc/mpfr.texi] Improved warning about huge precisions.
[src/mul.c] For the --enable-assert=full test, also test the flags
(like what has been done for mpfr_add1sp and mpfr_sub1sp).
[src/sub1sp.c] For the --enable-assert=full test, improved output of
ternary value and flags, like in r13582 for mpfr_add1sp.
[src/add1sp.c] Cosmetic change (consistent ordering).
2019-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tsub1sp.c] added non-regression test for bug in mpfr_sub1sp2n
[src/sub1sp.c] fixed that bug
2019-09-04 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] Fixed MPFR_C_LONG_DOUBLE_FORMAT macro for MS-Windows.
[NEWS] More details about mpfr_add and mpfr_sub.
2019-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[NEWS] mention that mpfr_sub was also improved for 128 bits
[NEWS] coverage improved to 98.6% on x86_64
[tests/tadd1sp.c] improve coverage
2019-09-04 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] Fixed MPFR_C_LONG_DOUBLE_FORMAT macro: the patch had
a spurious ";" at the end of conftest.c, which made its compilation
fail with -pedantic -Werror (using gcc or clang).
2019-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp.c] rewrote mpfr_sub1sp2n (inspired from mpfr_sub1sp1n)
2019-09-04 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] Updated MPFR_C_LONG_DOUBLE_FORMAT to support compilation
with GCC's and clang's LTO (-flto). This new test is inspired by the one
used by GMP for the double type.
Thanks to Paul Mulders for a preliminary version of the patch for MPFR.
2019-09-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp.c] added new function mpfr_sub1sp2n for p = 2*GMP_NUMB_BITS
(still to be tested)
2019-09-03 Vincent Lefèvre <vincent@vinc17.net>
[tests/tadd1sp.c] bug20190903:
* Fixed the second test for GMP_NUMB_BITS != 64.
* Updated comments.
2019-09-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/add1sp.c] improved comment
2019-09-03 Vincent Lefèvre <vincent@vinc17.net>
[src/add1sp.c] mpfr_add1sp2n: improved a comment.
[src/add1sp.c] Fixed the bug.
[tests/tadd1sp.c] bug20190903: do the second test in MPFR_RNDU too.
[tests/tadd1sp.c] bug20190903: in the second test, check the mpfr_t
value, the ternary value and the flags, in order to get a failure
even without "--enable-assert=full".
[tests/tadd1sp.c] When testing mpfr_add, use a wrapper mpfr_add_cf
that calls mpfr_clear_flags first, so that if --enable-assert=full
is used, the flags can be better checked too (and automatically).
Now tadd1sp outputs with --enable-assert=full, as wanted:
add1 : ternary = -1, flags = inexact (8)
add1sp: ternary = 0, flags = none (0)
[src]
* exceptions.c: define flags_fout if MPFR_WANT_ASSERT >= 2, i.e. with
--enable-assert=full (for better flags output in add1sp.c, etc.).
* mpfr-impl.h: declare flags_fout if MPFR_WANT_ASSERT >= 2.
* add1sp.c: improve output of ternary value and flags.
[tests/tadd1sp.c] Updated comments of bug20190903.
[tests/tadd1sp.c] Added a test that triggers a bug in mpfr_add1sp2n
(corresponding to the FIXME), yielding a failure with
"--enable-assert=full".
Note 1: The computed values are equal (with MPFR_RNDN), but one gets
Inexact sp = 0 | Inexact = -1
Flags sp = 10 | Flags = 10
Note 2: The fact that the flags do not match the ternary value in the
error message is due to a missing mpfr_clear_flags in the test.
[src/add1sp.c] mpfr_add1sp2n:
* Code refactoring, eliminating the unnecessary goto's.
* In the d >= 2 * GMP_NUMB_BITS case, use a single test for rb and sb.
* Improved code consistency.
* Added a FIXME about suspicious code. → Find a failing test and fix
the code, or explain the code if it is correct.
2019-09-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/add1sp.c] fix for bug20190903
2019-09-03 Vincent Lefèvre <vincent@vinc17.net>
[src/add1sp.c] Corrected a comment.
[tests/tadd1sp.c] More random tests in the special precisions
GMP_NUMB_BITS and 2 * GMP_NUMB_BITS (but they don't trigger
the bug due to r13574).
[tests/tadd1sp.c] Added testcase for bug due to r13574 (found with
the other test programs, using --enable-assert=full).
2019-09-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/add1sp.c] added mpfr_add1sp2n for 128-bit precision (with 64-bit limb)
2019-09-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp1_extracted.c] replace hard-coded bounds by emin/emax
added sub1sp1_extracted.c (not ready yet)
2019-08-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added github source for Jianyang Pan formal proof
2019-08-21 Vincent Lefèvre <vincent@vinc17.net>
[tests/mpfr-test.h] At the end, with GCC, undef volatile if defined.
Explanations:
With GCC, a macro "volatile" can be defined to test some special code
in mpfr-impl.h (code for compilers that define such a macro), but the
volatile keyword is necessary in some tests to avoid some GCC bugs.
Thus we need to undef this macro (if defined). We do that at the end,
so that mpfr-impl.h (included earlier) is not affected by this undef.
[tests/tget_set_d128.c] Updated a test with a non-canonical encoding:
* More meaningful name ("noncanonical" instead of "coverage").
* Output details in case of failure.
* Avoid GCC bug 91226: wrong propagation of non-canonical _Decimal64
and _Decimal128 constant (BID only).
2019-08-20 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Update concerning the "decimal-point character".
[doc/mpfr.texi] Changed "decimal point" to "decimal-point character",
which is the term used in the ISO C standard. This is better as this
character is also used with non-decimal bases: "decimal-point" is
just the name of this character (as initially defined for base 10)
and does not imply a number written in decimal.
[doc/mpfr.texi] Compatibility With MPF: added an item on the difference
of the output format between mpf_out_str and mpfr_out_str.
[doc/mpfr.texi] Rewrote and completed the mpfr_out_str description.
2019-08-20 Vincent Lefèvre <vincent@vinc17.net>
[src/out_str.c] Fixed bug in mpfr_out_str: When the exponent of the
converted value is 0, it was not output, contrary to what is described
in the MPFR manual. Note that this does not change the value of the
printed string, so that this has no effect on applications that just
re-read the value (with MPFR or another code).
This was regarded as a bug rather than an error in the documentation,
thus the output now looks more similar to what printf with %e yields;
the GMP function mpf_out_str also outputs the exponent 0.
Short discussion:
https://sympa.inria.fr/sympa/arc/mpfr/2019-08/msg00012.html
Note: The tests still pass, as this function is currently not really
tested.
2019-08-14 Vincent Lefèvre <vincent@vinc17.net>
[INSTALL] Update/corrections about MinGW and __USE_MINGW_ANSI_STDIO.
[tests/tversion.c] When building with MinGW, output a line about it:
MinGW32 / MinGW64, and the __USE_MINGW_ANSI_STDIO definition.
[src/set_d128.c] Moved a definition under the #if where it is used.
2019-08-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improve INSTALL (feedback from sisyphus <sisyphus359@gmail.com>)
2019-08-12 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Added a FIXME for mpfr_out_str about the exponent 0.
[doc/mpfr.texi] About mpfr_get_str / mpfr_out_str:
* In the mpfr_get_str description, changed argument "b" to "base" for
consistency with similar functions (now, only mpfr_get_str_ndigits
has b as this looks better in the formula). Also added a link to
mpfr_get_str_ndigits.
* In the mpfr_out_str description, replaced the ambiguous and even
incorrect sentence "enough digits so that op can be read back
exactly" (issues with trailing zeros and with the directed rounding
modes) by text similar to the one in the mpfr_get_str description
(keeping the reference to mpfr_get_str).
[src/out_str.c] Coding style (e is not a boolean).
2019-08-09 Vincent Lefèvre <vincent@vinc17.net>
[tests/tout_str.c] Use mpfr_print_rnd_mode in a message.
[tests/tout_str.c] Code simplification: a test from r1888 on a
random value was unnecessary (the log message of r1888 did not
even correspond to the change).
[tests/tout_str.c] GNU coding style.
[tests/tout_str.c] Added missing newline characters in the output
after calls to mpfr_out_str.
[tests/tout_str.c] By default, output the results to a file instead of
/dev/null (this was already done only if opening /dev/null failed), so
that they can be checked later. Fixed 2 issues at the same time:
* Do not close stdout (when an argument was provided).
* Remove the file at the end.
[tests/tfpif.c] GNU coding style.
[tests/tfpif.c] Added a comment about the use of perror.
[tests/tfpif.c] Also check fclose failure when the file has been opened
for writing (typically an error in case the buffer cannot be written to
the file). Call perror after all fopen/src_fopen/fclose failures to get
the reason of the failure.
[tests/tfpif.c] In case of failure of fopen or src_fopen, write the
error message on stderr (as one should do for errors not directly
related to the tests, such as memory allocation and I/O errors).
Also improved the error messages and made them consistent.
2019-08-06 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
2019-08-05 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Improved consistency with @item.
2019-08-02 Vincent Lefèvre <vincent@vinc17.net>
For Makefile.am and each one in SUBDIRS, added the .POSIX target to
select the POSIX behavior (since we do not require GNU "make").
See: https://sympa.inria.fr/sympa/arc/mpfr/2019-08/msg00005.html
[tools/get_patches.sh] Fixed change in r13543 (the contents of PATCHES
should still be written as a list of words separated by a space).
Fixed src/get_patches.c generation that was changed in r13542.
* src/Makefile.am, tools/get_patches.sh: since get_patches.sh is
no longer run from $(top_srcdir), the PATCHES absolute pathname
now needs to be passed in argument.
* src/Makefile.am: fixed the get_patches.c rule (the automatic
variable $< was used with the meaning "first prerequisite" of
GNU Make; an "exit 1" was missing, so that a failure did not
abort "make" immediately).
* tools/get_patches.sh: detect errors with "set -e".
2019-07-31 Vincent Lefèvre <vincent@vinc17.net>
[src/Makefile.am] Define get_patches.c as a built source to avoid a
non-portable make rule ("/" character in target), causing an error
in FreeBSD with its "make" command. This change should be OK as the
get_patches.sh script that generates get_patches.c is very simple
and portable. As a consequence, put get_patches.c in CLEANFILES.
See:
https://sympa.inria.fr/sympa/arc/mpfr/2019-07/msg00003.html
[Makefile.am] Fixed dist-hook for ck-mparam, which was run from a
read-only directory with "make distcheck" while a temporary file
is created in the current directory, yielding a failure (ck-mparam
has been run in dist-hook since r12533 on 2018-04-03).
[tools/ck-mparam] Updated comment to warn that the source tree that is
checked is the one that contains this script, not the one corresponding
to the current working directory (the rule for the other scripts in the
tools directory is currently different).
[tools/ck-mparam] This script can now be run from any directory (which
must still be writable). This change has been done to be able to run
it from the build directory, as if it is run via "make distcheck" and
a dist-hook rule, then neither the top-level directory nor the tools
directory is writable.
2019-07-23 Vincent Lefèvre <vincent@vinc17.net>
[tests/tget_set_d64.c] Updated comment (only the x86 and x86_64 targets
are affected).
[tests/tget_set_d64.c] Improved a comment.
2019-07-22 Vincent Lefèvre <vincent@vinc17.net>
[tests/tget_set_d64.c] Avoid GCC bug 91226: wrong propagation of
non-canonical _Decimal64 constant.
[src/set_d64.c] In decimal64_to_string, log the memory representation
of the _Decimal64 argument.
[src/set_d64.c] In decimal64_to_string, log the various fields of the
_Decimal64 argument whose memory data is regarded as a double (as this
is the current implementation of this function).
[tests/tget_set_d64.c] More output details in the noncanonical test.
[tests/tget_set_d64.c] Improved the noncanonical test, but this does not
solve the failure with gcc-snapshot.
[tests/tget_set_d64.c] More meaningful name of a test with a
non-canonical encoding and more details (fails with Debian's
gcc-snapshot 10.0.0 20190718, trunk revision 273586).
2019-07-12 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] "To make a release": mention -Wsuggest-attribute=...
options (but mpfr.h first needs some macros like __MPFR_SENTINEL_ATTR).
Renamed MPFR_CONST_ATTR macro to MPFR_CONST_FUNCTION_ATTR in order to be
similar to the MPFR_{PURE,HOT,COLD}_FUNCTION_ATTR macro names.
2019-07-10 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Update concerning the MPFR manual:
* Updated information about the papersize issues (should be fixed,
but manual checking is recommended).
* Detailed English typography.
* Removed mention of the old texinfo bug 33329 (Debian bug 583558).
2019-07-08 Vincent Lefèvre <vincent@vinc17.net>
[codespell.*] Update for codespell 1.15.0.
Fixed spelling mistakes found by codespell 1.15.0.
2019-07-06 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] Added missing "const" qualifier to "char *" in a test;
needed with GCC's "-Wwrite-strings -Werror".
2019-07-02 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] MPFR_GROUP_* macros / mpfr_group_t structure: when
MPFR_GROUP_STATIC_SIZE is 0 (for testing), use a flexible array member
(ISO C99) instead of a zero-length array (GNU extension, forbidden in
ISO C).
[tests/*.c] Added missing "const" qualifier to "char *" when this
involves string literals (detected by using GCC's -Wwrite-strings
option, via the default -Wdiscarded-qualifiers warning).
2019-07-01 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4,configure.ac] MPFR_C_LONG_DOUBLE_FORMAT: also detect
clang's LTO.
Note: no longer use $FGREP (see r13513) as its status is unclear on
non-POSIX systems (though very probably available when $EGREP is).
[acinclude.m4,configure.ac] For MPFR_C_LONG_DOUBLE_FORMAT, when the
format is unknown and it is detected that LTO has been used, output
"recognition prevented by LTO".
Note: at the same time, since AC_PROG_FGREP was needed, replaced
$EGREP by $FGREP when applicable.
[acinclude.m4] MPFR_C_LONG_DOUBLE_FORMAT: improved comment and added a
warning saying that this does not work with GCC's LTO (gcc -flto ...).
2019-06-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp.c] simplified code of sub1sp1 for bx = cx
2019-06-06 Vincent Lefèvre <vincent@vinc17.net>
[src/sub1sp.c] About r13506-13509 and optimization: added a comment
about Clang after some tests (without giving details, as in practice,
this is more complex... but this is the general idea).
2019-06-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp.c] fixed typo
2019-06-06 Vincent Lefèvre <vincent@vinc17.net>
[src/sub1sp.c] Added reference to GCC PR30315 about a misoptimization
on x86/x86_64 (see r13506 and r13507).
[src/sub1sp.c] Completed r13506: added MPFR_ASSERTD to justify the
new code and give more information to the compiler; added comments
about this optimization issue.
2019-06-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp.c] small speedup (following discussion with Félix Breton)
2019-06-01 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Added a note about MPFR_DISABLE_IEEE_FLOATS.
[doc/README.dev] Updated MPFR_DISABLE_IEEE_FLOATS description.
[src/mpfr-impl.h] Undefine HAVE_LDOUBLE_IS_DOUBLE & HAVE_LDOUBLE_IEEE_*
macros if MPFR_DISABLE_IEEE_FLOATS is defined, as the goal is to test
code not relying on IEEE floats.
2019-05-24 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Code simplification with the generic
LONGDOUBLE_NAN_ACTION macro (the WANT_LONGDOUBLE_VOLATILE macro is not
needed as used only once, thus removed). Improved the related comment.
[src] Instead of including <float.h> in volatile.c (r13493), do that
unconditionally in mpfr-impl.h to make sure that macro definitions
in this header file are always correct: some definitions depend on
various macros from <float.h>, such as FLT_RADIX and DBL_MANT_DIG.
2019-05-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
applied patch from #21762
(https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=21762&group_id=136)
2019-05-15 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Added another URL on undefined behavior.
2019-04-30 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Note that -static-libasan does not work with MPFR.
[doc/README.dev] Update about the use of GCC's "-fsanitize=address".
2019-04-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/zeta.c] fixed out-of-bound read reported by Thomas Bailleux
Note: This bug was introduced in r12066.
2019-04-29 Vincent Lefèvre <vincent@vinc17.net>
[tools/ck-version-info] Minor corrections in a comment.
[doc/README.dev] Update about the VERSION file:
* Added a paragraph on the meaning of the "-dev" suffix.
* Removed a confusing and useless "-dev" in an example.
[tools/ck-news] Changed the condition of the test for FIXME or TODO:
Previously it was disabled only for -dev versions. Now it is enabled
only for releases and release candidates. This will allow snapshots,
for which the NEWS file may still contain a FIXME or TODO.
[tools/ck-version-info] Corrected check. Added explanations in comments.
[tools/ck-version-info] Better error message if $vinfo is not defined.
[src/Makefile.am] Added a comment.
2019-04-25 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
[doc/mpfr.texi] Updated the list of rounding modes in the description
of the mpfr_print_rnd_mode function. Choose the same order as in the
"Rounding Modes" section in "MPFR Basics".
[tools/mpfrlint] Lists of rounding modes: also check with the
"Rounding Modes" section in "MPFR Basics".
[src/print_rnd_mode.c] Added a comment to remember to update the manual.
[tools/mpfrlint] Check that the lists of rounding modes in
src/print_rnd_mode.c and doc/mpfr.texi are identical.
[src/mpfr.h] Added a blank line (grouping of function declarations).
Added support for GCC's returns_nonnull attribute (with GCC 4.9+).
[TODO] Update about GCC's nonnull and returns_nonnull attributes.
2019-04-16 Vincent Lefèvre <vincent@vinc17.net>
New macro MPFR_FALLTHROUGH to avoid -Wimplicit-fallthrough warnings
with GCC 7+. This macro also makes the code more readable by bringing
the attention on an unusual fallthrough in a switch case.
* src/mpfr-impl.h: define this macro.
* src/vasprintf.c: use this macro in a case of fallthrough.
2019-04-15 Vincent Lefèvre <vincent@vinc17.net>
[src/vasprintf.c] Minor bug fix: when an integer is to be read for
the field width or precision, regard strings like "17*" as invalid
instead of regarding it as "*" (ignoring the integer that precedes,
except in case of overflow). In C's printf, such an invalid string
yields undefined behavior, but in MPFR, we normally print the
invalid format specifier as a literal string in such a case.
Bug detected with -Wimplicit-fallthrough from GCC 7+.
[tests/tsprintf.c] Added non-regression test.
2019-04-02 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] Updated --enable-logging description.
[acinclude.m4] When logging support is requested, run a test to check
that code with nested functions and the 'cleanup' attribute can be
compiled, as these features are needed.
[configure.ac] AC_ARG_ENABLE(float128,...): updated comment and
description.
[configure.ac] Updated comment for AC_ARG_ENABLE(decimal-float,...).
* Removed information about very old GCC versions.
* _Decimal128 is considered too, in addition to _Decimal64.
* No longer just a GCC extension, but part of ISO/IEC TS 18661.
* Added a FIXME for new options about _Decimal64 and _Decimal128.
[configure.ac] Cleanup: moved some AC_ARG_ENABLE's where they should be.
2019-03-29 Vincent Lefèvre <vincent@vinc17.net>
[src/vasprintf.c]
* Corrected FIXME by modifying the assertion. The failure could occur
only when mpfr_intmax_t has the same size as int (which is the case
when long = int and either intmax_t and long long are not available
or intmax_t = long = int), and only when INT_MIN is provided as a
field width argument.
* Related to that, updated a test to improve optimization.
* Added comments.
[src/vasprintf.c] Added a FIXME: tsprintf yields an assertion failure
with sizeof(mpfr_intmax_t) = 4 (which was not tested until now).
2019-03-29 Vincent Lefèvre <vincent@vinc17.net>
Cleanup / fixes related to intmax_t, mpfr_intmax_t, etc.
The issues were:
* The build of the tests (make check) could fail with CFLAGS implying
"-std=c90 -Werror=format", i.e. if intmax_t was available but the
use of the "j" printf length modifier made the compilation fail
(its unconditional use was incorrect anyway).
* MPFR_INTMAX_MAX had definitions in both mpfr-impl.h & mpfr-intmax.h,
with inconsistent usage.
Detailed changes:
* acinclude.m4: removed the definition of MPFR_PRINTF_MAXLM, which
could be incorrect (large numbers were not tested to select its
value); in the MPFR_FUNC_GMP_PRINTF_SPEC macro, check sprintf()
in addition to gmp_sprintf() as it is now also used in the tests;
updated some comments and messages.
* src/mpfr-impl.h: removed the MPFR_*INTMAX* definitions; they had
been added due to
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=582698
with -ansi -pedantic-errors, but this issue was fixed in GCC 4.8
(released 6 years ago), so that they are no longer needed.
* src/mpfr-intmax.h: completed the definitions; mpfr_intmax_t is now
the largest integer type available and fully working (in particular
with printf), thus it may be smaller than intmax_t.
* doc/README.dev: updated the description of mpfr_intmax_t, etc.
* tests/tversion.c: output sizeof(mpfr_intmax_t) too.
* Various .c files in src and tests related to (u)intmax_t: use
INTMAX_MAX instead of MPFR_INTMAX_MAX, etc. as Debian bug 582698
(mentioned above) no longer occurs and mpfr_intmax_t may be smaller
than intmax_t; use the "j" printf length modifier instead of
MPFR_PRINTF_MAXLM, and protect it with "#ifndef NPRINTF_J"
(only the tests are concerned, so that this is not an issue).
2019-03-28 Vincent Lefèvre <vincent@vinc17.net>
[src/urandomb.c] Removed the FIXME: this is a bug in GMP or in Clang's
memory sanitizer.
[src/urandomb.c] Added a FIXME (use-of-uninitialized-value with
Clang's memory sanitizer).
2019-03-13 Vincent Lefèvre <vincent@vinc17.net>
[src/printf.c] Removed unused definitions.
2019-03-01 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Update about coverage:
* Mention not to enable optimizations.
* Replaced "-fprofile-arcs -ftest-coverage" by "--coverage", as
this is what is used by the tools/coverage script (note: this
is a synonym when compiling, but also allows the right options
to be used when linking, thus might be better in doubt).
2019-02-04 Vincent Lefèvre <vincent@vinc17.net>
[tests] Use MPFR_DBL_* macros when necessary.
[tools/mpfrlint] For consistency, use "[ch]" instead of "{c,h}".
[tools/mpfrlint] Detect use of DBL_* macros instead of MPFR_DBL_* ones.
[tools/mpfrlint] Improved message about division by zero.
[doc/README.dev] Improved description of MPFR_ERRDIVZERO.
[tools/mpfrlint] Added a comment about division by zero.
[tools/mpfrlint] Check that native FP division by zero is not used.
2019-01-31 Vincent Lefèvre <vincent@vinc17.net>
[src/Makefile.am] In check-exported-symbols, replaced grep by $(GREP)
as usual and like in check-gmp-symbols.
2019-01-30 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] Updated comment about default options in CFLAGS for GCC.
Update about CC / CFLAGS settings from GMP (__GMP_CC / __GMP_CFLAGS).
* configure.ac: remove -pedantic unconditionally; since r7044, it was
removed only when logging was enabled, as at that time only logging
was using C extensions.
* NEWS: added a line about this change.
* INSTALL: updated the note about CC / CFLAGS, removing the obsolete
reference to GMP 4.3.0 at the same time.
2019-01-28 Vincent Lefèvre <vincent@vinc17.net>
[tools/announce-text] Corrected subject for Release Candidate > 1.
2019-01-25 Vincent Lefèvre <vincent@vinc17.net>
ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
[NEWS] Update about shared caches.
[NEWS] Added: "Shared caches: cleanup."
[src/mpfr-thread.h] Fixed the lock macros:
* in case of failure, one must abort, otherwise this would generally
be undefined behavior;
* added missing "do {} while (0)" (currently not mandatory).
[src/mpfr-impl.h] Updated a comment about MPFR_DECL_INIT_CACHE and
the shared cache.
[acinclude.m4] Avoid a warning with the pthread_rwlock_t test,
as it is an error with -Werror.
[acinclude.m4] Fixed another C++ compatibility issue detected by
the -Werror=c++-compat GCC option (it led the "long double" format
to be unknown).
2019-01-24 Vincent Lefèvre <vincent@vinc17.net>
[tests/trint.c] Fixed C++ compatibility issue (arithmetic on enum)
detected by the -Werror=c++-compat GCC option.
2019-01-23 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] By default (i.e. if CFLAGS is not already set), if
the compiler is GCC not in C++ mode, add the -Wc++-compat warning
since we expect the code to compile with a C++ compiler.
2019-01-13 Vincent Lefèvre <vincent@vinc17.net>
[tests/tcheck.c] Corrected meaningless error message.
[doc/mpfr.texi] Minor correction for non-tex versions.
Thanks to Trevor Spiteri for the bug report.
2019-01-09 Vincent Lefèvre <vincent@vinc17.net>
Moved the compatibility test of the configure options even earlier, from
acinclude.m4 to configure.ac, just after the code that defines them.
Also added an associated AC_MSG_CHECKING message for better clarity.
[acinclude.m4] Simplified a message.
[tests/tversion.c] When the shared cache is enabled, also output the
lock method (this information has been lost in r13032).
[acinclude.m4] When checking support for POSIX threads (pthread), also
check that pthread_rwlock_t is supported, as it is needed by MPFR and
conditionally defined in glibc's bits/pthreadtypes.h (via <pthread.h>).
Cleaned up configure code related to threading and the shared cache.
* acinclude.m4:
- detect incompatibilities between configure options at the
beginning of MPFR_CONFIGS, forcing enable_thread_safe to
"no" or "yes" when necessary, so that the subsequent code
can rely on that;
- check ISO C11 thread support and/or POSIX thread support
only when necessary;
- handle --enable-shared-cache early in MPFR_CONFIGS, because
the use of POSIX threads (pthread) may need to change CC,
CFLAGS, and LIBS (thus affecting other tests);
- test $enable_shared_cache instead of $mpfr_want_shared_cache;
- removed the now useless MPFR_CHECK_SHARED_CACHE function.
* configure.ac: no longer set the mpfr_want_shared_cache variable,
as enable_shared_cache (now used) already has the same usage.
Note: currently,
./configure --enable-shared-cache CFLAGS="-std=c99"
still succeeds and still makes the compilation fail. This seems to
be due to a limitation of AX_PTHREAD, which just tests linking, not
compilation.
[acinclude.m4] In MPFR_CHECK_SHARED_CACHE (used when the shared cache
was requested), also set CC="$PTHREAD_CC" as documented by ax_pthread
(autoconf-archive). This is not guaranteed to work, but according to
the ax_pthread.m4 source, in the cases where "$PTHREAD_CC" != "$CC",
not setting it will probably not work either.
[src/mpfr-impl.h] Added a comment about the cache-related types, which
depend on the locking methods.
2019-01-08 Vincent Lefèvre <vincent@vinc17.net>
[tests/tstrtofr.c] Updated comment about GCC bug 86554: now fixed in
the GCC trunk.
2019-01-07 Vincent Lefèvre <vincent@vinc17.net>
[tests/Makefile.am] Replaced "env -u DISPLAY" by "env DISPLAY=''" as
the -u option is not supported by NetBSD.
Updated files:
* COPYING from https://www.gnu.org/licenses/gpl-3.0.txt
* COPYING.LESSER from https://www.gnu.org/licenses/lgpl-3.0.txt
These are URL updates and cosmetic changes.
ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC0 svn log -rHEAD:0 -v".
Note: For r5400, this changes an incorrect update done via r13372 back
to the old log message, as the URL in this log message here describes
a change in one of the files.
[doc/README.dev] Updated some URL's (http → https).
[doc/texinfo.tex] Update to 2018-02-12.17 with "autoreconf -i -f".
Updated the www.gnu.org URL's (http → https) on all the files with:
perl -pi -e 's,http://www.gnu.org/,https://www.gnu.org/,g' **/*(.)
under zsh.
[tests/tstrtofr.c] Updated comment about GCC bug 86554: the MPFR build
is still affected with the latest gcc-snapshot version (20190102-1)
when using --with-gmp-build=... together with --enable-assert.
2019-01-04 Vincent Lefèvre <vincent@vinc17.net>
[tests/tstrtofr.c] Added a comment about GCC bug 86554: the MPFR build
seems no longer affected by recent gcc-snapshot versions.
2019-01-01 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
Copyright notice update: added 2019 with
perl -pi -e 's/ (\d{4}-)?(2018)(?= Free Software)/
" ".($1||"$2-").($2+1)/e' **/*(^/)
under zsh. Removed 2018 from the example in the doc/README.dev file.
2018-12-31 Vincent Lefèvre <vincent@vinc17.net>
[tests/tfmma.c] Added double_rounding test to trigger errors before
the fix in mpfr_set_1_2 (set.c r13347).
[src/set.c] In mpfr_set_1_2, evaluate MPFR_PREC(s) just once.
[src/set.c] Clarified the mpfr_set_1_2 description.
[src/set.c] For mpfr_set_1_2, corrected the comments and simplified the
generic algorithm (there is no need to distinguish the rounding modes,
except for the double-rounding test, and this simplification avoids the
non-portable inex | inex2).
2018-12-20 Vincent Lefèvre <vincent@vinc17.net>
[doc/mini-gmp] Removed "#define GMP_LIMB_BITS 8": it is not used by
mini-gmp.h and yields a failure when building mini-gmp.c (which has
its own definition of GMP_LIMB_BITS, equivalent but not identical).
[configure.ac] Support mini-gmp with reduced limb size, in the case
GMP_NUMB_BITS is not defined: guess GMP_NUMB_BITS from the size of
mp_limb_t instead of the size of unsigned long.
[doc/mini-gmp] Correction to avoid a "conflicting types for 'mp_limb_t'"
error.
2018-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[doc/mini-gmp] added note about using mini-gmp (development version) with
reduced limb size
[src/set.c] fixed double-rounding bug in mpfr_set_1_2
[tests/tset.c] added corresponding tests
[tests/tset.c] added a test of test_set_1_2(), which currently fails
[tests/tcan_round.c] disabled tests that don't agree with mpfr_can_round documentation
2018-12-13 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsprintf.c] Updated a comment about ISO C vs POSIX for snprintf.
[tests/tsprintf.c] Updated a comment about ISO C vs POSIX for snprintf.
[TODO] Added item: new functions mpfr_cmp_uj and mpfr_cmp_sj.
[TODO] Removed obsolete "check again coverage" from 2007.
2018-12-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sqr.c] fixed same issue as in r13338 and r13339
[src/mul.c] fixed bug in mpfr_mul() when sizeof(mp_limb_t) < sizeof(mpfr_exp_t)
(same issue as in r13338)
2018-12-12 Vincent Lefèvre <vincent@vinc17.net>
[src/mul.c] For MPFR_WANT_ASSERT >= 2: minor changes in the code;
corrected a comment (even with mp_limb_t >= mpfr_exp_t, there was an
issue: the expression b1 - 1 + cc was computed in unsigned arithmetic,
then converted to mpfr_exp_t, with an implementation-defined result
when -1 was expected, i.e. with b1 = cc = 0).
[src/mul.c] Corrected a typo in a comment.
[src/mul.c] Fixed error message with MPFR_WANT_ASSERT >= 2.
2018-12-11 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-gmp.h] For count_leading_zeros (MPFR_LONG_WITHIN_LIMB
not defined), no longer assume GMP_NUMB_BITS <= 32.
[src/mpfr-gmp.h] Fixed count_leading_zeros (avoid undefined behavior
on shift counts, which must be nonnegative and smaller than the width
of the type of the shifted value).
2018-12-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mul.c] fixed reference routine mpfr_mul3() when sizeof(limb) < sizeof(exp)
[src/mpfr-gmp.h] fixed count_leading_zeros for mini-gmp with 32-bit limb
2018-12-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[doc/mini-gmp] added remark about random functions
[tests/tdiv.c] fixed test_20151023 (was giving an error with micro-gmp-8
and GMP_CHECK_RANDOMIZE=1544431052619574)
2018-12-10 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Added a test for some avoidable use of gmp_printf.
2018-12-07 Vincent Lefèvre <vincent@vinc17.net>
[tests]
* mpfr-test.h, tests.c: added n_trace function to output a mpn.
* tcan_round.c: use n_trace instead of gmp_printf ("%NX\n",...),
which is not available with mini-gmp.
2018-12-06 Vincent Lefèvre <vincent@vinc17.net>
[tests/tcan_round.c] Corrected all the error messages for mini-gmp.
[tests/tcan_round.c] Corrected error message for mini-gmp.
2018-12-05 Vincent Lefèvre <vincent@vinc17.net>
[tests/tpow_z.c] Another fix and minor improvements.
[tests/tpow_z.c] Fixed a test (midpoint case) that was failing
with micro-gmp-8 and GMP_CHECK_RANDOMIZE=1544033327230569.
[tests/tpow_z.c] Fixed a test for MPFR_RNDF: do not check the ternary
value (a failure was occurring with --with-mini-gmp=.../micro-gmp/8
and GMP_CHECK_RANDOMIZE=1544025040809270).
[tests/tpow_z.c] Improved error message.
[src/mpfr-mini-gmp.c] Added missing "void" in function prototype.
[configure.ac] When building against mini-gmp, check the availability of
lrand48, in particular because it is not part of the ISO C standard.
2018-12-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mpfr-mini-gmp.c] put back unconditional assert from r13316 (removed by error)
[src/mpfr-mini-gmp.c] improved random_limb (the low bits of lrand48 are bad)
and fixed gmp_urandomm_ui
2018-12-05 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-mini-gmp.c] gmp_urandomm_ui: added a MPFR_ASSERTN
unconditionally, as n == 0 is always forbidden.
2018-12-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mpfr-mini-gmp.c] the static assert introduced in r13313 makes the
compilation fail for 8-bit limbs, while the code
was valid for n <= 256 in that case
2018-12-04 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-mini-gmp.c] Fixed types.
[src/mpfr-mini-gmp.c] Added a static assertion to make sure that
the MPFR_ASSERTD added in r13312 is valid.
2018-12-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mpfr-mini-gmp.c] gmp_urandomm_ui did not generate uniform values
2018-12-03 Vincent Lefèvre <vincent@vinc17.net>
[src/set_d.c] Improved comment.
2018-11-29 Vincent Lefèvre <vincent@vinc17.net>
[tests/Makefile.am] About r13308, added references to the bugs.
[tests/Makefile.am] Unset DISPLAY as it is not needed and it can yield
error messages when running the tests with LOG_COMPILER=wine (for builds
with MinGW).
[tests/tversion.c] Updated a comment about an output issue with MinGW,
with the test run under Wine (which is really the cause of the issue).
2018-11-28 Vincent Lefèvre <vincent@vinc17.net>
[tests/tstrtofr.c] In case of failure of some particular test, output
the probable cause of this failure (GCC bug 86554) with a workaround.
2018-11-27 Vincent Lefèvre <vincent@vinc17.net>
[tests/tversion.c] Updated a comment about a printf issue with MinGW.
[src/strtofr.c] Added a FIXME about the error analysis (info that was
part of the FIXME resolved in r13303 and inadvertently dropped).
[src/strtofr.c] Resolved a FIXME; tstrtofr no longer fails due to
bug20181127 with 8-bit limbs (micro-gmp/8).
[tests/tstrtofr.c] Added bug20181127 (test found with random_tests),
which fails with 8-bit limbs (micro-gmp/8).
[src/mpfr-impl.h] Added a comment with a warning concerning the
meaning of MPFR_EXP_FSPEC.
[tests/tstrtofr.c] Fixed a MPFR_EXP_FSPEC related bug in a test
for _MPFR_EXP_FORMAT <= 2, e.g. with -D_MPFR_PREC_FORMAT=2.
[tests/tdiv.c] Fixed bad format string for an error message, detected
with -D_MPFR_PREC_FORMAT=2 (using -Werror...).
2018-11-26 Vincent Lefèvre <vincent@vinc17.net>
[tests] Moved bug20180908() from tget_str.c to tset_str.c since it tests
mpfr_set_str() only. This test was introduced in r13164.
2018-11-23 Vincent Lefèvre <vincent@vinc17.net>
[TODO] + More UBF functions.
[doc/mpfr.texi] Updated the month.
[src/strtofr.c] Changed some unsigned long to unsigned int.
[src/strtofr.c] Some cleanup in parsed_string_to_mpfr. Avoid a potential
integer overflow in very high precision if mp_size_t < mpfr_prec_t.
2018-11-22 Vincent Lefèvre <vincent@vinc17.net>
[src/strtofr.c] Updated FIXME, due to new tests added to
tests/tstrtofr.c in r13278-13279,13286-13288.
[src/nbits_ulong.c] Added missing initialization from r13269
when MPFR_LONG_WITHIN_LIMB is not defined.
[tests/tstrtofr.c] Resolved the FIXME and fixed the issue related to
the old mpfr_get_str description (see r13283).
Note: with the later fix r13289, a test still fails with 8-bit limbs
(incorrect exponent, possibly corresponding to the FIXME just before
"exp = GMP_NUMB_BITS - count;" in src/strtofr.c).
[tests/tstrtofr.c] Added comments, including a FIXME.
[tests/tstrtofr.c] Resolved the FIXME for the random tests, and
increased the number of tests to trigger a failure.
MPFR manual: corrected/completed the mpfr_get_str description in order
to follow the historical behavior and GMP's mpf_get_str function.
(Discussion in the Trier meeting.)
[src/get_str.c] Code style.
[doc/README.dev] Update about issues with mixing signed/unsigned types.
[doc/README.dev] Added a note about the disallowed conversions between
function pointers and other kinds of pointers (including to void *).
2018-11-20 Vincent Lefèvre <vincent@vinc17.net>
[tests/tstrtofr.c] Added a FIXME, which explains the current failure.
But there is currently an inconsistency in mpfr_get_str, whose digits
are not specified:
https://sympa.inria.fr/sympa/arc/mpfr/2018-11/msg00021.html
[tests/tstrtofr.c] Added random tests, which currently fail.
2018-11-19 Vincent Lefèvre <vincent@vinc17.net>
[src/round_prec.c] mpfr_can_round_raw: improved the code structure about
rnd1 and rnd2, making clear that they are not changed several times;
avoid the use of cc with 2 different meanings in the same code path.
2018-11-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/round_prec.c] fixed bug in mpfr_can_round when rnd2=RNDF, rnd1 is a
directed rounding, and the input is exact
2018-11-16 Vincent Lefèvre <vincent@vinc17.net>
[src/strtofr.c] parsed_string_to_mpfr: updated a FIXME comment.
In short, the current tstrtofr.c tests seem to always be hard-to-round
cases. The consequence is that some parts of the code are run, but not
completely tested, because for these cases, some intermediate results,
potentially incorrect, are thrown out due to the next Ziv iteration!
[src/strtofr.c] parsed_string_to_mpfr: minor changes.
[src/strtofr.c] parsed_string_to_mpfr: added log messages.
[src/strtofr.c] Minor change to use MPFR_ASSERTD.
[src/{int_ceil_log2.c,mpfr-impl.h}] Consistent postcondition for
MPFR_INT_CEIL_LOG2 and __gmpfr_int_ceil_log2 (result >= 0).
[src/nbits_ulong.c] Code refactoring. Added {pre,post}condition.
[src/strtofr.c] parsed_string_to_mpfr: removed an incorrect cast.
[src/strtofr.c] parsed_string_to_mpfr: updated a FIXME comment (again,
another issue).
[src/strtofr.c] parsed_string_to_mpfr: updated a FIXME comment (there
is another issue to solve first).
Removed trailing whitespace.
[src/strtofr.c] parsed_string_to_mpfr: updated a comment (useless code
in this function or incomplete tests).
Avoid GCC's -Wcast-align warnings with 8-bit limbs (a correct alignment
is ensured by the code itself, and GCC cannot check just from a cast).
[src/strtofr.c] parsed_string_to_mpfr: updated comments.
2018-11-15 Vincent Lefèvre <vincent@vinc17.net>
[src/strtofr.c] parsed_string_to_mpfr: more code review, with minor
changes and corrections + a FIXME.
[src/strtofr.c] Typo.
[src/strtofr.c] Fixed an allocation bug for GMP_NUMB_BITS = 8.
[src/strtofr.c] Updated a comment: the issue with mpn_set_str found
in 2013-12 (see r8722) was actually an error in the GMP manual.
[src/strtofr.c] parsed_string_to_mpfr: improved an assertion; comments.
2018-11-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tcan_round.c] fixed some TODOs, which exposes a bug
2018-11-15 Vincent Lefèvre <vincent@vinc17.net>
[src/strtofr.c] Near the beginning of parsed_string_to_mpfr: corrected
comments; added an assertion; minor change of a test.
2018-11-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mulders.c] fixed issue with --enable-gmp-internals
[tune/tuneup.c] likewise
(see https://sympa.inria.fr/sympa/arc/mpfr/2018-11/msg00015.html)
2018-10-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mpfr-longlong.h] applied patch from https://sympa.inria.fr/sympa/arc/mpfr/2018-10/msg00010.html
2018-10-07 Vincent Lefèvre <vincent@vinc17.net>
[codespell.ignore] Also ignore "ue" (codespell 1.14).
2018-10-01 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac,src/Makefile.am] About the --with-mini-gmp support, since
there are some advantages with the new code, one will probably not go
back. Thus removed the references to the Automake 1.15 bug and to the
old code. Also removed the mini_gmp_path=. workaround needed with the
old code (even with Automake 1.16), which had been added in r13217.
Also slightly improved the setup for mini-gmp.
[doc/with-mini-gmp.patch] Updated comment.
[configure.ac,src/Makefile.am] Avoid a "make" failure due to a bug in
Automake 1.15 automatic dependency tracking: instead of using mini-gmp
directly in an external directory with a $(mini_gmp_path) variable in
src/Makefile.am, make the configure script add symbolic links to the
mini-gmp sources in the build directory, and use these symbolic links
for the MPFR build (as if they were plain files).
Tested under various conditions: static and shared; separate source and
build directories; changing the mini-gmp version without "make clean".
2018-09-28 Vincent Lefèvre <vincent@vinc17.net>
Added doc/with-mini-gmp.patch file (for the developers):
Modifications to configure.ac and src/Makefile.am that had been done
for --with-mini-gmp support. This is kept for the reference, as changes
may be needed as a workaround to a bug fixed in GNU Automake 1.16, and
other future changes might break things (to remember what was working
at this time).
2018-09-20 Vincent Lefèvre <vincent@vinc17.net>
[doc/mini-gmp] Update.
2018-09-19 Vincent Lefèvre <vincent@vinc17.net>
[Makefile.am] Distribute the doc/mini-gmp file.
[configure.ac] For --with-mini-gmp, say:
"(experimental, please read doc/mini-gmp file)"
[src/Makefile.am] Added nodist_ for mini-gmp.{c,h} so that these files
(not part of MPFR) are not put in the tarballs by "make dist".
Removed --enable-mini-gmp configure option.
* NEWS: say that it is replaced by --with-mini-gmp.
* configure.ac: --enable-mini-gmp removed.
* doc/mini-gmp: update.
[src/mpfr-mini-gmp.c] Missing #else (from r13156).
[configure.ac] When using --with-mini-gmp, define GMP_NUMB_BITS if this
macro is not already defined in mini-gmp.h (this is done a bit like
with --enable-mini-gmp, but the handling in this option is buggy as
GMP_NUMB_BITS is defined with AC_DEFINE_UNQUOTED unconditionally,
though is most cases the contents of the macros are the same).
[configure.ac] Do not split "Setup GMP detection". When building
MPFR against mini-gmp, do not run any "Setup GMP detection" test
(in particular, no longer check gmp.h, as it is useless).
[src/mpfr-mini-gmp.h] Removed incorrect GMP_NUMB_BITS macro definition,
and this macro needs to be usable in preprocessor tests, and sizeof and
types are not available at this level. GMP_NUMB_BITS must be defined by
mini-gmp.h, by the configure script, or by the user.
[tools/mpfrlint] Update due to r13221.
2018-09-18 Vincent Lefèvre <vincent@vinc17.net>
[tests/Makefile.am] Run tversion at the beginning of the tests,
then show its output and svnversion's output too.
[src/mpfr-mini-gmp.h] Added a FIXME (failure with a mini-gmp that
does not define GMP_NUMB_BITS, such as the official one).
[tests/random2.c] Avoid undefined behavior on shift count.
[src/mpfr-impl.h] Fixed MPFR_LIMB_MASK() macro.
[configure.ac] Avoid a configure failure with automatic dependency
tracking when --with-mini-gmp is not used (bug in Automake?).
[NEWS] + Mini-gmp support via the --with-mini-gmp configure option.
2018-09-17 Vincent Lefèvre <vincent@vinc17.net>
Merged the with-mini-gmp branch into the trunk: new --with-mini-gmp
configure option to build MPFR against mini-gmp (instead of GMP).
[doc/mini-gmp] Update.
Merged the latest changes from the trunk.
[src/mul_ui.c] Better code organization (with the MPFR_RET at the right
place). Corrected indentation after #else.
2018-09-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mpfr-mini-gmp.c] added #if 0 ... #endif for mpz_dump (unused)
[src/mul_ui.c] fixed compiler warning for limb < long
2018-09-17 Vincent Lefèvre <vincent@vinc17.net>
[src/Makefile.am] Update for mini-gmp (install mini-gmp.h).
Merged the latest changes from the trunk (bug fix for 8-bit limb).
[tests/random2.c] Fix for 8-bit limb.
Merged the latest changes from the trunk.
[tests/tests.c] Define only one buffer in test_version().
[tests/random2.c] Improved code by using MPFR_LIMB_* macros.
[src/mpfr-impl.h] Improved MPFR_LIMB_* macros for mp_limb_t < int
(e.g. 16-bit or 8-bit limb), as in such a case, integer promotion
transforms mp_limb_t to int.
2018-09-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tests.c] fixed compiler warning
2018-09-14 Vincent Lefèvre <vincent@vinc17.net>
Merged the latest changes from the trunk (bug fixes).
[src/get_si.c] Code refactoring/simplification like what has been
done for get_ui.c in r13185, fixing also an integer overflow when
MPFR_LONG_WITHIN_LIMB is not defined.
[tests/random2.c] Fix for 16-bit limb.
[src/add1.c] Fix for 16-bit limb.
[src/mpfr-gmp.h] Fixed bug in add_ssaaaa / sub_ddmmss from r13081.
Completed --with-mini-gmp support (not fully tested).
Merged the latest changes from the trunk.
[src/Makefile.am] Moved a comment in a better place.
[configure.ac] Define MINI_GMP Automake conditional (AM_CONDITIONAL).
2018-09-14 Vincent Lefèvre <vincent@vinc17.net>
Started to implement --with-mini-gmp (building mini-gmp and linking
not correctly handled yet, thus "make check" failure is expected).
[Added during the Subversion to Git conversion]
This commit includes a merge of r13191 from the trunk.
2018-09-14 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] Typo.
[configure.ac] Updated comments about configure options for mini-gmp.
2018-09-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tsin.c] reduce REDUCE_EMAX with mini-gmp
2018-09-13 Vincent Lefèvre <vincent@vinc17.net>
[src/get_ui.c] Added assertions.
[src/get_ui.c] Code refactoring/simplification.
[src/sin_cos.c] Added assertions protecting against buffer overflow.
2018-09-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sin_cos.c] fix for small limb size
2018-09-12 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-mini-gmp.h] Fix: Since gmp_version is not defined in mini-gmp,
we must not declare it (otherwise one would get a link failure instead
of a compilation failure if gmp_version is used by mistake).
[tests/tests.c] Improved change in r13179 for mini-gmp.
[configure.ac] Do not check for CC and CFLAGS in gmp.h if mini-gmp is
used, i.e. if --enable-mini-gmp (current option) or --with-mini-gmp
(future option) is given.
2018-09-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tests.c] libgmp is not defined with mini-gmp (issue found with -O0)
2018-09-12 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-mini-gmp.h] Removed #include lines as mpfr-mini-gmp.h is
included only in mpfr-impl.h, which already does these #include's.
[src/mpfr-impl.h] Check that MPFR_HAVE_GMP_IMPL and MPFR_USE_MINI_GMP
are not both defined.
[src/mpfr-mini-gmp.c] Removed #include "mpfr-mini-gmp.h" as this include
is already done in mpfr-impl.h (in both cases, when MPFR_USE_MINI_GMP is
defined).
[src/rec_sqrt.c] Replaced "if (GMP_NUMB_BITS >= 16)" by a preprocessor
test "#if GMP_NUMB_BITS >= 16" like earlier. Use static assertions.
[src/rec_sqrt.c] Fixed types for 8-bit limb. Removed useless casts.
[src/rec_sqrt.c] Fixed a type from r13172 (int was obviously too short
and was yielding a segmentation fault).
2018-09-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/rec_sqrt.c] fixed for 8-bit limb
[tests/tcan_round.c] fixed test for small value of GMP_NUMB_BITS
[src/strtofr.c] fixed r13168: in case exact=0, mpn_rshift was not done
[tests/tsqrt.c] modified test_sqrt1n() so that it passes with 8-bit limbs
2018-09-11 Vincent Lefèvre <vincent@vinc17.net>
[src/strtofr.c] Replaced "exact &=" by "exact = exact &&" as usual.
2018-09-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/strtofr.c] fix for 8-bit limb
[src/strtofr.c] added comment
2018-09-10 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
2018-09-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/strtofr.c] fix from r13163 was incorrect
[tests/tget_str.c] added a testcase, and fixed an error message
2018-09-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/strtofr.c] resolved a FIXME
[tests/tdiv_ui.c] fixed corner_cases() test
[src/int_ceil_log2.c] fixed __gmpfr_int_ceil_log2 for limb < long
2018-09-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/random2.c] fixed mpfr_random2 for GMP_NUMB_BITS <> 64
[src/mpfr-mini-gmp.c] fixed another compiler warning
[src/get_ui.c] fixed compiler warning
some fixes for 8-bit limb support
adapt to 8-bit limbs (work in progress)
[tests/tl2b.c] extend to 8-bit limb
[src/mpfr-gmp.h] fix for 8-bit limb
2018-09-07 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Added @tie{} (normal non-breakable space) at various
places to avoid unwanted line breaking.
[doc/mpfr.texi] mpfr_rootn_ui, mpfr_root: changed k to n in order to
match IEEE 754-2008. Also improved the description of mpfr_rootn_ui,
mentioning the P754/D2.41 draft of the next IEEE 754 standard because
IEEE 754-2008 is incomplete.
2018-09-06 Vincent Lefèvre <vincent@vinc17.net>
[tests/tdiv.c] !mpfr_equal_p is better than mpfr_cmp.
2018-09-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/rint.c] fixed bug with 16-bit limb
(found by trint with GMP_CHECK_RANDOMIZE=1536206745598891)
[tests/tdiv.c] fixed test_20151023()
2018-09-06 Vincent Lefèvre <vincent@vinc17.net>
Removed trailing whitespace.
[src/get_ld.c] Removed incorrect and useless assertions (manl
has exactly 32 bits, thus a shift count of 32 bits is invalid,
but also useless).
2018-09-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/get_ld.c] fixed (hopefully definitively) for 16-bit limb
2018-09-05 Vincent Lefèvre <vincent@vinc17.net>
[src/set_d64.c] 2 fixes concerning rp[]:
* If GMP_NUMB_BITS >= 64, there is a shift of 32 bits, thus one
uses mp_limb_t (> 32 bits) instead of unsigned int.
* Otherwise use unsigned long as an unsigned int might be on 16 bits.
[src/mpfr-impl.h] Indentation.
[src] Moved mpfr_nbits_ulong to its own file "nbits_ulong.c".
[src/pow_si.c] MPFR_NEED_LONGLONG_H is still needed.
[tests/tget_set_d64.c] Removed xxx suffix added in r13139 (by mistake?).
2018-09-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/exp_2.c] export (internally) nbits_ulong (renamed to mpfr_nbits_ulong)
[src/mpfr-impl.h] added prototype for mpfr_nbits_ulong
[src/pow_si.c] fixed for 16-bit limb
[src/get_d64.c] fixed for 16-bit limb
[src/set_d64.c] likewise
[tests/tget_set_d64.c] improved error message
2018-09-05 Vincent Lefèvre <vincent@vinc17.net>
[src/get_ld.c] In the case GMP_NUMB_BITS == 16, cast to unsigned long
instead of unsigned int since shift counts can be up to 16 and an int
might be on 16 bits only.
2018-09-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/get_ld.c] when denorm=16, a 32-bit shift on an unsigned int is undefined
[src/exp_2.c] fix for 16-bit limb
[tests/texp.c] improve error message
[src/mpfr-mini-gmp.c] fixed gmp_urandomb_ui for 16-bit limb, added mpz_dump
[tests/terandom_chisq.c] more details in case of error
[src/random_deviate.c] fixed typo
2018-09-04 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset_z_exp.c] Avoid a GCC bug.
[tests/tset_z_exp.c] Attempt to fix randexp, but GCC complains.
[src/mpn_exp.c] Avoid useless "while" in nbits_mpfr_exp_t.
2018-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tset_ld.c] give more digits in case of error
[tests/tget_ld_2exp.c] added one test (currently fails for 16-bit limb)
[src/set_ld.c] partial fix for 16-bit limb (typo + nice bug!)
[tests/tset_z_exp.c] fixed infinite loop in test code for limb < mpfr_exp_t
[src/mpn_exp.c] adapt to bitsize(mpfr_exp_t) > GMP_NUMB_BITS
2018-09-04 Vincent Lefèvre <vincent@vinc17.net>
[src/div.c] Code simplification.
[src/round_prec.c] MPFR_LIMB is actually useless now...
[src/round_prec.c] Code style and potential correction for 16-bit limb.
[src/sqrt_ui.c] Moved MPFR_SAVE_EXPO_FREE after mpfr_sqrt because
the uu argument may be out of range and there is no guarantee that
mpfr_sqrt can handle that. Improved consistency; code refactoring.
2018-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/round_prec.c] fixed for 16-bit limb
[tests/tcan_round.c] improve error message
[src/sqrt_ui.c] fixed for 16-bit limb
2018-09-04 Vincent Lefèvre <vincent@vinc17.net>
[src/get_si.c] Make sure that a left shift is done on an unsigned type
(as a left shift on a 0 of signed type was not specified by C90).
2018-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/div.c] fix for 16-bit limbs, and added comments
[src/rint.c] fix for 16-bit limb
[tests/tdiv.c] more detailed error message
[src/get_si.c] forgot cast when long > limb
[src/get_ui.c] forgot cast when long > limb
2018-09-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/odd_p.c] fix for 16-bit limb
[tests/tbeta.c] exit at the first error
[src/get_si.c] adapt to 16-bit limbs
[src/get_ui.c] likewise
[src/cmp_si.c] adapt for reduced exponent range for 16-bit limbs
[src/cmp_ui.c] likewise
2018-09-03 Vincent Lefèvre <vincent@vinc17.net>
[tests/mpfr-test.h] If MPFR_TESTS_ABORT is defined, replace exit(1) by
abort(), thus with a core dump.
[doc/README.dev] Document MPFR_TESTS_ABORT.
2018-09-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tgeneric.c] revert 13107 (abort might lose some data in open files)
[src/mul_ui.c] fixed for 16-bit limb and reduced exponent range
[tests/tgeneric.c] replace exit(1) by abort() to allow debugging with gdb
[src/isinteger.c] fix for 16-bit limb
[src/cmp_si.c] fixed error for 16-bit limb
[src/cmp_ui.c] adapted to 16-bit limb
2018-09-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/cmp_si.c] adapt for 16-bit limb
2018-08-31 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mul_ui.c] adapt for 16-bit limb
2018-08-31 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-mini-gmp.c] Fixed potential undefined behavior (when mp_limb_t
is defined as an unsigned short) with MPFR_LIMB_LSHIFT.
[src/mpfr-impl.h] Define MPFR_LIMB_LSHIFT(x,c) macro to do a left shift,
making sure that the shifted argument is unsigned (needed due to the
integer promotion rules when mp_limb_t is defined as an unsigned short).
[src/add1.c] Fixed potential undefined behavior with MPFR_LIMB_LSHIFT.
[src/mpfr-impl.h] Corrected a comment and added a warning.
2018-08-31 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mpfr-impl.h] fix MPFR_INT_CEIL_LOG2 for 16-bit limb
[src/set_si_2exp.c] support 16-bit limbs
2018-08-31 Vincent Lefèvre <vincent@vinc17.net>
[src/set_ui_2exp.c] Code formatting. Removed a FIXME (done in r13078).
2018-08-31 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mpfr-gmp.h] missing cast
removed TEST_FLAGS stuff
2018-08-31 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] More correction about the MPFR_TESTS_TIMEOUT macro.
[doc/README.dev] Clarification about MPFR_TESTS_TIMEOUT.
[doc/README.dev] Reverted r13090: this was already mentioned at the
right place (do not mix up macros and environment variables).
2018-08-31 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mpfr-gmp.h] added missing udiv_qrnnd for 16-bit limb
[src/mul.c] fixed for 16-bit limb
[src/ui_div.c] likewise
[README.dev] mention that MPFR_TESTS_TIMEOUT only works with --enable-tests-timeout
2018-08-31 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Fix for MS Windows.
[src/mpfr-impl.h] Make sure that MPFR_LONG_WITHIN_LIMB is defined if
__GMP_SHORT_LIMB is not defined, as required by the current code.
[src/mpfr-gmp.h] Untabified.
2018-08-31 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mpfr-impl.h] fixed wrong #ifdef
[src/mpfr-mini-gmp.c] fix for 16-bit limb
[src/add1.c] fix for 16-bit limb
[tests/tadd.c] more output in case of error
[src/add1.c] fixed compiler warning
[src/mpfr-gmp.h] removed leftover debug statement
[src/mpfr-impl.h] added MPFR_LIMB macro
[src/sub1sp.c] fix for 16-bit limb
2018-08-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mpfr-gmp.h] more changes for 16-bit limb
[src/mpfr-impl.h] mpfr-longlong.h should not be used for limb < long
[mpfr-gmp.h] added comment
[mpfr-mini-gmp.c] fix for 16-bit limb
[src/set_ui_2exp.c] fix for 16-bit limb
2018-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/round_p.c] gmp_fprintf is not defined in mini-gmp
[tests/tadd.c] fix for 16-bit limb
[src/add1.c] revert previous commit since it does not remove the warning:
add1.c: In function ‘mpfr_add1’:
add1.c:407:30: warning: ‘<<’ in boolean context, did you mean ‘<’ ? [-Wint-in-bool-context]
if (difs && (cprev << (GMP_NUMB_BITS - difs)))
~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
[src/add1.c] fixed compiler warning (with gcc 8.2.0)
2018-08-29 Vincent Lefèvre <vincent@vinc17.net>
[tests/tdiv_ui.c] Added a comment about a spurious failure
with MPFR_RNDF if RND_LOOP_NO_RNDF were not used.
2018-08-28 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsinh.c] Fixed test introduced in r13047.
[src/{add_ui.c,sub_ui.c,ui_sub.c}] Fixed the bug introduced in r13066
for the cases where MPFR_LONG_WITHIN_LIMB is defined (make sure that a
significand allocated in the stack is not freed before the associated
mpfr_t object).
[src/div_ui.c] Extend the exponent range in the case where
MPFR_LONG_WITHIN_LIMB is not defined, resolving the FIXME.
Note: a test was already there in tdiv_ui via the generic tests.
[tests/tdiv_ui.c] Disabled rnd=MPFR_RNDF in a loop as this now fails.
[tests/tdiv_ui.c] Corrected an error message.
[src/div.c] Avoid an infinite recursion when MPFR_LONG_WITHIN_LIMB
is not defined (mpfr_div calls mpfr_div_ui, which calls mpfr_div).
[src/div_ui.c] Made the preprocessor test on MPFR_LONG_WITHIN_LIMB
consistent with the ones in the other .c files.
[src/{add_ui.c,sub_ui.c,ui_sub.c}] Fixed the cases where
MPFR_LONG_WITHIN_LIMB is not defined (regression in the
latest changes). Also avoid unused variables.
Removed trailing whitespace.
[src/ui_sub.c] Extend the exponent range early enough.
[src/add_ui.c] Extend the exponent range early enough.
[src/sub_ui.c] Extend the exponent range early enough.
2018-08-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/get_ld.c] adapt to GMP_NUMB_BITS=16
2018-08-28 Vincent Lefèvre <vincent@vinc17.net>
[src/div_ui.c] Added a FIXME.
2018-08-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/set_ld.c] adapt to GMP_NUMB_BITS=16
[src/set_d.c] adapt to GMP_NUMB_BITS=16 (not yet tested)
[src/exp_2.c] removed a static assertion (duplicate with MPFR_LONG_WITHIN_LIMB)
[src/init2.c] split a static assertion in two
[src/mpfr-gmp.h] allow GMP_NUMB_BITS=16 (experimental, do not use!)
[src/set_d.c] make it easier to extend to GMP_NUMB_BITS<32
[configure.ac] read GMP_NUMB_BITS from mini-gmp.h when available
(otherwise assume mp_limb_t == unsigned long)
[src/ui_sub.c] make code work for limb < long
[src/sub_ui.c] make code work for limb < long
[src/div_ui.c] make code work for limb < long
[src/add_ui.c] make code work for limb < long
[mini-gmp] update
[tests/tsinh.c] improve coverage
[tests/tsubnormal.c] improve coverage
2018-08-27 Vincent Lefèvre <vincent@vinc17.net>
[src/sub1sp.c] Added a FIXME about cp vs tp.
2018-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tmul.c] improve coverage
2018-08-27 Vincent Lefèvre <vincent@vinc17.net>
[src/sub1sp.c] Avoid bad usage of tp in the generic code:
* In the case d == 1, two branches were inconsistent: tp not defined
at the same level, with one shadowing the other one.
* In the case 2 <= d < p, tp was reused with a different meanings;
renamed the second one to cp, as this is MPFR_MANT(c).
[src/sub1sp.c] Re-added/updated FIXME about the long backward goto's.
[src/{add1sp.c,mul.c}] Updated the condition to use the formally
extracted code and added a corresponding comment.
2018-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/const_log2.c] further improve coverage
2018-08-27 Vincent Lefèvre <vincent@vinc17.net>
[src/cache.c] Improved variable names (→ dprec for the precision of dest
and cprec for the precision of the cache) and added/updated comments.
[src/cache.c] Reverted r13036 as what matters is the target precision,
which can be very small.
2018-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/add1sp1_extracted.c] replaced extracted code by new for MPFR_PREC_BITS=64
[src/mul_1_extracted.c] likewise
[src/add1sp.c] changed condition to use the formally extracted code
[src/mul.c] likewise (but code is still not yet activated here)
2018-08-27 Vincent Lefèvre <vincent@vinc17.net>
[src/cache.c] Comment: In practice, the "overflow handler" of
MPFR_RNDRAW_GEN should never be called.
2018-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/const_log2.c] avoid hard-coded values
[tests/tconst_log2.c] improve coverage
2018-08-27 Vincent Lefèvre <vincent@vinc17.net>
[src/cache.c] Replaced a test + mpfr_overflow by a MPFR_ASSERTD since
the cached value (in extended exponent range) cannot overflow.
2018-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/const_euler.c] better choice of (initial) working precision
[tests/tconst_euler.c] added coverage test
2018-08-27 Vincent Lefèvre <vincent@vinc17.net>
[tests/tversion.c] Update concerning the shared cache, to be consistent
with the other mpfr_buildopt_*_p features:
* check that mpfr_buildopt_sharedcache_p() and MPFR_WANT_SHARED_CACHE
match;
* for the output of the value, test mpfr_buildopt_sharedcache_p()
instead of the macro.
2018-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tconst_catalan.c] improve coverage
[tests/tbuildopt.c] added check of mpfr_buildopt_sharedcache_p()
2018-08-27 Vincent Lefèvre <vincent@vinc17.net>
Removed trailing whitespace.
2018-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp.c] fixed even rule for p=1
2018-08-27 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Mention WG14/N2270 (proposed maybe_unused attribute),
which could be useful to avoid MPFR_DBGRES.
2018-08-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp.c] finished simplifying the mpfr_sub1sp code
[src/sub1sp.c] simplified the computation of sbb
[src/sub1sp.c] full rewrite of mpfr_sub1sp (work in progress)
2018-08-23 Vincent Lefèvre <vincent@vinc17.net>
[tests/tversion.c] Output "Enable formally proven code" info.
[doc/README.dev] Describe MPFR_WANT_PROVEN_CODE.
Renamed WANT_PROVEN_CODE to MPFR_WANT_PROVEN_CODE for consistency with
the other WANT macros (and to avoid potential clashes with foreign .h
files).
[tools/mpfrlint] For some tests, ignore extracted files (proven code).
2018-08-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
the mpfr_mul_1 extracted code is not proven yet
2018-08-23 Vincent Lefèvre <vincent@vinc17.net>
For --enable-formally-proven-code, instead of requiring a check of the
type sizes in configure, just enable the proven code only if the types
have the sizes expected by this code.
* configure.ac: removed the FIXME.
* src/add1sp.c, src/mul.c: updated the #if test that enables the
proven code (add1sp1_extracted.c and mul_1_extracted.c).
[configure.ac] Updated FIXME for --enable-formally-proven-code
(many failures with -m32 due to assumptions on type sizes).
[configure.ac] Added a FIXME for --enable-formally-proven-code.
[configure.ac] Updated message for --enable-formally-proven-code.
2018-08-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added configure option --enable-formally-proven-code and corresponding code
2018-08-22 Vincent Lefèvre <vincent@vinc17.net>
[doc/algorithms.tex] Ulp calculus: swap Rule 4 and Rule 5.
[doc/algorithms.tex] Ulp calculus Rule 4: make the proof much simpler.
[doc/algorithms.tex] Error calculus: implicitly assume x ≠ 0 in ulp.
[src/sub1sp.c] Updated a FIXME.
[src/sub1sp.c] Removed a comment that brings nothing and is not
really correct (this is not a "flag").
2018-08-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/mpfr-test.h] added macro TEST_FLAGS (debug use only)
2018-08-22 Vincent Lefèvre <vincent@vinc17.net>
[tests/tversion.c] Portability corrections related to the use of the
preprocessor / code robustness.
2018-08-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp.c] revert mpfr_sub1sp to the version of revision 12241
[src/sub1sp.c] fixed bug20180813
[tests/tsub1sp.c] improved comment about bug20180813()
2018-08-21 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
2018-08-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tsub1sp.c] added a test for a bug in mpfr_sub1sp (to be fixed)
2018-08-20 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Replaced "Section ``Rounding''" by "@ref{Rounding}".
2018-08-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[doc/mpfr.texi] renamed Section "Rounding Modes" to "Rounding"
2018-08-18 Vincent Lefèvre <vincent@vinc17.net>
Avoid a pointer-to-int-cast warning with GCC (e.g. under 32-bit Linux)
by casting pointers to uintptr_t before the cast to mpfr_uintmax_t.
* acinclude.m4: use AC_TYPE_UINTPTR_T to define uintptr_t if
not available.
* tests/memory.c: added casts to uintptr_t.
2018-08-16 Vincent Lefèvre <vincent@vinc17.net>
Code robustness in macro definitions.
[src/sqr.c] Changed a variable name to avoid confusion with the function
parameter of the same name, which has a different type.
[src/mpfr-impl.h] Added a cast to mp_bitcnt_t in order to fix potential
integer overflow in MPFR_MPZ_SIZEINBASE2.
[src/round_raw_generic.c] Type consistency.
Added MPFR_INC_PREC definition (similar to MPFR_ADD_PREC) and replaced
some MPFR_ADD_PREC occurrences by MPFR_INC_PREC. In src/bernoulli.c,
replaced += by MPFR_INC_PREC to detect overflow.
2018-08-11 Vincent Lefèvre <vincent@vinc17.net>
Replaced "TZ=UTC" by "TZ=UTC0" for portability.
2018-08-06 Vincent Lefèvre <vincent@vinc17.net>
[src/round_raw_generic.c] Avoid a useless variable. This should
also avoid warnings with Windows ICC, reported at:
https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00002.html
[tests/tcan_round.c] Added missing casts for printf (error messages).
Bug detected under MS Windows, where size_t > unsigned long. See:
https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00002.html
[tests/tdiv_ui.c] Improved the conditions for test_20170105().
In particular, the new preprocessor test can avoid spurious warnings
on large shifts (false positives) with MS Windows. See:
https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00002.html
[doc/README.dev] More details about intmax_t, mpfr_intmax_t, etc.
[tests/memory.c] To print a size_t or a pointer in error messages,
cast to mpfr_uintmax_t (largest integer type available) instead of
unsigned long, which may be too short (e.g. under MS Windows).
See: https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00002.html
[src/mpfr-intmax.h] Define MPFR_INTMAX_FSPEC macro: length modifier
for printf corresponding to mpfr_intmax_t and mpfr_uintmax_t.
[doc/README.dev] Updated/added links about coding standards and C.
2018-08-05 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Updated a comment: more details about __GMP_DECLSPEC,
in particular those found in GMP's longlong.h file.
2018-08-05 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-longlong.h] Replaced __GMP_DECLSPEC by __MPFR_DECLSPEC.
Otherwise, with Windows DLL, __GMP_DECLSPEC is replaced by
__declspec(dllimport), which is wrong when building MPFR and
yields warning LNK4217 such as:
eint.obj : warning LNK4217: locally defined symbol mpfr_clz_tab
imported in function mpfr_eint
due to
extern const unsigned char __GMP_DECLSPEC __clz_tab[129];
(note that mpfr_clz_tab is defined with "#define __clz_tab mpfr_clz_tab"
only without the GMP build).
See:
https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00000.html
https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00001.html
2018-08-05 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Check that __GMP_DECLSPEC is not used by MPFR.
2018-07-31 Vincent Lefèvre <vincent@vinc17.net>
[tests/tversion.c] Try to detect missing output from the first printf
that occurred once with i586-mingw32msvc-gcc -D__USE_MINGW_ANSI_STDIO
and run under Wine.
(merged changesets r12968-12969 from the 4.0 branch)
2018-07-27 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4,configure.ac] Check the support of the group flag for
native integers, which is a Single UNIX Specification extension.
[tests/tsprintf.c] Test the group flag with the P length modifier only
when supported, since the implementation relies on this support.
[src/vasprintf.c] Fixed bug with the P length modifier (mpfr_prec_t):
a '0' flag was always added when calling gmp_asprintf. This bug
wasn't detected under Linux because the case for which it was
occurring (left space padding without a precision and without a
'0' flag) was not tested. With Wine, tsprintf was failing because
of a bug in the stdio library: the '0' flag added by mistake should
have been ignored in some test with a precision, but it wasn't.
[tests/tsprintf.c] Added a test that made a failure occur under Linux.
[tests/tsprintf.c] Added 2 other tests with the P length modifier.
[src/vasprintf.c] Fixed bug with the P length modifier (mpfr_prec_t).
[tests/tsprintf.c] Corrected/added tests with the P length modifier.
2018-07-26 Vincent Lefèvre <vincent@vinc17.net>
[src/vasprintf.c] Fixed various overflow and close-to-overflow issues.
Those with the P length modifier (mpfr_prec_t) will be fixed later.
[tests/tsprintf.c] Another failure with the P length modifier.
[tests/tsprintf.c] Added tests with the P length modifier (mpfr_prec_t),
yielding mode failures.
[src/vasprintf.c] Fixed "store to null pointer" and free of bad pointer
in case of error.
[tests/tsprintf.c] Added a test that yields a "store to null pointer",
detected by UBsan.
2018-07-25 Vincent Lefèvre <vincent@vinc17.net>
[src/vasprintf.c] Bug fix: in case of some errors (via "goto error;"),
va_end wasn't called, yielding undefined behavior.
2018-07-23 Vincent Lefèvre <vincent@vinc17.net>
[tests] Added tget_set_d128 to svn:ignore property.
[src/erf.c] More security about tauk.
[src/erf.c] Removed a meaningless cast.
2018-07-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/erf.c] replaced double's by mpfr_t to fix bug reported by Naoki Shibata
2018-07-22 Vincent Lefèvre <vincent@vinc17.net>
[tests/terf.c] Added a testcase for bug reported by Naoki Shibata:
https://sympa.inria.fr/sympa/arc/mpfr/2018-07/msg00028.html
(uceil_log2.c:40: MPFR assertion failed: exp < 1023).
Increased the number of generic tests in order to reproduce the bug
there too with the default seed.
2018-07-21 Vincent Lefèvre <vincent@vinc17.net>
[src/subnormal.c] C89 compatibility.
2018-07-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/subnormal.c] experimental support for RNDNA
2018-07-20 Vincent Lefèvre <vincent@vinc17.net>
Added examples/threads.c (and updated Makefile.am): multithreading test
to detect scaling issues with MPFR.
2018-07-19 Vincent Lefèvre <vincent@vinc17.net>
[src/vasprintf.c] Updated a FIXME.
[src/vasprintf.c] More FIXME's.
[src/vasprintf.c] Reindentation.
[src/vasprintf.c] Added a FIXME for MPFR_PREC_ARG handling.
2018-07-18 Vincent Lefèvre <vincent@vinc17.net>
Shared caches: fix and minor changes.
* Fixed detection and use of C11 thread support: the C11 header is
<threads.h>, not <thread.h>.
* Renamed WANT_SHARED_CACHE to MPFR_WANT_SHARED_CACHE for consistency
with the other MPFR_WANT_* macros.
* Added MPFR_THREAD_LOCK_METHOD macro, giving the thread locking
method as a string (when shared caches are enabled).
* doc/README.dev: documented 4 macros for shared caches.
* tests/tversion.c: output MPFR_WANT_SHARED_CACHE and
MPFR_THREAD_LOCK_METHOD information.
[tests/tconst_pi.c] Removed an incorrect assertion, as the #else would
be applicable when WANT_SHARED_CACHE is defined but not HAVE_PTHREAD
(which may occur when MPFR_HAVE_C11_LOCK is defined).
[src/vasprintf.c] Fixed type in partition_number to be consistent with
the end of the function.
2018-07-16 Vincent Lefèvre <vincent@vinc17.net>
[src/vasprintf.c] Added 2 FIXME and removed an incorrect MPFR_ASSERTN
(which came from r5236).
[tests/tsprintf.c] Added other tests to check_length_overflow, which
would trigger other bugs in src/vasprintf.c (e.g. when removing the
other failing tests).
[tests/tsprintf.c] Added check_length_overflow to check the behavior of
mpfr_snprintf on a large number of output characters (> INT_MAX) with
size = 0. This test is actually done only if INT_MAX == 2147483647 and
currently fails in such a case.
[src/vasprintf.c] Updated comment about overflow on the number of output
characters, taking into account the latest ISO C and POSIX standards.
[tests/tsprintf.c] Updated a comment.
2018-07-13 Vincent Lefèvre <vincent@vinc17.net>
[src/vasprintf.c] Simplified mpfr_get_str_wrapper.
[src/vasprintf.c] Added a log message.
[src/mpfr-impl.h] Added a FIXME: _Decimal128 code and _MPFR_IEEE_FLOATS
(which is about binary IEEE-754 floating point) should be unrelated.
[src/get_d64.c]
* Added FIXME's for get_decimal64_nan and get_decimal64_inf internal
functions: possible issue with _MPFR_IEEE_FLOATS code, which also
seems more complex than the generic code.
* Simplified get_decimal64_zero internal function to generate a
decimal zero directly instead of using the fact that a binary64
zero is also the encoding of a decimal zero (and assuming that
double = binary64 with perfect endianness matching).
[acinclude.m4] Updated message about the _Float128 support, since
this is not just about the compiler.
[acinclude.m4] Fixed the _Float128 / __float128 detection for NetBSD:
Optimization made the "undefined reference" error disappear, so that
__float128 was misdetected as being supported.
2018-07-12 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] For the _Float128 / __float128 detection, changed
AC_COMPILE_IFELSE to AC_LINK_IFELSE since an error may occur only
at link time, such as under NetBSD:
https://mail-index.netbsd.org/pkgsrc-users/2018/02/02/msg026220.html
https://mail-index.netbsd.org/pkgsrc-users/2018/02/05/msg026238.html
[src/Makefile.am] Corrected check-exported-symbols to avoid a failure
when the default .SHELLFLAGS value is '-ec' (POSIX) instead of '-c'
(GNU Make, which is not in POSIX-conforming mode by default).
Bug found on FreeBSD 11.1 (Compile Farm @ HouseGordon.com).
2018-07-11 Vincent Lefèvre <vincent@vinc17.net>
[src/vasprintf.c] In buffer_sandwich, simplified the handling of the
trailing zero (avoid memset and a useless assignment).
2018-07-09 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] More changes to Section "Nomenclature and Types";
in particular, defined regular numbers and exponents.
[doc/mpfr.texi] In Section "Nomenclature and Types", removed all the
@noindent, whose purpose is unclear (if one needs something special,
an itemized list would be better, or possibly @deffn).
[doc/mpfr.texi] Rewrote the paragraph defining "floating-point number"
in Section "Nomenclature and Types", avoiding ambiguities.
2018-07-06 Vincent Lefèvre <vincent@vinc17.net>
[tests/tprintf.c] Grrr... again a copy-paste error. Now OK.
[tests/{tprintf.c,tsprintf.c}] Corrected the tests added in r12898,
but tprintf still fails.
[tests/tsprintf.c] Corrected the latest tests.
[tests/tsprintf.c] Added tests (failure on "%09.3Rg" for 1000).
[tests/tsprintf.c] Corrected comments.
[tests/{tprintf.c,tsprintf.c}] Added tests (both programs fail).
[doc/mpfr.texi] Updated the month.
[src/vasprintf.c] Corrected comments and coding style.
[src/vasprintf.c] Resolve the FIXME.
* Renamed ip_trailing_zeros to ip_trailing_digits, since when
spec.size == 0, these can be any digits.
* Simplified the buffer_sandwich function since it can be called
only when spec.size != 0, in which case tz (= ip_trailing_digits)
is either 0 or 1 (a trailing zero must be added only when rounding
to the next power of ten in the %f case).
* Corrected/removed/added comments.
[tests/{tprintf.c,tsprintf.c}] Added tests with powers of ten in all
rounding modes and powers of ten + 0.5 in rounding to nearest.
2018-07-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[doc/mpfr.texi] typo in Fredrik's name
[AUTHORS] typo in Fredrik's name
2018-07-04 Vincent Lefèvre <vincent@vinc17.net>
[tests/tprintf.c] Added a TODO (for the FIXME in src/vasprintf.c).
[src/vasprintf.c] Updated the FIXME comment.
[src/vasprintf.c] Added a FIXME comment about an incorrect comment.
[src/vasprintf.c] Added log messages in buffer_sandwich.
[tests/tsprintf.c] Added more tests of the form 10^i - 1/2
(like in tprintf.c).
[tests/tprintf.c] Added more tests of the form 10^i - 1/2.
[tests/tsprintf.c] Added test_locale() test based on the tprintf.c one.
[tests/tprintf.c] Minor correction.
[tests/tprintf.c] More test_locale() cleanup.
[src/vasprintf.c] English usage in a comment.
[src/vasprintf.c] Renamed mpfr_get_str_aux to mpfr_get_str_wrapper
in order to avoid a confusion with the mpfr_get_str_aux function
from get_str.c (moreover, this is really a wrapper, which is the
reverse of an aux function).
[tests/tsprintf.c] locale_da_DK() cleanup.
2018-07-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/vasprintf.c] partly revert commit 12873
2018-07-04 Vincent Lefèvre <vincent@vinc17.net>
[tests/tprintf.c] test_locale() cleanup.
* Conditional #include <locale.h> with the other header inclusions.
* Completed a #if (to be like in tsprintf.c).
* Moved a global variable as local to test_locale().
2018-07-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/vasprintf.c] replaced overflow tests by assertions
[tests/tprintf.c] improve test coverage
2018-07-04 Vincent Lefèvre <vincent@vinc17.net>
Added MPFR_CHECK_LOCALES environment variable for the tests (to be
used by developers): when set, terminate with an error if locales
cannot be tested.
2018-07-04 Vincent Lefèvre <vincent@vinc17.net>
[src/vasprintf.c] Fixed several bugs in buffer_sandwich, which could
yield memory corruption with non-default memory allocators and other
undefined behavior; check the return value when this function is called.
Details:
* check integer overflow on the size computations;
* computation of q and r without tests;
* fixed the case where r > len (e.g. len = 1 and tz = 1);
* in the loop, increase the str pointer only when needed, otherwise
str could be beyond of the end of the string of the digits, which
is undefined behavior.
The first consequence of the r > len issue was an incorrect generated
string. Moreover, since the generated string was shorter than expected,
mpfr_free_str would provide an incorrect buffer size to the "free"
function of the current GMP memory allocator. By default, this size is
ignored, but it may matter if the memory allocators have been changed
with the mp_set_memory_functions GMP function, in which case a possible
consequence could be memory corruption.
2018-07-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/vasprintf.c] added an assertion
[tests/tprintf.c] added two tests (one currently fails)
2018-06-26 Vincent Lefèvre <vincent@vinc17.net>
[src/vasprintf.c] C90 compatibility.
2018-06-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tsprintf.c] fixed another test
[tests/tsprintf.c] fixed test
[src/vasprintf.c] improve coverage
[tests/tsprintf.c] improve coverage
[tests/tsprintf.c] improve coverage
2018-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tgamma_inc.c] improve coverage
[tests/tgamma_inc.c] added coverage test
[src/gamma.c] added comment
[src/gamma_inc.c] fixed bug for gamma_inc(-Inf, 0)
[tests/tgamma_inc.c] added coverage tests
2018-06-23 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] Do not do specific CFLAGS settings for MS-Windows ICC.
See <https://sympa.inria.fr/sympa/arc/mpfr/2018-06/msg00027.html>.
[src/mpfr-impl.h] Spelling in a comment.
[src/mpfr-impl.h] Fixed change in r12847.
[tests/tget_set_d64.c] Improved a test.
[tests/tget_set_d128.c] Replaced d != d by DOUBLE_ISNAN (d).
[doc/mpfr.texi] Updated the month.
[tests/tget_set_{d64,d128}.c] When MPFR_ERRDIVZERO is defined,
disable tests that can trigger a FP exception DIVBYZERO or INVALID
(issue detected with -DMPFR_TESTS_FPE_DIV -DMPFR_ERRDIVZERO).
2018-06-22 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Improved a comment about union ieee_decimal128.
Do not assume that the bit-field ordering for _Decimal128 is necessarily
little endian or big endian (this is more than the usual endianness
issue). If this cannot be detected, instead of failing or assuming a
possibly wrong default, switch to the portable code.
2018-06-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added mpfr_get_decimal128 and mpfr_set_decimal128 to the manual
[tests/tget_set_d128.c] test some random 16-byte inputs
[tests/tget_set_d64.c] test random inputs
[acinclude.m4] added configure test to determine the encoding of _Decimal128 (little or big endian)
[doc/README.dev] added standard suffixes
[tests/tget_set_d64.c] fixed a test
[tests/tget_set_d64.c] removed TODO (done), added comment
[tests/tget_set_d128.c] removed TODO (done)
[src/set_d64.c] added comment (like for set_d128.c)
[src/get_d64.c] improve comment
[src/get_d128.c] likewise
[src/set_d64.c] also deal with non-canonical BID encoding
[tests/tget_set_d64.c] added test with non-canonical BID encoding
2018-06-22 Vincent Lefèvre <vincent@vinc17.net>
[src/get_d128.c] Bug fix (buffer overflow detected by AddressSanitizer).
[src] Moved the FIXME comment from set_d128.c to get_d128.c since the
bug occurs in mpfr_get_decimal128 according to the AddressSanitizer.
[src/set_d128.c] Updated FIXME comment.
[src/sqrt.c] Replaced a umul_ppmm by umul_hi, and removed an unused
variable as a consequence.
[src/set_d64.c] Code improvement (like r12809 and r12828 in set_d128.c).
[src/set_ld.c] Removed unused variable for
HAVE_LDOUBLE_MAYBE_DOUBLE_DOUBLE (PowerPC).
[src/invsqrt_limb.h] Avoid a "variable ‘_l’ set but not used" warning
on some platforms, such as powerpc64le-unknown-linux-gnu.
[src/invert_limb.h] Avoid a "variable ‘_l’ set but not used" warning
on some platforms, such as powerpc64le-unknown-linux-gnu.
[src/set_d128.c] Avoid "unused variable" warnings on platforms with DPD.
[src/mpfr-impl.h] About union ieee_double_decimal64: removed an
incorrect comment and added a TODO.
Changed union ieee_double_decimal128 to union ieee_decimal128 since this
has nothing to do with double (unlike union ieee_double_decimal64). Also
refactored code for this union definition.
[src/mpfr-impl.h] Updated TODO for DPD.
[src/mpfr-impl.h] Added TODO for DPD (better structure definition).
[tests/tget_set_d128.c] Execute BID code only with BID.
[tests/tget_set_d128.c] Simplification and better portability.
2018-06-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tget_set_d128.c] added coverage tests for non-canonical BID encodings
[src/set_d128.c] improve last commit
[src/set_d128.c] improved a comment
2018-06-22 Vincent Lefèvre <vincent@vinc17.net>
[src/set_d128.c] Re-added "while (...)" erroneously removed in r12817.
2018-06-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/set_d64.c] added comment
[src/set_d128.c] likewise
[src/set_d128.c] avoid variable conflict for DPD
[src/set_d128.c] implement for DFD encoding
[src/set_d64.c] added comment and space
2018-06-22 Vincent Lefèvre <vincent@vinc17.net>
[src/set_d128.c] Added a FIXME (stack-buffer-overflow).
[src/set_d128.c] Corrected r12811.
[src/set_d128.c] _MPFR_IEEE_FLOATS code for BID: correctly support
the decoded significand >= 10^34 cases (non-canonical encodings),
which must be zero.
[tests/{tget_set_d64.c,tget_set_d128.c}] TODO: Also test non-canonical
encodings.
[src/set_d128.c]
* Enable the _MPFR_IEEE_FLOATS code only for GMP_NUMB_BITS == 32 or 64
(as the other values are not supported by this code).
* Bug fix for GMP_NUMB_BITS == 32 (→ tget_set_d128 no longer fails).
* Added an assertion corresponding to a comment.
[src/set_d128.c] Fit on 80 columns.
2018-06-21 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Updated a title comment (→ Decimal support).
[src/mpfr-impl.h] Corrected a comment.
2018-06-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/set_d128.c] added comments
[src/set_d128.c] remove debug stuff
[src/mpfr-impl.h] assume little-endian double implies little-endian decimal128
2018-06-21 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] FIXME for _Decimal128.
2018-06-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/set_d128.c] (partly) implement the _MPFR_IEEE_FLOATS case (BID only so far)
[tests/tget_set_d128.c] added more tests
[src/set_d64.c] added comments
[src/get_d128.c] removed useless comment
2018-06-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/get_d128.c] avoid using doubles
[tests/tget_set_d128.c] improve test coverage
[tests/tget_set_d128.c] improve test coverage
[tests/tget_set_d128.c] improve coverage
added mpfr_get_decimal128 (still experimental)
[get_d64.c] added comments and simplified code
2018-06-20 Vincent Lefèvre <vincent@vinc17.net>
[tests/{tget_set_d64.c,tget_set_d128.c}] Tests on powers of 10:
test negative numbers too.
2018-06-19 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Added a note about FP constants and native FP.
[tools/mpfrlint] Check that preprocessing directives have no spaces
before.
[src/set_d128.c] Modified a comment.
[src/set_d128.c] Avoid double, which is unreliable with GCC
in non-standard mode (see GCC bug 323 and the discussion in
GCC bug 85957). But the failure in tget_set_d128 probably came from
the fact that (_Decimal128) 0.1 is not 1/10 exactly (the double 0.1
has about a 17-digit precision only, while _Decimal128 has more);
this test now passes.
[src/set_d128.c] Simplified code and added assertions.
[src/set_d64.c] Added a log message (like in set_d128.c).
[src/{set_d64.c,set_d128.c}] Bug fix: use mpfr_strtofr instead of
mpfr_set_str to get the ternary value.
[tests/{tget_set_d64.c,tget_set_d128.c}] Added tests on powers of 10.
* tget_set_d64 fails on negative due to a bad ternary value.
* tget_set_d128 fails on negative due to bad value, etc.
[tests/tget_set_d128.c] Test the flags too.
[tests/tget_set_d128.c] Test more values.
[tests/tget_set_d128.c] Converting an integer into _Decimal128 is better
than converting a double into _Decimal128.
[tests/tget_set_d128.c] Simplified the test, avoiding a bug in ICC 15
at the same time (1.0D was regarded as 0).
[tests/tget_set_d128.c] Fixed indentation.
[tests/tversion.c] Decimal formats: output the encoding type (DPD/BID).
[src/set_d128.c] Changed _GMP_IEEE_FLOATS to _MPFR_IEEE_FLOATS as per
r10958 (in set_d128.c, currently in a comment due to r12772).
[src/set_d128.c] Added a log message.
[tests/tget_set_d128.c] Added an informative error message.
[src/set_d128.c] Disable the _GMP_IEEE_FLOATS code, which is not
complete yet and makes the compilation fail.
2018-06-13 Vincent Lefèvre <vincent@vinc17.net>
[src/set_d128.c] Corrected year in copyright notice.
[src/set_d128.c] Minor improvements.
2018-06-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tget_set_d64.c] added -v option to get verbose output
[tests/tget_set_d128.c] likewise
2018-06-13 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Missing "r".
2018-06-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] update for mpfr_set_decimal128
added mpfr_set_decimal128 (work in progress, not yet fully tested)
2018-06-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tools/coverage] added branch coverage
2018-06-07 Vincent Lefèvre <vincent@vinc17.net>
[src/strtofr.c] Moved some computations on the exponents earlier
since they may yield an early overflow or underflow, and computing
the division by b^e would be useless in such a case.
[src/strtofr.c] Added a MPFR_ASSERTD and a FIXME on things that don't
make much sense in the error analysis (still trying to understand…).
2018-06-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/const_pi.c] missing reference about Brent-Salamin
[doc/algorithms.bib] added reference
2018-06-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tfmma.c] improve coverage of the UBF case in mpfr_sub
(now coverage of sub.c is 100%)
2018-06-05 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Updated TODO from r12755.
2018-06-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/fmma.c] now mpfr_fmms calls mpfr_sub for a better coverage
2018-06-04 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Updated TODO from r12755.
[src/sum.c] Added a comment with a TODO about potentially dead code on
some platforms.
codespell: simplified exceptions.
* Added codespell.exclude file.
* codespell.ignore: removed some words (particular cases).
* tools/mpfrlint: use the codespell.exclude exclude file, and for
the doc directory, replaced -S by an explicit list of files.
[codespell.ignore] Also ignore "objext" and "tim" (codespell 1.13).
2018-06-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1.c] fixed a bug and solved a FIXME (underflow for UBFs)
Note: this mostly reverts r12319, r12321, and the remaining FIXME
from r12327.
[tests/tfmma.c] added non-regression tests
2018-06-02 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Concerning r12738, the safer code can be avoided
with GCC in ISO C mode (__STRICT_ANSI__).
2018-06-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/invert_limb.h] fixed two typos reported by Marco Bodrato
2018-06-02 Vincent Lefèvre <vincent@vinc17.net>
[tests/tversion.c] For GCC, output __STRICT_ANSI__ when defined.
2018-06-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sqrt.c] fixed/improved comments
2018-05-31 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/invsqrt_limb.h] fixed typos in comments
2018-05-31 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Updated a URL.
[src/mpfr-impl.h] Fixed potential compilation failure with _Decimal64,
detected with r12738.
[doc/mpfr.texi] Updated the month.
Updated mpfr.org URL's to use https (except in ChangeLog and NEWS).
[src/mpfr-impl.h] With GCC, select safer code for DOUBLE_ISNAN(x).
2018-05-30 Vincent Lefèvre <vincent@vinc17.net>
[tools/announce-text] http → https (for mpfr.org).
[doc] Updated FAQ.html with update-faq.
[doc] Workaround due to the lack of https support in libxml2
and the fact that mpfr.org now uses https with HSTS.
* faq.xsl: for the visual.css, use a local URL.
* update-faq: download visual.css from mpfr.org first.
[doc/update-faq] http → https
[src/mpfr-impl.h] Added a FIXME about DOUBLE_ISNAN and GCC.
2018-05-28 Vincent Lefèvre <vincent@vinc17.net>
[src/strtofr.c] Continued to review the new error analysis and code.
Changes:
* made the code more SSA-like (avoid a "y += ysize; y -= ysize;");
* clarified comments;
* use MPFR_LIMB_MSB;
* added a FIXME on the error analysis.
[doc/README.dev] Added info about shell portability, and in particular
about quotes (covering changes in r5659, r6128, r12711 and r12721).
[tools/{ck-clz_tab,ck-copyright-notice,ck-mparam,update-version}] Fixed
non-portable quote nesting in backticks.
[examples] Added "mpfr_free_cache ();" at the end of all programs,
as this is something that should be done systematically (at least
to detect memory leaks with valgrind).
2018-05-25 Vincent Lefèvre <vincent@vinc17.net>
[src/strtofr.c] Started to review the new error analysis and code
(r12705,12706). Minor improvements.
[src/{mpfr-impl.h,mpn_exp.c}] Changed the return type of mpfr_mpn_exp
from long to int for consistency with the mpfr_mpn_exp code and with
strtofr.c (which expects an int).
[src/mpn_exp.c] Code cleanup and protection against integer overflow.
2018-05-24 Vincent Lefèvre <vincent@vinc17.net>
[src/hypot.c] Do bitwise operations in unsigned arithmetic.
[src/hypot.c] Added 2 TODO.
2018-05-23 Vincent Lefèvre <vincent@vinc17.net>
[tools/{ck-clz_tab,ck-copyright-notice}] Changed the POSIX $(…) to `…`
for Bourne shell compatibility (as under Solaris 10).
Note: these scripts are called via dist-hook for "make dist".
2018-05-22 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Added a comment for UBF.
[src/mpfr-impl.h] Added a comment about UBF and alignment requirements.
2018-05-17 Vincent Lefèvre <vincent@vinc17.net>
[tests/tstrtofr.c] Removed TODO added in r12681, now obsolete.
2018-05-16 Vincent Lefèvre <vincent@vinc17.net>
Removed trailing whitespace.
2018-05-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/strtofr.c] revisit error analysis in the division case (end)
2018-05-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/strtofr.c] revisit error analysis in the division case (work in progress,
not yet finished)
2018-05-09 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsub.c] Updated the comment added in r12701.
[tests/tsub.c] Added a comment about the bug fixed in r10697:
bug20180217 is a non-regression test for this bug.
2018-05-02 Vincent Lefèvre <vincent@vinc17.net>
[tests/tstckintc.c] Avoid false warnings with -Wcast-align=strict from
GCC 8.1 by adding casts "(long *) (void *)", still allowing checks of
other alignment requirements (which are not handled by the tstckintc.c
code).
[TODO] + Use GCC's nonnull and returns_nonnull attributes.
[acinclude.m4] Added a note on _Decimal64 detection.
2018-04-30 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Added info about spelling.
Corrected "runtime" to "run time" (noun) or "run-time" (adjective)
when it means the time at which the program is run.
See:
https://gcc.gnu.org/codingconventions.html#Spelling
https://en.wikipedia.org/wiki/Run_time
2018-04-27 Vincent Lefèvre <vincent@vinc17.net>
[src/strtofr.c] Potentially unnecessary code: comes from r8384.
[src/strtofr.c] Updated TODO about potentially unnecessary code.
[src/strtofr.c] Updated TODO about potentially unnecessary code,
showing that this code probably increases the error bound (errors
accumulate instead of compensating without this code).
[src/strtofr.c] Added a TODO about potentially unnecessary code.
[src/strtofr.c] Corrected/updated comments and added a log message.
[src/strtofr.c] Corrected a comment (exp_base and exp_bin description).
[src/strtofr.c] Added a FIXME: possible bug in very special cases with
large exponents, 32-bit mpfr_exp_t and very long strings.
[src/strtofr.c] Added/clarified comments.
[tests/tstrtofr.c] Added a TODO related to the bug fixed in r12573.
2018-04-26 Vincent Lefèvre <vincent@vinc17.net>
[tests/tgmpop.c] Coding style.
[tests/tgmpop.c] For mpfr_cmp_q, improved the test where x is NaN by
checking all the flags (not just erange) and added a test where y is
a NaN rational.
Note: this could be used to detect 2 bugs, fixed in r12343 and r12499,
respectively.
[tests/tcan_round.c] Removed a r2 != MPFR_RNDF test and added 3 TODO's
to support r2 == MPFR_RNDF in some other tests.
2018-04-24 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-gmp.h] Clarified a comment (the "if" is part of the code,
not the English word).
2018-04-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mpfr-gmp.h] added comment about MPN_FILL
2018-04-20 Vincent Lefèvre <vincent@vinc17.net>
[src/out_str.c] Check for integer overflow (here, a minor issue).
[src/out_str.c] Support mpfr_exp_t larger than long (with mpfr_eexp_t).
2018-04-19 Vincent Lefèvre <vincent@vinc17.net>
[tests] Added tdot to svn:ignore property.
[tests/tdot.c] Various improvements.
[doc/mpfr.texi] Note that mpfr_dot does not yet handle intermediate
underflows either.
[src/dot.c] Changed an MPFR_ASSERTD to MPFR_ASSERTN since the assertion
is not satisfied on some user inputs. Minor improvements.
[NEWS] Added mpfr_dot.
[doc/mpfr.texi] In the added functions, note that mpfr_dot is incomplete
and experimental.
[tests/tsum.c] Code style.
[doc/mpfr.texi] Updated the month.
[tests/tdot.c] Code style.
2018-04-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added mpfr_dot
2018-04-19 Vincent Lefèvre <vincent@vinc17.net>
[tests/tget_flt.c] Correction about the use of mpfr_signbit, in case
the implementation would change.
[src/sqr.c] Minor code improvement.
[src/sqr.c] Code formatting.
[src/sqr.c] Clarified a comment and slightly improved code.
[src/sqr.c] Typo in a comment.
[tests/tfma.c] Added test_underflow5.
[tests/tfma.c] Minor correction for test_underflow4.
[tests/tfma.c] Added a comment.
2018-04-18 Vincent Lefèvre <vincent@vinc17.net>
[tests/tfma.c] Added test_underflow4. This allows to show that the
bound MAX (MPFR_PREC (z), MPFR_PREC (s) + 1) in fma.c is optimal:
* If one subtract 1 from the 1st term MPFR_PREC (z), a failure
occurs in test_underflow4.
* If one subtract 1 from the 2nd term MPFR_PREC (s) + 1, a failure
occurs in test_underflow2.
[configure.ac] For the ICC check, also test __INTEL_COMPILER.
[configure.ac] Corrected comment for the ICC check (GCC is no longer
disabled since r5720).
2018-04-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mpfr.h] enable some code that now works with ICC (tested with ICC 14)
[TODO] removed item
2018-04-18 Vincent Lefèvre <vincent@vinc17.net>
[tests/tversion.c] Updated a comment about __ICC.
2018-04-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] removed item that we won't implement
[TODO] removed done item (UBF)
2018-04-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] RNDF is done
[TODO] removed an obsolete item
[TODO] log_ui is done
2018-04-17 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Detect the use of mpfr_div_2exp and mpfr_mul_2exp.
[tests/{reuse.c,taway.c}] Added mpfr_div_2ui and mpfr_mul_2ui.
Note: si functions are not tested yet.
Replaced mpfr_mul_2exp & mpfr_div_2exp by mpfr_mul_2ui & mpfr_div_2ui,
respectively (for the tests, except in reuse.c and in taway.c).
Note: As documented, mpfr_mul_2exp & mpfr_div_2exp are only kept for
compatibility with MPF; mpfr_mul_2ui & mpfr_div_2ui are preferred.
2018-04-16 Vincent Lefèvre <vincent@vinc17.net>
[TODO] + function to reduce the precision of a variable, with a
ternary value in input, i.e. taking care of double rounding.
[tests/tfma.c] More tests for test_underflow2.
[tests/tfma.c] Corrected r12603 for test_underflow2.
[tests/tfma.c] More tests for test_underflow2.
[src/fma.c] Updated easy case of underflow.
[tests/tfma.c] Updated a comment for test_underflow2.
[tests/tfma.c] In test_underflow2, also test different signs.
[tests] Updated svn:ignore property.
[doc/README.dev] "To make a release": check also with
-DMPFR_GROUP_STATIC_SIZE=0 to detect memory leaks.
[src/fma.c] Forgot a MPFR_GROUP_CLEAR.
[src/fma.c] Simplified the underflow case by using UBF in the
difficult cases, resolving the remaining FIXME's.
2018-04-13 Vincent Lefèvre <vincent@vinc17.net>
[tests/tfma.c] More tests for test_overflow3 by adding loops on j and k.
[tests/tfma.c] Extended test_overflow3 to reversed signs.
[tests/tfma.c] Do all the overflow/underflow tests in exponent ranges
[-1024,1024], [MPFR_EMIN_MIN,MPFR_EMAX_MAX], and the default one.
[src/mpfr-sassert.h] Added a comment.
2018-04-12 Vincent Lefèvre <vincent@vinc17.net>
[tests/tfma.c] Forgot a cast for C++ compatibility.
[src/mpfr-impl.h] Reverted r12588: there should be no alignment issues
with UBF, since an UBF (__mpfr_ubf_struct) is sometimes regarded as a
MPFR number (__mpfr_struct) but not the opposite (or this is just back
to __mpfr_ubf_struct).
[src/fma.c] Simplified the difficult part of the overflow case by
using UBF (this also fixes corner cases in huge precision).
[src/mpfr-impl.h] Added a note about alignment constraints for UBF.
[src/fma.c] Fixed sign related bug in overflow case.
[tests/tfma.c] Added test_overflow5 test for this bug.
[tests/tfma.c] In test_overflow4, also test different signs.
[src/fma.c] Correction for the FIXME from r12403 concerning r12396.
The test added in tests/tfma.c r12584 no longer fails.
[tests/tfma.c] Added a test that fails. It corresponds to the FIXME
in src/fma.c about the test on MPFR_GET_EXP (u) - MPFR_GET_EXP (z).
[src/fma.c] Removed a redundant test since the second condition of
the && expression implies the first one.
Note: This test came from the time when the precision type was unsigned,
in order to make sure that the result of the subtraction was positive.
2018-04-11 Vincent Lefèvre <vincent@vinc17.net>
[tests/tversion.c] Output "Generic ABI code" info (MPFR_GENERIC_ABI).
[src/strtofr.c] English usage in a comment.
2018-04-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/strtofr.c] fixed bug in corner cases
2018-04-10 Vincent Lefèvre <vincent@vinc17.net>
[src/strtofr.c] Reverted r12569: this is wrong with a 32-bit ABI.
[src/strtofr.c] Added a FIXME.
2018-04-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/strtofr.c] added more comments
[src/strtofr.c] replaced dead code by an assert
[tests/tstrtofr.c] fixed bug20170308 and added coverage test
2018-04-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/strtofr.c] removed dead code (and added explanation)
[src/strtofr.c] completed a comment
2018-04-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/strtofr.c] added comment
[tests/tstrtofr.c] improve coverage
2018-04-06 Vincent Lefèvre <vincent@vinc17.net>
[src/round_prec.c] Replaced an incorrect comment by an assertion.
[src/round_raw_generic.c] Check validity of flag.
2018-04-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[NEWS] now 98.2% of test coverage
2018-04-06 Vincent Lefèvre <vincent@vinc17.net>
[tests/Makefile.am] Tests in lexicographic order.
2018-04-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/round_prec.c] added comments
[src/round_raw_generic.c] removed dead code
[tests/tcan_round.c] improve coverage
renamed tround_prec.c to tprec_round.c
[src/round_prec.c] removed some dead code (if rnd1 = rnd2 and the case
rnd2 = RNDN was already treated, we cannot have rnd1 = RNDN)
2018-04-06 Vincent Lefèvre <vincent@vinc17.net>
[tests/tpow.c] Fixed a test:
* For this test, unsigned long and mpfr_exp_t must both have at least
64 bits.
* Use a hardcoded emax, otherwise the test could fail for mpfr_exp_t
larger than 64 bits (one would not have an overflow as expected).
[src/pow.c] Fixed the code in case the size of the mpfr_exp_t type
would be larger than 256 bits. This is also semantically better.
Moved the MAX, MIN and ABS macros from tests/mpfr-test.h to
src/mpfr-impl.h (they can be useful...).
[tests/tpow.c] More tests for (-2)^(2^i + 1), not just with i = 256.
2018-04-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tpow.c] modified a test for better coverage
2018-04-06 Vincent Lefèvre <vincent@vinc17.net>
[tests/tpow.c] Corrected a comment (again).
[tests/tpow.c] Corrected a comment.
2018-04-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/pow.c] simplified case x=2^b and y < 0
2018-04-05 Vincent Lefèvre <vincent@vinc17.net>
[src/pow.c] Updated comments.
[src/pow.c] Reverted r12541 (which yielded a failure in tpow_all),
re-indented, and added a comment concerning the failing case.
2018-04-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/round_prec.c] fixed a bug (to be reviewed)
[tests/tcan_round.c] added coverage tests
[tests/ttan.c] improve coverage (and also of round_near_x)
[src/pow.c] fixed typo
2018-04-04 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Coverage is specific to x86_64 due to the various #if.
[src/pow.c] Corrected indentation.
2018-04-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[NEWS] coverage is now 98.1%
[src/pow.c] added a comment
[src/pow.c] removed some dead code (with comment explaining why)
[tests/tpow.c] added a test
[src/pow.c] simplify code for prec=1
[tests/tpow.c] added tests for prec=1
2018-04-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mparam_h.in] added macros for Microsoft compiler
2018-04-03 Vincent Lefèvre <vincent@vinc17.net>
[tools/check_mparam.c] Added a copyright notice.
[Makefile.am] Added tools/check_mparam.c and tools/ck-mparam
to EXTRA_DIST since tools/ck-mparam is now run in dist-hook.
[tests/Makefile.am] Do not output a useless "PASS ..." line at the end.
[tests/Makefile.am] Update of the "check" rule:
* Output svnversion info when applicable.
* Do not echo "cat tversion.log 2> /dev/null || true".
[Makefile.am] Added missing comments for dist-hook.
[Makefile.am] Run ck-mparam in dist-hook (for "make dist").
[tools/ck-mparam] Commented out the old gcc-specific test since the
new one is strictly more powerful. No longer depend on gcc.
[tools/ck-mparam] Also check the mparam.h files with check_mparam.c.
[tools/check_mparam.c] C89 compatibility. Return an error code
(useful for scripts).
[tools/check_mparam.c] A pathname of the mparam.h file can now be
provided with -DMPARAM='"..."' when compiling.
2018-04-03 Vincent Lefèvre <vincent@vinc17.net>
Moved misc/check_mparam.c into trunk/tools: it will be useful for
"make dist" in order to make sure that all mparam.h files are OK
before a release.
[[Split portion of a mixed commit.]]
[Added during the Subversion to Git conversion]
The "misc" directory referenced here was in the same Subversion
repository, but outside the trunk/branches/tags structure. Thus
it has not been kept in the same Git repository.
2018-04-03 Vincent Lefèvre <vincent@vinc17.net>
[src/mulders.c] Re-enable the change done in r12382. This is allowed
after the fix in generic/mparam.h r12525 (this file was hand written
and did not satisfy the current constraints).
2018-04-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[generic/mparam.h] ensure divhigh_ktab[n] is 0 or < n-1, as now required
since commit r12382
2018-04-02 Vincent Lefèvre <vincent@vinc17.net>
[src/mulders.c] Code style / indentation. Added a comment.
[src/mulders.c] Reverting r12382 because divhigh_ktab[n] == n can
happen. Note: this probably lacks documentation; moreover, testing
that these tables satisfy the requirements would be useful.
2018-03-31 Vincent Lefèvre <vincent@vinc17.net>
[src/inp_str.c] Handle size_t overflow, empty string (after skipping
spaces), and I/O errors (as opposed to end-of-file).
2018-03-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/inp_str.c] disallow stream=NULL (cf r12520)
[src/out_str.c] the behavior on a null stream is unspecified (cf r12519)
2018-03-30 Vincent Lefèvre <vincent@vinc17.net>
Reverted r12516: the behavior on a null stream is unspecified.
2018-03-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tpow.c] restrict a test to 64-bit exponent
2018-03-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/pow.c] added comment
[tests/tpow.c] improve coverage
[tests/tout_str.c] improve coverage (I don't know how to avoid printing to
stdout, but since "make check" no longer shows the test
outputs, this should be fine). However I don't know how
to do the same for mpfr_inp_str...
[tests/tconst_pi.c] forgotten line in commit 12512
[tests/tgrandom.c] improve coverage
[src/grandom.c] improve coverage, and solved a FIXME
[tests/tconst_pi.c] improve coverage of mpfr_free_cache2
2018-03-29 Vincent Lefèvre <vincent@vinc17.net>
[src/fpif.c] Reverted another incorrect change done in r12509.
[src/fpif.c] Reverted an incorrect change done in r12509.
2018-03-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/fpif.c] simplify code and improve coverage to 100%
[src/fpif.c] removed dead code and simplify code
[tests/tfpif.c] improve coverage
[tests/tfpif.c] improve coverage
2018-03-29 Vincent Lefèvre <vincent@vinc17.net>
[tests/tfpif.c] Really fixed the badData test, completing r12504.
[tests/tfpif.c] Fixed a test: for the huge-precision badData case,
make sure that the data are valid so that we really check that the
precision does not fit (and not a read error).
[tests/tfpif.c] Correction just in case MPFR_PREC_BITS > 64.
Removed trailing whitespace.
2018-03-28 Vincent Lefèvre <vincent@vinc17.net>
[src/fpif.c]
* Replaced an incorrect comment from r12500 by a correct assertion.
* Fixed a theoretical bug coming from this incorrect comment.
* Added a MPFR_ASSERTN assertion to double-check correctness.
* Added a comment explaining a ... >= 0x80 test.
2018-03-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/fpif.c] removed dead code
[tests/tfpif.c] improve coverage
[src/gmp_op.c] fixed bug in mpfr_cmp_q for den(q)=0
[tests/tgmpop.c] improve coverage
2018-03-24 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Typographic correction (texinfo rule).
[tools/mpfrlint] For codespell, skip mpfr.t2p (directory created
in doc by "make pdf").
[src/total_order.c] Simplified the code (shorter code).
[tests/ttotal_order.c] Rewrote the tests to test every combination
of classes of values.
[tests] Renamed total_order.c to ttotal_order.c.
2018-03-23 Vincent Lefèvre <vincent@vinc17.net>
[src/total_order.c] Suggest to test the sign bit first.
[doc/mpfr.texi] Added mpfr_total_order in "Added Functions".
[doc/mpfr.texi] Improved mpfr_total_order description.
2018-03-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] totalOrder is done
added mpfr_total_order
2018-03-23 Vincent Lefèvre <vincent@vinc17.net>
[tests] Removed some useless #include's, in particular all the
unconditional #include <math.h> occurrences.
Note: There is an incompatibility between glibc 2.27 and the math.h
provided by ICC 15 (at least), and this solves a compilation failure
in the build of the tests.
Moreover, <math.h> is not required by freestanding implementations,
so that it may be better to avoid it if possible.
2018-03-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added 2 suggestions from Patrick Pelissier
2018-03-20 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] For codespell, skip all the algorithms.* files.
2018-03-15 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Added a comment for the mul/sqr test.
[tools/mpfrlint] In the mul/sqr test (r12482), exclude mul.c and sqr.c.
2018-03-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed mpfr_mul (a, b, b, ...) into mpfr_sqr (a, b, ...) whenever possible
2018-03-14 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Detect mpfr_mul with identical 2nd and 3rd arguments,
which can be replaced by mpfr_sqr (suggestion by PZ).
2018-03-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/const_pi.c] added a reference, and replace mpfr_mul by mpfr_sqr
2018-03-10 Vincent Lefèvre <vincent@vinc17.net>
[tests/tget_str.c] Fixed failure from r12473 when mpfr_prec_t is an int
(missing casts for sprintf / printf).
2018-03-09 Vincent Lefèvre <vincent@vinc17.net>
[tests/tget_str.c] C++ compatibility.
[tests/tget_str.c] Use tests_allocate / tests_free.
Fixed spelling mistakes found by codespell 1.12.0.
2018-03-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tget_str.c] added tests for corner cases of mpfr_set_str o mpfr_get_str
2018-03-08 Vincent Lefèvre <vincent@vinc17.net>
[src/Makefile.am] In EXTRA_DIST, put the mparam.h in alphabetic order.
[src/Makefile.am] Updated EXTRA_DIST for amd due to r12387.
Fixed spelling mistakes found by codespell 1.11.0.
[codespell.ignore] Also ignore "cas".
Added codespell.ignore file with simple words to ignore with codespell
("iff" as used in math; "nd" as the n comes from \n in printf, but nd
could also be a variable name; "te" as used as a variable name).
Updated tools/mpfrlint to use this file with codespell.
2018-03-05 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
2018-03-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tget_str.c] added tests for mpfr_get_str_ndigits
[src/get_str.c] fixed bugs in mpfr_get_str_ndigits for b=2^k (value was 1 too
large) and very large p (value was 1 too small)
2018-03-05 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Typographic corrections for mpfr_subnormalize.
[NEWS] Added mpfr_get_str_ndigits.
[doc/mpfr.texi] Added mpfr_get_str_ndigits in "Added Functions".
[doc/mpfr.texi] Minor corrections concerning mpfr_get_str.
[src/mpfr.h] Added a note about a mpfr_prec_t limitation.
[src/get_str.c] Simplified mpfr_get_str_ndigits (changes from r12455):
* MPFR_PREC_BITS is used to exactly do what is wanted.
* Removed dead code as currently, mpfr_prec_t <= unsigned long.
Note: if in the future we support mpfr_prec_t > unsigned long
(e.g. to have a 64-bit precision on MS Windows), the generic code
could be retrieved back from r12455.
2018-03-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/get_str.c,src/mpfr.h] mpfr_get_str_digits -> mpfr_get_str_ndigits
[doc/mpfr.texi] updated documentation of mpfr_get_str
[src/get_str.c] fixed FIXME
2018-03-05 Vincent Lefèvre <vincent@vinc17.net>
[src/get_str.c] Portability corrections in mpfr_get_str_digits.
2018-03-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/get_str.c] new function mpfr_get_str_digits
[doc/mpfr.texi] added documentation for mpfr_get_str_digits
2018-03-03 Vincent Lefèvre <vincent@vinc17.net>
[tests/tfma.c] Fixed bug from r12407 with 32-bit long and 64-bit limbs
(e.g. as under 64-bit MS Windows).
2018-02-26 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] Correction for test of the fallback to __float128:
in the test program, define the variable outside main() in order to
avoid an error when the -Werror=unused-variable GCC option is used.
[src/get_sj.c] Avoid an unused variable.
[doc/README.dev] Updated description of MPFR_WANT_FLOAT128.
[doc/README.dev] Recommend AC_LINK_IFELSE rather than AC_COMPILE_IFELSE
(see r12448 as an example of an issue with AC_COMPILE_IFELSE).
[acinclude.m4] Fixed a test, which could define MPFR_INTMAX_WITHIN_LIMB
even when not true (MPFR_STAT_STATIC_ASSERT() was just regarded as a
function call since the macro was not defined, thus did not yield an
error).
[tests/tversion.c] Output the sizes of long and intmax_t.
[acinclude.m4] Fixed incorrect test from r12426.
Removed trailing spaces.
Updated support for binary128:
* __float128 was changed to _Float128 (ISO/IEC TS 18661) in r12391;
also changed the suffix of the constants from "q" to "f128".
* Use __float128 with the "q" suffix as a fallback in order to avoid
regressions with GCC 6- and with C++ mode (g++).
As documented in the GCC manual, this is entirely compatible on most
platforms where both are supported: _Float128 and __float128 are the
same type, and it could be checked that the following prototypes are
equivalent (as expected):
_Float128 f (__float128)
__float128 f (_Float128)
The only potential issues would be on hppa and IA-64 HP-UX, where
__float128 is an alias for "long double" instead of _Float128, in
case the ABI would be different (I have no information about this)
and both would be mixed up with software using the MPFR conversion
functions for binary128 via __float128 or "long double". The worst
thing that could happen is a link error. If the link is accepted,
everything should be fine as the representation doesn't change.
[src/set_float128.c] Removed a useless #include and corrected a comment.
2018-02-25 Vincent Lefèvre <vincent@vinc17.net>
[src/get_z_exp.c] Portability.
[tests/tdiv_ui.c] Avoid a compilation error with
gcc -std=c90 -pedantic -Werror in 32-bit ABI.
[tests/tget_str.c] Fixed a return type.
2018-02-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/get_z_exp.c] new try for r12437. If that still does not work, we should
define macros BITS_PER_EXP_T, BITS_PER_PREC_T, ...
2018-02-23 Vincent Lefèvre <vincent@vinc17.net>
[src/get_z_exp.c] Reverted r12437: the size of mpfr_exp_t is not
always related to the size of mp_limb_t.
2018-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/get_z_exp.c] removed dead code on 64-bit computer
[src/get_str.c] improved case m < g
[tests/tget_str.c] improve coverage
2018-02-23 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] Correction: for AC_COMPILE_IFELSE, there are only
2 cases: TRUE and FALSE.
2018-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tget_str.c] fixed not enough allocation issue
2018-02-23 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] Correction: for AC_COMPILE_IFELSE, there are only
2 cases: TRUE and FALSE.
2018-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[doc/mpfr.texi] m=1 is now valid in get_str
[src/get_str.c] allow m=1 for b=2^k
[tests/tget_str.c] added test for m=1 and b=2
[src/get_str.c] added a comment
[tests/tget_str.c] improved coverage (finding this example was quite hard!)
2018-02-23 Vincent Lefèvre <vincent@vinc17.net>
[src/get_sj.c] Removed two assertions, including an incorrect one.
Added an assertion.
[acinclude.m4] Correction: if we cannot test, the portable code must be
selected.
2018-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[configure.ac,acinclude.m4] added new macro MPFR_INTMAX_WITHIN_LIMB
[src/get_sj.c] optimized the code when MPFR_INTMAX_WITHIN_LIMB=1
2018-02-23 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Removed MPFR_LIMBS_PER_LONG_DOUBLE as it was not
properly specified in the general case and was actually used only
in src/set_ld.c with HAVE_LDOUBLE_IEEE_EXT_LITTLE.
[src/set_ld.c] Simplified code. Moreover, the hypothetical case
GMP_NUMB_BITS == 16 will trigger a compilation error instead of
yielding incorrect code.
[tests/tbuildopt.c]
* Added missing const.
* Use the variable s to avoid a warning and also to detect potential
undefined behavior with debugging tools if s is not a string.
2018-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/get_sj.c] fixed typo
[src/get_sj.c] added comments and simplified the code
2018-02-23 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Typo in a comment.
2018-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tget_q.c] improved coverage
2018-02-23 Vincent Lefèvre <vincent@vinc17.net>
[src/get_d64.c] Parsing in the portable version of string_to_Decimal64:
similar changes as in r12416 for the _MPFR_IEEE_FLOATS version.
2018-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/get_ld.c] removed dead code (as in r12413 for mpfr_get_d)
[src/get_flt.c] optimized code when MPFR_LIMBS_PER_FLT=1
[tests/tget_flt.c] improved coverage
[src/get_d64.c] simplified code, and removed dead code
[src/mpfr-impl.h] added comment
[tests/tget_set_d64.c] improve coverage
2018-02-23 Vincent Lefèvre <vincent@vinc17.net>
[src/set_q.c] Simplified code.
2018-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/get_d.c] removed dead code
[src/get_d.c] optimized for common case MPFR_LIMBS_PER_DOUBLE=1
[tests/tset_z_exp.c] improved coverage
[src/set_q.c] removed dead code on 64-bit processor
[src/set_ld.c] improve code when HAVE_LDOUBLE_IEEE_EXT_LITTLE is defined
2018-02-22 Vincent Lefèvre <vincent@vinc17.net>
[src/set_ld.c] Reverted r12408: MPFR_LIMBS_PER_LONG_DOUBLE cannot be
used with the preprocessor due to the use of "sizeof".
2018-02-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/set_ld.c] improve code for MPFR_LIMBS_PER_LONG_DOUBLE=1
[tests/tfma.c] improved coverage of mpfr_set_1_2
[tests/tbuildopt.c] improve coverage
2018-02-22 Vincent Lefèvre <vincent@vinc17.net>
[tests/tfma.c] Corrected a comment.
[tests/tfma.c] Joined test_overflow3 and test_overflow4 by using a loop.
Improved the corresponding test and error message. Also run this test
with the default exponent range.
[src/fma.c] Added FIXME for r12396, which still seems incorrect.
[src/mpfr-impl.h] Typo in a comment.
[NEWS] Update about the change of __float128 to _Float128: clarification
that it is from ISO/IEC TS 18661 ("standard" was too vague); added FIXME
on a possible fallback to __float128 and ABI considerations.
[configure.ac] For --enable-float128, this is still autodetect, e.g.:
checking if compiler knows _Float128 with C99 constants... no
Added a FIXME: a fallback to __float128 is necessary to avoid
regressions.
2018-02-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sqr.c] added comments
[tests/tsqr.c] improve coverage of sqr.c to 100%
[src/sqr.c] fixed a bug in mpfr_sqr_1n in a rare case near underflow,
only use mpfr_sqr_1, mpfr_sqr_1n, mpfr_sqr_2, mpfr_sqr_3
when all numbers have same precision (like for mpfr_mul),
and added comments
[tests/tsqr.c] added tests, including non-regression for above bug
[src/fma.c] added comments and a FIXME
[src/fma.c] fixed last failure
[tests/tfma.c] removed debug stuff
[tests/tfma.c] added new failing test
[src/fma.c] fix failure from last test
[src/fma.c] added comments
[tests/tfma.c] added a test (currently failing)
[mips/mparam.h] updated
changed __float128 (gcc specific) into the standard type _Float128
[arm/mparam.h] updated
[x86/mparam.h] updated
[src/mparam_h.in] amd/k8/mparam.h -> amd/mparam.h
[amd/mparam.h] updated
[sparc64/mparam.h] updated
[x86_64/core2/mparam.h] updated
[powerpc64/mparam.h] updated
[x86_64/mparam.h] updated
[src/mulders.c] removed dead code
2018-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tune/tuneup.c] ensure k < n in mpfr_divhigh_n[]
[src/mparam_h.in] added __tune_znver1__ for AMD64 (e.g., gcc67.fsffrance.org)
[src/mips/mparam.h] updated on gcc22
[NEWS] added item
removed tuning for x86/core2, updated tuning for generic x86
[src/sparc64/mparam.h] updated tuning parameters for sparc64
2018-02-21 Vincent Lefèvre <vincent@vinc17.net>
[src/mparam_h.in] Use the generic parameters for x86_64 with Clang.
2018-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added tuning for ARM
2018-02-21 Vincent Lefèvre <vincent@vinc17.net>
Reverted r12368: sparc64 tuning should be updated on gcc202.
2018-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mparam_h.in] generic case for all remaining i386's
[src/mparam_h.in] put back __tune_k8__
[src/mparam_h.in] check __amd64__ before generic __x86_64__
removed tuning for hppa (gcc61 is offline)
removed tuning parameters for sparc64 (gcc64, gcc200 and gcc201 are offline)
[tune/tuneup.c] for mpfr_div_threshold, start from 3 limbs again
removed tuning for powerpc32 (no such machine available any more)
[src/powerpc64/mparam.h] updated tuning parameters for powerpc64
[src/amd/k8/mparam.h] fixed MPFR_DIV_THRESHOLD
updated tuning parameters for amd/k8 and x86/core2
2018-02-21 Vincent Lefèvre <vincent@vinc17.net>
Reverted r12359 and added a comment: tuning for x86 is used when
building GMP/MPFR with a 32-bit ABI (ABI=32 / -m32).
2018-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tuneup.c] start from 4 limbs for mpfr_div_threshold
removed tuning for ia64 (gcc60.fsffrance.org is now offline)
removed tuning for x86 (no more access to such machine)
[tune/tuneup.c] make tune_simple_func more robust for small precisions
[src/x86_64/mparam.h] fixed MPFR_DIV_THRESHOLD
[x86_64/core2/mparam.h] updated on gcc14
2018-02-21 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] In the "long double" format recognition, added
size information for IEEE extended (not used by MPFR, but this
may be useful information for the user).
2018-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed tuning parameters for amd/athlon (we have no access to such machine
any more)
removed tuning for pentium4
removed tuning for corei5 (was not used)
[src/x86_64/mparam.h] added tuning for generic x86_64
[tune/tuneup.c] mpfr_divhigh now wants n >= 2
removed thresholds for arm since gcc57 is no longer available, thus we cannot
tune on an ARM machine
2018-02-21 Vincent Lefèvre <vincent@vinc17.net>
[src/mulders.c] Removed unused variable dinv.
2018-02-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/div.c] added comment
[src/mpfr-gmp.h] moved definition of MUL_FFT_THRESHOLD
[src/mulders.c] removed unused code, and force n>=2 in mpfr_divhigh_n_basecase
[tests/tmul.c] improve coverage
[tune/tuneup.c] forbid k = n-1 in divhigh_ktab[]
[tests/tdiv.c] improve coverage, now 100% for div.c
[src/ai.c] revert part of r12312
[tests/tai.c] added coverage test provided by Sylvain Chevillard
[src/sub1.c] revert r12317 since it did not consider UBFs. For the record,
tfmma was failing with GMP_CHECK_RANDOMIZE=1519138438006416.
[src/div.c] get rid of mpfr_div_with_mpz_tdiv_q
2018-02-20 Vincent Lefèvre <vincent@vinc17.net>
[src/gmp_op.c] Fixed a bug in mpfr_cmp_q on NaN rational: the NaN flag
was set by mpfr_set_q, but the flags were not restored just after.
[src/gmp_op.c] Reverted incorrect change in r12337 for mpfr_cmp_q.
Explanation in comment. If the code was not tested, it should be by
using mpq_set_num and mpq_set_den to construct such rationals.
2018-02-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tdiv.c] improve coverage
[tests/tdiv.c] improve coverage of mpfr_div_2
2018-02-20 Vincent Lefèvre <vincent@vinc17.net>
[src/{add,sub}1sp.c] Updated/added comments for MPFR_WANT_ASSERT >= 2.
2018-02-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/div.c] removed dead code
[src/gmp_op.c] removed dead code
[tests/tgmpop.c] improve coverage of gmp_op.c to 100%
2018-02-20 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] Added missing ";;" before "esac" for code robustness.
[acinclude.m4] Added a FIXME. Added a ";;" for safety.
2018-02-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[acinclude.m4] added comment, and define MPFR_LONG_WITHIN_LIMB when cannot test
2018-02-20 Vincent Lefèvre <vincent@vinc17.net>
[src/random_deviate.c] Improved highest_bit_idx in the case where
MPFR_LONG_WITHIN_LIMB is not defined (tested with GCC).
2018-02-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mul.c] resolved FIXME and removed dead code
[tests/tmul.c] improve coverage
[src/random_deviate.c] highest_bit_idx() assumes x > 0
[src/random_deviate.c] fixed comment
[src/random_deviate.c] redo change r12315 using MPFR_LONG_WITHIN_LIMB
[src/sub1.c] added 2 FIXME
2018-02-19 Vincent Lefèvre <vincent@vinc17.net>
[tests/tai.c] Renamed test_near_zero to test_near_m2e, since this is
"exercise mpfr_ai near m*2^e", as documented. Corrected comments.
[tests/tai.c] For test_near_zero(), check that the NaN flag was not set
(useful since such tests don't really check that the result is not NaN).
2018-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tmul.c] improve coverage
[tests/tmul.c] improve coverage
2018-02-19 Vincent Lefèvre <vincent@vinc17.net>
[src/random_deviate.c] Reverted incorrect change r12315: MPFR_LIMB_MAX
cannot be used with the preprocessor due to the cast. The test should
be done in "pure" C and the middle-end of the compiler should optimize.
[src/sub1.c] Removed an unused label.
[tests/tzeta.c] Check that the NaN flag was not set in some tests
that do not involve NaN (useful since such tests don't really check
that the result is not NaN).
2018-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1.c] removed dead code, now coverage should be 100%
2018-02-19 Vincent Lefèvre <vincent@vinc17.net>
[src/ai.c] Avoid more integer overflows.
2018-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1.c] removed dead code
[tests/tsub.c] added coverage test
2018-02-19 Vincent Lefèvre <vincent@vinc17.net>
[src/ai.c] Detect some potential integer overflows.
2018-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/random_deviate.c] don't compile alternate code if not needed
2018-02-19 Vincent Lefèvre <vincent@vinc17.net>
[src/ai.c] Coding style. Corrected comments.
2018-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tzeta.c] improve coverage (and also uceil_exp2.c)
[src/ai.c] removed dead code, and improved coverage
[tests/tai.c] exercise mpfr_ai near (negative) zeroes
[src/ai.c] fixed recomputation of wprec (to be confirmed)
[src/ai.c] removed dead code
2018-02-19 Vincent Lefèvre <vincent@vinc17.net>
[src/sub1sp.c] Fixed indentation.
Removed trailing whitespace.
[src/sqrt.c] Coding style.
[src/expm1.c] Avoid a potential integer overflow in a type conversion
for 32-bit mpfr_exp_t and 64-bit long (e.g. with -D_MPFR_PREC_FORMAT=2
on a 64-bit Linux machine).
[src/div_2ui.c] Reverted incorrect change in r12272 and added comments
and assertions.
[tests/tmul_2exp.c] Improved a test to trigger the bug in r12272 also
when mpfr_exp_t > 32 bits (e.g. on 64-bit Linux machines).
[tests/tmul_2exp.c] Improved output if mpfr_exp_t > long (for positive).
[tests/tmul_2exp.c] Improved output if mpfr_exp_t > long (for negative).
[tests] Fixed type errors with -D_MPFR_PREC_FORMAT=2 in CFLAGS and the
--enable-assert=full configure option (signaled by GCC's -Wformat).
[src/mul.c] Fixed type error with -D_MPFR_PREC_FORMAT=2 in CFLAGS and
the --enable-assert=full configure option (signaled by GCC's -Wformat).
[doc/README.dev] Removed the mention of MPFR_EXT_EMIN and MPFR_EXT_EMAX,
replacing them by MPFR_EMIN_MIN and MPFR_EMAX_MAX, as done in r12298.
Note: These old macros had been introduced in r7863 so that one could
choose different values for the extended exponent range for debugging
purpose, but they were not used in practice and were adding complexity
(and potential inconsistency) for no really good reason.
2018-02-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/agm.c] added comment about line of code impossible to cover
[src/agm.c,src/div.c,src/mpfr-impl.h] replaced MPFR_EXT_EMIN by MPFR_EMIN_MIN,
and MPFR_EXT_EMAX by MPFR_EMAX_MAX
[src/sqrt.c] removed dead code
[tests/tsqrt.c] improve coverage of mpfr_sqrt, now at 100%
[tests/tsqrt.c] improve coverage
[tests/tsqrt.c] improve coverage
2018-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sqrt.c] removed dead code
[tests/tsqrt.c] improve coverage
[tests/tsqrt.c] improved coverage
[src/sqrt.c] added comments
2018-02-17 Vincent Lefèvre <vincent@vinc17.net>
[src/expm1.c] Added a FIXME comment.
2018-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tsqrt.c] improve coverage
[src/sqrt.c] removed dead code
2018-02-17 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsub.c] Improved a comment.
[tests/tsub.c] Check reuse of arguments for all mpfr_sub tests, when
possible.
2018-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp.c] fixed bug in mpfr_sub1sp1n (corner case when a=c)
[tests/tsub1sp.c] added non-regression test
[src/sub1sp.c] fixed case 2e
2018-02-17 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsub.c] Updated bug20180217 to trigger the bug: one needs to
reuse the smallest input variable as the output variable.
[tests/tsub.c] Added a test.
[src/expm1.c] Updated a comment.
[src/expm1.c] Fixed an integer overflow from r12276.
[src/expm1.c] Added a log message.
2018-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tfmma.c] added coverage test
[tests/tfmma.c] improve coverage of add.c (ubf case)
2018-02-16 Vincent Lefèvre <vincent@vinc17.net>
[src/expm1.c] It seems that code removed in r12273 wasn't necessarily
dead code with mpfr_exp_t > long (-D_MPFR_EXP_FORMAT=4 needed) because
for MPFR_SMALL_INPUT_AFTER_SAVE_EXPO, err would be limited to -LONG_MAX
and precisions larger than LONG_MAX could be problems. The -LONG_MAX
bound from r4127 was arbitrary and only used to simplify the code due
to the fact that mpfr_cmp_si compares to a "long" argument. But now we
have the internal mpfr_get_exp_t function, allowing us to avoid this
arbitrary bound (fixing the code and making it more efficient for these
extreme cases) and simplify the code even more.
2018-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mbench] added new option to usage
[mbench] added option -d to fix the exponent difference between operands
(useful for mpfr_add and mpfr_sub, for example use -d0 for operands
with same exponent, -d1 for operands differing by 1, ...)
[src/expm1.c] improve coverage (by removing dead code)
2018-02-16 Vincent Lefèvre <vincent@vinc17.net>
[src/div_2ui.c] No need for mpfr_uexp_t, due to the constraints on
the valid exponents.
[doc/README.dev] Update about mpfr_exp_t.
[src/mul_2ui.c] Simplified mpfr_mul_2ui (like mpfr_div_2ui).
[src/div_2ui.c] Simplified justification.
[src/div_2ui.c] Simplified code as suggested by PZ; added justification.
2018-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
GNU style: https://www.gnu.org/prep/standards/standards.html#Formatting
[src/div_2ui.c] added comment
[tests/tmul_2exp.c] added coverage test
2018-02-16 Vincent Lefèvre <vincent@vinc17.net>
[src/div_2ui.c] Replaced FIXME by an explanation.
2018-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/div_2ui.c] added FIXME
[src/cmp_ld.c] simplified code (and avoid useless test when long double is not
double-double)
[tests/tsub1sp.c] improve coverage
[tests/tadd1sp.c] improve coverage of add1sp
[src/sub1sp.c] fixed bug20180216
[tests/tadd1sp.c] added coverage test
2018-02-16 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsub.c] More tests in bug20180216.
[tests/tsub.c] Added bug20180216 test currently failing (corresponding
to the failure mentioned in r12253, r12254 and r12255, but reproducible
with a simple "./configure").
[src/exp_2.c] Note that the internal behavior depends on whether
MPFR_LONG_WITHIN_LIMB is defined or not (see also r12253). This
should not matter, possibly except in case of bug, like currently.
[acinclude.m4] Updated FIXME for MPFR_CHECK_MP_LIMB_T_VS_LONG.
[acinclude.m4] Added a FIXME for MPFR_CHECK_MP_LIMB_T_VS_LONG.
[src/sub1sp.c] Squeezed useless double-space.
2018-02-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp.c] fixed bug20180215()
2018-02-15 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsub.c] Updated comment for bug20180215.
[src/sub1sp.c] Use "else" for symmetry with above code.
[tests/tsub.c] Added a comment for bug20180215 (bug in the case
2 <= d < p in generic code mpfr_sub1sp() introduced in r12242).
[tests/tsub.c] Added bug20180215 test currently failing, found from a
failure using -DMPFR_GENERIC_ABI in CFLAGS and the --enable-assert=full
configure option; but the test had to be extended so that it also fails
with a simple "configure", i.e. without -DMPFR_GENERIC_ABI in CFLAGS
and without the --enable-assert=full configure option.
Removed trailing whitespace.
2018-02-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp.c] review of case 2 <= d < p in generic code mpfr_sub1sp()
[src/div_ui.c] GNU style
[src/sub1sp.c] reviewed the code for d>=p in mpfr_sub1sp()
2018-02-14 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Much improved the check of the use of GMP internals.
2018-02-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp.c] fixed a FIXME
[src/mpfr-gmp.h] define prototype of __gmpn_rsblsh1_n
[src/sub1sp.c] changed names of variables to something more readable
[configure.ac] detect mpn_rsblsh1_n instead of mpn_rsblsh_n
[src/sub1sp.c] use mpn_rsblsh1_n instead of mpn_rsblsh_n with k=1
2018-02-14 Vincent Lefèvre <vincent@vinc17.net>
[src/sub1sp.c] Added 2 FIXME's.
[src/sub1sp.c] In mpfr_sub1sp, initialize k only once. This slightly
simplifies the code and avoids a -Wmaybe-uninitialized warning from
GCC. The only failure on a 64-bit Linux machine is tsub1sp, due to
an assertion failure in mpfr_sub1sp, as before this change.
[src/sub1sp.c] Avoid the swapping of the exponents when they are equal.
2018-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp.c] review of case d=1 in generic code
[src/add1sp.c] no need of MPFR_TMP_MARK any more
[src/sub1sp.c] end of review of case d=0 in generic code
[src/sub1sp.c] work in progress
2018-02-13 Vincent Lefèvre <vincent@vinc17.net>
[src/add1sp.c] Moved a MPFR_ASSERTD to the right place.
2018-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp.c] re-enable __gmpn_rsblsh_n (with WANT_GMP_INTERNALS)
[src/sub1sp.c] small improvement
[tools/cfarm.sh] updated for 4.0.1-rc2
[src/add1sp.c] mp_ptr -> mp_limb_t*
[src/add1sp.c] get rid of MPN_COPY/MPN_ZERO in generic code
2018-02-13 Vincent Lefèvre <vincent@vinc17.net>
[src/add1sp.c] Improved comments and other minor changes.
[src/add1sp.c] In the generic code of mpfr_add1sp, fixed the computation
of the round and sticky bits from r12220. At the same time, improved the
handling of MPFR_RNDF in this part of the code:
* The "while" loop to compute the sticky bit is no longer done in this
case (the sticky bit does not matter).
* The "goto" is avoided.
[tests/tadd.c] Added 2 tests that fail starting with r12220.
2018-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/add1sp.c] cleanup generic code mpfr_add1sp()
2018-02-09 Vincent Lefèvre <vincent@vinc17.net>
[src/fma.c] Added a FIXME comment about overflow/underflow issues in
corner cases (already caught with MPFR_ASSERTN), fixable with UBF
like in mpfr_fmma.
[src/hypot.c] Updated a comment: The problem that would come from an
underflow in y^2, in particular because x was scaled in order to
avoid an overflow in x^2, has been avoided by using a FMA (though
still buggy for these cases, as mentioned just above).
2018-02-08 Vincent Lefèvre <vincent@vinc17.net>
[tests] Added/updated comments about the config.h inclusion.
[tests/{tset_float128.c,tset_ld.c}] Removed obsolete WITH_FPU_CONTROL
related code (this should have been done in r12185).
2018-02-07 Vincent Lefèvre <vincent@vinc17.net>
[INSTALL] Updated GMP URL.
[doc/mpfr.texi] Updated the month.
[doc/mpfr.texi] Corrected minimal GMP version.
[tools/mpfrlint] Updated test to detect minimal GMP version mismatch.
[INSTALL] Corrected minimal GMP version (thanks to David Edelsohn).
[tools/mpfrlint] Added a test to detect minimal GMP version mismatch.
[tools/announce-text] For releases, check the VERSION file of the tag.
[doc/README.dev] "To make a release": moved a sentence.
2018-02-02 Vincent Lefèvre <vincent@vinc17.net>
[tests/tdiv_ui.c] Forcibly disable value coverage checking if
mp_limb_t > unsigned long (e.g. on mips64 with the n32 ABI).
[tests/tdiv_ui.c] Corrected comments.
[tests/t*random*.c]
* Replaced calloc + free by tests_allocate + tests_free as usual.
* trandom.c, turandom.c: do bitwise operations in unsigned arithmetic.
[tests/t*random*.c]
* Replaced some fprintf with stderr by printf (but not those
concerning memory allocation errors).
* Do bitwise operations in unsigned arithmetic.
* Formatting.
[tests] Formatting.
[tests/tests.c] Make stderr unbuffered again.
Note for the history: both stdout and stderr were made unbuffered in
r2361, then all stderr were changed to stdout (and the corresponding
setbuf on stderr removed) in r2449 for consistency, but stderr was
used later for specific cases (e.g. memory allocation errors or when
stdout is already used for something else), and it is also used for
assertion failures. Thus the setbuf on stderr is still needed.
[tests] Fixed the cases where tests_start_mpfr was called too late,
i.e. after potential output (to stdout).
* tremquo.c: moved the call to tests_start_mpfr to the beginning.
* tset_float128.c, tset_ld.c: removed the optional, obsolete code
setting the FPU control word; MPFR_FPU_PREC can be used instead
(see tests.c).
Reverse-merged r12181 since tests_start_mpfr disables stdout buffering,
so that the fflush() are unnecessary.
[tests/tabort_*.c] Flush stdout after a printf(), as an abort() is
expected. This is needed on platforms where abort() does not flush
the stdio streams, such as with the GNU C Library (glibc) 2.27.
2018-02-01 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Mention "make check-exported-symbols" (experimental).
[tests/tdiv_ui.c] Portability update, in case MPFR_PREC_MIN > 1.
2018-01-31 Vincent Lefèvre <vincent@vinc17.net>
[tests/tdiv_ui.c] In corner_cases, test larger values for xn,
as suggested by Paul, allowing one to cover case 2 for both
sb=0 and sb=1. Value coverage is now complete.
[tests/tdiv_ui.c] Updated midpoint_exact to also test the divisor
ULONG_MAX, allowing one to cover cases 3 and 4.
[tests/tdiv_ui.c] Added tests with simple midpoint and exact cases.
This covers case 9, sb=0.
Added a case for the value coverage for tdiv_ui.
→ Now, on a 64-bit Linux machine:
mpfr_div_ui not tested on case 2, sb=0
mpfr_div_ui not tested on case 2, sb=1
mpfr_div_ui not tested on case 3, sb=0
mpfr_div_ui not tested on case 4, sb=0
mpfr_div_ui not tested on case 9, sb=0
Added value coverage for tdiv_ui (combinations of rb and sb in the
different cases of the mpfr_div_ui code).
→ Currently on a 64-bit Linux machine:
mpfr_div_ui not tested on case 2, sb=0
mpfr_div_ui not tested on case 3, sb=0
mpfr_div_ui not tested on case 8, sb=0
[src/div_ui.c] Case tmp[yn] != 0: simplified code since u ≥ 2.
[src/div_ui.c] Case tmp[yn] == 0:
* corrected/improved comments;
* simplified condition rb && sb to rb (since if rb ≠ 0, then r ≠ 0,
so that the current sb ≠ 0);
* replaced "& (~MPFR_LIMB_HIGHBIT)" by "<< 1" (should be simpler).
2018-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/div_ui.c] fixed corner case (hopefully)
2018-01-30 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Improved a regexp (avoiding false positives).
[tests/tdiv_ui.c] corner_cases() requires limbs to fit in unsigned long.
[tests/tdiv_ui.c] Back to a decimal constant (the UL suffix was
incorrect, but just a U is OK).
2018-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tdiv_ui.c] added test for corner case (currently fails)
2018-01-30 Vincent Lefèvre <vincent@vinc17.net>
[tests/tdiv_ui.c] Fixed a value (from a zsh bug).
[src/div_ui.c] Comment: now, "i.e." is correct.
[tests/tdiv_ui.c] Added ABI-independent bug20180126 tests.
2018-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/div_ui.c] fixed a comment
2018-01-30 Vincent Lefèvre <vincent@vinc17.net>
[src/div_ui.c] Typo in a comment.
[src/div_ui.c] Updated a comment.
[src/div_ui.c] Clarified the notation (this was ambiguous, with two
possible interpretations). Added comments about mpn_divrem_1.
[src/div_ui.c] Added a FIXME.
2018-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/div_ui.c] fixed a comment, and added a FIXME
2018-01-29 Vincent Lefèvre <vincent@vinc17.net>
[src/div_ui.c] Clarified a comment.
[src/div_ui.c] Started to review the code; minor changes.
[src/div_ui.c] Minor update of comments.
[src/div_ui.c] Fixed the exact case, which used nexttoinf uninitialized.
[tests/tdiv_ui.c] bug20180126: enable the test only when a limb fits in
an unsigned long; clarified a comment.
2018-01-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/div_ui.c] fixed bug20180126 (from tdiv.c), with a complete rewrite of
mpfr_div_ui using the round and sticky bits
[tests/tdiv_ui.c] added more tests
2018-01-27 Vincent Lefèvre <vincent@vinc17.net>
[tests/tdiv.c] mpfr_div bug bug20180126: also test negative values.
[tests/tdiv.c] Updated comment about mpfr_div bug bug20180126.
[tests/tdiv.c] mpfr_div bug bug20180126 was introduced by r9086.
2018-01-26 Vincent Lefèvre <vincent@vinc17.net>
[tests/tdiv.c] Completed r12128 test with new comments and an assert.
[tests/tdiv.c] Added test case for a mpfr_div bug of MPFR 4.
2018-01-25 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Added information about symbol checking.
2018-01-23 Vincent Lefèvre <vincent@vinc17.net>
[tests/tests.c] Mention a libtool 2.4.6 bug concerning Solaris, yielding
potential failures if a compatible MPFR version is already installed:
this MPFR library is tested instead of the one that has just been built.
2018-01-22 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] + Improved __GMP_CC and __GMP_CFLAGS retrieval.
[configure.ac] In the CC and CFLAGS setup from gmp.h, added to the
cpp list: "clang -E"; "cl -E" and "icl -E" for Windows ICC and MSVC
(suggested by Alexander).
2018-01-20 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] "To make a release": mention "make check-gmp-symbols"
and "make check-exported-symbols".
[Makefile.am] Updated comments.
[src/Makefile.am] For check-gmp-symbols and check-exported-symbols, if
the library is not $(top_builddir)/src/.libs/libmpfr.so, these rules
do nothing instead of potentially failing.
Added check-exported-symbols make rule to check that MPFR does not
define symbols with a GMP reserved prefix.
2018-01-18 Vincent Lefèvre <vincent@vinc17.net>
[src/mp_clz_tab.c] Fixed a condition (see bug mentioned at r12107).
[src/mpfr-gmp.h] Reverse-merged r11969, which yields a build failure
under MinGW when GMP is built with "--disable-shared --enable-static
--enable-assert --disable-assembly" and MPFR is built using the GMP
build. Indeed, this commit was incorrect, as if the GMP build is used,
then this is GMP's longlong.h that is used and GMP's __clz_tab version
that should be used.
The real cause of the "multiple definition of `__gmpn_clz_tab'" error
reported at
https://sympa.inria.fr/sympa/arc/mpfr/2017-12/msg00061.html
is that MPFR defines its own __gmpn_clz_tab while this is not needed
(and must not be done) when the GMP build is used.
2018-01-16 Vincent Lefèvre <vincent@vinc17.net>
[TODO] - Decide whether multiple calls to mpfr_clear should be allowed.
[TODO] + Decide whether multiple calls to mpfr_clear should be allowed.
2018-01-13 Vincent Lefèvre <vincent@vinc17.net>
ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
[NEWS] Update. Prepare for new version 4.1.0.
[doc] Updated FAQ.html with update-faq.
2018-01-10 Vincent Lefèvre <vincent@vinc17.net>
[tests/tlgamma.c] bug20180110: test the ternary value and the flags.
[src/lngamma.c] Fixed mpfr_lgamma bug for tiny negative x, in case
emax < exponent of the result (the issue was an overflow in the "fast"
algorithm, which made it loop with more and more working precision).
[src/lngamma.c] Removed a useless cast.
[tests/tlgamma.c] Added a test case for a bug found from the tgeneric
change done in r12088.
[tests/tgeneric.c] Do several overflow/underflow tests instead of 1, and
this for each precision. This allows one to detect the mpfr_ai bug found
and fixed on 2018-01-07 (with 32-bit *and* 64-bit ABI):
https://sympa.inria.fr/sympa/arc/mpfr/2018-01/msg00001.html
Moreover, this makes tlgamma loop with a 32-bit ABI (x86). To be fixed.
[tests/tgeneric.c] Added comments for tests in a reduced exponent range.
[tests/tsprintf.c] About r12084, simplified the code, without needing
strncpy.
[tests/tsprintf.c] Fixed strncpy usage, in particular to ensure a
null-terminated string (bug detected by gcc-snapshot 20180107-1 under
Debian with -Werror=stringop-truncation).
2018-01-09 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Fixed the @GMPabs macro in tex mode: due to the use of
the OT1 encoding, the pipe character "|" was giving a wide dash.
[doc/mpfr.texi] For mpfr_custom_get_exp, restored the spec for NaN,
infinity and zero, with more details.
[doc/mpfr.texi] Improved description of mpfr_custom_init_set.
Note: For the versions of the manual generated with TeX (PDF/DVI/PS),
"|kind|" appears as "—kind—", and the description of mpfr_ai has
the same issue (since its introduction in MPFR 3.0.0). The cause
is unclear, and this will be fixed later.
2018-01-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[doc/mpfr.texi] for mpfr_custom_get_exp, explain the significand is considered
in [1/2,1) as for mpfr_get_exp
2018-01-09 Vincent Lefèvre <vincent@vinc17.net>
[doc]
* texinfo.tex: update to the latest version 2018-01-09.11, which
supports @var with script font size without any drawback.
* mpfr.texi: replaced the now useless @svar by @var.
2018-01-07 Vincent Lefèvre <vincent@vinc17.net>
[tests/tai.c] In bug20180107, also check the flags.
[src/ai.c] Really fixed the bug.
[src/check.c] Typo.
2018-01-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/ai.c] missing call to mpfr_check_range
[tests/tai.c] added test that fails on x86_64
[tests/tai.c] added test for bug in mpfr_ai (see thread
https://sympa.inria.fr/sympa/arc/mpfr/2018-01/msg00001.html)
2018-01-03 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
[tools/ck-mparam] In the copyright notice, just keep the year 2011
since this file is not part of the tarball (just used by mpfrlint).
Copyright notice update: added 2018 with
perl -pi -e 's/ (\d{4}-)?(2017)(?= Free Software)/
" ".($1||"$2-").($2+1)/e' **/*(^/)
under zsh, reverting the ck-mparam and timings-mpfr.c files and
the mbench directory under "tools" (not distributed with MPFR).
Removed 2017 from the example in the doc/README.dev file.
2018-01-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/zeta.c] added comments and FIXME
Note (2019-04-30): a bug has also been introduced (fixed in r13485).
2017-12-25 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Minor corrections for GNU MPFR 4.0.0.
2017-12-23 Vincent Lefèvre <vincent@vinc17.net>
[tests/tests.c] Added a note about gettimeofday() and a cast.
[tests/tests.c] Fixed a potential integer overflow from r12053 with
GMP_CHECK_RANDOMIZE=1, in particular under a 32-bit Linux.
2017-12-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tests.c] decrease probability of collision with random seed
[src/exp_2.c] fixed bug from previous commit
[src/subnormal.c] added assert
[tests/texp.c] added test for new bug
2017-12-22 Vincent Lefèvre <vincent@vinc17.net>
Removed trailing whitespace.
[src/subnormal.c] Replaced FIXME.
[tests/tj1.c] Avoid a potential integer overflow.
2017-12-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/subnormal.c] added FIXME
[src/sin.c] simplified code with RNDA
[src/hypot.c] mimic mpfr_round_near_x
[tests/tj1.c] exercise corner case
[tests/tj1.c] added test for j1(z) with small z
[src/hypot.c] fixed issue with overflow flag not correctly set
2017-12-21 Vincent Lefèvre <vincent@vinc17.net>
[src/next.c] Reverted r12035 as per documentation, which follows
IEEE 754 (with the usual special treatment for the single NaN).
2017-12-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/next.c] fixed nextinf (missing overflow flag)
[tests/thypot.c] removed debug call to mpfr_dump in previous commit
[tests/thypot.c] another fix...
[tests/thypot.c] fixed bug20171221()
[tests/thypot.c] new failing test
[src/lngamma.c] fixed bug when u=0 in case z0 < 1
[tests/tlngamma.c] fixed test case which was wrong
2017-12-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tlngamma.c] added test for new failure
[src/lngamma.c] fixed bug found in previous commit
[tests/tlngamma.c] added failing test with mpfr-4.0.0-rc2
2017-12-20 Vincent Lefèvre <vincent@vinc17.net>
Updated version to 4.1.0-dev again.
Updated version to 4.0.0-rc2 for an attempt to replace the 4.0 branch.
[src/fma.c] Minor improvements. Added an assert.
[src/tanh.c] GNU coding style.
[src/mul.c] Reindentation.
[src/exp2.c] Replaced two MPFR_ASSERTN by MPFR_STAT_STATIC_ASSERT.
2017-12-19 Vincent Lefèvre <vincent@vinc17.net>
[src/exp2.c] Fixed the double rounding problem in an underflow case,
triggered by the test added in r12017.
[tests/texp2.c] Added test of underflow in MPFR_RNDN with exact value
close to 2^(emin-2). Currently fails due to double rounding.
[tests/tdiv.c] Added new non-regression test: the was the real cause of
the ttanh failure in r11993 without the tanh.c fix in this same commit.
But this mpfr_div was fixed in r12002.
[doc/mpfr.texi] Added a comment about a bug/limitation in makeinfo 5.2.
[doc/mpfr.texi] Improved svar macro for nottex, in case it is used
in the future.
[doc/mpfr.texi] Define svar even for nottex, though it is not used
(attempt to avoid a failure with makeinfo 5.2).
2017-12-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/fma.c] fixed bug in mpfr_fma
[tests/tfma.c] added non-regression test
2017-12-19 Vincent Lefèvre <vincent@vinc17.net>
[src/exp2.c] Update concerning the underflow/overflow cases.
Still incomplete.
[doc/mpfr.texi] Updated a comment.
[doc]
* texinfo.tex: update to the latest version 2017-12-18.20, which
reverts the change done in 2017-12-01.13 attempting to support
@var with script font size (e.g. in exponent); but this change
didn't work correctly.
* mpfr.texi: introduced a @svar macro to handle this case. It
currently disables the use of @var, the other workaround being
worse.
2017-12-18 Vincent Lefèvre <vincent@vinc17.net>
Removed trailing whitespace.
[doc/algorithms.tex,src/tanh.c] Fixed the bound, in particular from
the recent improvements in the error analysis.
2017-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mul.c] we should compare the smaller size and not the larger one to
MPFR_MUL_THRESHOLD or MPFR_SQR_THRESHOLD for Mulders' short product
[src/mul.c] with Mulders', convert RNDF to RNDZ
[tests/tmul_d.c] added a non-regression test
2017-12-18 Vincent Lefèvre <vincent@vinc17.net>
[doc/algorithms.tex] mpfr_tanh: corrected bounds (thanks to Paul).
[doc/algorithms.tex] mpfr_tanh: detailed some inequalities.
2017-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/div.c] fixed bug in mpfr_div2_approx()
[tests/tdiv.c] added non-regression test
[tests/ttan.c] added test triggering bug in mpfr_div2_approx()
2017-12-18 Vincent Lefèvre <vincent@vinc17.net>
[doc/algorithms.tex] mpfr_tanh: resolved both FIXME's.
[doc/algorithms.tex] mpfr_tanh: corrected a part of the error analysis
(2^k+4 ≤ |theta_4|^(−1/2) was not necessarily true, since theta_4 can
be very small). As a consequence, the lemma can be simplified/improved
(first FIXME). Added a second FIXME on a condition that is not checked.
[doc/algorithms.tex] mpfr_tanh: missing absolute value; added a \cdot.
Removed trailing whitespace.
[doc/algorithms.tex] Added another \cdot for readability.
2017-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/exp2.c] added FIXME
2017-12-18 Vincent Lefèvre <vincent@vinc17.net>
[doc/algorithms.tex] Minor corrections for hyperbolic tangent function:
* "e" had two different meanings (BTW, the constant e should actually
be written \mathrm{e} everywhere in the document).
* Use \left...\right instead of |...| when it contains an expression
starting with \log (the latter was confusing pdflatex, which added
a spurious space before \log).
* Added some \cdot for better readability.
2017-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/exp2.c] fixed bug near underflow
[tests/texp2.c] added non-regression test
[tests/ttanh.c] added test for bug in mpfr_tanh
[doc/algorithms.tex] fixed error analysis for mpfr_tanh
[src/tanh.c] fixed error analysis
Note after r12016: Even though mpfr_tanh was incorrect, the failure
of the test added in ttanh.c was actually *only* due to a bug in the
mpfr_div code specific to the trunk (fixed in r12002), i.e. this was
not a non-regression test for the mpfr_tanh bug itself (in particular,
this test does not introduce a failure in the 3.1 branch, which still
has the same incorrect mpfr_tanh code but a correct mpfr_div).
2017-12-18 Vincent Lefèvre <vincent@vinc17.net>
Updated version to 4.1.0-dev again.
2017-12-17 Vincent Lefèvre <vincent@vinc17.net>
Updated version to 4.0.0-rc2 for an attempt to replace the 4.0 branch.
ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
2017-12-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/add1sp.c] fix bug in mpfr_add1sp3() in case d=GMP_NUMB_BITS
2017-12-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tadd1sp.c] added test for new bug (still to be fixed):
Seed GMP_CHECK_RANDOMIZE=1514385177 (include this in bug reports)
add1 & add1sp return different values for MPFR_RNDN
Prec_a = 137, Prec_b = 137, Prec_c = 137
B = 0.11111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000E-66
C = 0.11111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000110000E-2
add1 : 0.10000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000001000E-1
add1sp: 0.11111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000010000E-2
Inexact sp = 0 | Inexact = 0
Flags sp = 8 | Flags = 8
add1sp.c:89: MPFR assertion failed: 0
2017-12-15 Vincent Lefèvre <vincent@vinc17.net>
[src/root.c] Minor comment correction.
[src/root.c] Completed fix from r11978, as x=-1 was affected too. Also
added comments explaining that mpfr_root_aux assumes |x| ≠ 1 and why.
Hence the need of a filter on |x| = 1.
[tests/troot.c] Added test for x = -1.
[tests/troot.c] Replaced mpfr_root by TF (like in the other tests).
2017-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/root.c] fixed bug when x=1
[tests/troot.c] added non-regression test
2017-12-14 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsub1sp.c] Corrected a type. And mpfr_equal_p being a predicate
function, it's better to use Boolean operators on it.
2017-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tsub1sp.c] added a generic test for bug20171213()
2017-12-14 Vincent Lefèvre <vincent@vinc17.net>
[src/{mul.c,sqr.c}] Minor changes, making code similar to sub1sp.c.
Checked with
grep -A 1 'sb *>>' src/*.c
that the bug fixed in r11974 does not occur in other parts of the code.
BTW, there is much duplicate code, as shown by the grep output, and
using macros could have avoided that, making bugs easier to reproduce
(since a same bug would be duplicate several times).
2017-12-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp.c] fixed bug in mpfr_sub1sp2()
[tests/tsub1sp.c] added non-regression test
2017-12-13 Vincent Lefèvre <vincent@vinc17.net>
[src/mpf2mpfr.h] Added a comment.
2017-12-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mpf2mpfr.h] missing mpf_inits/mpf_clears
[src/mpfr-gmp.h] redefine __clz_tab also with gmp-build
2017-12-12 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] Improved error message.
[tests/talloc.c] Added a comment about why talloc requires ISO C99.
[src/mpfr-cvers.h] Removed a useless test for __MPFR_STDC, as one just
needs to check whether we have a C99, C11, etc. implementation (if not
done via a configure test). Particular incompatibilities with the C90
standard should always be checked via a configure test.
[tests] Added *.exe to svn:ignore property (files from MinGW builds).
2017-12-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tools/timings-mpfr.c] always use clock() [now very accurate under Linux]
2017-12-12 Vincent Lefèvre <vincent@vinc17.net>
[tools/timings-mpfr.c] Updated years in copyright notice.
[tools/timings-mpfr.c] Fixed prototypes.
[tools/timings-mpfr.c] Added a defined(_MSC_VER). But clock() is
standard, so why not always using it?
[doc/README.dev] Correction.
[doc/README.dev] Made formatting consistent (same as configure --help).
Completed r11955: There were also DEBUG macros under the "tests"
directory. Since such macros can still be useful in case a test failure,
replaced them by MPFR_DEBUG to avoid issues with CI builds that define
the DEBUG macro. But an environment variable would be a better solution
(see MPFR_DEBUG_BADCASES as an example).
[TODO] Removed item on the DEBUG macro (done in r11955).
2017-12-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
DEBUG_TGENERIC -> MPFR_DEBUG_TGENERIC
XDEBUG -> MPFR_DISABLE_IEEE_FLOATS
get rid of DEBUG macro (but keep corresponding commands in comment to help
understanding of the code and debugging)
2017-12-11 Vincent Lefèvre <vincent@vinc17.net>
[tests/tget_q.c] Removed trailing whitespace.
2017-12-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tget_q.c] replaced MPFR_ASSERTN(0) by exit(1)
2017-12-10 Vincent Lefèvre <vincent@vinc17.net>
[src/get_q.c] Optimization of r11951 suggested by Trevor Spiteri:
https://sympa.inria.fr/sympa/arc/mpfr/2017-12/msg00040.html
2017-12-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/get_q.c] make result of mpfr_get_q in canonical form
[tests/tget_q.c] added non-regression test
[src/lngamma.c] replace call to __gmpfr_ceil_log2 by __gmpfr_int_ceil_log2
2017-12-09 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Rename the DEBUG macro to MPFR_DEBUG?
2017-12-08 Vincent Lefèvre <vincent@vinc17.net>
[src/Makefile.am] Also distribute generic/coverage/mparam.h
(at least useful for testing the distributed tarballs).
[doc] Updated FAQ.html with update-faq.
[doc] Updated FAQ.html with update-faq.
[doc/README.dev] "To make a release":
* Note that this needs to be done in a branch.
* Swapped (1) and (2), in particular because the coverage might be
different in -dev versions and it is better to give results closer
to the release.
Updated version to 4.1.0-dev.
ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
Moved tests/timings-mpfr.c into directory "tools" as it is not part
of the test suite.
2017-12-07 Vincent Lefèvre <vincent@vinc17.net>
[src/fpif.c] Removed FIXME about the sign bit of NaN: done in
r11910 and r11920 (documentation + tests).
[src] Replaced some "return 0" by "MPFR_RET (0)" (the generated code
is the same as shown by gcc, thanks to an obvious optimization; this
is semantically better, which could help provers, and would allow
code instrumentation in the future, if need be).
2017-12-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
got rid of mpz_dump (undocumented in GMP)
[src/mpfr-mini-gmp.c] updated with GMP 6.1.2
2017-12-06 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Corrected a Texinfo typography issue.
[src/pool.c] Updated description. Corrected copyright years as the
pool code itself was introduced in 2014.
[tests/timings-mpfr.c] Removed trailing whitespace, untabified,
changed GMP_RNDN to MPFR_RNDN.
Cleanup and fixes for the mpz_t pool.
* Split src/free_cache.c to itself and a new source file src/pool.c
containing pool related code.
* src/mpfr-impl.h, src/pool.c: cleanup and fixes. In particular:
- renamed MPFR_MY_MPZ_INIT to MPFR_POOL_NENTRIES;
- no longer use GMP's symbols __gmpz_init, etc. directly;
- improved the condition for mpfr_mpz_init2;
- fixed the condition in mpfr_mpz_clear (we want to consider
the allocated size, not the size of the current number).
* src/Makefile.am: added pool.c.
* src/mpfr.h: added mpfr_free_pool prototype.
* doc/mpfr.texi: updated pool description in "Memory Handling";
new function mpfr_free_pool.
* doc/README.dev: update due to the rename of MPFR_MY_MPZ_INIT.
* NEWS: better announcement of the mpz_t pool.
[doc/mpfr.texi] Small correction concerning the caches.
[doc/mpfr.texi] More details for mpfr_fpif_export and mpfr_fpif_import.
2017-12-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[timings-mpfr.c] test file for measuring timings (added -p option)
2017-12-06 Vincent Lefèvre <vincent@vinc17.net>
Updated the remaining www.loria.fr URL's.
[doc/algorithms.bib] Updated URL's.
[doc/mpfr.texi] References: typography; updated a URL.
2017-12-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr.texi] updated reference to "Modern Computer Arithmetic"
[free_cache.c] limit the size of objects in the mpz_t pool
2017-12-06 Vincent Lefèvre <vincent@vinc17.net>
[src/free_cache.c] Added a comment for the mpz_t pool, and a suggestion
for mpfr_mpz_clear so that the pool will not take too much memory while
keeping a possible benefit for very small precision.
2017-12-05 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr.h] Made box around code examples for clarity and grep.
[doc/mpfr.texi] For mpfr_fpif_export: the sign of a NaN is stored.
[tests/tfpif.c] Test the sign of NaN (in particular).
[doc/mpfr.texi] Updated references.
[doc/mpfr.texi] Update about 0 of type without signed zeros, as in
mpfr_div_ui.
[doc/mpfr.texi] Document the behavior of mpfr_ui_pow and mpfr_ui_pow_ui
on the integer 0 (0 does not have a sign here).
2017-12-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[doc/mini-gmp] added information about result of "make check"
2017-12-05 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-gmp.h] Removed old code for pre-GMP-5 versions.
[src/urandomb.c] Removed an obsolete "#if __MPFR_GMP(5,0,0)" as we now
require GMP 5.0+ and mp_bitcnt_t is also defined by mini-gmp.
[src/mpfr-gmp.h] Removed the code that defined mpn_copyi and mpn_copyd
macros for GMP < 5, since MPFR now requires GMP 5.0+ and these functions
are also defined by mini-gmp (these macros were used by mini-gmp only
because mini-gmp does not define GMP_VERSION).
[src/mpfr-gmp.h] Missing parentheses around parameters in mpn_copyi
and mpn_copyd macro definitions.
2017-12-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug in replacement function for copyi and copyd (found with mini-gmp)
add --disable-shared for mini-gmp (not tested yet with dynamic linking)
2017-12-05 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr.h] Explain how to avoid the "... is deprecated" warning when
testing a deprecated function.
[doc/README.dev] Removed a -Wno-error=deprecated-declarations as
the specific warnings are now avoided (r11896).
Disable the "deprecated" attribute of deprecated functions *only* for
the tests of these functions, to avoid the corresponding warnings.
Removed trailing whietespace.
2017-12-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed compiler warnings with mini-gmp
2017-12-04 Vincent Lefèvre <vincent@vinc17.net>
Simplified the use of MPFR_USE_FILE since <stdio.h> (<cstdio> for C++)
is unconditionally included.
2017-12-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
make compilation work again (make + make check) with mini-gmp
2017-12-04 Vincent Lefèvre <vincent@vinc17.net>
Improved portability of the check-gmp-symbols make rule.
[src/fpif.c] Clarification.
[tests]
* tfpif.c: in doit(), also test the negative versions of the numbers.
* tfpif_r1.dat: update.
[src] Update about the internal use of mpfr_get_str.
* get_str.c: updated a comment.
* vasprintf.c: added assertions.
[doc/mpfr.texi] Updated the month.
[src/get_str.c] Corrected a comment.
[doc/mpfr.texi] Update about the memory allocation (added references
to Section "Memory Handling").
(merged changeset r11632 from the 3.1 branch)
[doc/mpfr.texi] Update for mpfr_get_str:
* Added a texi comment explaining why m+1 (so that if the mpfr_get_str
implementation is improved, we know whether this is still the case).
* Improved the documentation for the case str = null pointer.
2017-12-03 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated comments about the latest change (r11881).
[doc/mpfr.texi] Typography fixes for TeX (DVI/PS/PDF) in math mode.
* Corrected the use of \lceil and \rceil.
* Added missing @var, including 2 in exponent, as allowed by
texinfo.tex 2017-12-01.13.
* Removed old comments about Texinfo.
[doc/texinfo.tex] Update to the latest version 2017-12-01.13 from
<https://ftp.gnu.org/gnu/texinfo/>.
2017-12-01 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] In r11876, forgot to define MPFR_WANT_DECIMAL_FLOATS in
the cross-compiling case.
Solved an output issue on AIX due to the use of setbuf() after output
in tversion. Indeed, this is disallowed by ISO C.
* doc/README.dev: added a note about tests_start_mpfr and this issue.
* tests/tests.c: moved test_version() after setbuf().
* tests/tversion.c: moved tests_start_mpfr() earlier, before any
printf().
[acinclude.m4] Attempt to fix detection of decimal floats: if _Decimal64
is known but does not work, no longer fail when --enable-decimal-float
has not been used; just disable decimal floats.
[acinclude.m4] Attempt to fix detection of decimal floats (BID was
incorrectly assumed in case of link failure, if ld returned 1, which
was observed on powerpc-ibm-aix7.2.0.0 [gcc119.fsffrance.org]).
[src/fpif.c] Updated comments about the format.
2017-11-30 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Typo.
Two fixes for the check-gmp-symbols make rule:
* Use $(COMPILE) instead of $(CC) to get the usual compilation flags
(in particular, the -I flags may be important to find gmp.h and to
get the correct one).
* Run the test only if libmpfr.so exists.
[doc/README.dev] Internal GMP symbols: mention "make check-gmp-symbols".
[NEWS] Mention "make check-gmp-symbols" (experimental).
[INSTALL] Added an optional step "make check-gmp-symbols" to check
that MPFR does not use GMP internal symbols.
Added comment about the check-gmp-symbols make rule (added in r11865).
Added check-gmp-symbols make rule to check that MPFR does not use
GMP internal symbols.
[doc/README.dev] Detailed the note about the list of GMP symbols.
[doc/README.dev] Document how to get the list of GMP symbols used
by MPFR and how to detect GMP internal symbols used by MPFR.
[INSTALL] Added a paragraph about the potential incorrect use of
GMP internals.
2017-11-29 Vincent Lefèvre <vincent@vinc17.net>
[src/fpif.c] Fixed the sign bug for mpfr_fpif_import.
[tests/tfpif.c] In doit(), before the call to mpfr_fpif_import(), set
the sign of the target to the opposite of the expected sign. Thus, if
mpfr_fpif_import forgets to set the sign, this will be detected. And
a failure actually occurs now!
[tests/tfpif.c] For mpfr_fpif_import, check the precision too.
[doc/mpfr.texi,src/fpif.c] For mpfr_fpif_import, in case of failure,
the argument x is either unchanged or set to NaN, to make sure that
x has valid contents (otherwise this could yield erratic behavior).
[src/fpif.c] For mpfr_fpif_import, replaced an assertion by a failure
(since the full format is not described in the manual and MPFR cannot
currently generate such a case, this is OK).
[tests/tfpif_r1.dat] Fixed an obvious error (incorrect sign of 0).
[tests/tfpif.c] Output more information in case of error.
2017-11-28 Vincent Lefèvre <vincent@vinc17.net>
[src/fpif.c] Fixed some bugs (though unlikely to occur in practice).
Added comments. Minor code improvement.
Got rid of the useless SIZE_MAX macro.
* src/vasprintf.c: replaced SIZE_MAX by (size_t) -1, already used
in some other files.
* acinclude.m4: no longer use gl_SIZE_MAX (from m4/size_max.m4).
* Removed m4/size_max.m4 as it is no longer needed (note that the
definition of SIZE_MAX by this file was unnecessarily complex
and potentially incorrect on some platforms).
[src/fpif.c] Added static assertions in mpfr_fpif_import().
[src/fpif.c] Improved a test (mpfr_regular_p → !MPFR_IS_SINGULAR).
[src/mpfr-impl.h] Added a note about the use of the MPFR_IS_PURE_*(x)
and MPFR_IS_SINGULAR*(x) macros.
2017-11-27 Vincent Lefèvre <vincent@vinc17.net>
[src/fpif.c] Added format description from past mail messages, to be
checked in case of change (+ FIXME for NaN). Minor code improvement.
[tests/tfpif.c] Added TODO's (but the failure should be fixed first).
[src/fpif.c] Clarified sign variable.
[tests/tfpif.c] Use SAME_VAL instead of mpfr_cmp. This triggers a bug
that was not detected yet.
[tests/tfpif.c] Split the main test function into:
* doit(): keep only the tests that depend on the precisions.
* check_bad(): tests for bad file/data; precisions are not involved.
[tests/tfpif.c] Improved a test (NaN checking). Added comments.
[tests/tfpif.c] Removed a TODO done in r10326 and r10338.
Updated autogen.sh so that doc/texinfo.tex isn't replaced.
Added doc/texinfo.tex file from Texinfo 6.5 since the version installed
by Automake (via "autoreconf -i" as called by autogen.sh) is obsolete:
more than 4 years older than the current version!
[doc/mpfr.texi] Updated a comment about a bug in Texinfo.
2017-11-23 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset_exp.c] Check mpfr_get_exp too (with two additional tests
for mpfr_set_exp).
[tests/texceptions.c] Minor improvements.
[doc/mpfr.texi] For mpfr_get_exp, document that x can be outside of
the current range of acceptable values (this was ambiguous).
2017-11-21 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Corrected Texinfo typography issues.
2017-11-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added another example where we can have an overflow
added pointer to mpfr_subnormalize
2017-11-21 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Major update of "MPFR and the IEEE 754 Standard".
[doc/mpfr.texi] Added "MPFR and the IEEE 754 Standard" to the main menu
as required. Title capitalization.
[doc/mpfr.texi] Correction of a @node.
2017-11-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added section "MPFR and the IEEE 754 standard"
2017-11-20 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] mpfr_can_round: corrected the example; removed
a reference to "ternary value" as there is already one in the
previous sentence; clarification.
[doc/mpfr.texi] Faithful rounding (MPFR_RNDF):
* Document that this feature is experimental and partially supported.
* Update Section "API Compatibility".
Note: the NEWS file was up-to-date.
2017-11-15 Vincent Lefèvre <vincent@vinc17.net>
[tests/talloc-cache.c]
* Replaced test + abort() by the more informative MPFR_ASSERTN().
* Also check that the allocator is the current GMP one (this would
fail with MPFR 3.1.6, where the allocation functions are memorized
the first time they are seen).
mpfr_mp_memory_cleanup() now returns an error code (currently always 0)
to avoid a future prototype change in case errors would be possible.
2017-11-10 Vincent Lefèvre <vincent@vinc17.net>
Cleanup: In src/mpfr-gmp.h, exchanged
mpfr_allocate_func and *__gmp_allocate_func
mpfr_reallocate_func and *__gmp_reallocate_func
mpfr_free_func and *__gmp_free_func
and in the code, replaced *__gmp_{allocate,reallocate,free}_func
by mpfr_{allocate,reallocate,free}_func; updated TODO file.
[doc/mpfr.texi] The sign bit of a NaN is now specified for mpfr_abs,
mpfr_neg and mpfr_set, in order to mimic the IEEE-754 abs, negate
and copy operations.
[tests/tabs.c] More tests on mpfr_abs, including the ternary value
and the NaN flag and sign bit for ±NaN.
[tests/tabs.c] Coding style.
[tests/tset.c] For mpfr_neg on NaN, also check that the variable is
set to NaN and that the ternary value is 0.
[tests/tset.c] More NaN tests for mpfr_set.
[tests/tset.c] More tests of the NaN flag and the sign bit for mpfr_neg
on NaN.
[tests/tset.c] The global variable "error" is better as static.
[tests/tset.c] For mpfr_neg on NaN, check that the sign bit is flipped
in both ways.
[tests] Added talloc-cache to svn:ignore property.
2017-11-09 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset.c] In the mpfr_neg test on the sign of NaN:
C90 compatibility; improved robustness since as specified,
mpfr_signbit can return any value (not just 0 or 1).
[src/neg.c] Refactored code (BTW, this was not a bug as the sign of NaN
is currently unspecified for mpfr_neg).
2017-11-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug reported by Trevor Spiteri
(https://sympa.inria.fr/sympa/arc/mpfr/2017-11/msg00003.html)
2017-11-08 Vincent Lefèvre <vincent@vinc17.net>
Change the way memory is allocated (as discussed partly in private).
* src/mpfr-gmp.c, src/mpfr-gmp.h, src/mpfr-impl.h: update.
* src/free_cache.c, src/mpfr.h: added mpfr_mp_memory_cleanup function.
* NEWS: describe API change.
* TODO: added 2 related items (future clean-up and feature).
* doc/mpfr.texi: update.
* tests/talloc-cache.c: take API change into account.
2017-11-07 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated Section "Compatibility With MPF".
[doc/mpfr.texi] Removed a paragraph from r2962 concerning mpf2mpfr.h
and mpf_init / mpf_init2: since r2985, the mpf_init / mpf_init2 macros
initialize to 0 like MPF, so that users shouldn't see differences from
MPF.
2017-11-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added reference
2017-11-07 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr.h] Formatting.
[src/mpfr.h] mpfr_free_cache_t: added comments to show that these are
flags.
[doc/mpfr.texi] Updated mpfr_free_cache / mpfr_free_cache2 description.
[src/free_cache.c] Minor portability improvement for mpfr_free_cache2
to accept way = 0 (no effect on two's complement machines).
2017-11-06 Vincent Lefèvre <vincent@vinc17.net>
[tests]
* tests.c: for test programs that use GMP's mp_set_memory_functions,
tests_rand_start and tests_rand_end also need to be disabled; to do
that, require that tests_memory_disabled be set to 2 in this case
(the value 1 is already used for the use with mini-gmp, where only
tests_memory_start and tests_memory_end need to be disabled).
* talloc-cache.c: call tests_start_mpfr and tests_end_mpfr as usual,
with tests_memory_disabled set to 2.
[doc/mpfr.texi] Updated the month.
[doc/mpfr.texi] Minor change.
[doc/mpfr.texi] + explicit information on pools (in addition to caches).
[NEWS,doc/mpfr.texi] mpfr_free_cache2 is a new function in MPFR 4.0,
as a consequence of shared caches for multithreaded applications.
[src/free_cache.c] GNU coding style.
[tests]
* Makefile.am: added talloc-cache to check_PROGRAMS.
* talloc-cache.c: improved the test allocators so that an incorrect
use is detected by this code instead of relying on the C library
checking bad use of malloc/realloc/free (which was UB).
NOTE: The test currently fails in the trunk due to the mpz_t pool.
But anyway, the memory allocation method will change soon.
[tests/talloc-cache.c] Corrected indentation.
2017-10-30 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Improved the mpfr_nexttoward description w.r.t. flags.
2017-10-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added note about mpfr_beta
2017-10-26 Vincent Lefèvre <vincent@vinc17.net>
[NEWS,doc/mpfr.texi] mpfr_beta is incomplete, experimental.
See <https://sympa.inria.fr/sympa/arc/mpfr/2017-10/msg00007.html>.
2017-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added functions from C++17
2017-10-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed typo
2017-10-11 Vincent Lefèvre <vincent@vinc17.net>
[src/get_float128.c] Fixed failure in mpfr_get_float128 when called with
a very reduced exponent range.
[tests/tset_float128.c] Also test mpfr_get_float128 in reduced exponent
range (triggering a failure before the fix).
2017-10-10 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] "To make a release": + Check the generic code.
2017-10-09 Vincent Lefèvre <vincent@vinc17.net>
[src/get_ld.c] Fixed the generic code when called with a very reduced
exponent range. The tset_ld failure could be triggered on x86 by running
"./configure ... mpfr_cv_c_long_double_format=unknown".
[tests/tset_ld.c] Also test mpfr_get_ld in reduced exponent range
(no failures on x86).
[src/get_z.c] Fixed failure in mpfr_get_z when called with a very
reduced exponent range.
[tests/tget_z.c] Added tests in the various rounding modes (triggering
a failure before the above fix). Also call check_one() on an integer
congruent to 1 mod 4 (useful to check even rounding). Fixed 2 issues
in the error message (for inex and the flags).
[tests/tget_z.c] Also test mpfr_get_z in reduced exponent range
(no failures though its code seems incorrect).
2017-10-06 Vincent Lefèvre <vincent@vinc17.net>
[src/{get_si.c,get_sj.c}] Minor improvement, removing an obsolete note
in get_sj.c at the same time.
[src/{get_sj.c,get_uj.c}] Fixed failure in mpfr_get_sj and mpfr_get_uj
when called with a very reduced exponent range.
[tests/tget_sj.c] Added corresponding test cases.
[tests/tset_si.c] Minor correction in error message.
2017-10-05 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Function multiversioning (FMV): more details.
[TODO] Mention function multiversioning (FMV).
2017-10-04 Vincent Lefèvre <vincent@vinc17.net>
[src/{get_si.c,get_ui.c}] Fixed failure in mpfr_get_si and mpfr_get_ui
when called with a very reduced exponent range.
[tests/tset_si.c] get_tests: added comments and tests in a reduced
exponent range, which currently trigger an assertion failure.
2017-10-02 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
[NEWS] Mention mpfr_dump.
[doc/mpfr.texi] Describe the current output format of mpfr_dump.
[doc/mpfr.texi] Replaced @code by @samp for things that are not
actually code, but parts of character strings.
2017-09-29 Vincent Lefèvre <vincent@vinc17.net>
[src/dump.c] mpfr_dump now outputs specific info for invalid data.
[tests/toutimpl.c] Added mpfr_dump tests.
[src/dump.c]
* Output the sign even for NaN, since this can be useful information
(the sign of a NaN has an effect with some functions, following
IEEE 754-2008).
* This changes allows one to get rid of the mpfr_fprint_binary
static function at the same time.
[src/{dump.c,print_raw.c}] Updated the description.
2017-09-29 Vincent Lefèvre <vincent@vinc17.net>
[src] Clean up of debugging output functions:
* Replaced the internal function mpfr_fprint_binary by a new
internal function mpfr_fdump, similar to mpfr_dump, but with
a FILE * argument.
* Got rid of mpfr_print_binary entirely (it became internal in
r2466 for MPFR 2.0.2, released in 2003).
Details:
* print_raw.c:
- moved the mpfr_fprint_binary code to dump.c;
- removed mpfr_print_binary.
* dump.c:
- mpfr_fprint_binary (from print_raw.c) is now defined as static;
- added function mpfr_fdump, using mpfr_fprint_binary;
- mpfr_dump: use mpfr_fdump instead of the old mpfr_print_binary.
* mpfr-impl.h:
- replaced mpfr_fprint_binary declaration by mpfr_fdump;
- removed mpfr_print_binary declaration.
* add1sp.c, mul.c, sub1sp.c: replaced mpfr_fprint_binary by mpfr_fdump
and removed the '\n', now output by mpfr_fdump.
2017-09-28 Vincent Lefèvre <vincent@vinc17.net>
[tests] Added trootn_ui to svn:ignore property.
2017-09-20 Vincent Lefèvre <vincent@vinc17.net>
[tests/toutimpl.c]
* Check mpfr_print_mant_binary() too.
* GNU coding style.
[src/print_raw.c] Changes in mpfr_print_mant_binary():
* Output a ']' when a '[' was output earlier.
* Correction: putchar() takes an int (or unsigned char), not a char.
* GNU coding style.
2017-09-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed .align 64 into .p2align 6 (cf https://trac.sagemath.org/ticket/19233)
2017-09-15 Vincent Lefèvre <vincent@vinc17.net>
[tests] Solve issues with the incorrect use of mpfr_sgn, and make sure
that this cannot happen again without being detected: on zero, +1 or -1
was sometimes expected to check the sign of zero, but mpfr_sgn actually
returned 0, so that the check always succeeded whatever the sign of the
null result.
* mpfr-test.h: define a new mpfr_sgn macro that fails when used on NaN
or zero (whose sign is not +1 or -1), except when MPFR_TESTS_TSGN is
defined.
* tacos.c, tasin.c, tasinh.c, tatanh.c, tcbrt.c, tdim.c, terf.c,
texp.c, texp10.c, texp2.c, texpm1.c, tset.c, tset_str.c: replaced
the incorrect use of mpfr_sgn; some other related improvements.
Note: in tset.c, a "mpfr_sgn (x) < 0" test had to be replaced by
"MPFR_IS_POS (x)" since we really want to test whether the sign
is positive (not negative).
* tdiv.c, tmul.c, tui_div.c: simplified some tests, in particular to
avoid a failure with the new mpfr_sgn macro for the tests; here,
the use of mpfr_sgn was correct, but one could do simpler.
* tgmpop.c: replaced "mpfr_sgn (z)" by "(mpfr_sgn) (z)" to avoid the
new mpfr_sgn macro (here, we really want the mathematical sign).
* tsgn.c: define MPFR_TESTS_TSGN as the goal of this program is to
test mpfr_sgn itself (both the function and the macro in mpfr.h).
[doc/README.dev] "To make a release": Enhanced step 5 (tarballs).
2017-09-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
patch to avoid using the system mpfr.h
2017-09-14 Vincent Lefèvre <vincent@vinc17.net>
[tests/tfms.c] Similar changes to what was done in tfma.c:
* replaced "mpfr_cmp" by "! mpfr_equal_p";
* code formatting (mainly reindentation);
* use of SAME_SIGN for better clarity.
[tests/tfma.c] Similar change to what was done in tfms.c (may be useful
in the future).
[tests] Got rid of the use of mpfr_print_binary, in general with
mpfr_dump. Replaced some "mpfr_out_str (stdout, 2, ...)" by mpfr_dump
for consistency or as improvements. Some other corrections in the
related error messages.
2017-09-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added info about autoconf-archive
2017-09-14 Vincent Lefèvre <vincent@vinc17.net>
Old, deprecated macros mpfr_add_one_ulp and mpfr_sub_one_ulp removed.
2017-09-13 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Do the tests_start_mpfr / tests_end_mpfr check only if
the .c file has a main() function; this avoids an error on trootn_ui.c,
which just does a #include.
[tests/troot.c]
* Use mpfr_set_zero instead of mpfr_set_ui / mpfr_neg (like what was
done for the infinity, using mpfr_set_inf).
* For exact cases (NaN, ±Inf, ±0), check that the ternary value is 0.
[tests/troot.c] For the root(±0,k) tests, before calling the function,
we set the target y to NaN with the wrong sign, so that if the code of
the function forgets to do something, this will be detected.
[tests/troot.c] Also check root(+0,42) and root(-0,17) for completeness.
[tests/troot.c] Really check the sign of the result 0 (the old test
was always false, thus useless!).
[doc/mpfr.texi] Updated the month.
New mpfr_rootn_ui function; mpfr_root deprecated.
* src/root.c: mpfr_rootn_ui is now the main code, and mpfr_root calls
mpfr_rootn_ui.
* src/mpfr.h: added mpfr_rootn_ui prototype; marked mpfr_root as
deprecated.
* Added tests/trootn_ui.c (includes troot.c).
* tests/troot.c: made it usable (via #include) by the new trootn_ui.c
test.
* tests/Makefile.am: added trootn_ui; at the same time, corrected the
order of the test programs (lexicographic, with exceptions).
* NEWS, TODO, doc/mpfr.texi: update.
[tests] Avoid duplicate code by defining the MAKE_STR() macro in
mpfr-test.h only instead of tgeneric.c and tversion.c.
2017-09-08 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] "To make a release": Updated the warning, as the issue
concerns the .ps file only (the .dvi file has no papersize info).
[doc/README.dev] "To make a release": Added a warning to check the
papersize of the generated dvi and ps files, which may be incorrect
(bug in texinfo(?) reported as Debian bug 874632).
Switched other gmplib.org URL's to https.
[doc/mpfr.texi] Updated URL:
http://gmplib.org → https://gmplib.org/
[doc/mpfr.texi] Updated URL:
ftp://ftp.gnu.org/gnu/mpfr/ → https://ftp.gnu.org/gnu/mpfr/
[tools/announce-text] Switched to https for ftp.gnu.org.
2017-09-07 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] "To make a release": update about the uploads.
2017-09-06 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Completed item on thread-safe DLL (shared library) support.
[src/mpfr-impl.h] Completed the fix in r11713.
[src/mpfr-impl.h] Fixed thread-safe DLL support with ICC and MSVC
on MS Windows without the GMP build directory (r11712 contained
inconsistent function names, yielding "unresolved external symbol"
errors in tabort_defalloc1.obj), second try.
[src] Attempt to fix thread-safe DLL support with ICC and MSVC on
MS Windows without the GMP build directory. See:
https://sympa.inria.fr/sympa/arc/mpfr/2017-09/msg00009.html
https://sympa.inria.fr/sympa/arc/mpfr/2017-09/msg00014.html
i.e. for the mpfr_allocate_func, mpfr_reallocate_func & mpfr_free_func
external TLS variables, one does the same thing as what had been done
for the other ones (__gmpfr_flags, __gmpfr_emin, __gmpfr_emax, etc.).
[tests] Added tget_q to svn:ignore property.
2017-09-05 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsprintf.c] With MPFR_CHECK_LIBC_PRINTF, disable the test of
the "'" flag with a non-glibc C library (SUS extension in printf).
In particular, it is not supported by AIX 7.2.
[src/mpfr-impl.h] In case decimal_point and/or thousands_sep are
non-single-byte characters (as found on FreeBSD 11 in fr_FR.UTF-8),
revert to the default value. Added a FIXME to support multibyte
decimal_point and thousands_sep.
[tests/tsprintf.c] Formatting.
[doc/README.dev] Added a paragraph about temporary result files created
by test programs.
[tests/Makefile.am] Added tfpif_rw.dat to CLEANFILES.
[tests] Renamed mpfrtest.txt, mpfrtest.dat and mpfrtest2.dat to
tfpif_rw.dat, tfpif_r1.dat and tfpif_r2.dat respectively.
[tests]
* toutimpl.c: Changed the filename of the result file like what
has been done in other test programs, to make sure that it will
not be reused by mistake. Removed comments about tmpname (which
does not exist).
* Makefile.am: Added this filename to CLEANFILES (even though the
file is removed by the test program, an error could occur before
its actual removal).
[tests]
* tfprintf.c, tout_str.c, tprintf.c: Do not use the same filename
for result files created in these test programs, as this breaks
parallel tests (note that such files are used only if /dev/null
does not work, so that Unix-like systems were not affected).
This should fix the bug reported in
https://sympa.inria.fr/sympa/arc/mpfr/2017-09/msg00000.html
as said in
https://sympa.inria.fr/sympa/arc/mpfr/2017-09/msg00005.html
* Makefile.am: added a CLEANFILES line with these files.
2017-09-01 Vincent Lefèvre <vincent@vinc17.net>
[tests/turandom.c] Added test_underflow().
(merged changesets r11691-11694 from the 3.1 branch)
2017-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
update
updated for mpfr-3.1.6-rc1
2017-08-28 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Run tools/ck-version-info.
[tools/mpfrlint] Updated a message due to the change in r11673.
[doc/README.dev] "To make a release": The DLL version may need to be
updated too.
[configure.ac] Added a comment about the DLL version.
[configure.ac] Updated DLL version to 6 (cur - age).
[tools/{ck-copyright-notice,ck-inits-clears}] Ignore Emacs lock files
(symbolic links) to avoid a failure when a file is being edited.
[tools] Clean up.
* Renamed check_inits_clears to ck-inits-clears (the other "check"
scripts have a name starting with "ck-").
* mpfrlint: updated the invocation of this test, simplifying it to
make it similar to the other ones (it was based on old code).
2017-08-27 Vincent Lefèvre <vincent@vinc17.net>
[tests/turandom.c] Disabled the reprod_abi test with GMP < 4.2.0
since the hardcoded values would be different.
2017-08-25 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Replaced
(MPFR_LIKELY(expr)) || (ASSERT_FAIL(expr),0)
by
(MPFR_LIKELY(expr)) || (ASSERT_FAIL(expr),MPFR_ASSUME(expr),0)
as a workaround to the fact that mpfr_assert_fail is not marked as
"no return" (bug 21415). Thus, after this code, expr must be true.
[tests/turandom.c] Check that the behavior does not depend on the
platform ABI or MPFR version.
[tests/turandom.c] Corrected error messages after r11661.
[tests/turandom.c] Renamed "reprod" to "reprod_rnd_exp" (reproducibility
test with several rounding modes and exponent ranges), because a second
reproducibility test will be added.
[tests/turandom.c]
* In underflow_tests, test the flags in all cases (not just when the
returned result is 0), possibly by first computing the result in a
large exponent range.
* Since the flags are now well tested in underflow_tests, no longer
test them in the second test of test_urandom for k = 0, which was
the incorrect test that was failing (see r11659).
[tests/turandom.c] Do some test several times in order to trigger
a "mpfr_urandom() returns incorrect flags for emin = 1" failure
when GMP_CHECK_RANDOMIZE is not set (default).
Note: It is this test that is actually wrong (it corresponds to the
old behavior, currently found in the 3.1 branch, and was not updated
after the mpfr_urandom code was fixed).
[tests/turandom.c] Code formatting. Added an assertion.
2017-08-24 Vincent Lefèvre <vincent@vinc17.net>
[tests/turandom.c] Check that the behavior of mpfr_urandom() does not
depend on the rounding mode.
[doc/mpfr.texi] Completed the description of mpfr_urandom.
[src/urandom.c] Completed comment.
2017-08-23 Vincent Lefèvre <vincent@vinc17.net>
[tests/turandom.c] In bug20170123, use a local gmp_randstate_t variable
instead of mpfr_rands, due to the gmp_randseed_ui (see r11653).
[tools/mpfrlint] Detect the use of gmp_randseed* functions on mpfr_rands
(this is bad practice: this would affect later tests, defeating the
purpose of GMP_CHECK_RANDOMIZE; another gmp_randstate_t variable should
be used instead of mpfr_rands).
[tests/{mpfr-test.h,tests.c}] Got rid of __gmp_randstate_struct, which
is internal to GMP: its use came from very old code (r2330 in 2003-06)
and it is no longer needed.
[tests/turandom.c] Disabled a test with GMP < 4.2.0 since it depends on
a specific behavior of the random generator, which changed in GMP 4.2.0
(the test would probably fail with such old GMP versions).
[src/urandom.c] Partly rewrote mpfr_urandom() so that the next
random state no longer depends on the current exponent range
and the rounding mode, and that the exceptions due to the
rounding of the random number are now correctly generated.
[doc/mpfr.texi] Updated the mpfr_urandom() documentation and
updated Section "API Compatibility / Changed Functions" to
mention the change in MPFR 4.0.
[NEWS] Mentioned the change for MPFR 4.0.
2017-08-22 Vincent Lefèvre <vincent@vinc17.net>
[src/urandom.c] Minor change about underflow, following the usage.
[tests/turandom.c] Added inex test for the underflow & overflow tests.
[tests/turandom.c] Added overflow tests.
[tests/turandom.c] Indentation.
[tests/turandom.c] Added underflow tests.
[tests/turandom.c] With mini-gmp, omit another test that assumes
a deterministic random generator.
[src/urandom.c] Bug fix: the inexact flag was not set on underflow.
[tests/turandom.c] Added tests of the flags. This currently yields
a failure (inexact flag not set on underflow).
[tests/turandom.c] Added a test of the underflow flag.
2017-08-21 Vincent Lefèvre <vincent@vinc17.net>
[src/urandom.c] Set the underflow flag if the drawn exponent is less
than emin. This corresponds to "underflow before rounding" while the
normal rule in MPFR is "underflow after rounding". Thus this needs to
be fixed.
Note: This simple change has been done so that it can be merged with
the 3.1 branch. But this will not be fixable in the 3.1 branch since
the significand is not drawn in this case, and drawing the significand
to determine whether there is an underflow would change the state of
the PRNG at the end of the function, breaking the ABI and the users'
expectations.
[src/urandom.c] Updated comments about overflow and its flag.
[src/urandom.c] Simplified the code, but, except for precision 1,
without changing the state of the PRNG.
Note: The code could be simplified even further, but the goal of the
current change is to allow it to be merged with the 3.1 branch (where
precision 1 is not supported) without too many conflicts.
[src/urandom.c] Moved some code without consequences. Updated comments.
[src/urandom.c] Useless parentheses; reformatting.
2017-08-17 Vincent Lefèvre <vincent@vinc17.net>
[src/set_float128.c] No longer depend on the native FP type "double"
(via mpfr_set_d), avoiding the usual precision issues with the x87
traditional FPU in particular. Use the internal representation with
limbs, instead. The code is simpler and should also be faster.
Note: together with r11627, this avoids the tset_float128 failure
with the "-m32 -mpc32" GCC options.
[src/get_float128.c] Removed variable z (no longer useful).
[src/get_float128.c] No longer depend on the native FP type "double"
(via mpfr_get_d), avoiding the usual precision issues with the x87
traditional FPU in particular. Use the internal representation with
limbs, instead. The code is simpler and should also be faster.
2017-08-14 Vincent Lefèvre <vincent@vinc17.net>
[src/get_float128.c] Fixed the remaining cases of mpfr_get_float128
(when the value is below the smallest subnormal in absolute value).
[src/get_float128.c] Partly fixed mpfr_get_float128 when it underflows.
[tests/tset_float128.c] Added tests for small values, in particular
involving underflows (and subnormals).
2017-08-13 Vincent Lefèvre <vincent@vinc17.net>
[src/get_float128.c] Reverted r11623 (a note mainly for the 3.1 branch,
which actually doesn't support __float128).
2017-08-12 Vincent Lefèvre <vincent@vinc17.net>
[src/get_float128.c] Updated the FIXME.
2017-08-08 Vincent Lefèvre <vincent@vinc17.net>
[src/get_float128.c] Added a FIXME after a bug report by Rob:
https://sympa.inria.fr/sympa/arc/mpfr/2017-08/msg00003.html
2017-08-03 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Section "Getting the Best Efficiency Out of MPFR" moved
from "Installing MPFR" to "MPFR Basics". Added corresponding node.
2017-08-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
new section "How to get the best out of MPFR"
2017-08-03 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Added a FIXME about memory allocation.
[doc/mpfr.texi] Updated the month.
[doc/mpfr.texi] Removed obsolete comments.
[doc/mpfr.texi] Updated paragraph on the MPFR formatted output functions
and overflow on the return type int.
2017-08-02 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Mention the use of the old dtags under Linux (see r11588).
[src] Moved mpfr_vasprintf from vasprintf.c to printf.c and updated
file descriptions for consistency (vasprintf.c should probably be
renamed later to something like printf_aux.c).
[src/printf.c] Updated a comment (taking r11269 into account).
[src/vasprintf.c] Added an assertion.
[src/vasprintf.c] Completed mpfr_vasnprintf_aux description.
2017-08-01 Vincent Lefèvre <vincent@vinc17.net>
[tests/{tstdint.c,tvalist.c}] Include "mpfr-test.h" instead of
"mpfr-impl.h" (this is done only when compiling with mini-gmp).
[tools/mpfrlint] Detect "mpfr-impl.h" inclusion by the test programs:
"mpfr-test.h" should be included instead; otherwise __MPFR_WITHIN_MPFR
will be defined, yielding failures under MS Windows with DLL.
2017-07-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed typo
2017-07-28 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Added important details for the example from r11595.
2017-07-27 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Minor changes.
[doc/mpfr.texi] Updated the month.
2017-07-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed FIXME related to r11595
2017-07-27 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Added FIXME on example from r11595.
2017-07-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr.texi] added example showing how to emulate fixed-point arithmetic
2017-07-17 Vincent Lefèvre <vincent@vinc17.net>
[src/sin_cos.c] Avoid integer overflows with precision 1100000 and
the 32-bit ABI (32-bit long), fixing bug reported by Simon Byrne:
https://sympa.inria.fr/sympa/arc/mpfr/2017-07/msg00002.html
[tests] Re-indented some RND_LOOP / RND_LOOP_NO_RNDF blocks.
[configure.ac] Under Linux, make sure that the old dtags are used
if LD_LIBRARY_PATH is defined, avoiding the following issue:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=859732
https://lists.gnu.org/archive/html/libtool/2017-05/msg00000.html
(merged changeset r11587 from the 3.1 branch)
2017-07-10 Vincent Lefèvre <vincent@vinc17.net>
[tests/tversion.c] Forgot casts for printf in r11585.
[tests/tversion.c] Added ABI information & tests.
2017-06-20 Vincent Lefèvre <vincent@vinc17.net>
[src/subnormal.c] Correction in comment (English).
2017-06-19 Vincent Lefèvre <vincent@vinc17.net>
[tests/tversion.c]
* Better organization; moved MPFR patches info below MPFR version.
* Output __GMP_CC and __GMP_CFLAGS values.
* Output GMP ABI info (to be completed with MPFR ABI info).
2017-06-03 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] Improved some AC_DEFINE comments.
[doc/README.dev] Added quotes for clarity.
[tests/mpf_compat.h] Always use stdout for failure messages.
[src/get_str.c] Improved comments (avoid the confusion between a
negative base argument and a negative base).
2017-06-02 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Punctuation.
2017-06-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added mpfr_get_q in Added Functions
src/get_str.c: fixed for negative base
tests/tget_str.c: added tests for negative base
tests/mpf_compat.h: non-regression tests for bugs fixed in revision 11565
src/get_str.c: allow -36 <= b <= -2 too (work in progress) with the same
meaning as in mpf_get_str
fixed a bug in mpfr_mul for RNDF when Mulders' algorithm is used
(and resolved a FIXME)
2017-06-02 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Corrected mpfr_get_q documentation.
[src/get_q.c] Added assertions to detect integer overflows, in case
mpfr_exp_t is larger than mp_bitcnt_t.
2017-06-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
src/mpf2mpfr.h: replaced __MPFR_GMP (requires internal mpfr-gmp.h)
src/mpf2mpfr.h: fixed fits_s* functions and get_si
use macro __MPFR_GMP
added new function mpfr_get_q
src/mpf2mpfr.h: added mpf_cmp_z (appeared in GMP 6.1.0)
2017-06-01 Vincent Lefèvre <vincent@vinc17.net>
[Makefile.am] Put doc/README.dev in EXTRA_DIST to provide this file in
tarballs too (it is not installed by "make install", though), since
it contains information that may be useful for users of tarballs and
various distributed files mention it.
[README] Update about the "doc" directory and "doc/README.dev".
[doc/README.dev] More information about the DEBUG macro.
[doc/mpfr.texi] Updated the month.
Update about MPFR_RNDF (faithful rounding):
* NEWS: mention that it is partially supported (should be updated
once MPFR_RNDF is completely supported).
* TODO: moved an item to the right place (MPFR_RNDF is not removed
from the TODO because it is not completely supported yet).
* doc/mpfr.texi: added a FIXME about the partial support.
2017-05-31 Vincent Lefèvre <vincent@vinc17.net>
[src/{atanh.c,log1p.c}]
* Replaced mpfr_get_exp by MPFR_GET_EXP (so that the exponent is
checked with --enable-assert).
* For a test, doing the division first should be better.
2017-05-31 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improved log1p and atanh for small inputs
added expm1 to mbench
added log1p to mbench
2017-05-29 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
Removed trailing spaces.
[tests] Code simplification and improvement by using SAME_VAL().
[tests/tbeta.c] Replaced not_same() by the simpler ! SAME_VAL().
[src/sum.c] Code reindentation due to a new test for MPFR_RNDF support,
and other minor changes in formatting and comments.
[doc/sum.txt] Typo in the MPFR_RNDF text.
Merged the "faithful" branch into the trunk:
faithful rounding (MPFR_RNDF).
[tests/tgeneric.c] For MPFR_RNDF, replaced EQUAL() by SAME_VAL(),
which also tests the sign (to distinguish +0 and -0).
[tests/tui_sub.c] Avoid a failure in 32-bit ABI by replacing
RND_LOOP by RND_LOOP_NO_RNDF.
Merged the latest changes from the trunk.
2017-05-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added new reference
2017-05-24 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsprintf.c] Fixed setlocale usage (problem detected with MinGW)
by not using the returned string any longer. Indeed, ISO C99 says that
this string "may be overwritten by a subsequent call to the setlocale
function".
[src] Moved "#include <errno.h>" from printf.c to vasprintf.c
(this should have been done in r5230, where EOVERFLOW was moved).
This fixes the "Got r = -1, errno = 0" errors in tprintf with
MPFR_CHECK_LARGEMEM=1.
[src/vasprintf.c] Added overflow detection at the end (due to the switch
to mpfr_intmax_t for the string length in the string_buffer structure,
it was no longer detected; however, this bug was not normally visible in
the tests because here, a negative value was returned thanks to wrapping
in a type conversion and the negative value was changed to the expected
-1 value in printf.c).
[src/vasprintf.c] Added log messages.
[src/vasprintf.c] In case of overflow, do not stop before everything has
been processed, allowing the %...n arguments to be filled, as decided.
[tests/tprintf.c] check_long_string() error handling: initialize n2 to
an invalid value and do all tests before exiting.
[src/vasprintf.c] Fixed some parts of overflow tracking.
[tests/tprintf.c] More detailed error message.
[tests/tprintf.c] Added tests with %ln.
[tests/tprintf.c] Improved check_vprintf_failure().
[src/vasprintf.c] Fixed the handling of the 'n' format specifier
for size = 0, still allowing its support in case of overflow on
the return value (i.e. when the number of characters that would
have been output is > INT_MAX).
Note: full support in case of overflow is still limited by GMP
and the C library.
[tests/tprintf.c] Increased the memory needed in check_long_string().
2017-05-23 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-intmax.h] Define mpfr_uintmax_t and MPFR_INTMAX_MAX too.
However, this will not necessarily be used by src/vasprintf.c, as
this can be regarded as an EOVERFLOW error for which the behavior
on the %...n values is not specified, i.e. we may not need to
support size values larger than INT_MAX.
2017-05-22 Vincent Lefèvre <vincent@vinc17.net>
[src/vasprintf.c] In a macro definition, changed a parameter to
lowercase so that it doesn't look like a constant to mpfrlint.
[src/vasprintf.c] Added a FIXME for the percent_n() / mixed() bug due
to the 'n' format specifier with size = 0. The way to fix this issue
depends on the specifications in case of overflow on the return value,
and for POSIX, they are unclear. Waiting for comments...
[src/mpfr-intmax.h] Define mpfr_intmax_t as being the largest
signed integer type available for the MPFR build. It will be
useful for the formatted output functions (src/vasprintf.c) to
handle the 'n' format specifier, assuming that the value may
be larger than INT_MAX, which is possible assuming that the
C standard has a defect in the corresponding specification:
https://sourceware.org/bugzilla/show_bug.cgi?id=21360
[tests/tsprintf.c] Added explanation for the bugs triggered by
percent_n() and mixed().
[tests/tsprintf.c] Added percent_n() test to reproduce the bug found
in mixed(), test without random data.
[src/vasprintf.c] In partition_number(), complete check for overflow
on total.
[src/vasprintf.c] Partially fixed check for integer overflow when
the long and int types have the same size.
[src/vasprintf.c] With assertions enabled, check that the number of
characters to be written computed in partition_number() corresponds
to what is really written.
[src/vasprintf.c] Fixed the bug triggered by the da_DK locale test: the
computation of the number of characters to be written was incorrect in
partition_number() when the thousands separator was not empty. This bug
was visible with size = 0 and could be visible near overflow on the
number of characters.
Note: the buggy code was introduced in r5288 (2008-02-15), which fixed
other issues with the thousands separator.
[tests/tsprintf.c] Do more tests in the da_DK locale (these are the
only tests for which the thousands separator is not empty).
[tests/tsprintf.c] Do more tests involving check_sprintf() in a loop
(to test mpfr_snprintf with size = 0 more often), and call mixed()
later in order to get failures without the use of %n first.
2017-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
get rid of computations with 'double' in mpfr_zeta
2017-05-19 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsprintf.c] Added a TODO about %n test.
[doc/README.dev] Added MPFR_TESTS_FPE_TRAP documentation.
[tests/tests.c] Corrected comment about MPFR_TESTS_FPE_TRAP.
Renamed MPFR_TESTS_DIVBYZERO to MPFR_TESTS_FPE_DIV (less confusing).
In doc/README.dev, updated the corresponding description.
[tests] Renamed MPFR_RAISE_EXCEPTIONS to MPFR_TESTS_FPE_TRAP.
[tests] Got rid of MPFR_TESTS_EXCEPTIONS (added in r11489 and above),
which is redundant with MPFR_TESTS_DIVBYZERO and MPFR_ERRDIVZERO. The
code related to these exceptions is now like r11488 (see the output of
"svn diff -r11488"), but keeping the following changes:
* Missing !defined(MPFR_ERRDIVZERO) tests added in r11498,11499.
* In tests.c:
- code related to traps (macro MPFR_RAISE_EXCEPTIONS, which will
be renamed);
- more detailed output about which FP exceptions occurred;
- removal of "#ifdef MPFR_ERRDIVZERO" (as in r11493), as this is
better with Automake 1.13+ (required by MPFR since r9375).
Note: EXCEPTIONS_FLAG renamed to FPE_FLAGS, since EXCEPTIONS_FLAG is
reserved by ISO C when <errno.h> is included.
[tests/tsprintf.c] Do the locale_da_DK() test several times to yield
a failure by default once the bug triggered by mixed() is fixed.
[tests/tsprintf.c] Updated comment about r11501: the failure occurs
with %n when the size argument of mpfr_vsnprintf is 0.
[tests/tsprintf.c] Do more tests with %n. One now gets a failure
by default (which occurs when one gets randsize <= 0).
[tests/tsprintf.c] Fixed portability issues: The va_end(3) man page
of Linux Programmer's Manual says: "On some systems, va_end contains
a closing '}' matching a '{' in va_start, so that both macros must
occur in the same function, and in a way that allows this."
[tests/tget_set_d64.c] Disable tests with a division by 0 (which now
occurs only with -DXDEBUG) if MPFR_ERRDIVZERO is defined.
[tests/tset_ld.c] Disable an overflow test with a division by 0
(now occurs only with -DXDEBUG) if MPFR_ERRDIVZERO is defined.
[doc/README.dev] Details for "-DMPFR_TESTS_DIVBYZERO -DMPFR_ERRDIVZERO".
[tests/tsprintf.c] In mixed(), initialize n2 to an invalid value
in order to ease failure analysis.
2017-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed leftover debug statement in last commit
fix for clang bug (https://bugs.llvm.org//show_bug.cgi?id=17686)
2017-05-19 Vincent Lefèvre <vincent@vinc17.net>
[tests/tests.c] Change for MPFR_TESTS_DIVBYZERO: in case of FE_DIVBYZERO
or FE_INVALID, fail unconditionally, not just when MPFR_ERRDIVZERO is
defined, otherwise one cannot see the output about the floating-point
exceptions with "make check" (the test of MPFR_ERRDIVZERO here should
have been removed after switching to Automake 1.13, which discards the
output when the test program succeeds).
Note: defining MPFR_TESTS_DIVBYZERO without MPFR_ERRDIVZERO is just for
debugging.
2017-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
more work on MPFR_TESTS_EXCEPTIONS
2017-05-19 Vincent Lefèvre <vincent@vinc17.net>
[tests/tests.c] Re-added code testing FE_DIVBYZERO and FE_INVALID with
-DMPFR_TESTS_DIVBYZERO -DMPFR_ERRDIVZERO, because MPFR_TESTS_EXCEPTIONS
is not ready yet.
[tests/tversion.c] Output IEEE floats status.
2017-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
check for fp exceptions (experimental)
2017-05-17 Vincent Lefèvre <vincent@vinc17.net>
[src/cmp2.c] Added/updated comments.
[tests/tcmp2.c] Added tests with equal numbers, possibly of different
sizes.
[src/cmp2.c] Corrected comments.
[tools/mpfrlint] In the detection of reserved macro names, skip ERR
from src/mpfr-gmp.h (this is a special case).
[tests/tget_set_d64.c] Made PRINT_ERR_MISC more robust.
[tests/*.c] Renamed the remaining macros whose names are reserved
by ISO C when <errno.h> is included.
2017-05-16 Vincent Lefèvre <vincent@vinc17.net>
[tests/texceptions.c] Made code formatting consistent.
[tests/*.c] Renamed "ERROR" macro (macro name reserved by ISO C
when <errno.h> is included) to "PRINT_ERROR", and made the macro
more robust.
Define the EXP() macro in src/mpfr-gmp.h only when needed (macro name
reserved by ISO C when <errno.h> is included).
[src/gamma.c] Got rid of the EXPM1_STR macro (macro name reserved
by ISO C when <errno.h> is included), made no longer interesting by
using mpfr_set_str_binary only once and another temporary variable.
At the same time, replaced the usual allocation by a GROUP allocation
(more efficient).
2017-05-15 Vincent Lefèvre <vincent@vinc17.net>
[tests/tcheck.c] Code reformatting (GNU coding style).
[tests/tcheck.c] Renamed "ERROR" macro (macro name reserved by ISO C
when <errno.h> is included) to "PRINT_ERROR".
Do not define macro names starting with "SIG" (+ uppercase letter)
as they are reserved when <signal.h> is included (ISO C, 7.31.7),
which happens to be the case in tests/tests.c, which also includes
tests/mpfr-test.h and src/mpfr-impl.h indirectly.
* src/mpfr-impl.h, tests/mpfr-test.h: renamed macros:
SIGN → VSIGN
SIGN_RAND → RAND_SIGN
* {src,tests}/*.{c,h}: updated the names in the use of these macros.
[tools/mpfrlint] Added a comment about the definition of reserved
identifiers (in particular, macro names).
[tools/mpfrlint] Detect the definition of reserved macro names.
[src/bernoulli.c] Changed isprime to is_prime in order to avoid obscure
problems if <ctype.h> is added to mpfr-impl.h in the future (or if this
function is made external). See ISO C "Future library directions",
Clause 7.31.2 "Character handling <ctype.h>".
2017-05-12 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Improved comments about assertions and MPFR_ASSUME().
2017-05-09 Vincent Lefèvre <vincent@vinc17.net>
[INSTALL] Mention the problem when almost all the tests fails with a
message "Incorrect MPFR version! ...".
Increase the buffer sizes even more, and added a comment. This may
be better in case of quick future changes (possibly for debugging),
without checking carefully. For the tests, optimal code is useless.
2017-05-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bugs found by gcc 7.1.0 (-Werror=format-overflow=)
[VL] The MPFR code was correct. This is actually a bug in GCC:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79257
2017-05-09 Vincent Lefèvre <vincent@vinc17.net>
[doc] Updated FAQ.html with update-faq.
2017-05-05 Vincent Lefèvre <vincent@vinc17.net>
[tools/mbench/timp.h] Updated TIMP_MEASURE() to handle the case where
the return value is 0: this probably means that timp_overhead was too
large and incorrect. In this case, TIMP_OVERHEAD() is called again to
recompute timp_overhead and the timing is redone.
Note: if we do not call TIMP_OVERHEAD() again, then TIMP_MEASURE()
loops indefinitely, meaning that timp_overhead was really too large.
[tools/mbench/timp.h] Comment at the wrong place. Fixed.
[tools/mbench/timp.h] Added a comment about r11458.
2017-05-04 Vincent Lefèvre <vincent@vinc17.net>
[tools/mbench/timp.h] Fixed overflows on unsigned arithmetic.
[tools/mbench/mfv5.h] Increased values from 2^60-1 to 2^64-1
(it is possible to get more than 2^60-1 cycles in practice!).
Merged the latest changes from the trunk, including some old changesets
related to mpfr_zeta that were skipped, resolving conflicts. Added RNDF
support to new code introduced by this merge:
* mpfr_mul_1n in src/mul.c (from r11281);
* mpfr_sqr_1n in src/sqr.c (from r11283);
* mpfr_div_1n in src/div.c (from r11284);
* mpfr_sqrt1n in src/sqrt.c (from r11293).
Merged r11198-11280 from the trunk; no conflicts but additional changes:
* About r11271 (src/add1sp.c), which introduces new special code
(function mpfr_add1sp1n), handle MPFR_RNDF in the same way as done
in similar existing special code (mpfr_add1sp1 and mpfr_add1sp2).
* In mpfr_add1sp3, do the same thing (this should have been done in
r11172, where this function was introduced via a merge).
* About r11279 (src/sub1sp.c, tests/tsub1sp.c), which introduces new
special code (function mpfr_sub1sp1n), do the same thing.
In tests/tsub1sp.c, s/RND_LOOP/RND_LOOP_NO_RNDF/ as usual to avoid
a failure.
* Note: concerning mpfr_sub1sp3, RNDF support was added at the same
time of the merge in r11179.
* Some style changes related to RNDF, in particular for consistency.
Merged r11197 from the trunk, resolving the conflict.
Merged r11179-11196 from the trunk (no conflicts).
2017-05-02 Vincent Lefèvre <vincent@vinc17.net>
[src/gamma.c] Clarified proof for tiny arguments again.
[src/gamma.c] Clarified proof for tiny arguments.
[src/gamma.c] In the proof for tiny arguments:
* Simplification suggested by Paul.
* Attempt to clarify the end.
2017-05-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added comment
added reference for mbench (rdtsc vs rdtscp)
2017-04-28 Vincent Lefèvre <vincent@vinc17.net>
[src/gamma.c] Tiny arguments: corrected a typo and added a TODO
(one might get a better condition).
[src/gamma.c] Corrections in a proof for tiny arguments. Added a TODO.
2017-04-27 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Update about the MPFR_GENERIC_ABI macro.
[src/sqr.c] Corrected a comment.
[src/sqrt.c] Blank line like in add1sp.c, sub1sp.c, etc.
[src/sqr.c] Blank lines and comment like in add1sp.c, sub1sp.c, etc.
[src/mul.c] Like in add1sp.c and sub1sp.c, do not define the specific
functions for low precision if MPFR_GENERIC_ABI is defined (they are
not called in such a case).
[src/sub1sp.c] Added blank lines for readability (like in add1sp.c).
s/interruption/interrupt/
[mbench] Updated copyright years. Added a comment.
2017-04-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
better detection of rdtscp
2017-04-18 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Updated a comment, with reference to GCC bug 80454.
2017-04-09 Vincent Lefèvre <vincent@vinc17.net>
[tests/tprintf.c] Avoid integer overflow from r11411 with 32-bit long.
2017-04-07 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Updated test to check that the snprintf function (C99)
is not used.
[doc/mpfr.texi] Corrected an English error.
[src/vasprintf.c] Fixed bug triggered by the test added in r11428:
the size field of struct printf_spec must have type size_t, not int,
because the size argument of mpfr_snprintf has type size_t.
[tests/tsprintf.c] Added a test that fails on 64-bit machines
(4-byte int, 8-byte size_t), due to the use of mpfr_snprintf
with required size = (size_t) UINT_MAX + 1.
[src/vasprintf.c] Minor changes.
[src/vasprintf.c] Comment re-indentation.
[src/ubf.c] Renamed mpfr_get_zexp to mpfr_init_get_zexp for clarity.
2017-04-06 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Fixed silly typo in MPFR_UBF_CLEAR_EXP() yielding
either an obscure memory leak or a crash in some mpfr_fmma calls.
We would really need formal proofs on the code... Or avoid macros.
2017-04-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tfmma.c] added one test
[tests/tfmma.c] fixed test
2017-04-06 Vincent Lefèvre <vincent@vinc17.net>
[src/add1.c] Updated comment about underflow.
[src/add1.c] Handling of UBF and overflow/underflow.
* Added a MPFR_ASSERTD related to the overflow code.
* Bug fix: handle underflow, possible if UBF input(s).
2017-04-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tfmma.c] added another test (currently fails)
2017-04-06 Vincent Lefèvre <vincent@vinc17.net>
[src/sub1.c] Bug fix: underflow was not detected in the case cancel = 0
with UBF numbers. At the same time, refactored the related code a bit.
[tests] Added tbeta to svn:ignore property.
[doc/mpfr.texi] Formatting of the mpfr_can_round example for 80-column
terminals + GNU coding style.
[tests/tfmma.c] Updated comment about bug20170405 (fixed in r11414).
[src/sub1.c] Also corrected the comment about overflow detection.
[src/sub1.c] Really fixed overflow detection (r11412 is broken).
[src/sub1.c] Fixed/improved UBF cases.
* Added an assertion (usual MPFR limitation with huge precisions,
affecting 32-bit ABI only in practice).
* Fixed overflow detection.
[tests/tprintf.c] In check_long_string(), which is called when
MPFR_CHECK_LARGEMEM is defined, increase tests_memory_limit if need be
in order to avoid an obvious failure due to insufficient memory.
[tests/memory.c] Write all error messages to stderr in order to make
sure that they remain visible when the standard output is redirected
(e.g. in tprintf). Rewrote the messages in a consistent way.
[tests/tfmma.c] Fixed return type of test added in r11407.
[tests/tinits.c] When MPFR_CHECK_LARGEMEM is defined, increase
tests_memory_limit if need be in order to avoid an obvious failure
due to insufficient memory.
2017-04-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added test that triggers an error
(see https://sympa.inria.fr/sympa/arc/mpfr/2017-04/msg00016.html)
2017-04-05 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
[doc/mpfr.texi] More details about errno.
2017-04-04 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Added a paragraph about the use of errno.
[doc/mpfr.texi] Details about EOVERFLOW.
2017-04-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tstrtofr.c] added test in bug20161217()
2017-04-03 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Update about functions returning a native floating-point value
and underflow/overflow.
[src/atanh.c] Removed comment giving the "optimal" working precision
(I do not see any proof in algorithms.tex, and it seems incorrect).
[TODO,src/log1p.c] log1p(x) on small x should also be improved instead
of computing log(1+x).
[TODO,src/atanh.c] Suggest a faster formula for atanh(x) on small x.
[src/atanh.c] Cosmetic changes (comments and whitespace).
[TODO] Update about ERANGE.
2017-03-27 Vincent Lefèvre <vincent@vinc17.net>
[tests/tbeta.c] Fixed a macro (use of mpfr_printf, missing cast).
2017-03-09 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Mention how to find the full list of bug fixes.
[tests/tstrtofr.c] Updated comments about bug20161217 and bug20170308.
[tests/tstrtofr.c] Added comments about bug20161217 and bug20170308.
[tests/tstrtofr.c] Updated comment: bug20170308 checks the same bug
as bug20161217.
[doc/mpfr.texi] Updated the month.
2017-03-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added non-regression test
2017-03-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[doc/mpfr.texi] results should not depend on machine rounding mode/precision
2017-03-06 Vincent Lefèvre <vincent@vinc17.net>
[doc/sum.txt] Minor corrections.
2017-03-05 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Added a comment about shiftq.
2017-02-28 Vincent Lefèvre <vincent@vinc17.net>
[tests/tbeta.c] C89 compatibility and some code reformatting.
[src/beta.c] Slightly improved comments.
[src/beta.c] Fixed a bug in reduced exponent range (not detected by
the current tests).
[src/beta.c] Added a comment for Beta(0,negative integer).
[src/beta.c] Eventually fixed the case z or w is 0 (note: r11374
did also other unwanted changes, reverted here).
[src/beta.c] Reverted my changes (this was incorrect).
[src/beta.c] Fixed special cases.
[src/beta.c] Added comments and some corrections (incomplete) for the
case "z or w is 0".
2017-02-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/beta.c] fixed case z or w is 0
[tests/tbeta.c] patch from Cade Brown
- signed zeros are checked in is_same
- the case above (summing non-integer negative z, w which sum to a negative integer)
2017-02-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[doc/mpfr.texi] added mpfr_beta in "Added Functions"
2017-02-27 Vincent Lefèvre <vincent@vinc17.net>
[src/jn.c] Use MPFR_ADD_PREC.
[src/beta.c] Updated comments; added a FIXME.
2017-02-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/jn.c] in case the first Ziv loop failed, take into account the number of
lost bits
2017-02-27 Vincent Lefèvre <vincent@vinc17.net>
[src/beta.c] Use MPFR_ARE_SINGULAR.
2017-02-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/beta.c] fix in case z and w are not integers and z+w is a nonpositive integer
[src/odd_p.c] new source file
[src/Makefile.am] new file odd_p.c
[src/beta.c] fixed bug
[src/mpfr-impl.h] renamed mpfr_is_odd into mpfr_odd_p
[src/pow.c] moved mpfr_is_odd (renamed mpfr_odd_p) into separate file
2017-02-27 Vincent Lefèvre <vincent@vinc17.net>
[src/beta.c] Added a FIXME (test failure with assertions).
[src/beta.c] Removed an unusual space.
[tests/tbuildopt.c] Added calls to tests_start_mpfr and tests_end_mpfr.
[tools/mpfrlint] Added a test to check that the usual test programs
call tests_start_mpfr and tests_end_mpfr.
2017-02-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/beta.c] several fixes
[src/pow.c] renamed is_odd to mpfr_is_odd, and export it
[src/mpfr-impl.h] export mpfr_is_odd as internal function
[tests/tbeta.c] added generic tests
2017-02-27 Vincent Lefèvre <vincent@vinc17.net>
[tests/tbeta.c] Added missing void in prototype.
Removed trailing spaces.
[tests/tbeta.c] Fixed the usage of MPFR types.
[tests/tbeta.c] Minor correction. Added a FIXME and a TODO.
2017-02-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tbeta.c] GNU style and C89 portability
[TODO] removed beta entry
new function mpfr_beta
[tests/tbeta.c] test file for mpfr_beta, contributed by Cade Brown from
ChemicalDevelopment (this commit is the file as it was
contributed, except the mpfr-test.h include)
2017-02-27 Vincent Lefèvre <vincent@vinc17.net>
[src/beta.c] Portability corrections.
2017-02-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/beta.c] fix for exact case beta(1,2^k) for k negative integer
[src/beta.c] special values are now implemented (should be reviewed)
2017-02-25 Vincent Lefèvre <vincent@vinc17.net>
[TODO] mpfr_root: replace "obsolete" by "deprecated" (the right word).
[TODO] Update about rootn.
[TODO] Added some propositions about rootn.
2017-02-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/root.c] added comment
added reference
2017-02-23 Vincent Lefèvre <vincent@vinc17.net>
[src/beta.c] Call mpfr_check_range as usual.
[src/beta.c] Extended the exponent range for the generic case.
[src/beta.c] Added a comment.
[src/beta.c] Various code improvement / fixes.
[src/beta.c] Added a FIXME.
2017-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/beta.c] added beta function (work in progress, not yet fully implemented,
and not tested)
2017-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/fmma.c] speedup of mpfr_fmma and mpfr_fmms
[src/fma.c] speedup of mpfr_fma when all operands have the same precision
(less than one full limb)
2017-02-21 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Note that the position of "const" in the mpfr_sum prototype
has been fixed (in case writers of interfaces for MPFR use that).
"a IEEE 754r decimal64 float" → "an IEEE 754-2008 decimal64 float".
2017-02-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/fma.c] speedup mpfr_fma for 1 limb
754R -> 754-2008
2017-02-20 Vincent Lefèvre <vincent@vinc17.net>
Removed trailing spaces.
[src/vasprintf.c] Solved the FIXME for %g on easy cases.
2017-02-17 Vincent Lefèvre <vincent@vinc17.net>
[src/zeta.c] mpfr_reflection_overflow: reverted r11322 as the rounding
direction was correct; it was a comment that was incorrect, now fixed.
[src/zeta.c] mpfr_reflection_overflow: fixed a rounding direction.
[src/zeta.c] Improvements of mpfr_reflection_overflow:
* Moved identical parts of the code at the beginning of if/else blocks
as a single part before the "if".
* When the rounding mode doesn't matter (exact result), use MPFR_RNDN.
* Updated comments (making them more consistent at the same time).
2017-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/zeta.c] added more comments for the overflow case
2017-02-14 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Added a note about why one uses "const mpfr_ptr *x" in the
prototypes instead of "const mpfr_srcptr *x" (old info from r5381).
[doc/sum.txt] Fixed the const position (see r11316) and added this note.
[src/{mpfr-impl.h,mpfr.h}] Code reformatting and other cosmetic changes.
[doc/mpfr.texi] For mpfr_sum, changed "mpfr_ptr const" to the equivalent
"const mpfr_ptr" (usual style, less confusing).
For mpfr_sum and its auxiliary functions, moved the const type qualifier
to the right place (mpfr_ptr *const → const mpfr_ptr *). This bug had
been introduced in r3642 (2005-06-10).
2017-02-13 Vincent Lefèvre <vincent@vinc17.net>
[src/zeta.c] mpfr_reflection_overflow: added comments and FIXME's;
fixed obvious typos in a comment and the code.
[src/zeta.c] mpfr_reflection_overflow: typo in a comment.
[src/zeta.c] Untabified.
[src/zeta.c] mpfr_reflection_overflow: added an assertion and a comment.
[src/vasprintf.c] Added a comment in a FIXME.
[src/vasprintf.c] Added MPFR_ASSERTD's.
[src/vasprintf.c] Avoid some potential integer overflows.
2017-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/zeta.c] improved overflow detection
2017-02-13 Vincent Lefèvre <vincent@vinc17.net>
[src/vasprintf.c] Added FIXME's: possible integer overflows.
2017-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fix for mpfr_zeta overflow on 32-bit computers
2017-02-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sqr.c] revert detection of leading bit in sqr_1 and sqr_2
(not clear it is faster)
2017-02-10 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsprintf.c] Added a mpfr_snprintf test with a null pointer,
"%#.*RDg" and a large precision (it currently takes too much memory,
like the similar ones).
[src/vasprintf.c] Added a FIXME for %g on easy cases (too much memory).
[tests/tsprintf.c] Added corresponding tests.
2017-02-09 Vincent Lefèvre <vincent@vinc17.net>
[src/vasprintf.c] Fix for mpfr_snprintf with size=0: do not allocate
a buffer for the output if not needed. This really fixes bug #21056.
The case size_t < unsigned int could not be solved completely due to
limitations from the C standard and GMP.
[src/sqrt.c] Avoid a warning due to an unused variable with
MPFR_GENERIC_ABI defined or GMP_NUMB_BITS != 64.
[src/sqrt.c] Added MPFR_ASSERTD's from comments.
2017-02-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tzeta.c] interm_overflow -> intermediate_overflow
2017-02-09 Vincent Lefèvre <vincent@vinc17.net>
[src/zeta.c] Updated a FIXME.
2017-02-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improved detection of fmma and fmms
[src/zeta.c] fixed long-standing failure in tzeta
2017-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sqrt.c] fixed a bug, and simplified code (sb=0 implies rb=0)
2017-02-08 Vincent Lefèvre <vincent@vinc17.net>
[src/vasprintf.c] Updated FIXME.
2017-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sqrt.c] new code for prec=GMP_NUMB_BITS
2017-02-08 Vincent Lefèvre <vincent@vinc17.net>
[src/vasprintf.c] Moved the size_t vs int FIXME, with details added.
[src/vasprintf.c] Added a MPFR_ASSERTN for security.
[src/vasprintf.c] Added a FIXME for the case size_t < unsigned int.
[src/vasprintf.c] Solved the r11288 FIXME, introducing new ones
with a more visible failure. Not fixed yet because there seems
to be another issue (already present at the beginning in r4993),
which should be considered first.
[src/vasprintf.c] Added a FIXME (related to the cause of the failure).
[src/vasprintf.c] Added some precondition assertions, as the buffer_cat
implementation requires that the current buffer position contains \0.
Note[VL]: tsprintf is still failing with assertions on my machine in
the 32-bit Linux/x86 ABI, but now on the new precondition instead of
postcondition. The behavior with size = 0 actually depends on the state
of uninitialized memory (even in the 64-bit ABI), so that the failures
may be random; the problem is detected by valgrind.
[src/div.c] Declare variables used by GMP_NUMB_BITS == 64 only in the
related code.
2017-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mul.c] simplified logic for special code
[src/div.c] fixed bug in mpfr_div_1n when extra=0
[src/div.c] special code for prec=GMP_NUMB_BITS
[src/sqr.c] new code for p = GMP_NUMB_BITS, and small improvement in mpfr_sqr_1
[src/mul.c] cosmetic changes
2017-02-08 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsub1sp.c] Fix: C++ compatibility.
2017-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mul.c] added special code for prec=GMP_NUMB_BITS
[src/add1sp.c] use special code only when MPFR_GENERIC_ABI is not defined
[src/sub1sp.c] idem as above
2017-02-08 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Declare the mpfr_vasnprintf_aux prototype (which
uses va_list) only if <stdarg.h> has been included, otherwise the
build was failing with GCC in C90 mode under Linux (and could fail
with other C implementations where this header isn't automatically
included as a consequence of the inclusion of some other header).
2017-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp.c] new function for p=GMP_NUMB_BITS, fixed bug in mpfr_sub1sp3
[tests/tsub1sp.c] added new tests
2017-02-08 Vincent Lefèvre <vincent@vinc17.net>
[src/vasprintf.c] Fixed bug introduced in r11273.
[tools/mpfrlint] Updated the "simple mp_limb_t constants" test.
Made some assertions a bit more readable.
[tests/tsub1sp.c] Fixed mpfr_inits2/mpfr_clears sentinel → (mpfr_ptr) 0
[tests/tsprintf.c] C90 compatibility.
2017-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/vasprintf.c] avoid memory allocation for snprintf with size=0
[src/sub1sp.c] fixed a bug in mpfr_sub1sp1 and mpfr_sub1sp2 (corner case)
[tests/tsub1sp.c] added non-regression test
2017-02-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/add1sp.c] added special code for p=GMP_NUMB_BITS
[src/vasprintf.c] improved also %a and %e
[src/vasprintf.c] fixed bug #21056
2017-02-07 Vincent Lefèvre <vincent@vinc17.net>
[TODO] More about the mpz_t pool.
[src/free_cache.c] Better file description (keeping it short).
[src/free_cache.c] Updated comments (mpz_t cache → mpz_t pool).
[doc/mpfr.texi] Updated the month.
[doc/mpfr.texi] Clarified mpfr_asprintf & mpfr_vasprintf specification
in case of error.
[src/vasprintf.c] Code cleanup.
2017-02-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
partial solution of bug #21056: a test of mpfr_sprintf still fails
[tests/tmul.c] added test for underflow corner case
[src/div.c] simplified underflow in div_1 and div_2 (one case is not possible)
[tests/tsqr.c] added another corner case for underflow and mpfr_sqr_2
[tests/tsqr.c] added a corner underflow case
2017-02-06 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Added missing function prototype after r11256.
2017-02-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr-impl.h] now mpz_init2 uses the mpz spool too
2017-02-03 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Added: check the small-precision tables in the tests?
Removed trailing whitespace.
[acinclude.m4] Fixed code for the _mulx_u64 test.
2017-02-02 Vincent Lefèvre <vincent@vinc17.net>
[tests/tversion.c] Output whether _mulx_u64 is available.
[acinclude.m4] Fixed _mulx_u64 detection to avoid failures in tests
with ICC 15: we need an AC_RUN_IFELSE, not just an AC_LINK_IFELSE.
2017-01-31 Vincent Lefèvre <vincent@vinc17.net>
[src/invsqrt_limb.h] Improved constants: make their meaning explicit;
portability with 32-bit long (and 64-bit limb).
2017-01-31 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/invsqrt_limb.h] new macro __gmpfr_sqrt_limb_approx
[src/sqrt.c] new sqrt1 code using __gmpfr_sqrt_limb_approx
2017-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sqrt.c] improved slow branch of mpfr_sqrt2
[src/div.c] improved slow branch of mpfr_div_2
[src/div.c] fixed TODO: replaced two if-statements by while-loop
2017-01-30 Vincent Lefèvre <vincent@vinc17.net>
[src/div.c] Added TODO's.
[src/div.c] Added a MPFR_ASSERTD.
2017-01-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/atan.c] added comment
[src/invsqrt_limb.h] fixed __gmpfr_sqrt_limb macro
[src/atan.c] small optimization
2017-01-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/atan.c] speedup for small precision
2017-01-27 Vincent Lefèvre <vincent@vinc17.net>
[src/mul.c] Disable mpfr_mul_{1,2,3} if MPFR_GENERIC_ABI is defined.
[src/mul.c] Removed useless parentheses that can inhibit warnings.
2017-01-26 Vincent Lefèvre <vincent@vinc17.net>
[src/mul.c] Updated TODO.
[src/mul.c] Added a TODO about an optimization.
2017-01-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sqrt.c] fixed error bound for mpfr_sqrt2_approx
2017-01-25 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Added optimization of test + shift for some processors.
[src/sub1sp.c] Added MPFR_FULLSUB code for mpfr_sub1sp2.
2017-01-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sqrt.c] changed error bound back from 16 to 15
2017-01-25 Vincent Lefèvre <vincent@vinc17.net>
[doc/add-with-carry.c] Added reference to my bug report about Clang's
carry detection missed optimization in chained add-with-carry.
2017-01-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sqrt.c] updated error bound for __gmpfr_invsqrt_limb_approx
2017-01-25 Vincent Lefèvre <vincent@vinc17.net>
[src/sub1sp.c] Added refs to missed/broken optimization with Clang/LLVM.
[src/sub1sp.c] Use the FULLSUB only. Added a comment about the change
in r11227.
2017-01-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp.c] changed MPFR_FULLSUB variant into faster code
2017-01-24 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Texinfo typography correction.
[doc/mpfr.texi] Improvements concerning the exponent range.
* mpfr_get_exp: added a FIXME in a comment (documented behavior?).
* mpfr_set_emin / mpfr_set_emax: more specification and details.
* mpfr_subnormalize: clarification; added a warning about emin.
* Example of mpfr_subnormalize: added a note.
In particular, this follows a confusion:
https://sympa.inria.fr/sympa/arc/mpfr/2017-01/msg00024.html
2017-01-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/invsqrt_limb.h] changed slightly definition of d10 and d37 (does not
change final error analysis)
2017-01-23 Vincent Lefèvre <vincent@vinc17.net>
[src/sub1sp.c] Updated comments about subtraction with borrow; the first
one from r11213 was incorrect (bad interpretation of the generated code
for GCC, potentially on a different alternate source code for Clang).
2017-01-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp.c] simplified mpfr_sub1sp1()
[tests/turandom.c] added non-regression test
2017-01-23 Vincent Lefèvre <vincent@vinc17.net>
[src/urandom.c] Added a FIXME as mpfr_urandom does not always set flags.
[src/urandom.c] Simplified code (no changes in the behavior).
2017-01-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/urandom.c] fixed bug reported by Trevor Spiteri
(https://sympa.inria.fr/sympa/arc/mpfr/2017-01/msg00020.html)
2017-01-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed mpn_sqr_n into mpn_sqr
2017-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
new version of mpfr_sqrt2_approx (no longer needs sqrt_tab.h)
2017-01-20 Vincent Lefèvre <vincent@vinc17.net>
[src/sub1sp.c] Updated TODO, mentioning an optimization bug in LLVM.
[src/sub1sp.c] Updated TODO about full subtraction with borrow.
[src/sub1sp.c] Added alternate code (enabled with -DMPFR_FULLSUB, until
fully tested) to replace a test + correction by a 2-limb subtraction,
recognized by GCC and Clang.
2017-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
renamed __gmpfr_invsqrt_limb into __gmpfr_invsqrt_limb_approx to better reflect
it only gives an approximation
2017-01-20 Vincent Lefèvre <vincent@vinc17.net>
[src/invert_limb.h] Just like for invsqrt_limb.h (r11210), in 1UL << 60,
replaced 1UL by MPFR_LIMB_ONE to make the code valid with 32-bit long.
[src/invsqrt_limb.h] Bug fix: replaced 1UL by MPFR_LIMB_ONE since the
computations are done on limbs, which are expected to have 64 bits in
this context (the old code would fail on MS Windows / MinGW, where limbs
are 64-bit unsigned long long and unsigned long is a 32-bit type).
[src/invsqrt_limb.h] Portability correction: avoid lines longer than the
POSIX line-length limit of 2047 characters; actually fit on 80 columns.
2017-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
faster version of mpfr_sqrt1(), with smaller table
[src/invert_limb.h] improved __gmpfr_invert_limb* for 64-bit limb
2017-01-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/div.c] use ADD_LIMB macro, and fixed comment
2017-01-17 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] MPFR_PARSE_DIRECTORY macro definition: workaround if
the realpath command is not found. Suggestion by Trevor Spiteri:
https://sympa.inria.fr/sympa/arc/mpfr/2017-01/msg00013.html
Note: I had to modify the patch to use quadrigraphs, otherwise the
generated configure file was invalid.
2017-01-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tdiv.c] added code to exercise mpfr_div2_approx
2017-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/div.c] new variant of mpfr_div2_approx()
2017-01-13 Vincent Lefèvre <vincent@vinc17.net>
[src/invert_limb.h] Fit on 80 columns (one line was over the
POSIX line-length limit of 2047 characters).
[src/invert_limb.h] Correction in __gmpfr_invert_limb for 32-bit ABI:
_d was used before being defined.
2017-01-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[invert_limb.h] added invert_limb code for 32-bit
2017-01-13 Vincent Lefèvre <vincent@vinc17.net>
[src/add1sp.c] Improved a line based on analysis (+ timings I've done
on x86_64 with GCC and Clang give better results, though they cannot
be conclusive since the gain is too small compared to other possible
causes of variations).
[tools/mbench/Makefile] Added -static to CFLAGS in order to avoid
a link error when MPFR has been built with Clang (linking is done
with .a libraries, i.e. static libraries).
[src/add1sp.c] Replaced "return 0;" by "MPFR_RET(0);" to emphasize on
the fact that we return a ternary value (code instrumentation may also
be easier later). Note: this is equivalent since the macro expands to
0 != 0 ? ... : 0, which gives 0 via trivial optimization.
[src/add1sp.c] Improvements in mpfr_add1sp1; added a TODO.
Note for rb -> bp[0]: the generated code is the same, but the source
is more readable (-> rb has only one meaning).
[src/div.c] C90 compatibility (avoid initializer elements not computable
at load time).
2017-01-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/div.c] added some alternate code for mpfr_div2_approx (disabled for now)
fixed bug in urandomb.c reported by Dominic Chen
(https://sympa.inria.fr/sympa/arc/mpfr/2017-01/msg00011.html)
and replaced MPN_COPY_INCR/MPN_COPY_DECR by mpn_copyi/mpn_copyd
[src/div.c] small improvement in div_1 and div_2: force all precisions to be
equal, then we cannot have rb <> 0 and sb = 0
[src/div.c] improved case p=127 (or two-limb case with hard to round case)
2017-01-12 Vincent Lefèvre <vincent@vinc17.net>
[src/add1sp.c] Added a TODO: slightly better code?
2017-01-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/div.c] improve mpfr_div_1 for precision 63
2017-01-12 Vincent Lefèvre <vincent@vinc17.net>
[src/rndna.c] Updated comments.
2017-01-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sqrt.c] improved mpfr_sqrt2_approx()
2017-01-12 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Typographic correction (including generated spaces).
2017-01-10 Vincent Lefèvre <vincent@vinc17.net>
Improvement of additions with carry.
* Added doc/add-with-carry.c showing how to do an addition with carry
in C (to make the compiler understand the code).
* src/mpfr-impl.h: added ADD_LIMB macro (addition with carry).
* src/sqr.c: use this ADD_LIMB macro to improve the generated code.
2017-01-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sqr.c] 2 calls to umul_ppmm are enough in mpfr_sqr_2 in most cases
[src/div.c] added FIXME
[src/sub1sp.c] added comments
[src/sqrt.c] made code coherent with comment
2017-01-10 Vincent Lefèvre <vincent@vinc17.net>
[src/sqrt.c] Improved comment from r11180.
2017-01-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sqrt.c] improved error bound for mpfr_sqrt2_approx, with known direction
of error
2017-01-10 Vincent Lefèvre <vincent@vinc17.net>
Merged the latest changes from the trunk and added RNDF support
in mpfr_sub1sp3.
[src/sub1sp.c] Fixed other two bugs in special code for 3 limbs.
TODO: non-regression tests should be added for both.
[src/sub1sp.c] Fixed some bugs in special code for 3 limbs.
[src/sub1sp.c] Simplified a test.
2017-01-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sqr.c] deal with RNDF in sqr_1, sqr_2 and sqr_3
[src/mul.c] deal with RNDF in mpfr_mul_3
[src/sub1sp.c] added special code for 3 limbs
2017-01-09 Vincent Lefèvre <vincent@vinc17.net>
Merged the latest changes from the trunk.
[src/add1sp.c] Fixed too large shift count in r11170 (code for 3 limbs).
2017-01-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/add1sp.c] added special code for 3 limbs
[src/sqr.c] added special code for 3 limbs
2017-01-09 Vincent Lefèvre <vincent@vinc17.net>
Merged the latest changes from the trunk (changing a RND_RAND to
RND_RAND_NO_RNDF in order to avoid a failure in a test).
[tests/tsub1sp.c] Fixed a return type.
[doc/README.dev] Updated note added in r11165.
[doc/README.dev] Added a note about cross-compilation and test
under Wine, with references to bugs in autoconf and dash.
2017-01-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tmul.c] fixed typo
2017-01-09 Vincent Lefèvre <vincent@vinc17.net>
[src/round_raw_generic.c] Added MPFR_RNDF special support (seen as
MPFR_RNDZ since this is faster, with *inexp = 0).
2017-01-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp.c] fixed bug in mpfr_sub1sp2 when exponent diff. is GMP_NUMB_BITS
[tests/tsub1sp.c] added testcase
2017-01-09 Vincent Lefèvre <vincent@vinc17.net>
[src/mul.c] Bug fix in mpfr_mul_3; tmul no longer fails (64-bit ABI).
[tests/tmul.c] Added test of mpfr_mul on 1 to 3 limbs. Currently fails.
2017-01-08 Vincent Lefèvre <vincent@vinc17.net>
[src/mul.c] Define aq = MPFR_GET_PREC (a), and use this.
2017-01-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mul.c] added mpfr_mul_3
[src/sqrt.c] renamed internal functions
[src/sub1sp.c] cosmetic change
2017-01-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/exp.c] avoid using a full limb as precision
[src/sqrt.c] removed obsolete comment
[src/get_str.c] avoid precision = GMP_NUMB_BITS
[src/div_ui.c] added comment
2017-01-06 Vincent Lefèvre <vincent@vinc17.net>
[tools/mbench/README] Say how to disable a non-working library.
Merged the latest change from the trunk.
2017-01-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/div.c] fixed previous commit: mpfr_div_1 and mpfr_div_2 also work for
GMP_NUMB_BITS <> 64, only some fast code inside is not defined
2017-01-06 Vincent Lefèvre <vincent@vinc17.net>
Merged the latest changes from the trunk.
2017-01-05 Vincent Lefèvre <vincent@vinc17.net>
[src/div.c] Use mpfr_limb_ptr instead of mp_ptr.
[src/div.c] Fix for GMP_NUMB_BITS != 64.
2017-01-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/div.c] faster division for 2 limbs
2017-01-05 Vincent Lefèvre <vincent@vinc17.net>
[src/div_ui.c] Coding style.
[src/div_ui.c] Simplification.
[src/div_ui.c] Replaced a MPFR_ASSERTN by MPFR_STAT_STATIC_ASSERT.
[tests/tdiv_ui.c] Correction for 64-bit limb with 32-bit unsigned long.
[tests/tdiv_ui.c] Fix when GMP_NUMB_BITS != 64.
2017-01-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
last fix was incomplete
[src/div_ui.c] fixed a bug in mpfr_div_ui (also affects mpfr_div since it calls
mpfr_div_ui when the divisor has a few bits)
fixed underflow bug by replacing !MPFR_IS_LIKE_RNDZ by new macro
MPFR_IS_LIKE_RNDA: for RNDN, !MPFR_IS_LIKE_RNDZ was true, while new macro
MPFR_IS_LIKE_RNDA is false
2017-01-04 Vincent Lefèvre <vincent@vinc17.net>
[tests/tdiv.c] Added a test that triggers an assertion failure
in a reduced exponent range (found from the generic tests with
GMP_CHECK_RANDOMIZE=1483628702).
[tests/tgeneric.c] Added debug messages for overflow & underflow tests.
[tests/tdiv_ui.c] Added a comment on new test (doesn't fail).
2017-01-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tdiv_ui.c] added new test
2017-01-03 Vincent Lefèvre <vincent@vinc17.net>
[src/invert_limb.h] Removed an unused variable.
2017-01-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
use a macro instead of a function for __gmpfr_invert_limb and
__gmpfr_invert_limb_approx saves 2-3 cycles
2017-01-01 Vincent Lefèvre <vincent@vinc17.net>
Merged the latest changes from the trunk.
[doc/mpfr.texi] Updated the month.
Copyright notice update: added 2017 with
perl -pi -e 's/ (\d{4}-)?(2016)(?= Free Software)/
" ".($1||"$2-").($2+1)/e' **/*(^/)
under zsh, reverting the tools/mbench directory (not distributed with
MPFR). Removed 2016 from the example in the doc/README.dev file.
2016-12-31 Vincent Lefèvre <vincent@vinc17.net>
[src/sqr.c] Bug fixes (portability): replaced left shift of a value
that can be negative by a multiplication by 2.
[src/sqrt.c] C90 compatibility.
[src/div.c] C90 compatibility.
[src/invert_limb.c] Removed unused variable.
2016-12-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mul.c] small speedup in mpfr_mul_2 by not computing the product b0*c0
[src/mul.c] fixed typo in comment
[src/sqr.c] likewise
[src/mul.c] fixed regression for 1/2 limbs introduced in revision 11098:
critical routines should not be exported, otherwise we lose a few
cycles (maybe they are inlined by the compiler)
[src/div.c] further improvement in mpfr_div_1()
[src/div.c] use an approximate quotient in mpfr_div_1()
[src/div.c] simplify mpfr_div_1()
[src/invert_limb.c] new file for __gmpfr_invert_limb internal function
(only provided so far for 64-bit limb)
[src/div.c] mpfr_div_1 and mpfr_div_2 don't require --enable-gmp-internals
any more
[sqrt_tab.h] better file description
2016-12-29 Vincent Lefèvre <vincent@vinc17.net>
Improvement concerning the _mulx_u64 intrinsic.
2016-12-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/div.c] replace GMP's invert_limb (internal) by own code
2016-12-29 Vincent Lefèvre <vincent@vinc17.net>
Merged the latest changes from the trunk.
[src/sqrt.c] Replaced constant MPFR_ASSERTD by MPFR_STAT_STATIC_ASSERT.
2016-12-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sqr.c] use special code for 1 and 2 limbs
[mbench] added mpfr_sqr
[src/sqrt.c] faster sqrt code for 2 limbs and 64-bit limb (removed special code
for 32-bit limb)
[src/sqrt_tab.h] new table for mpn_sqrtrem4_approx
[tlog.c] missing printf()
2016-12-27 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Mention that mpfr_get_str now also sets the inexact flag when
the conversion is inexact (completing r11073).
[mpfr.texi] Be stronger in mpfr_round_nearest_away documentation
(as the ternary value is used each time the last bit on p+1 bits
is not 0, i.e. in about half cases).
2016-12-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr.texi] added stuff in mpfr_round_nearest_away documentation
2016-12-27 Vincent Lefèvre <vincent@vinc17.net>
[src/log.c] Added another FIXME concerning the error analysis.
[src/log.c] Added an assertion and a FIXME: error in the MPFR code or
in the proof (error analysis).
[src/log.c] Slight simplification / improvement.
[doc/algorithms.tex] In Section "The logarithm function" (from r9046),
removed everything concerning the AGM since this is not what is done
in the MPFR code, where mpfr_agm is simply called (and this function
already has its own description later).
Note: The error analysis of mpfr_log can only be found in log.c, but
seems incorrect (though the bounds may be valid); it was introduced
in r416.
2016-12-26 Vincent Lefèvre <vincent@vinc17.net>
Merged the latest changes from the trunk (this concerns only src/log.c).
[src/log.c] Group constant terms together (GCC takes advantage of this,
at least on x86_64).
[src/log.c] Check for integer overflow (no visible changes in
standard configuration) + explanations.
[src/log.c] Get the exponent of the input only once.
2016-12-20 Vincent Lefèvre <vincent@vinc17.net>
[doc/sum.txt] Update for faithful rounding (MPFR_RNDF).
[src/sum.c] Fixed the bug mentioned in r11077.
[tests/tsum.c] The new test for MPFR_RNDF in r11079 can actually trigger
a failure; increased the number of tests to get a failure by default.
[tests/tsum.c] Improved a test to support MPFR_RNDF. It doesn't fail,
but would if 0 in "corr = 0" were changed to -1 or 1 (tested).
Removed trailing spaces.
[src/sum.c] Improvement for MPFR_RNDF, but still based on the change
done in r10512, which was incorrect; added a FIXME (a non-regression
test needs to be added first).
Merged the latest changes from the trunk (this concerns only src/sum.c
and will be useful for the upcoming improvement).
[src/sum.c] Delay some assignments so that they are done just before
the variables are used (this should have been done in r10467).
Merged the latest changes from the trunk.
[doc/mpfr.texi] For mpfr_get_str, explicitly say that the inexact flag
is set iff the result is inexact (since this may not be obvious and this
wasn't the case until now). In the compatibility section, mention this
change.
[doc/mpfr.texi] For mpfr_get_str, removed the note saying that
the inexact flag is not set when the conversion is inexact:
this is fixed in r11071.
[src/get_str.c] Corrected a comment and a test for inexactness
(→ the new tget_str.c test no longer fails).
2016-12-19 Vincent Lefèvre <vincent@vinc17.net>
[tests/tstrtofr.c] Added a comment.
[src/strtofr.c] Better indentation.
[tests/tstrtofr.c] Replaced mpfr_cmp() == 0 by mpfr_equal_p().
[doc/mpfr.texi] Updated the month.
[src/get_str.c] Removed an obsolete comment, which came from r2757
(and even before, under another form); this comment no longer made
any sense as the sign of dir is no longer tested.
[src/get_str.c] Indentation fixed.
[src/get_str.c] Setting the inexact flag as done in r11060 was incorrect
since the flags are restored. Moreover, this was done even when the Ziv
loop was going to fail (it's not clear whether this was expected). Moved
the test out of the Ziv loop, and update the copy of the flags instead
of the flags that will be overwritten.
Note: this still fails, but now for another reason.
[tests/tget_str.c] Check the inexact flag for mpfr_get_str.
The test currently fails.
2016-12-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[get_str.c] inexact flag should now be correct in mpfr_get_str
[strtofr.c] updated comment
2016-12-18 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Added a short note about the default precision for Re.
2016-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr.texi] added emin in comment about mpfr_round_nearest_away
fixed bug in mpfr_strtofr (and likely similar bug in mpfr_get_str)
2016-12-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tstrtofr.c] added test for bug in mpfr_strtofr()
2016-12-17 Vincent Lefèvre <vincent@vinc17.net>
[src/sqrt.c] Added "do ... while (0)" in macro definition.
2016-12-16 Vincent Lefèvre <vincent@vinc17.net>
Removed trailing whitespace.
[src/round_raw_generic.c] Completed the support for MPFR_RNDNA (set
*inexp if use_inexp is true), from a patch by John P. Hartmann.
2016-12-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
new mpn_sqrtrem4_approx function (unused so far)
2016-12-15 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsqrt.c] The latest changes made tsqrt fail in an inexact test
on MPFR_RNDF. Fixed by changing RND_RAND to RND_RAND_NO_RNDF.
Merged the latest changes from the trunk.
[src/sin.c] Handled a FIXME.
[src/sqrt_tab.h] Added copyright notice.
2016-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[sqrt.c] simplify code for GMP_NUMB_BITS = 64
2016-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
better fix than r11025
[sqrt_tab.h] new header file with table for mpn_sqrtrem2_approx()
[sqrt.c] new version of mpn_sqrtrem2_approx()
[sqrt.c] added mathematical error in mpn_sqrtrem2_approx()
added non-regression test for bug fix in r11037
2016-12-14 Vincent Lefèvre <vincent@vinc17.net>
[src/vasprintf.c] Fixed a bug as spec.prec can be a negative number
other than -1 (if such a value is given as an argument with ".*").
This is the probable cause of the assertion failure on:
https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=21056&group_id=136
2016-12-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[sqrt.c] faster version of mpn_sqrtrem2 for 64-bit limb
[sqrt.c] approximate version of mpn_sqrtrem2, saves a few cycles in mpfr_sqrt1
[add/sub] added MPFR_UNLIKELY when adding one ulp changes the binade
2016-12-12 Vincent Lefèvre <vincent@vinc17.net>
[src/sin.c] Added missing word in r11032 comment.
[src/sin.c] Common/related subexpressions. Added a FIXME.
2016-12-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[cos.c,exp_2.c,log.c] improved initial precision for Ziv's strategy
[sin.c] improved strategy for initial precision
[sqrt.c] updated code and comments
[sqrt.c] slightly improve mpn_rsqrtrem1() (and detailed error analysis)
[sqrt.c] removed mpn_sqrtrem1 (no longer needed since r11023)
[sqrt.c] fixed comments to be coherent with the code
fixed https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=21053&group_id=136
2016-12-09 Vincent Lefèvre <vincent@vinc17.net>
[src/sqrt.c] Corrected a comment (1 has exponent 1 and we support
precision 1).
2016-12-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[sqrt.c] no more special case for prec <= GMP_NUMB_BITS/2, and added comments
2016-12-09 Vincent Lefèvre <vincent@vinc17.net>
[src/sqrt.c] Bug fix (replaced = by ==). Note: this kind of bug could
be detected by avoiding extra parentheses.
[src] Simplified ~MPFR_LIMB_ZERO to MPFR_LIMB_MAX.
2016-12-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[div.c] simplified mpfr_div_1 and mpfr_div_2
[div.c] added comments and simplified code
[div.c] simplified code
likewise for mpfr_mul_2()
fixed bug in mpfr_mul_1() introduced in r11004 and added test case
[div.c] simplified underflow test in mpfr_div_1()
2016-12-09 Vincent Lefèvre <vincent@vinc17.net>
[src/div_ui.c] underflow is unlikely!
[src/sqrt.c] overflow and underflow are unlikely!
2016-12-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[div.c] overflow and underflow are unlikely!
[div.c] slightly better code (less dependencies) for mpfr_div_1 when u0 >= v0
[div.c] simplified mpfr_div_1() code
[div.c] in mpfr_div_1, do not deal with the case where the precision is
<= GMP_NUMB_BITS/2, to not slow down the general case
2016-12-09 Vincent Lefèvre <vincent@vinc17.net>
[src/mul.c] Slight improvement (but shouldn't affect the generated code
with an optimizing compiler).
2016-12-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mul.c] likewise for mpfr_mul_2()
[mul.c] simplified mpfr_mul_1()
fixed similar bug in mpfr_mul_2() + non-regression test
[mul.c] simplified the code and fixed a bug
[tmul.c] added non-regression test for fixed bug
[sub1sp.c] added comment + assert
2016-12-09 Vincent Lefèvre <vincent@vinc17.net>
[src] Fixed bug introduced in r10964 with --with-gmp-build: move
the numberof_const() definition from mpfr-gmp.h to mpfr-impl.h.
2016-12-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[add1sp.c] added comment
[add1sp.c] simplified mpfr_add1sp2()
[sub1sp.c] in mpfr_sub1sp2(), compute a0 before a1 whenever possible
2016-12-09 Vincent Lefèvre <vincent@vinc17.net>
[tools/mbench/mfv5.cc] Fixed type.
2016-12-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mbench] fixed typo
2016-12-08 Vincent Lefèvre <vincent@vinc17.net>
Replaced two ~0 with mp_limb_t target by MPFR_LIMB_MAX.
[tools/mpfrlint] Added a test detecting code like ~0 (either an error
or poorly written code).
2016-12-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improved add1sp.c and sub1sp.c like in r10991
[mbench] set default max_exp to 1 (independent of number of bits per limb)
[sub1sp.c] improved further
[mbench] use mpfr_printf to print test numbers
fixed bug in mfv5 (numbers used were 10 times too large)
2016-12-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added rounding code for RNDF in special routines for 1 and 2 limbs
[sub1sp.c] corrected a comment, added another one
2016-12-07 Vincent Lefèvre <vincent@vinc17.net>
[src/add1sp.c] Typo in a comment.
[src/pow.c] Punctuation to make clear that there are 2 sentences.
2016-12-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
likewise r10983
[add1sp.c] improved a conditional (if compiler is not smart enough)
[exp_2.c] small improvements
2016-12-07 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] MPFR_INT_CEIL_LOG2(x) macro: added a FIXME and an
assertion concerning whether x <= ULONG_MAX or not.
[src/pow.c] Added an assertion.
2016-12-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[algorithms.tex] fixed typo
[pow.c] tuned starting precision (and removed obsolete comment)
use MPFR_INT_CEIL_LOG2
modified the semantics of mpfr_can_round for rnd2=RNDF
2016-12-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mfv5] added option -e, for example use -e1 to avoid over/underflow in mpfr_pow
[pow.c] reduced overhead of special cases (gives speedup of a factor of two
for 53 bits of precision)
2016-12-06 Vincent Lefèvre <vincent@vinc17.net>
Merged the latest changes from the trunk except those related to
mpfr_zeta (it is buggy and not fixed yet in the trunk, but the bug
will not be triggered here, allowing the tests to pass).
2016-12-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added mpfr_pow
2016-12-06 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Correction for zsh change after v5.2 (POSIX compat:
"set -e; f() { false && true; }; f; echo OK" no longer prints OK).
2016-11-29 Vincent Lefèvre <vincent@vinc17.net>
Check that the numberof() macro is used on an array.
* src/mpfr-gmp.h: define numberof_const() macro, equivalent to the
old numberof() macro: no check, but constant expression; improved
the numberof() macro to check that it is used on an array (since
an array can silently be converted to a pointer in C). Note that
potential failures are currently reported at run time.
* src/mulders.c: replaced numberof by numberof_const in #define's
(also removed a useless cast at the same time).
2016-11-17 Vincent Lefèvre <vincent@vinc17.net>
[src/set_ld.c,tests/tset_ld.c] Updated comments, in particular
concerning LDBL_MAX.
2016-11-15 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset_ld.c] Added an overflow test that triggers a bug for
double-double (IBM long double format). See:
https://sympa.inria.fr/sympa/arc/mpfr/2016-11/msg00006.html
[src/get_ld.c] Fixed bugs for double-double (IBM long double format):
* one from r8650, which could yield a spurious assertion failure
in debug mode in case of underflow (with result 0);
* one from r8972, which used the variable sign uninitialized and
could yield a result with an incorrect sign.
[tests/tset_ld.c] Added a missing exit(1).
[tests] _GMP_IEEE_FLOATS was got rid of in r10150, but still used in
the tests, meaning that some tests were no longer done. So, get rid of
_GMP_IEEE_FLOATS also in the tests. Testing !defined(MPFR_ERRDIVZERO)
or defined(HAVE_SIGNEDZ) should be sufficient, depending on the context
(they were already used alone at some other places, so that new failures
are unlikely); anyway, _GMP_IEEE_FLOATS was not the right macro to test.
Only tget_set_d64.c has a specific change to use _MPFR_IEEE_FLOATS.
[src/get_ld.c] For double-double (IBM long double format): test other
special values, as this may be useful.
[src/get_ld.c] For double-double (IBM long double format), the code
was incorrect on large finite values, which are infinite as a double:
(+inf) + (-inf) was computed, which is NaN (thanks to Rob for the
report). Fixed this bug, with code clean up (not tested).
2016-11-10 Vincent Lefèvre <vincent@vinc17.net>
[INSTALL] Added a note about MinGW and libtool error "libobj name ...
may not contain shell special characters.", with a solution.
2016-11-09 Vincent Lefèvre <vincent@vinc17.net>
[doc/sum.txt] Final corrections.
[doc/sum.txt] Another correction due to the rewrite for reuse support.
[doc/sum.txt] Correction.
2016-11-08 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Added a short explanation for halfway cases.
[doc/sum.txt] Improved an example (from my ARITH-23 slides).
[doc/sum.txt] English usage.
2016-11-07 Vincent Lefèvre <vincent@vinc17.net>
[doc/sum.txt] Explained the handling of halfway cases for sq = 1
(since the explanations for sq ≥ 2 are not valid for sq = 1).
[doc/sum.txt] Minor update.
[doc/sum.txt] Last corrections. Concerning the setting of the sign of
the result, this changed with the support for precision 1 (see r10068).
[doc/sum.txt] Correction (English).
[doc/sum.txt] Correction about neg / sgn.
[doc/sum.txt] Added details about the handling of halfway cases, as
the rule is not obvious due to two's complement representation.
2016-11-06 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Cosmetic change for consistency between lbit and rbit.
[doc/sum.txt] Minor update.
2016-11-04 Vincent Lefèvre <vincent@vinc17.net>
[doc/sum.txt] A bit more explanations.
[doc/sum.txt] Corrected the usage of the HYPHEN-MINUS character (-):
* If it is a minus sign, use U+2212 MINUS SIGN (as already done).
* Do not use "-" after the "non" and "pre" prefixes.
[doc/sum.txt] Minor improvement.
2016-10-27 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Replaced "TZ=UTC" by "TZ=GMT0" for portability.
[doc/sum.txt] Added a note.
[doc/sum.txt] Update for the current code (support of reused arguments);
some other improvements.
[doc/sum.txt] Corrected 2 typos.
[src/sum.c] Changed a MPN_COPY_DECR to MPN_COPY, which may be more
efficient: as of r10464 (support for reused arguments), the memory
used by the accumulator for the TMD resolution is no longer a part
of the main accumulator, so that we now know that the memory blocks
do not overlap.
2016-10-26 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Corrected a comment from r10503.
[src/sum.c] Moved/rewrote a comment (should have been done in r10467).
2016-10-25 Vincent Lefèvre <vincent@vinc17.net>
[doc/sum.txt] Started the update for the code supporting reuse.
[src/mpfr-impl.h] Fixed r10916 (thanks to Eli Zaretskii for the report).
2016-10-24 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Improved a macro from r10916 (just in case...).
[src] Support build as thread-safe DLL on Windows: clean-up.
* Increased the use of macros to avoid some code duplication
(with risks of typos) and to prevent the problems related
to thread-safe DLL from appearing in the .c files.
* The prototypes of the functions to access the address of a
TLS variable are now defined. Otherwise one gets warnings:
https://sympa.inria.fr/sympa/arc/mpfr/2016-10/msg00004.html
2016-10-20 Vincent Lefèvre <vincent@vinc17.net>
[doc/sum.txt] Minor correction and improvement (English).
[doc/sum.txt] "a" → "an" before "additional iteration".
2016-10-18 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-gmp.h] Updated a comment about bit-fields.
2016-10-17 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the FIXME concerning the mpfr_can_round
specification with MPFR_RNDF (faithful rounding): after discussion
with PZ, reverted r10909,10910; added a note explaining the choice
done for this specification.
2016-10-14 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Another correction of the FIXME concerning the
mpfr_can_round specification with MPFR_RNDF (faithful rounding).
[doc/mpfr.texi] Corrected FIXME concerning the mpfr_can_round
specification with MPFR_RNDF (faithful rounding).
2016-09-27 Vincent Lefèvre <vincent@vinc17.net>
[src]
* mpfr-impl.h: document the memory allocated for a significand;
added a cast to avoid a direct conversion from mp_limb_t * to
mp_size_t *.
* init2.c, round_prec.c, set_prec.c: code clean-up by correcting
the type expected for the second argument of MPFR_SET_MANT_PTR
(this macro has a cast, so that this should not change anything,
but the old type mpfr_limb_ptr was meaningless and confusing).
2016-09-23 Vincent Lefèvre <vincent@vinc17.net>
[examples/version.c] For MPFR >= 4, output float128 support info.
[examples/version.c] A bit more output.
[examples/version.c]
* Really support C++ compilers (tested with g++ 6.2.0).
* Output information about the C implementation.
* Detect MPIR (→ output information on MPIR instead of GMP).
[examples/version.c]
* Code simplification: support for MPFR versions less than 3.0 had
already been dropped with the use of MPFR_RNDN.
* For MPFR patches, output "[none]" when there are no patches.
* Output mpfr_ptr size.
2016-09-21 Vincent Lefèvre <vincent@vinc17.net>
[src/sin_cos.c] Avoid the reuse of variables for two completely
different things (with different orders of magnitude)! Changed types.
[src/exp3.c] Avoid the reuse of variables for two completely different
things (with different orders of magnitude)! Added a cast to avoid a
potential integer overflow (like in r10881).
[src/atan.c] Avoid the reuse of variables for two completely different
things (with different orders of magnitude)! Changed types.
[src/{atan.c,sin_cos.c}] Added casts to avoid potential integer
overflows. Possible issue reported by David Binderman:
https://sympa.inria.fr/sympa/arc/mpfr/2016-09/msg00029.html
Note: From tests I've done on mpfr_atan, there would be issues with
16-bit int, but for 32-bit int, one could need several hundreds of
billions of bits for the target precision.
[doc/README.dev] "To make a release": updated paragraph about warnings.
[src/mpfr-impl.h] In the MPFR_RET macro, avoid the use of an integer
in a boolean context (even though that this is not wrong in C). Fix
after a bug report from David Binderman. Explanations:
https://sympa.inria.fr/sympa/arc/mpfr/2016-09/msg00028.html
2016-09-16 Vincent Lefèvre <vincent@vinc17.net>
[doc/algorithms.tex] Riemann Zeta function, case s < 1/2: added a
paragraph on the sin(...) term of the reflection formula.
[doc/algorithms.tex] More work on the Riemann Zeta function.
2016-09-15 Vincent Lefèvre <vincent@vinc17.net>
[doc/algorithms.tex] Riemann Zeta function, case s < 1/2: added a
paragraph briefly describing how the precisions of the variables
will be chosen (this is much more efficient than the current code
when the target precision is much lower than the input precision).
Some improvements / corrections in the description / proof of the
algorithm for the Riemann Zeta function.
* doc/algorithms.tex, section on the Riemann Zeta function: the case
s < 1/2 (reflection formula) is now in a new section, which needs
to be completed (with the detailed algorithm and error analysis);
case "s close to 0" added and now properly proved.
* src/zeta.c: update of the comment for s close to 0 (the brief
explanations were wrong for precision 1, and this was apparently
not checked when we allowed this precision!), adding a reference
to algorithms.tex for details.
2016-09-14 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] In "[[…]]" conditional expressions, replaced "="
by the preferred (and equivalent) form "==".
Discussion: https://www.zsh.org/mla/workers/2016/msg01711.html
[tests/tdiv.c] Improved code readability (related to r10871).
2016-09-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tdiv.c] improved code (found by David Binderman using cppcheck)
2016-09-14 Vincent Lefèvre <vincent@vinc17.net>
[tools/announce-text] Use the 64-bit key ID instead of the 32-bit one
since there are known collisions for 32-bit key ID's:
https://evil32.com/
2016-09-13 Vincent Lefèvre <vincent@vinc17.net>
[src/zeta.c] Added a FIXME: bug in the error computation due to the
use of the native double C type, which can yield an overflow.
[tests/tzeta.c] Added a corresponding test case, which gives an
assertion failure.
[src/{uceil_log2.c,ufloor_log2.c}] Added "MPFR_ASSERTN (exp < 1023);"
to get an assertion failure on infinities (which do not have an
exponent).
[src/uceil_log2.c] Code style.
[src/ufloor_log2.c] Code style.
[src/zeta.c] Make explicit that we need to use lngamma.
[src/zeta.c] Updated comments on overflows / underflows.
[src/zeta.c] About internal underflows / cancellation:
* Added comments to FIXME's.
* Detect a potential integer overflow with MPFR_ASSERTN.
2016-09-12 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset_ld.c] Moved a comment.
[tests/tset_ld.c] Fixed print_binary (and no longer any failure with
gcc -mpc64 on x86).
[tests/tset_ld.c] Corrected note in print_binary.
[tests/tset_ld.c] Reverted r10847 (it was incomplete and I was testing
the wrong code).
[tests/tset_ld.c] Fixed print_binary.
[tests/tset_ld.c] Added a FIXME in print_binary, which can yield an
incorrect output and return a wrong precision (causing the failure).
[tests/tset_ld.c] Added a test that triggers a failure with gcc -mpc64
on x86 (64-bit ABI).
[tests/tset_ld.c] Added some tests in case the rounding precision is
smaller than MPFR_LDBL_MANT_DIG (e.g. with gcc -mpc64 on x86).
[tests/tset_ld.c] In print_binary, added an assertion that may fail
with flush-to-zero on underflow (avoiding an infinite loop).
[tests/tset_ld.c] Simplified a condition in print_binary (BTW, the old
condition was based on the fact that the rounding depended only on the
exact result, which may not be the case when rounding is not completely
specified, e.g. with double-double arithmetic like on PowerPC).
[tests/tset_ld.c] Replaced a condition by a simpler, equivalent one.
2016-09-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tset_ld.c] added note
2016-09-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tset_ld.c] get rid of C99-only stuff
2016-09-09 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset_ld.c] Removed a variable that is no longer used.
[tests/tset_ld.c] FIXME: nextafterl and ilogbl are C99 only.
2016-09-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tset_ld.c] fixed computation of smallest subnormal using nextafterl
[tests/tset_ld.c] added warning
[tests/tset_ld.c] fixed print_binary() for when the rounding precision is less
than the precision of long double
2016-09-09 Vincent Lefèvre <vincent@vinc17.net>
[src/get_ld.c] Replaced FIXME by an explanation of the current behavior.
[tests/tset_ld.c] Added a FIXME as a consequence.
[doc/README.dev] Update about NetBSD.
2016-09-08 Vincent Lefèvre <vincent@vinc17.net>
[src/sqrt.c] Corrected a spelling mistake.
[src/get_ld.c] Updated FIXME (mention subnormals).
[src/get_ld.c] Updated FIXME (this is NetBSD 5.1).
[src/get_ld.c] Added a FIXME, in particular for NetBSD.
[tests/tset_ld.c] Avoid a freeze in print_binary under NetBSD due to
excess precision in LDBL_MAX (we do not run the test in this case).
2016-09-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sqrt.c] fixed bug in mpfr_sqrt2
[tests/tsqrt.c] added non-regression test
2016-09-08 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset_ld.c] The print_binary function is freezing on a NetBSD
machine; let's start with some improvements (assertions...).
[tests/tabs.c] Removed mpfr_test_init (not needed here).
[tests/tset_ld.c] Moved mpfr_test_init at the right place (like
tget_d.c, tset_d.c, etc.).
2016-09-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sqrt.c] divsp1 -> div_1
2016-09-08 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset_ld.c] Fixed a loop in case an extended range is used
(there are issues on a NetBSD machine, and this could be a cause).
[tests/tset_ld.c] Corrected a type (due to a printf with %ld).
2016-09-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/div.c] divsp1 -> div_1, divsp2 -> div_2 (not necessarily same precision)
[src/mul.c] mulsp1 -> mul_1, mulsp2 -> mul_2 (the precision of operands is not
necessarily the same)
2016-09-08 Vincent Lefèvre <vincent@vinc17.net>
[src/{get_d,get_ld}.c] Use MPFR_ALIAS.
2016-09-07 Vincent Lefèvre <vincent@vinc17.net>
[src/get_ld.c] Improved the fix done in r10808: The mpfr_set_emin value
is not changed, but let's make the LDBL_MIN_EXP and LDBL_MAX_EXP values
appear as expected.
Note: The code for x86 extended precision first appeared in r3226 with
the usual emin and emax values, as found in the IEEE 754-1985 standard
(bounds) or on <https://en.wikipedia.org/wiki/IEEE_floating_point>. But
MPFR uses a different convention, with a significand between 1/2 and 1
instead of between 1 and 2, so that these values were off by 1. The
emax one was fixed in r6101, but the error on emin remained undetected.
[tests/tset_ld.c] The bug_20160907 test is valid only with
HAVE_LDOUBLE_IEEE_EXT_LITTLE.
[src/zeta.c] Updated FIXME: also suggest a scaling.
2016-09-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tset_ld.c] check more numbers in bug_20160907()
[src/get_ld.c] fixed bug reported by Walter Mascarenhas
[tests/tset_ld.c] added test that triggers bug in mpfr_get_ld
(https://sympa.inria.fr/sympa/arc/mpfr/2016-09/msg00005.html)
2016-09-07 Vincent Lefèvre <vincent@vinc17.net>
[src/zeta.c] Updated FIXME with a suggestion.
[src/zeta.c] Added a FIXME: An overflow in gamma(s1) does not imply
that Zeta(s) will overflow.
[tests/tzeta.c] Added a test that triggers this bug with a 32-bit ABI.
[doc/README.dev] Concerning GCC's AddressSanitizer (-fsanitize=address),
mention that LD_PRELOAD needs to be unset (or -static-libasan needs to
be used, but does not work yet).
2016-09-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[doc/algorithms.tex] l -> \ell
[doc/algorithms.tex] du -> {\mathrm d}u
[src/log_ui.c] added FIXME
2016-09-06 Vincent Lefèvre <vincent@vinc17.net>
[src/sqrt.c] Avoid a warning due to an unused variable with
GMP_NUMB_BITS == 32.
[acinclude.m4] Fixed m4_pattern_forbid argument to avoid an error with
recent ax_pthread.m4 (such as in Debian's autoconf-archive 20160320-1,
which has just appeared in unstable).
[src/zeta.c] Updated FIXME.
2016-09-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/zeta.c] added FIXME
[src/sqrt.c] added alternate code for mpn_sqrtrem4 (disabled for now)
2016-09-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
move macros from div.c to mpfr-gmp.h
2016-09-05 Vincent Lefèvre <vincent@vinc17.net>
About the tzeta timing issue (since r9848):
* TODO: updated item on tzeta.
* tests/tzeta.c: updated FIXME for test_generic.
[TODO] Updated item on tzeta:
* removed the old problem: the fact that the traces for the trunk and
for r9954 are different is normal (fixes in mpfr_can_round affecting
tgeneric.c), and the timings depend on GMP_CHECK_RANDOMIZE and seem
equivalent in average with "test_generic (..., 5);" in both cases;
* added the fact that tzeta has been much slower since r9848, at least
with the x86 32-bit ABI.
2016-09-02 Vincent Lefèvre <vincent@vinc17.net>
[src/round_prec.c] Added some details in a comment for rnd2 = RNDF.
[doc/mpfr.texi] Added a FIXME on the mpfr_can_round description in order
to match what I intended to say in my comment in round_prec.c (perhaps
not detailed enough).
2016-09-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/round_prec.c] updated specification of mpfr_can_round with rnd2 = RNDF
[tests/tpow.c] one test makes no sense for RNDF
2016-09-02 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Completed mpfr_can_round description with RNDF.
2016-09-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/get_str.c] map RNDF to RNDN in mpfr_get_str
[tests/tconst_euler.c] fixed with new specification of mpfr_can_round for RNDF
[doc/mpfr.texi] put back stuff removed by accident in last commit
[doc/mpfr.texi] defined the bahaviour of mpfr_can_round for rnd2 = RNDF
(suggestion from Vincent)
2016-09-02 Vincent Lefèvre <vincent@vinc17.net>
[src/round_prec.c] Forbid rnd2 = MPFR_RNDF as it does not make much
sense without additional specification (and explained why).
[tests/{tcan_round.c,tgeneric.c}] Added MPFR_RNDF support with the
above restriction.
Note: 6 tests are failing as a consequence.
[src/round_prec.c] FIXME: rnd2 == MPFR_RNDF is not supported yet.
2016-09-02 Vincent Lefèvre <vincent@vinc17.net>
Merged the remaining changesets (concerning src/{add1sp.c,sub1sp.c})
from the trunk, and fixed the code: The old mpfr_add1sp2 function
was renamed to mpfr_add1sp_ref in the trunk and a new mpfr_add1sp2
function (with a different purpose) was defined; so, in
if (rnd_mode == MPFR_RNDF)
return mpfr_add1sp2 (a, b, c, rnd_mode);
mpfr_add1sp2 had to be changed to mpfr_sub1sp_ref.
Ditto for mpfr_sub1sp2 and mpfr_sub1sp_ref.
2016-09-02 Vincent Lefèvre <vincent@vinc17.net>
Merged r10698 from the trunk (it was skipped by mistake in r10776).
Merged the following changesets from the trunk:
r10664-10686,10689-10690,10692,10695-10696,10699-10775
i.e. all the latest changes except for src/{add1sp.c,sub1sp.c}
to avoid build failures (to be solved later).
Currently only tcan_round fails, due to MPFR_RNDF.
Removed trailing whitespace.
2016-09-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sqrt.c] new code for 2 limbs on 64-bit machines, giving speedup of almost
a factor of two:
bavette.loria.fr (Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz)
numactl --physcpubind=0 ./mfv5 -p113 mpfr_sqrt
3.1.4:
mpfr_sqrt: 234 / 243.72 / 258
4.0-dev:
mpfr_sqrt: 122 / 127.63 / 136
2016-08-31 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/div.c] fixed error triggered by previous commit
[src/div.c] added missing assertion
[tests/tdiv.c] added test case that make new assertion fail (with --enable-assert --enable-gmp-internals on a 64-bit machine)
[src/div.c] fixed bug found by Vincent
2016-08-31 Vincent Lefèvre <vincent@vinc17.net>
[tests/tdiv.c] Added a test triggering an assertion failure with
"--enable-assert --enable-gmp-internals".
2016-08-30 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Update.
[src/div.c] Untabified. Clarified a comment.
2016-08-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sqrt.c] document mpn_sqrtrem2()
[src/div.c] don't use mpfr_divsp1 and mpfr_divsp2 when MPFR_GENERIC_ABI is defined
[src/div.c] faster code for 2 limbs
[tests/tdiv.c] added special test for 2 limbs
2016-08-30 Vincent Lefèvre <vincent@vinc17.net>
[tests] Define global variable tests_memory_disabled, which needs to
be set when the memory.c allocators (to track memory leaks) must not
be used; i.e., setting it disables the calls to tests_memory_start()
and tests_memory_end(). In tests.c, it is initialized to 0 (unset),
except when mini-gmp is used (same behavior as before this commit).
Programs that test GMP's mp_set_memory_functions() need to set this
variable before calling tests_start_mpfr().
2016-08-29 Vincent Lefèvre <vincent@vinc17.net>
Added tests/talloc-cache.c (not run by "make check") testing multiple
calls to mp_set_memory_functions. It yields a crash in the MPFR trunk,
which is unexpected with the current code. However, in the 3.1 branch,
r9467 fixed the crash as expected.
2016-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sqrt.c] added Sage code used to generate the bipartite tables
2016-08-29 Vincent Lefèvre <vincent@vinc17.net>
[tests/talloc.c] Added a warning about new tests.
2016-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/atan.c] fixed TODOs, and simplified code
2016-08-29 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Added a FIXME comment about memory allocation.
[doc/mpfr.texi] Updated the month.
[TODO] Done in r10756: unify is_power_of_two() and mpfr_powerof2_raw().
2016-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
unified is_power_of_two() and mpfr_powerof2_raw()
[doc/mpfr.texi] improved documentation of mpfr_free_cache()
2016-08-28 Vincent Lefèvre <vincent@vinc17.net>
[tests/tcan_round.c] Improved a test now that mpfr_can_round is exact.
[src/mpfr-gmp.h] Added a warning about r10749.
2016-08-27 Vincent Lefèvre <vincent@vinc17.net>
[src/round_prec.c] Various corrections/improvements:
* Unified the return, making sure that temporary memory is no longer
used after MPFR_TMP_FREE(marker), which was not the case in some
places.
* C90 compatibility.
* Minor improvements (use of MPFR_PREC2LIMBS, code on 78 columns...).
[TODO] Added: unify is_power_of_two() and mpfr_powerof2_raw()?
[src/atan2.c] Replaced the use of the MPFR_IS_POWER_OF_2(x) macro by
a more efficient solution based on mpfr_powerof2_raw().
[src/mpfr-impl.h] Removed the now obsolete MPFR_IS_POWER_OF_2 macro.
2016-08-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mpfr-gmp.h] added comment about GMP memory allocation functions
2016-08-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/round_p.c] since mpfr_can_round is now always correct, we cannot compare
it blindly to mpfr_round_p any more
2016-08-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/round_prec.c] fixed mpfr_can_round() so that all tests of tcan_round pass
2016-08-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tcan_round.c] more information in case of error in check_can_round()
2016-08-22 Vincent Lefèvre <vincent@vinc17.net>
[tools/mbench/mfv5.cc] Fixed code (C++11 compatibility).
[tests/tcan_round.c] Added a comprehensive test of mpfr_can_round,
based on a naive implementation.
Note: if the exit() is removed, many cases are failing, for both kinds
of answers (there might also remain an error in my test...).
2016-08-19 Vincent Lefèvre <vincent@vinc17.net>
[TODO] More thoughts about mpz_t caching (mpz_t pool).
[TODO] Issues with mpz_t caching.
[TODO] Update about mpz_t caching (mpz_t pool).
[src/atan.c] Added TODO's to use mpz_init2 instead mpz_init: I could
check that without "mpz_t cache" (pool), this makes the code faster.
[doc/README.dev] Added a note about memory reallocations; recommend
mpz_init2 with the estimated maximum size instead of mpz_init.
[tests/tests.c] Updated the error message on incorrect MPFR version.
[INSTALL] Added note on Solaris and the LD_OPTIONS environment variable.
2016-08-11 Vincent Lefèvre <vincent@vinc17.net>
[tools/coverage] Added a warning: on a machine shared with other users,
by running this script, the account can easily be compromised due to a
libtool bug.
2016-08-06 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr.h] Moved MPFR_DEPRECATED before __MPFR_DECLSPEC for
compatibility with MSVC (and documented this requirement).
Thanks to Brian Gladman for the information.
2016-08-04 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Added a note about the C++11 compatibility issue
with a string literal immediately followed by a macro name.
Fixed remaining macros with missing "do" … "while (0)", detected with
mpfrlint. There were no consequences except spurious null statements.
[tools/mpfrlint] Added a comment.
[tools/mpfrlint] Added a test detecting (unsafe) macros of the form:
#define FOO { ... }
The following form is preferred in most of the cases to avoid spurious
null statements:
#define FOO do { ... } while (0)
[tests/tsi_op.c] Fixed a macro. There were no consequences except
spurious null statements.
[tests/tset_{si,sj}.c] Style improvements. Added a comment.
[tests/tset_{si,sj}.c] Fixed macros. There were no consequences except
spurious null statements.
[tests] C++ compatibility: avoid errors with "g++ -std=c++11" or later.
Note that as of GCC 6, "the default mode for C++ is now -std=gnu++14
instead of -std=gnu++98" <https://gcc.gnu.org/gcc-6/changes.html>.
So, this fixes the failures in the build of the MPFR tests with g++
from GCC 6 without particular options.
2016-08-03 Vincent Lefèvre <vincent@vinc17.net>
[src/round_prec.c] mpfr_can_round_raw: added another FIXME.
[src/round_prec.c] mpfr_can_round_raw: added an assertion, corrected
a condition in a comment, and added comments, showing a new bug.
2016-08-02 Vincent Lefèvre <vincent@vinc17.net>
[tests/tmul.c] Various corrections and improvements in test_underflow.
[src/mpfr.h] Mark mpfr_grandom as deprecated (this had already been done
in mpfr.texi r8548).
[src/mpfr.h] Suggest MPFR_EXPERIMENTAL for experimental functions.
2016-08-01 Vincent Lefèvre <vincent@vinc17.net>
[tests/tversion.c] Correction in the info about the C implementation.
[tests/tversion.c] Corrections in the info about the C implementation.
[src/sqrt.c] Corrected a bound in the proof of mpfr_sqrt1 (one-limb
precisions), related to the right shift of a negative value. Added
a warning and a TODO about such an operation.
[src/sqrt.c] Enable mpfr_sqrt1 code for one-limb precisions (which
depends on implementation-defined features of the C standard) only
when __GNUC__ is defined, as it is known to be correct with GCC and
compatible compilers, but nothing is known yet for other compilers.
Removed the corresponding FIXME and added a note. In the future, a
configure test could be used as an alternative solution.
[tests/tversion.c] Output more information about the C implementation.
2016-07-31 Vincent Lefèvre <vincent@vinc17.net>
[src/sqrt.c] Fixed some portability issues.
[src/sqrt.c] Fix if mp_limb_t > unsigned long (this fixed failures
with mingw-w64).
[src/lngamma.c] Fix in case mp_limb_t is more than twice as large
as unsigned long (that would make it at least 128 bits).
[src/cos.c] Made code similar to the rest of the code.
[src/div_ui.c] Improved a comment (to make it closer to what correct
C code should be), avoiding a false positive with mpfrlint.
[tools/mpfrlint] Detect possibly wrong code with some C/GMP
implementations, related to shifts and integer types.
[src/sqrt.c] Completed the FIXME (another portability issue).
[src/sqrt.c] Added a FIXME. The current code for prec < GMP_NUMB_BITS
is not portable.
[src/sqrt.c] Fixed code for implementations with 16-bit int's.
[tests/tsqrt.c] Fixed output bug in a test.
2016-07-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mul.c] speedup for 2 limbs: numactl --physcpubind=0 ./mfv5 -p113 mpfr_mul
3.1.5-dev:
mpfr_mul: 45 / 61.60 / 84
4.0-dev:
mpfr_mul: 30 / 32.15 / 36
[NEWS] mention that speedup
2016-07-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp.c] fixed bug in mpfr_sub1sp2
[src/mul.c] removed useless code
[src/mul.c] code simplification
[src/sub1sp.c] another code simplification
[src/sub1sp.c] code simplification
[NEWS] mention speedup in mpfr_add and mpfr_sub for 2 limbs
2016-07-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp.c] faster code for 2 limbs. Results with mbench
(numactl --physcpubind=0 ./mfv5 -p113 mpfr_sub):
3.1.5-dev:
mpfr_sub: 36 / 65.33 / 81
4.0-dev:
mpfr_sub: 24 / 33.00 / 36
2016-07-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tmul.c] fixed wrong test
2016-07-28 Vincent Lefèvre <vincent@vinc17.net>
[tests/reuse.c] Perform each reuse test on 1 to 5 limbs, with a random
number of trailing bits. This allows one to test code specific to 1 or
2 limbs.
2016-07-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/add1sp.c] fixed issues found with --enable-assert=full
2016-07-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/add1sp.c] new code to deal with p in [GMP_NUMB_BITS+1,2*GMP_NUMB_BITS-1]
2016-07-27 Vincent Lefèvre <vincent@vinc17.net>
[src/round_prec.c] Various minor improvements:
* Added a MPFR_ASSERTN since mpfr_can_round is a function in the API.
* Changed error variables to be more consistent with the context.
* Removed unnecessary code (casts...) about the error: it came from
round.c r1574, where types were different at that time.
* Made err2 (the old err) local to a small block to make sure that it
will not be used by mistake instead of err in future changes.
* Made equivalent expressions appear under the same form:
(rnd1 == rnd2 || rnd2 == MPFR_RNDN) && err - 2 >= prec
[src/round_prec.c] Changed precision variables to be like SSA.
[src/round_prec.c] Simplified code, making it more similar to code
that has just been fixed.
[src/round_prec.c] Removed useless parentheses.
[src/round_prec.c] Added an assertion for "default:".
[tests/tcan_round.c] In test_simple, output p (which is variable),
not prec (which is always 4).
2016-07-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/round_prec.c] fixed bug in mpfr_can_round for 2^e when rnd1=rnd2
and err > prec + 1 (was returning 0 instead of 1)
2016-07-27 Vincent Lefèvre <vincent@vinc17.net>
[tests/tcan_round.c] Added a simple test that fails as a consequence of
r9883 (this could be observed on tzeta before r10678 in tgeneric.c).
[tests/tgeneric.c] Improvement: When the result is exact, it can always
be rounded (while mpfr_can_round can fail).
[TODO] Updated item about tzeta.
2016-07-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[INSTALL] update (feedback from Bill Hart)
2016-07-26 Vincent Lefèvre <vincent@vinc17.net>
[src/sqrt.c] Replaced mp_ptr by mpfr_limb_ptr (as usual).
2016-07-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mbench/mfv5-mpfr.cc] patch to allow using it with older versions of MPFR (say branch 3.1)
[src/sqrt.c] fixed mpn_sqrtrem2 for 32-bit limb
2016-07-26 Vincent Lefèvre <vincent@vinc17.net>
[tests/tzeta.c] Added a FIXME so that r10667 can be reverted.
[TODO] Updated item about tzeta.
[TODO] Added item about the fix of mpfr_can_round in r9883 and tzeta.
New MPFR_GENERIC_ABI macro to test the generic code, not tied to a
particular ABI (e.g. GMP_NUMB_BITS value), so that such code has a
chance to be tested on current machines.
* doc/README.dev: added brief documentation.
* src/sqrt.c: enable mpfr_sqrt1 (optimization for one-limb precisions,
currently when GMP_NUMB_BITS is 32 or 64) only when MPFR_GENERIC_ABI
is not defined.
[src/sqrt.c]
* Changed mp_ptr to mpfr_limb_ptr.
* Untabified and removed trailing spaces.
2016-07-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tzeta.c] reduced test time
[src/sqrt.c] adapted mpn_sqrtrem1 for GMP_NUMB_BITS=32
2016-07-25 Vincent Lefèvre <vincent@vinc17.net>
[INSTALL] Corrected hint for mingw (use --build instead of --host).
2016-07-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[INSTALL] added hint for mingw
2016-07-25 Vincent Lefèvre <vincent@vinc17.net>
Merged the latest changes from the trunk.
2016-07-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sqrt.c] fixed temporary patch for 32-bit computers
2016-07-25 Vincent Lefèvre <vincent@vinc17.net>
[src/sqrt.c] Typo in comment.
[src/sqrt.c] Updated FIXME's. This is still incorrect with 32-bit limbs.
2016-07-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sqrt.c] temporary fix for 32-bit limbs
2016-07-22 Vincent Lefèvre <vincent@vinc17.net>
Merged r10657 from the trunk, resolving the conflict (same code as
in the trunk, except RND_RAND changed to RND_RAND_NO_RNDF).
[tests/tadd.c] Improved coding style and messages (do not mix up
"inexact flag" and "ternary value"!).
[tests] Define the RND_RAND_NO_RNDF and RND_LOOP_NO_RNDF macros, similar
to RND_RAND and RND_LOOP respectively but excluding MPFR_RNDF, to be
used for tests that don't make sense in the faithful rounding mode.
Replaced code to use these macros, fixing the remaining failures.
Merged r10599 through r10628 from the trunk, resolving the conflict
in tests/tmul.c (i.e. keep code from both the branch and the trunk,
corresponding to two independent tests). Some of the later changes
in the trunk (src/sqrt.c) are broken with a 32-bit ABI, so let's not
merge them for now.
Merged r10598 from the trunk, resolving the conflict (this consists
in changing MPFR_PREC to MPFR_GET_PREC).
Merged r10573 through r10597 from the trunk (no conflicts).
Merged r10572 from the trunk, resolving the conflict.
Merged r10571 from the trunk, resolving the conflict.
Merged r10566 through r10570 from the trunk, resolving the conflict.
Merged r10556 through r10564 from the trunk (no conflicts).
Merged r10555 from the trunk, resolving the conflict.
Merged r10529 through r10554 from the trunk (no conflicts).
Merged r10528 from the trunk, resolving the conflict.
Merged r10520 through r10527 from the trunk (no conflicts).
[src/add1sp.c] The reverse-merge done in r10633 was incorrect. Fixed.
[src/add1sp.c] Also reverse-merged r10522 (together with related
whitespace change from r10514), which had nothing to do with the
faithful rounding. Improvements for 1 limb will be obtained when
merging the trunk into the faithful branch.
[src/sqrt.c] Added another FIXME comment for 32-bit machines.
[src/sqrt.c] Added other FIXME comments for 32-bit machines.
2016-07-20 Vincent Lefèvre <vincent@vinc17.net>
[src/sqrt.c] Added FIXME comments for 32-bit machines.
[src/sqrt.c] C90 compatibility.
[src/sqrt.c] Fixed minor (mainly style) issues found by mpfrlint.
[tools/mpfrlint]
* Added --msg option to err-if-output function to optionally output
a message explaining what to do in case of error.
* Added this option to 3 err-if-output calls (errors with src/sqrt.c
r10636).
2016-07-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sqrt.c] new speedup for 1/2 and 1 limb
2016-07-20 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Improved a sentence.
2016-07-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[faithful] reverse-merge r10524 (had nothing to do with the faithful branch)
[faithful] reverse-merge parts of r10514 independent of the faithful branch
2016-07-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[NEWS] mention speedup in mpfr_sqrt
[src/sqrt.c] faster code for small precision (on tomate.loria.fr, 45 cycles
for prec=24 instead of 161 before, and 108 cycles for prec=53 instead of
165 with 3.1.4)
2016-07-19 Vincent Lefèvre <vincent@vinc17.net>
[tools/mbench] Replaced r10505 by r10565 merged from the trunk.
[doc/mpfr.texi] Improvements in the MPFR_RNDF (faithful rounding) spec.
Added some notes concerning the reproducibility.
2016-07-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/div.c] removed duplicate prototype (cf revision 10625)
[src/div.c] yet another speedup
[src/div.c] small improvement
2016-07-18 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-gmp.h] Declare __gmpn_invert_limb if used (in order to avoid
an error with g++ for the tests).
2016-07-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/div.c] removed wrong assertions (and added comments to explain why)
2016-07-15 Vincent Lefèvre <vincent@vinc17.net>
[src/div.c] Added a FIXME (assertion failure).
[src/div.c] Untabified.
[tools/mpfrlint] Update concerning GMP internals.
2016-07-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp.c] implement use of __gmpn_rsblsh_n (disabled for now)
[src/div.c] only use __gmpn_invert_limb with --enable-gmp-internals
2016-07-14 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Require <float.h> to be included in order to be
able to use the "long double macros and typedef" part. Moved the
IEEE_FLOAT128_MANT_DIG macro definition out of this part.
[tests/tcmp_ld.c] Added missing #include <float.h>.
[src/div.c] Added a FIXME as __gmpn_invert_limb is a GMP internal.
2016-07-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/div.c] speedup for precision < GMP_NUMB_BITS/2 (by almost a factor 2)
[src/mul.c] added comment
[src/div.c] new faster code for 1 limb
[src/cmp_ld.c] include float.h so that MPFR_LDBL_MANT_DIG is correctly defined
[src/get_ld.c,src/set_ld.c] added comment
2016-07-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/div.c] removed obsolete comment since we no longer use __udiv_qrnnd_ld
[src/div.c] changed __udiv_qrnnd_ld into __udiv_qrnnd_preinv (no dependency
any more on long double)
2016-07-09 Vincent Lefèvre <vincent@vinc17.net>
[src/div.c] Do not use __udiv_qrnnd_ld for MPFR_LDBL_MANT_DIG > 64.
Added a comment about __udiv_qrnnd_ld.
[src/mpfr-longlong.h] Typo.
[src/mpfr-longlong.h] C89 compatibility.
2016-07-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/div.c] speedup using __udiv_qrnnd_ld
[src/mpfr-longlong.h] contributed __udiv_qrnnd_ld variant
[src/div.c] new special code for 1 limb
[src/mul.c] fixed corner case near underflow
[src/mul.c] fixed detection of rounding away
[src/mul.c] fixed underflow *after* rounding
[tests/tmul.c] fixed a test
[tests/tmul.c] added underflow test for directed rounding too
[tests/tmul.c] added test for underflow after rounding (reveals bug in mul.c)
2016-07-08 Vincent Lefèvre <vincent@vinc17.net>
[src/sub1sp.c] Clarified comment (it's better not to mention underflow
before rounding because it is not considered at all in MPFR).
2016-07-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp.c] added comment about underflow before/after rounding
[src/mul.c] changed MPFR_PREC into MPFR_GET_PREC
2016-07-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mul.c] removed a call to MPFR_LIKELY which is unlikely...
2016-07-07 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] i.e. → e.g.
[src/mul.c] Replaced mp_ptr by mpfr_limb_ptr (as usual).
[tests/tadd1sp.c] Added tests with EXP(b) < EXP(c), as there are
no such restrictions on the exponents for mpfr_add1sp.
[src/add1sp.c] Fixed mpfr_add1sp when b and c have different signs
and EXP(b) < EXP(c).
2016-07-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[NEWS] speedup in mpfr_mul for one limb (minus 1 bit)
2016-07-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mul.c] speed-up of mpfr_mul for 1 limb (1 limb - 1 bit for the result).
Results of mbench for 53 bits on Intel i5-4590:
before:
mpfr_mul: 33 / 37.12 / 42
after:
mpfr_mul: 18 / 20.63 / 24
2016-07-07 Vincent Lefèvre <vincent@vinc17.net>
[src/add1.c] Corrected a comment as in practice, b and c do not
necessarily have the same sign (when called by mpfr_sub).
2016-07-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp.c] added assertions
2016-07-06 Vincent Lefèvre <vincent@vinc17.net>
[tests/tadd.c] C++ compatibility.
[tests/tadd1sp.c] Do not use != 0 on predicate function.
2016-07-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp.c] removed special code for n = 1, now that we have a special
function mpfr_sub1sp1
[tests/tadd.c] revert mpfr_add to test_add
[src/add1sp.c] fixed two bugs in mpfr_add1sp1
[tests/tadd1sp.c] added one hard-coded test
[tests/tadd.c] last commit was wrong
improved check_overflow()
2016-07-06 Vincent Lefèvre <vincent@vinc17.net>
[src/urandom.c] Fixed uninitialized emin for nbits == 1
(thanks GCC's -Werror=maybe-uninitialized).
2016-07-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/urandom.c] should now be ok for nbits = 1
2016-07-06 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Change most mpfr_urandomb to mpfr_urandom in the tests?
[tests/turandom.c] Improved an error message.
[tests/turandom.c] Corrected English usage in error message.
[tests/turandom.c] Small precision check: replaced 2 by MPFR_PREC_MIN.
2016-07-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/urandom.c] fixed urandom for a precision of 1 bit
2016-07-06 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] About random tests: avoid mpfr_urandomb!!!
[tests/tadd1sp.c] Use mpfr_urandom instead of mpfr_urandomb.
This triggers an assertion failure in urandomb.c.
[tests/tadd1sp.c] Reordered variables. Removed a redundant test.
[tests/tadd1sp.c] In check_random, check the flags too.
[tests/tadd1sp.c] Test negative numbers too.
Removed trailing spaces.
2016-07-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added comment
[src/add1sp.c] removed special cases for n=1 in mpfr_add1sp, now that we have
a special routine mpfr_add1sp1
[mbench/mfv5.cc] added RNDA and fixed typo
2016-07-06 Vincent Lefèvre <vincent@vinc17.net>
The rounding mode can now be passed in argument with the -r option
(patch by Patrick Pélissier).
Removed MPFR_HOT_FUNCTION_ATTR for mpfr_add1sp1 and mpfr_sub1sp1.
2016-07-05 Vincent Lefèvre <vincent@vinc17.net>
[tests/tadd.c] Added FIXME comment: there are many tests, but the
ternary value and the flags are not tested!
Functions mpfr_add1sp1 and mpfr_sub1sp1 are called only from the files
where they are defined, thus can be static.
[src/add1sp.c] Removed unused variable.
2016-07-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/add1sp.c] new special code for 1 limb. In 3.1.4 we add with mfv5:
mpfr_add: 30 / 49.30 / 90
now we have:
mpfr_add: 24 / 28.18 / 30
2016-07-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp.c] added comment
2016-07-05 Vincent Lefèvre <vincent@vinc17.net>
[src/sub1sp.c] Another improvement (suggested by Paul).
[src/sub1sp.c] Improved readability. With Debian's gcc-snapshot, this
is equivalent, and with tcc, the generated code is shorter.
[src/sub1sp.c] No longer depend on the representation of 0.
[src/sub1sp.c] Various improvements in the coding style: readability,
consistency, GNU coding style.
2016-07-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[README.dev] added documentation about mpfr-gfx
[mbench/mpfr-gfx.c] change of syntax of gnuplot
[src/sub1sp.c] removed dead code, and improved coverage to 100%
2016-07-05 Vincent Lefèvre <vincent@vinc17.net>
[src/sub1sp.c] Removed incorrect MPFR_SET_EXP (the value was incorrect
and the real MPFR_SET_EXP is done later, after underflow checking).
[tests/tsub1sp.c] Added missing printf arguments.
2016-07-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1sp.c] fixed some FIXMEs
2016-07-04 Vincent Lefèvre <vincent@vinc17.net>
[src/sub1sp.c] Added a FIXME.
[src/sub1sp.c] Avoid a -Wmaybe-uninitialized warning from GCC
by declaring a variable as initialized (the code is correct,
GCC isn't just smart enough).
Removed trailing spaces.
Added tools/ck-clz_tab sh script to check the __clz_tab sizes
(to detect issues like the one fixed in r10542). Run this script
in dist-hook (Makefile.am) and in mpfrlint.
2016-07-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
resolved a FIXME
fixed bug reported by <sisyphus1@optusnet.com.au>
2016-07-04 Vincent Lefèvre <vincent@vinc17.net>
[src/exceptions.c] Added a comment for mpfr_underflow: historical reason
for the choice of the behavior with MPFR_RNDN.
2016-07-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
code simplification (suggested by Vincent)
speedup of mpfr_sub for same precision < GMP_NUMB_BITS
2016-07-01 Vincent Lefèvre <vincent@vinc17.net>
[src/add1sp.c] Corrected indentation.
[src/sub1sp.c] Added comments.
[src/add1sp.c] Added comments.
2016-06-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
optimize mpfr_add (and mpfr_sub, not yet finished) for 1 limb
2016-06-29 Vincent Lefèvre <vincent@vinc17.net>
Renamed macro MPFR_EXP_LESS_P to MPFR_UBF_EXP_LESS_P.
[src/add1sp.c] Fixed bug introduced in r10530 when MPFR_WANT_ASSERT >= 2
(--enable-assert=full).
[src/add1.c] Re-added the MPFR_ASSERTD. The culprit seems to be r10530.
[src/add1.c] Reverted r10529, which now fails. That's strange.
2016-06-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
mpfr_add1sp does not assume any more EXP(b) >= EXP(c)
2016-06-29 Vincent Lefèvre <vincent@vinc17.net>
[src/add1.c] Added a MPFR_ASSERTD.
2016-06-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
still faster code for 1 limb
merged r10522 from faithful branch + other special-code for 1 limb:
the worst case for mpfr_add in 53 limbs decreases from 70 to 60 cycles
removed leftover debug statement
added comment that EXP(b) >= EXP(c)
mpfr_add1sp no longer assumes EXP(b) >= EXP(c): gives small speedup
2016-06-27 Vincent Lefèvre <vincent@vinc17.net>
[doc/sum.txt] Changed "hole" to "gap".
2016-06-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added special code for 1 limb
2016-06-25 Vincent Lefèvre <vincent@vinc17.net>
C++ compatibility.
Merged the latest changes from the trunk.
[autogen.sh] Treat autoreconf warnings as errors.
2016-06-24 Vincent Lefèvre <vincent@vinc17.net>
[src/vasprintf.c] Some improvements. In particular, avoid two successive
calls to mpfr_cmpabs on the same arguments (the compiler doesn't know
that it could optimize, as the function is not pure).
[src/vasprintf.c] Fixed an assertion failure.
2016-06-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed reuse with --enable-assert
small speedup of mpfr_add for RNDF
2016-06-24 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsum.c] Correction: r10484 didn't take the latest version from
the trunk in the conflict resolution.
[src/sum.c] A more efficient way to support faithful rounding, avoiding
the TMD completely and an assertion failure at the same time.
Avoid failures in mpfr_mul for MPFR_RNDF with MPFR_WANT_ASSERT >= 2
(--enable-assert=full) by disabling the comparison with the old
implementation, which doesn't make sense for faithful rounding.
2016-06-24 Vincent Lefèvre <vincent@vinc17.net>
Avoid failures in mpfr_add1sp / mpfr_sub1sp for MPFR_RNDF with
MPFR_WANT_ASSERT >= 2 (--enable-assert=full) by disabling the
comparison with mpfr_add1 / mpfr_sub1, which doesn't make sense
for faithful rounding.
[Added during the Subversion to Git conversion]
This commit includes a merge of r10509 from the trunk.
2016-06-24 Vincent Lefèvre <vincent@vinc17.net>
Cosmetic change (whitespace).
Merged the latest changes from the trunk.
Removed trailing spaces.
[src/add1sp.c] For MPFR_WANT_ASSERT >= 2 (--enable-assert=full), test
the flags too and replaced "mpfr_cmp" by "! mpfr_equal_p".
[src/sub1sp.c] Make it similar to add1sp.c for MPFR_WANT_ASSERT >= 2.
2016-06-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
use macro for the rounding mode used in the tests
2016-06-24 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
[src/sum.c] Made the code a bit more natural: change of pos to neg
(an indirect consequence of the support of reused arguments). Some
other minor related changes.
2016-06-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added more tests for RNDF
2016-06-24 Vincent Lefèvre <vincent@vinc17.net>
The support of reused arguments in mpfr_sum is now complete, without
any visible regressions in the timings (which are unfortunately too
inaccurate to see anything).
* doc/mpfr.texi: removed sentences about the previous limitation.
* src/sum.c: removed the corresponding FIXME/TODO comment.
[tests/tsum.c] Test the support of reused arguments.
2016-06-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
disable mpfr_all_div() for RNDF
replaced mpfr_cmp by !mpfr_equal_p
added exhaustive tests for add,sub,mul,div,sqrt
fixed corner case with RNDF
2016-06-23 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Added a comment for MPFR_RNDRAW_GEN about the use
of the exponent field of the destination.
[src/add1sp.c] For MPFR_RNDF, set inexact = 0 (like what is done in
sub1.c) instead of 1, though this doesn't really matter.
[src/sub1.c] Fix: the conflict resolution done in r10484 was incorrect.
[src/add1sp.c] Avoid the use of uninitialized values with MPFR_RNDF.
2016-06-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fix for RNDF
2016-06-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
merged changed from trunk with
svn merge '^/trunk'
(resolved conflict for sub1.c; copied tests/tsum.c from trunk and
re-incorporated changes from faithful branch)
2016-06-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
src/li2.c: better like this
src/li2.c: revision 10379 was ok
fixed mpfr_all_div() for RNDF
2016-06-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
more work on branch faithful
2016-06-17 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr.h] Coding style: added spaces.
[TODO] Suggest the use the keyword "static" in array indices of
parameter declarations with C99 compilers (6.7.5.3p7) when the
pointer is expected not to be null.
2016-06-15 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Update (GCC trunk → GCC 5).
2016-06-13 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Copy the significand to the destination after resolving
the TMD in order to support reused arguments.
[src/sum.c] Improved a comment.
2016-06-10 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Corrected a MPFR_LOG_MSG modified in the latest change.
[src/sum.c] For the future support of reused arguments: TMD resolution
is now done in a specific TMD accumulator, allocated at the same time
as the main accumulator. This TMD accumulator currently just takes at
most 2 limbs in practice, so that's not a problem.
[doc/sum.txt] Added TODO for things that will change.
2016-06-09 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Define mpfr_ueexp_t (needed for r10462).
[tests/tversion.c] Do not use "%zu" with printf (added in r10460).
[doc/README.dev] Document environment variables that affect the tests.
Other changes concerning the memory limit for the tests.
* Export the tests_memory_limit variable so that it can be accessed in
test programs (e.g. read by tversion as mentioned below, or modified
by a test program when executed with particular arguments).
* In tversion, print a warning when the memory limit has been modified
(with the MPFR_TESTS_MEMORY_LIMIT environment variable).
[tests/memory.c] The MPFR_TESTS_MEMORY_LIMIT environment variable can
now contain an integer specifying the memory limit for the tests, or 0
for unlimited, the default still being 2^22 = 4 MB.
2016-06-08 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsum.c] Improved check3:
* Also do the tests with output precision MPFR_PREC_MIN;
this completes the value coverage for tsum.
* Also compare the flags.
Value coverage for tsum: After r9984 to differentiate sq > MPFR_PREC_MIN
and sq == MPFR_PREC_MIN, 42 tests were not done for sq == MPFR_PREC_MIN
on a 64-bit machine. In the check4 test, changed a 2 to MPFR_PREC_MIN.
This reduces to 12 tests that are not done.
2016-06-07 Vincent Lefèvre <vincent@vinc17.net>
Merged the "ubf" branch into the trunk:
* limited implementation of "unbounded floats" (numbers with a mpz_t
exponent), which could be completed in the future, in particular to
handle intermediate overflows/underflows in polynomial evaluation;
* rewrote mpfr_fmma and mpfr_fmms to use them, and added tests;
* restored the MPFR 3.1- exponent range for compatibility;
* restored some tests that were based on this exponent range.
The choice for the UBF implementation was to use a compatible structure:
the same as the mpfr_t one, with an additional field at the end, used
only when the exponent field _mpfr_exp has some special value. Thus some
functions such as addition and subtraction just needed minor changes to
support UBF, and no code was duplicated. This means that on MPFR numbers
(the usual case), one has a few more tests than before, but with known
branch probabilities. In practice, this should not be visible, at least
in most applications. This was more or less confirmed by timings (even
with many additions/subtractions in low precision, this was difficult
to say, as timings were influenced by various parameters that we cannot
control).
Merged the latest change from the trunk (r10452).
[tools/mbench/Makefile] Added multiarch support for GMP.
[src/mpfr-impl.h] Updated a comment (removing a FIXME).
Merged the latest change from the trunk (r10449).
[tests/tprintf.c] Removed tests of native %'g and %'f (from r8292)
as the ' flag is an extension from Single UNIX Specification and
in particular, they fail with MinGW under Wine.
Merged the latest changes from the trunk.
[tests/tlgamma.c] Typo in comment.
[src/uceil_log2.c] Added a comment. Cosmetic changes.
[tests/tlgamma.c] Corrected updated comment from r10444.
2016-06-06 Vincent Lefèvre <vincent@vinc17.net>
[tests/tlgamma.c] Updated comment of the test added in r10442.
[src/uceil_log2.c] Correction in __gmpfr_ceil_log2, avoiding an
incorrect result with tcc: x.s.exp is declared as an unsigned
bit-field, so that tcc considers that x.s.exp - 1023 is unsigned.
However, since all the values of x.s.exp are representable in an
int, according to the integer promotion rules, x.s.exp should be
converted to an int, so that the subtraction is signed. So, this
appears to be a bug in tcc.
[tests/tlgamma.c] Added a test causing a "too much memory" error with
tcc 0.9.27~git20151227.933c223-1 (there's already one in special(),
but this one is a simpler, standalone test).
Merged the latest change from the trunk (r10440).
[acinclude.m4] When checking if __float128 is available, we now also
check whether C99 constants (in particular the __float128 ones, such
as 0x1.fp+16383q) are supported since this is now required with the
__float128 support.
Merged the latest changes from the trunk.
[src/add1.c] Improved a comment about faithful rounding.
[src/add1.c] The code for faithful rounding (MPFR_RNDF) was not
avoiding some useless loops needing to know on which side of a
breakpoint the result is. Quick fix.
Merged the latest changes from the trunk.
[src/add1.c] Simplified code: removed fb = 1 since it was already 1
in the "if (fb > 0)" branch.
[src/set_float128.c] Fix: removed the divisions by zero, replacing them
by comparisons with the maximum finite binary128 number. Changes to be
similar to the handling of infinities in "src/set_ld.c".
[TODO] Faithful rounding: small correction.
[TODO] Added "faithful rounding", with information about its definition
and implementation.
2016-06-03 Vincent Lefèvre <vincent@vinc17.net>
[src/{fits_intmax.c,fits_s.h}] In comments, fit → fits.
[src/set_float128.c] Added FIXME comment: The mpfr_set_float128 code
generates a divide-by-zero exception. Suggest a solution.
Note: this is detected with "-DMPFR_TESTS_DIVBYZERO -DMPFR_ERRDIVZERO".
[tests/tset_float128.c] Take into account failures in division by 0
and absence of signed zeros. Also fixed the code checking the sign
of 0 (mpfr_sgn cannot be used for that since it returns 0 for ±0).
2016-06-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
RNDF: fixed the fits functions
2016-06-03 Vincent Lefèvre <vincent@vinc17.net>
Merged the latest change from the trunk (r10426 fix).
[src/set_d.c] Added some assertions and fixed a 32-bit shift count
when GMP_NUMB_BITS == 32.
Merged the latest changes from the trunk (C++ compatibility).
[tests/tset_float128.c] C++ compatibility.
[tests/tlog.c] Added a cast to mpfr_rnd_t for C++ compatibility.
[tests/tfmma.c] Forgot a cast to mpfr_rnd_t for C++ compatibility.
[src/add1.c] Completed UBF support. Note: due to the restriction
on the exponent values, diff_exp does not need to be the unsigned
integer type mpfr_uexp_t (mpfr_exp_t is sufficient).
[tests/tfmma.c] Correction.
[tests/tfmma.c] Test (1/2)x + (1/2)x = x near underflow.
[tests/tfmma.c] Replaced precision 64 by GMP_NUMB_BITS (to make sure
that the add1sp and sub1sp conditions are satisfied with the current
src code, these tests may rely on the fact that there are no trailing
bits, i.e. that the precision is a multiple of GMP_NUMB_BITS).
2016-06-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added reference for Lambert W function
2016-06-03 Vincent Lefèvre <vincent@vinc17.net>
[src/{add,sub}.c] Consider UBF numbers as special cases so that
mpfr_sub1sp and mpfr_add1sp, which do not support UBF, are never
called on UBF numbers. This should also (very slightly) speed up
the normal cases.
[src/mpfr-impl.h] UBF support: added MPFR_IS_SINGULAR_OR_UBF and
MPFR_ARE_SINGULAR_OR_UBF macros.
2016-06-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
declare prec in unsigned long
RNDF: specified the fits functions
RNDF: fixed tfactorial
2016-06-02 Vincent Lefèvre <vincent@vinc17.net>
C++ compatibility (corrected).
2016-06-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
RNDF: fixed texp2
avoid mpfr_printf in tests
C++ compatibility
suggestion from Vincent
RNDF: fixed texp10 and tgeneric
RNDF: fixed mpfr_sum and tsum
RNDF: fixed texp
2016-06-02 Vincent Lefèvre <vincent@vinc17.net>
[tests/tfmma.c] Added test cases where the precision of the result
is twice the precision of each input, which can currently involve
add1sp.c and sub1sp.c code.
2016-06-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
RNDF: partially fixed texp
RNDF: fixed tcot
RNDF: fixed tcos
RNDF: fixed tconst_pi
RNDF: fixed li2 and tconst_log2
2016-06-02 Vincent Lefèvre <vincent@vinc17.net>
Merged the latest changes from the trunk.
[src/exceptions.c] Fixed the MPFR_LOG_FUNC in mpfr_underflow and
mpfr_overflow (x is not an input in these functions).
[src/sub1.c] In r10347, logging was introduced instead of #ifdef DEBUG
and printf. Removed 2 MPFR_LOG_VAR, as the variable is not normalized
yet. Re-added #ifdef DEBUG for the MPFR_LOG_MSG's since this may be
too low level and not much useful except in case of bugs.
2016-06-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
RNDF: fixed issue with Bessel functions for large arguments
2016-05-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added description of flags for RNDF
2016-05-30 Vincent Lefèvre <vincent@vinc17.net>
[src/sub1.c] Forgot a \n in a log message.
2016-05-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed typos
2016-05-30 Vincent Lefèvre <vincent@vinc17.net>
[src/sub1.c] Completed UBF support.
Merged the latest changes (in particular the fix in sub1.c) from the
trunk.
[tests/tsub.c] Added comments for check_max_almosteven (latest
test case, added in r10383).
2016-05-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
more work on the faithful branch
2016-05-29 Vincent Lefèvre <vincent@vinc17.net>
[src/sub1.c] Fixed bug in mpfr_sub1 (real subtraction a = b - c, with
|b| > |c|): In MPFR_RNDN (round-to-nearest mode), when
* |b| is the midpoint between the maximum finite number in the
precision of a and 2^emax (the maximum finite number + 1 ulp),
which is possible only if PREC(b) > PREC(a),
* c is small enough (i.e. no overlap with a and b),
mpfr_sub1 returns an infinity (with overflow flag set) instead of
± the maximum number (no overflow). The cause is that an overflow
is generated too early, in an intermediate rounding.
[tests/tsub.c] Added test cases.
[tests/tfmma.c] Forgot a \n in printf.
[tests/tfmma.c] Added overflow tests that trigger an assertion failure
in sub1.c (because UBF support is not complete yet).
2016-05-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
start implementing RNDF (work in progress)
2016-05-25 Vincent Lefèvre <vincent@vinc17.net>
[src/log_ui.c] Changes for ISO C90 compatibility.
[src/mpfr-gmp.h] For _MPFR_IEEE_FLOATS, changed bit-field type from
unsigned long, which is implementation-defined, to unsigned int.
[src/log_ui.c] Added an assertion.
[src/mpfr-impl.h] Fixed bug introduced in r10327, giving:
error: ISO C does not allow extra ';' outside of a function [-Wpedantic]
2016-05-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improved mpfr_log_ui
added comment
2016-05-25 Vincent Lefèvre <vincent@vinc17.net>
[TODO] mpfr_ai efficiency: also mention mpfr.texi (the issue with large
arguments has always been documented).
[TODO] mpfr_ai efficiency: mention tests/tai.c (the REDUCE_EMAX was
added in r6734).
2016-05-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added item about efficiency of mpfr_ai for large arguments
2016-05-25 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Also clarified the use of "configure".
[doc/README.dev] Clarified the use of "autogen.sh".
2016-05-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
use autogen.sh
added libtoolize (needed for AX_PTHREAD)
2016-05-24 Vincent Lefèvre <vincent@vinc17.net>
[tests/tlog_ui.c] Improved a test function.
[acinclude.m4] Fixed the use of m4_pattern_forbid: the argument must
be quoted, otherwise the macro is expanded when defined.
2016-05-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
small improvements to log_ui (still slower than log for large precision)
2016-05-24 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] Detect whether the AX_PTHREAD macro is left unexpanded.
2016-05-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
use rounding to nearest by default in "tconst_log2 prec"
minor changes to allow ./tlog xxx prec
added generic tests for mpfr_log_ui + compare with mpfr_log
2016-05-24 Vincent Lefèvre <vincent@vinc17.net>
[src/sub1.c] Started to add UBF support (still incomplete).
Merged the latest changes from the trunk and removed the remaining
_MPFR_PROTO of UBF functions.
Removed _MPFR_PROTO with the following Perl script on the .h files.
while (<>) { if ($c) { die if /_MPFR_PROTO/; s/^( {$c}) */$1/;
s/\) *\)/)/ and undef $c } elsif (s/^(.*)(_MPFR_PROTO *\()\(/$1(/)
{ s/\) *\)/)/ or $c = 1 + length $1 } print }
[configure.ac] Re-added AM_PROG_AR in case Microsoft lib.exe is used
(without this, "automake --warnings=all" gives a warning).
[acinclude.m4] Replaced the obsolete ACX_PTHREAD by AX_PTHREAD
(done with "autoupdate acinclude.m4").
[configure.ac] Moved LT_INIT near the top for --enable-lto, and removed
AM_PROG_AR (no longer needed as done by LT_INIT) and AC_PROG_RANLIB
(obsoleted by LT_INIT).
Avoid some warnings with "gcc -Wundef".
[configure.ac] Removed a FIXME fixed in r4482.
[src/mpfr-longlong.h] Update from GMP 6.1.0.
[src/mpfr-cvers.h] Fixed typo in a macro (thanks to Patrick Pélissier).
[src/sub1.c] Various minor improvements:
* Some changes related to the exponents and diff_exp.
* Coding style + use of IS_POW2.
* Use logging instead of #ifdef DEBUG and printf.
2016-05-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed too aggressive MPFR_LIKELY/MPFR_UNLIKELY (see README.dev)
2016-05-24 Vincent Lefèvre <vincent@vinc17.net>
Added optional LTO support (from a patch by Patrick Pélissier).
Corrected mpfr_free_cache behavior when WANT_SHARED_CACHE is defined
to make it consistent with the behavior when WANT_SHARED_CACHE is not
defined (patch by Patrick Pélissier).
[src/vasprintf.c] Output the sign of UBF like with infinities.
[tests/tfpif.c] Correction on r10338: use src_fopen instead of fopen
and check fp (just like with FILE_NAME_R).
[tests/tfmma.c] Completed near_overflow_tests (there's still a crash,
this time really in fmma.c).
[tests/tfmma.c] Added near_overflow_tests, which crashes.
2016-05-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added new (read-only) test file for mpfr_fpif_import
added tests for mpfr_fpif_import with precision > MPFR_PREC_MAX
2016-05-24 Vincent Lefèvre <vincent@vinc17.net>
Merged the latest changes from the trunk.
Updated NEWS about shared caches.
MPFR 3.2(.x) → 4.0(.x)
[NEWS] New function mpfr_buildopt_sharedcache_p in MPFR 3.2.
[doc/mpfr.texi] New function mpfr_buildopt_sharedcache_p. Minor changes.
2016-05-23 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] About the MPFR_DECL_INIT_CACHE macro:
* Added a FIXME comment about a possible warning due to a missing
field initializer; suggest 2 possible solutions.
* Improved code readability.
[src/free_cache.c] Avoid duplicated source code for maintainability.
[doc/mpfr.texi] Corrections about caches.
[src/mpfr-thread.h] For #error, use a string literal as a single
preprocessing-token.
[src/mpfr-thread.h] Coding style.
Minor comment & coding style corrections on r10327.
Added shared cache support (from a patch by Patrick Pélissier).
2016-05-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added tests for mpfr_fpif in precision 1
2016-05-23 Vincent Lefèvre <vincent@vinc17.net>
More UBF support:
* mpfr-impl.h, ubf.c: added mpfr_ubf_zexp2exp function.
* add1.c: support the case where b (the first input) is an UBF.
[tests/tfmma.c] Added max_tests.
[src/ubf.c] Memory leak in some case.
Added UBF support for mpfr_cmp2.
ABS(SIZ(x)) → ABSIZ(x)
[src/ubf.c] Support reduced exponent range in mpfr_get_zexp.
2016-05-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
redefine mpfr_init_set_xxx with mpz_t pool, otherwise the pool is not
used for those calls
2016-05-23 Vincent Lefèvre <vincent@vinc17.net>
Started to implement unbounded floats (UBF) and added support in some
existing functions.
Also reverse-merge r9960 (due to the previous ones).
Also reverse-merge r9958, r9961 and r9962 (due to the previous ones).
First, reverse-merge r9975 and r9957 (whose only purpose was for fmma,
but changed the exponent range and still had various issues).
2016-05-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added comment about MPFR_MY_MPZ_INIT
2016-05-23 Vincent Lefèvre <vincent@vinc17.net>
[src/vasprintf.c] Replaced a comment by a MPFR_ASSERTD.
[src/vasprintf.c] Code simplification.
[src/vasprintf.c] Replaced a comment by a MPFR_ASSERTD.
[src/print_raw.c] Changes for mpfr_print_binary / mpfr_dump:
* Support out-of-range exponents as this function is mainly for
debugging purpose (TODO: add some warning for such exponents).
See: https://sympa.inria.fr/sympa/arc/mpfr/2016-01/msg00061.html
* Support _MPFR_EXP_FORMAT == 4 (format used for testing).
2016-05-22 Vincent Lefèvre <vincent@vinc17.net>
[tests/tfmma.c] Corrections and improvements in random_test.
[tests/tfmma.c] Replaced mpfr_cmp by the stronger mpfr_equal_p.
[tests]
* tadd_ui.c: clean-up (a boolean test doesn't need "!= 0").
* tsub_ui.c: check that the NaN flag is set on NaN.
[src/mpfr-impl.h] Added IS_SIGNED macro to check whether an integer type
(after integer promotion) is signed; and use it for MPFR_EXP_IN_RANGE.
2016-05-20 Vincent Lefèvre <vincent@vinc17.net>
[src/ui_sub.c] Improved code style and assertions, making mpfr_ui_sub
more like mpfr_add_ui and mpfr_sub_ui. Added comments.
Partly rewrote mpfr_add_ui and mpfr_sub_ui (more similar to the
mpfr_ui_sub code), solving the failures.
[tests/tgeneric.c] Check NaN argument, mainly in order to check the NaN
flag when the result is NaN (almost all cases). This makes both tadd_ui
(ignoring the new test done in r10298) and tsub_ui fail.
2016-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added test case for bug reported by Rob (sisyphus1@optusnet.com.au)
2016-05-19 Vincent Lefèvre <vincent@vinc17.net>
[src/fmma.c] Added FIXME comments.
2016-05-18 Vincent Lefèvre <vincent@vinc17.net>
Added MPFR_EXP_IN_RANGE macro, and replaced some tests to use it.
[src/fma.c] Minor code simplification.
2016-05-17 Vincent Lefèvre <vincent@vinc17.net>
Improved code related to mpfr_set_exp_t:
* Define MPFR_EXP_LIMB_SIZE macro (size of mpfr_exp_t in limbs)
and use it.
* src/pow.c: replaced a mpfr_init2 by MPFR_TMP_INIT1.
2016-05-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added comment about printing decimal floats
2016-05-13 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Minor improvements.
2016-05-12 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] Added a comment about GMP CC/CFLAGS detection.
[configure.ac] Better GMP CC/CFLAGS detection (based on a patch by
Patrick Pélissier).
2016-05-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
add -P option to cpp when detecting CC/CFLAGS in gmp.h (workaround for gcc-5)
2016-05-04 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
[doc/Makefile.am] Reverted the change done in r10283 as the mpfr.info
file was always rebuilt.
[Makefile.am] Execute check-typography from dist-hook instead.
[Makefile.am] Add doc/check-typography to the tarball as it is needed
to rebuild the mpfr.info file if the mpfr.texi file is modified.
[doc/check-typography] Added copyright notice and explanations.
[doc/check-typography] Removed useless parentheses.
Detect typography ambiguities in doc/mpfr.texi ASAP: to avoid errors
due to implicit rules, it is better to explicitly make clear whether
a punctuation mark ends or does not end a sentence.
* Added doc/check-typography sh script to detect such typography
ambiguities.
* doc/Makefile.am: automatically execute this script before mpfr.info
is rebuilt; fail with explanations in case there are ambiguities.
* doc/mpfr.texi: avoid typography ambiguities.
* tools/mpfrlint: replaced the old typography check by a call to the
check-typography script (which does more checks).
[doc/mpfr.texi] Typographic correction on the latest addition.
[doc/mpfr.texi] The MPFR_ and mpfr_ prefixes are reserved for MPFR.
2016-04-25 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Clean-up.
2016-04-21 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] Improved the GMP CC/CFLAGS detection: the test for $cpp
was not checking whether gmp.h could actually be included, so that the
code was outputting "yes" even when gmp.h was not installed.
[NEWS] Added: Limited pkg-config support.
Added pkg-config support (patch from Kip Warner + some changes).
2016-04-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
typo
2016-04-20 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] Improved warning message for the "long double" test.
[configure.ac] "double format" test: changed the AC_MSG_ERROR (when
not recognized) to AC_MSG_WARN (like with long double).
[configure.ac] No longer include <stdint.h> in the "double format" test
(it is unnecessary and doesn't exist everywhere).
[acinclude.m4] Typo.
2016-04-13 Vincent Lefèvre <vincent@vinc17.net>
[tests/tversion.c] Updated a comment about Cygwin and Unix.
2016-04-09 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Fixed bug triggered when the command for err-if-output
has empty arguments (this does not occur yet).
2016-04-08 Vincent Lefèvre <vincent@vinc17.net>
[tests/tversion.c] Output the status of the __GMP_LIBGMP_DLL and
MPFR_WIN_THREAD_SAFE_DLL macros (since unreliable consistency checks
have been removed in r10260).
[src/mpfr-impl.h] Removed the detection of possible inconsistencies
under Unix because the tests could yield spurious errors with Cygwin32
or other similar implementations. Moreover, such tests were used for
debugging purpose or to detect potential problems in the environment,
thus were not really useful for the end user. They were initially
added in the win-thread-safe-dll branch (r9682, following a problem
found in r9680). One alternative for checking by the MPFR developers
would be to output the status of some internal macros in tversion.
[tools/mpfrlint] Use err-if-output also for external checkers.
[tools/mpfrlint] Better choice of a variable name.
2016-04-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
revert changeset 10255
2016-04-08 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint]
* Switched to zsh.
* Much more meaningful error messages.
* Fix: in the mpfr.texi punctuation test, ignore the comments.
2016-04-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
patch for Cygwin (cf https://trac.sagemath.org/ticket/20380)
2016-04-08 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
2016-04-07 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Document mpfr_dump (which has always been there).
[src/dump.c] Added a comment (with TODO).
Replaced various instances of mpfr_print_binary + newline (sometimes
missing) by mpfr_dump.
[tests] Fixed typo in error messages.
2016-04-01 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Mention ISO/IEC JTC 1/SC 22/WG 21 N3060 (C++ special functions).
2016-03-29 Vincent Lefèvre <vincent@vinc17.net>
[INSTALL] Removed incorrect note about NetBSD/alpha: The configure
script distributed with the MPFR 3.1.4 tarball does not contain anything
related to the -mieee GCC option; this just seems to be a particular
pkgsrc issue for NetBSD:
http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/mk/platform/NetBSD.mk?rev=1.48&content-type=text/x-cvsweb-markup
https://www.google.fr/search?q=pkgsrc+%22mieee%22
where -mieee is added. The -mieee-with-inexact option added in the MPFR
3.1 branch might yield the same error with the buggy GCC versions, but
this is now obsolete in the trunk (the code was removed in r10152).
2016-03-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added note about NetBSD/alpha
2016-03-16 Vincent Lefèvre <vincent@vinc17.net>
[doc/sum.txt] Added a summary of the timings, copied from:
^/misc/sum-timings/results/ReadMe@10244
2016-03-15 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsum.c] Updated comment of bug20160315 after fix in 3.1 branch.
[tests/tsum.c] Added bug20160315 (this bug appears when porting sum.c
for MPFR 3.1.4 but does not appear in the trunk).
2016-03-14 Vincent Lefèvre <vincent@vinc17.net>
[doc/sum.txt] Some clarification in the TMD case.
[doc/sum.txt] Added a proof that the choice for the size ts of the
temporary area is sufficient.
[doc/sum.txt] Replaced e by ε for the error (e is already used).
[doc/sum.txt] Update about t' in the error analysis.
[doc/sum.txt] More about the notion of exponent in two's complement.
2016-03-13 Vincent Lefèvre <vincent@vinc17.net>
[doc/sum.txt] Update about sum_raw (with a correction of a typo).
2016-03-10 Vincent Lefèvre <vincent@vinc17.net>
[doc/sum.txt] Rewrote paragraph about limitations.
[src/sum.c] Corrected comment: 32/64-bit machine → 32/64-bit ABI.
[src/sum.c] Use UPDATE_MINEXP when necessary; added comments.
[src/sum.c] Added a comment about corner cases involving huge
precisions, which should never occur in practice.
[src/sum.c]
* Added some MPFR_ASSERTD that correspond to properties used in the
proof corrected in doc/sum.txt r10221.
* Added a test for corner cases that will/can probably never occur
in practice.
[doc/sum.txt] Improved explanations and corrected a proof.
[doc/sum.txt] Added a figure.
[doc/sum.txt] Clarifications.
2016-03-09 Vincent Lefèvre <vincent@vinc17.net>
[doc/sum.txt] GMP → the current version of GMP (6.1.0).
[doc/sum.txt] Another clarification.
[doc/sum.txt] Clarification about a reiteration in sum_raw with
explanation closer to the code.
[src/sum.c] Clarification of comments about "sum.txt".
[src/sum.c] Added comments and an MPFR_ASSERTD for sum_raw().
[doc/sum.txt] Clarification.
[doc/sum.txt] Update (mainly related to two's complement).
[INSTALL] More information about MinGW and __USE_MINGW_ANSI_STDIO.
2016-03-08 Vincent Lefèvre <vincent@vinc17.net>
[doc/sum.txt] Corrected 2 typos found by PZ.
[doc/sum.txt] Added commas.
[doc/sum.txt] Added info about an exact zero result and IEEE 754 / 1788.
[doc/sum.txt] A bit more about the choice of two's complement for the
accumulator.
[doc/sum.txt] Explanation concerning the choice of two's complement for
the accumulator.
2016-03-04 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Update about MinGW and __USE_MINGW_ANSI_STDIO.
[INSTALL] Some improvement about MinGW and __USE_MINGW_ANSI_STDIO.
[TODO] With MinGW, build with -D__USE_MINGW_ANSI_STDIO by default?
2016-03-03 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] Improved --help messages for decimal-float and float128
(a bit like what was done for thread-safe).
2016-03-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
updated NEWS for decimal floats and __float128
set --enable-float128 to "autodetect" by default (like --enable-decimal-float)
2016-03-02 Vincent Lefèvre <vincent@vinc17.net>
[TODO] For testing the lack of subnormal support.
[acinclude.m4] Also fixed the test for subnormal double-precision
numbers, in case an extended precision / exponent range is used
(however the test is not guaranteed with non-conforming compilers).
[acinclude.m4] Fixed test for subnormal single-precision numbers.
2016-03-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added a separate configure test for subnormals in the "float" format
2016-03-02 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4,configure.ac] Various fixes in error messages.
[TODO] Update ICC detection.
2016-03-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
autodetect support for decimal floats (as suggested in revision 10179)
2016-03-02 Vincent Lefèvre <vincent@vinc17.net>
[src/ieee_floats.h] Comment update.
[tests/tversion.c] Another improvement, just in case Clang no longer
defines __GNUC__ in the future.
[tests/tversion.c] Improved output of compiler information.
[src/ieee_floats.h] No longer use a NaN memory representation because
it was fixed thus could be either a qNaN or a sNaN, depending on the
machine. Moreover the choice is to generate a qNaN, in particular due
to lack of sNaN support by compilers.
Do not build with decimal float by default as it is not standard
(a better behavior could be to auto-detect).
Updated comments about DBL_NAN, dbl_nan.d and qNaN / sNaN encoding.
[src/get_flt.c] Updated FIXME comment: idea of a solution...
[src/get_flt.c] FIXME: The code assumes the IEEE-754 binary32 format
with subnormal support.
[tests/tget_flt.c] Do tests that may involve subnormals only
if HAVE_DENORMS is defined.
2016-03-01 Vincent Lefèvre <vincent@vinc17.net>
[src/set_*.c] Use the DOUBLE_ISNAN macro for _Decimal64, __float128 and
long double like what is done for double; on platforms where d != d is
not wrongly optimized to false, this should not change anything. Also
added some MPFR_UNLIKELY for special cases of _Decimal64 and __float128,
as this is already done for double and long double.
[tools/mpfrlint] Detect some uses of "x != x" and "x == x".
2016-03-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
recognize icc (which might define __GNUC__)
2016-03-01 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Added a comment about non-IEEE-754 environment.
2016-03-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
HAVE_DOUBLE_IEEE_LITTLE_SWAPPED is not supported
2016-03-01 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] Quote the argument of all AC_MSG_RESULT and AC_MSG_ERROR
when it is longer than a word, as already done in most cases (this is
safer in case we modify the text and add a comma).
[tests/tset_float128.c] Better cast.
2016-03-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
use DOUBLE_ISNAN() instead of f == f
updated
updated paragraph on AIX/PowerPC
added more details in case of error
harmonize configure message against GMP
updated with mpfr-3.1.4-rc2
fixed detection of "double" format, and removed
HAVE_DOUBLE_IEEE_LITTLE_SWAPPED, since we have no machine to test it
removed leftover debug statement
2016-03-01 Vincent Lefèvre <vincent@vinc17.net>
Removed "The IEEE code for double needs GMP internal files." from
doc/README.dev as this is no longer the case since r10150.
2016-03-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
speedup in mpfr_set_d and mpfr_get_d
improved detection of decimal floats
removed (obsolete?) #define XDEBUG in mpfr-gmp.h
2016-03-01 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] Removed old code for Alpha (as suggested by Paul).
It was no longer tested.
[configure.ac] Added a FIXME comment about a possible misuse of
AC_RUN_IFELSE programs that can return several values.
2016-02-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
get rid of dependency from GMP for _GMP_IEEE_FLOATS and ieee_double_extract
enable decimal float by default
2016-02-29 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Also detect the use of ASSERT_ALWAYS (forbidden).
Replaced the remaining ASSERT_ALWAYS by MPFR_ASSERTN.
[NEWS] Removed a useless note (as the ABI has already changed).
[NEWS] Update about MinGW: "Added support for thread-safe DLL" as
this was more than a fix of the test suite with r9684,9778.
[NEWS] Added "MinGW: Avoid failures in the test suite for shared builds
with TLS." (fix in r9891).
[INSTALL] Removed an obsolete sentence about MinGW and shared builds
with TLS (the failures in the test suite were avoided in r9891).
[tests/Makefile.am] Comment update.
2016-02-25 Vincent Lefèvre <vincent@vinc17.net>
About "config.h" inclusion: code consistency; removed obsolete comment.
[tests/tversion.c] Output availability of intmax_t/uintmax_t based
functions and *printf functions.
[src/printf.c] Added a blank line for more readability.
[doc/README.dev] Added a note about the "config.h" inclusion.
[tests/tversion.c] Let's group the features together.
[tests/tversion.c] Output support status of modifiers in gmp_printf.
Added mpfr_buildopt_float128_p function.
[doc/mpfr.texi] Removed old comments.
2016-02-24 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset_str.c] Correction (with no noticeable effect).
[tools/mpfrlint] For codespell, skip the openout.* files, which are
created by "make pdf".
[src/sum.c] Minor FIXME comment update.
[doc/sum.txt] Updated introduction.
[tools/announce-text] Check the files on the mpfr.org web server.
[tools/announce-text] Added a comment.
[tools/announce-text] Update for release candidates.
[doc/mpfr.texi] Fixed a warning with "make info".
Added tools/ck-news Perl script to check the NEWS file.
In Makefile.am:
* run this script in dist-hook for "make dist";
* added this script to EXTRA_DIST as it is used in dist-hook.
[tools/announce-text] Take into account $vers setting.
[tools/announce-text] Replaced MD5 by SHA256.
2016-02-23 Vincent Lefèvre <vincent@vinc17.net>
[tools/update-version] Correction for new perl versions.
2016-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
unified description of mpfr_eint
2016-02-23 Vincent Lefèvre <vincent@vinc17.net>
[src/{cmp_d.c,cmp_ld.c}] Bug fixes: mpfr_cmp_d (resp. mpfr_cmp_ld) was
setting the NaN flag when the double (resp. long double) was a NaN and
could return an incorrect result (assertion failure in debug mode) in
reduced exponent range.
[tests/{tcmp_d.c,tcmp_ld.c}] Added a test in reduced exponent range.
[tests/{tcmp_d.c,tcmp_ld.c}] Full test of the flags for NaN → failure.
[tests/{tcmp_d.c,tcmp_ld.c}] GNU coding style.
[tests/tcmp_d.c] GNU coding style.
[doc/sum.txt] Update about the suggestion to split the inputs for
Demmel's algorithm.
2016-02-22 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Added a reference to the build-multi script.
Removed the tools/build-multi script (already in ^/misc).
Added tools/build-multi zsh script to build and install multiple MPFR
versions, and add XML library descriptors for ABI Compliance Checker.
[tests/tagm.c] Also do the test with a = b in precision 2 (since the
same bug occurs in the 3.1 branch, which doesn't support precision 1).
2016-02-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed error analysis for gamma_inc continued fraction
2016-02-19 Vincent Lefèvre <vincent@vinc17.net>
[tests/tfmod.c] Test that triggers the bug fixed in r10054: run it
also in the extended exponent range in order to make the test fail
when ported to the 3.1 branch.
[tests/tfmod.c] Renamed a variable since it is not always NaN.
[tests/tfmod.c] Added a test that triggers the bug fixed in r10054
without relying on test_generic failure.
2016-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added references in comment
2016-02-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added error analysis for gamma_inc with continued fraction (to be reviewed)
2016-02-18 Vincent Lefèvre <vincent@vinc17.net>
[doc/sum.txt,src/sum.c] mpfr_sum: added support for precision 1.
2016-02-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
more precision about gamma_inc
added reference to series for incomplete gamma function
2016-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added tests for negative integer a
2016-02-17 Vincent Lefèvre <vincent@vinc17.net>
[tests/tfmod.c] Do not use a variable named nan to avoid confusion
with the nan function of C99 (and possible obscure failures in the
future, if we include <math.h>).
2016-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added reference to gamma_inc(-n,x) for current code
added test to exercise bug fixed in revision 10056
fixed one test
fixed bug in mpfr_agm in case a=b but result cannot be exactly represented
in the target precision: ternary value was wrongly set to 0
2016-02-17 Vincent Lefèvre <vincent@vinc17.net>
Removed trailing spaces.
2016-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
reduce the time of tgamma_inc
fixed the number of special tests for 2-argument functions
fixed stupid error in revision 10054
2016-02-17 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Removed mpfr_sum_sort declaration, as this internal
function had been removed in r9370.
2016-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
avoid computing with huge integers in mpfr_fmod when x/y is very small
2016-02-17 Vincent Lefèvre <vincent@vinc17.net>
[doc/sum.txt] Update about the old mpfr_sum implementation.
2016-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
Clarify the status of mpfr_gamma_inc for the MPFR 3.2 release.
2016-02-17 Vincent Lefèvre <vincent@vinc17.net>
[tests/tgeneric.c] Fixed a typo in latest commit, and added min/max
and max/min special tests for functions with 2 arguments.
This triggers a failure in tfmod on 64-bit machines at least.
[src/gamma_inc.c] Improved assertions.
2016-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
now mpfr_gamma_inc(a,x) also works for 'a' a negative integer
(however a and x should not be too large, we should implement
Legendre's continued fraction for the general case)
fixed issue in mpfr_eint
2016-02-17 Vincent Lefèvre <vincent@vinc17.net>
[src/gamma.c] Added another assertion.
[src/gamma.c] Added assertions and a comment.
[src/gamma.c] Removed useless saved_flags as flags are already saved
by MPFR_SAVE_EXPO_MARK. Removed the comment about about emin/emax as
emin <= 2 <= emax may not be sufficient (or may be suboptimal).
After all, MPFR_SAVE_EXPO_* is the usual thing to do...
2016-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
previous commit was incomplete
fixed bug in mpfr_gamma: flags might be corrupted in case the argument was
an integer fitting in an unsigned long
2016-02-15 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Update about patches.
[tests/troot.c] Compare root(x,2^h) with pow(x,2^(-h)).
Added bad_cases tests for mpfr_pow_ui and mpfr_pow_si.
Added bad_cases tests for mpfr_root.
[src/{fits_intmax.c,fits_s.h,fits_u.h}] Fixed mpfr_fits_* functions
in a reduced exponent range and debug mode for non-integer numbers
just above the positive limit.
[tests/tfits.c] Check a non-integer number just below a power of two.
[tests/tfits.c] Also run the tests in reduced exponent range.
[tests/tfits.c] Added tests of non-integer values near the type limits.
This triggers a flags failure for src/fits_* r9649, corresponding to
the bug fixed in r9650 (there were no tests for this bug yet).
[tests/tfits.c] Increased code reuse so that tests could be improved
more easily (not everything is tested yet).
2016-02-12 Vincent Lefèvre <vincent@vinc17.net>
[tests/tconst_log2.c] Correction for C++ compilers.
[tests/tcan_round.c] Correction for C++ compilers. Code formatting.
[src/div.c] Coding style.
[src/div.c] Added a TODO for value coverage tests.
[doc/mpfr.texi] Added a comment about mpfr_gamma_inc.
[tests/tgamma_inc.c] Added a TODO.
[src/gamma_inc.c] Detect internal overflow in order to avoid taking
all the memory of the machine, but it is currently not supported:
assertion failure. This was occurring with a = 2^32 and x = 2^(-32)
on 32-bit machines (see change in r10019).
2016-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
reduced a test with large arguments
2016-02-11 Vincent Lefèvre <vincent@vinc17.net>
[src/gamma_inc.c] Improved type consistency to avoid integer overflow.
[src/gamma_inc.c] Added some assertions to detect integer overflow.
[tests/tgamma_inc.c] C++/C99 comment → C89 comment.
[src/gmp_op.c] Fixed an assertion that made tgmpop fail on 32-bit
machines (it became wrong with r9964 and --enable-assert).
2016-02-10 Vincent Lefèvre <vincent@vinc17.net>
[doc/sum.txt] Added a FIXME for precision 1 (recently added).
2016-02-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added formula for gamma_inc(-n,x)
2016-02-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed item about speeding up const_euler: done since now for x=1.1,
prec=16610, mpfr_const_euler takes only about 40% of the total time.
For x=1.1 and prec=100000 it takes only about 14% of the total time.
fixed the call to mpfr_eint() in gamma_inc, added some tests for gamma_inc
now mpfr_eint() returns -E1(-x) for x < 0
2016-02-09 Vincent Lefèvre <vincent@vinc17.net>
[src/eint.c] Fixed eint(-inf).
[tests/teint.c] Added a corresponding test.
[src/si_op.c] Unified coding style and added logging.
[src] Moved si ops from mul_ui.c, div_ui.c and ui_div.c to si_op.c.
[src/ui_div.c] Fixed bug in mpfr_si_div when the integer is LONG_MIN,
visible when using an UB sanitizer (see r9999).
Note: this integer value is not tested yet in the test suite due to
the lack of generic tests for mpfr_si_div.
[tests/{tgeneric.c,tsi_op.c}] Added TODO.
[src/{div,mul}_ui.c] Fixed bug in mpfr_div_si and mpfr_mul_si when the
integer is LONG_MIN, visible when using an UB sanitizer (see r9999).
[tests/tgeneric_ui.c] Added tests of the extreme integer values,
so that tsi_op fails with a runtime error in si_op.c r9998 when
using an UB sanitizer (bug fixed in r9999).
[src/eint.c] Code simplification.
[src/si_op.c] Fixed bug in mpfr_add_si, mpfr_sub_si and mpfr_si_sub
when the integer is LONG_MIN, visible when using an UB sanitizer.
[src/si_op.c] Code formatting.
[tests/teint.c] Added a test that triggers a runtime error
at si_op.c:42:31 on an x86-64 Linux machine, using:
CFLAGS="-fsanitize=undefined -fno-sanitize-recover"
[doc/mpfr.texi] Typographic correction.
[tools/mpfrlint] Avoid false positives in mp_exp_t check.
[src/eint.c] Updated a FIXME (mpfr_set_exp_t was added in r4333 and
completed in r5455), with typo from r6789 corrected.
[doc/mpfr.texi] Updated Section "API Compatibility / Changed Functions":
mpfr_eint changed in MPFR 3.2.
2016-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
update NEWS/TODO with respect to E1
oops, eint(x) was wrong for negative x with |x| >= 0.5
now mpfr_eint(x) returns E1(x) for negative x
2016-02-08 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Correction (spelling).
[tests/tsum.c] Clarified a bit more.
[tests/tsum.c] Added explanations concerning the check1 test.
Value coverage for tsum: reduce output length.
Value coverage for tsum: differentiate sq > MPFR_PREC_MIN and not.
2016-02-07 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsum.c] Source on 80 columns.
2016-02-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
extended the check1() test, gives failure on 64-bit processor
fixed note
2016-02-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
more work on gamma_inc
note about memory usage
2016-02-05 Vincent Lefèvre <vincent@vinc17.net>
[src/gamma_inc.c] Corrected protection against integer overflow
(MPFR_PREC_IN_RANGE is just for debug mode).
[src/gamma_inc.c] Added protection against integer overflow
(i.e. abort instead of getting incorrect results).
2016-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
more work on gamma_inc (only remains the case a=0 and x>0 to implement)
2016-02-05 Vincent Lefèvre <vincent@vinc17.net>
Removed trailing spaces.
[tests/troot.c] In exact_powers, check negative values too.
[src/root.c] Code simplification.
TODO update for fmma.
2016-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
reduced emax
added a test for exact powers for mpfr_root
and fixed mpfr_root for negative x (and odd k)
2016-02-05 Vincent Lefèvre <vincent@vinc17.net>
[src/root.c] Corrected(?) the check for exact root by adding an
exactness test for the inverse operation z^k (if unnecessary, it
needs to be properly proved and documented).
[src/root.c] Corrected a comment.
[src/root.c] Some minor changes. Updated comments.
2016-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
check for an exact root in mpfr_root_aux
fixed bug in mpfr_root and inefficiency problem with large k
2016-02-05 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] For MPFR_IS_PURE_FP(x), when x is a pure FP number,
check that EXP(x) is in the current exponent range (debug mode).
[src/exceptions.c] Some changes concerning mpfr_check_range:
* Added a note about the case EXP(x) < MPFR_EMIN_MIN.
* Do not use the MPFR_IS_PURE_FP() macro as this macro assumes that
if the number is not a singular number, then it is really a pure
FP number (some assertion checking may be done in debug mode),
but this is not necessarily the case here.
* Removed an incorrect comment and re-added the MPFR_UNLIKELY for
the cases where EXP(x) is outside the exponent range. Indeed,
mpfr_check_range is called at the end of most functions, and
in most cases, there are no underflows / overflows.
[tests/texp.c] Added FIXME, as the overflow test, which was specific
to the 32-bit ABI, is no longer run.
[tests/tacosh.c] Added a FIXME (huge values no longer tested at all).
[src/fmma.c] Removed unused code.
2016-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added code to compare mpfr_root with exp(log(x)/k)
reduce MPFR_EMAX_DEFAULT by 2, and modify some tests cases assuming
MPFR_EMAX_DEFAULT=2^30-1
fixed fmma failure
2016-02-05 Vincent Lefèvre <vincent@vinc17.net>
[src/exp.c] Simplified exponent range setting in special case.
2016-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed test_generic() calls to start from MPFR_PREC_MIN instead of 2;
this revealed a special-case code in mpfr_exp which didn't work for prec=1
2016-02-05 Vincent Lefèvre <vincent@vinc17.net>
[tests/trint.c] Do the significand parity test only for precision > 1.
2016-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
updated NEWS and mpfr.texi for MPFR_PREC_MIN=1
MPFR_PREC_MIN is now 1, in accordance with the next revision of IEEE-754
fixed tests to start at MPFR_PREC_MIN instead of hard-coded value of 2
fixed test which was assuming MPFR_PREC_MIN=2
fixed to correctly check prec=1
prepare for MPFR_PREC_MIN=1
fixed tcheck for MPFR_PREC_MIN=1
prepare mpfr_pow to work for precision 1
2016-02-04 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Mention the Caramba project-team.
Replaced
Contributed by the AriC and Caramel projects
by
Contributed by the AriC and Caramba projects
2016-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added comment about gamma_inc
2016-02-04 Vincent Lefèvre <vincent@vinc17.net>
[src/gamma_inc.c] Added assertions.
2016-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
more work on gamma_inc
fixed some special values for gamma_inc
2016-02-03 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] FIXME: Clarify the status of mpfr_gamma_inc for
the MPFR 3.2 release.
2016-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
completed "Added Functions" section
2016-02-03 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Typographic correction.
[src/div.c] Fixed bug introduced in r9902 and visible in the tests
on 32-bit machines.
[src/root.c] Added TODO for code rewrite (discussion between VL and PZ).
[tests/troot.c] Also check that root(0,0) is NaN to make sure that such
special cases are considered in the right order in the implementation.
[doc/mpfr.texi] Completed mpfr_root description: the 0th root gives NaN.
[src/root.c,tests/troot.c] Removed obsolete code that was commented out;
some cleanup.
[src/root.c] Comment correction (again).
[src/root.c] Comment correction to avoid a variable name with several
meanings.
[src/root.c] Simplified code and corrected comment.
[src/root.c] Corrected a comment and added an assertion (see r9923).
[src/root.c] Added a FIXME comment.
[tests/troot.c] Typo in a comment.
[tests/troot.c] Added tests showing a bug in mpfr_root on large
integer arguments (found thanks to a bug in GNOME Calculator:
<https://bugzilla.gnome.org/show_bug.cgi?id=756960>).
Style: use RND_LOOP; mpfr_can_round returns a Boolean-like value.
2016-02-02 Vincent Lefèvre <vincent@vinc17.net>
[src/{erandom.c,nrandom.c}] Updated a reference.
2016-02-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
mpfr_can_round -> MPFR_CAN_ROUND
2016-02-02 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated FIXME for mpfr_can_round.
[doc/mpfr.texi] Added a FIXME for mpfr_can_round. Still incorrect...
[doc/mpfr.texi] Updated the month.
[doc/mpfr.texi] Corrected note about mpfr_can_round.
2016-02-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
refactor the exhaustive search code in mpfr_const_log2
mpfr_round_p -> MPFR_CAN_ROUND
mpfr_can_round -> MPFR_CAN_ROUND
mpfr_can_round -> MPFR_CAN_ROUND
use MPFR_CAN_ROUND instead of mpfr_can_round/mpfr_round_p
rounding test was wrong for rounding to nearest
replace mpfr_can_round by mpfr_round_p
2016-02-02 Vincent Lefèvre <vincent@vinc17.net>
[src/round_prec.c] Added a TODO to improve the mpfr_can_round_raw
efficiency by only doing a bit inspection (no mpn operations).
2016-02-01 Vincent Lefèvre <vincent@vinc17.net>
[tests/tcan_round.c] Added test of mpfr_round_p with powers of two
(similar to the one done in src/round_p.c for MPFR_WANT_ASSERT >= 2).
[tests/tcan_round.c] Updated description: mpfr_round_p is also tested
in check_round_p (and will be in test_pow2).
2016-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
now mpfr_round_p() always requires normalized input
2016-02-01 Vincent Lefèvre <vincent@vinc17.net>
[src/div.c] Added an assert based on comments in the code.
[src/round_p.c] Some corrections in comment.
2016-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added a comment
2016-01-31 Vincent Lefèvre <vincent@vinc17.net>
[src/round_p.c] Fixed mpfr_round_p for MPFR_WANT_ASSERT >= 2, as
mpfr_round_p accepts non-normalized inputs (as decided in r9897),
but not mpfr_can_round_raw (as decided in r9883).
2016-01-31 Paul Zimmermann <Paul.Zimmermann@inria.fr>
the inputs of mpfr_round_p might not always be normalized
2016-01-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed FIXME
2016-01-29 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] Improved consistency in messages.
[doc/README.dev] Updated instructions on how to cross-compile MPFR
for MinGW (i586-mingw32msvc) and test it under Wine.
2016-01-29 Vincent Lefèvre <vincent@vinc17.net>
Cleanup of memory allocation in the tests:
* only tests_allocate, tests_reallocate and tests_free should be used
(now exported instead of mpfr_default_allocate, etc.);
* this is now mentioned in doc/README.dev;
* added checks to tools/mpfrlint (heuristics as usual).
Note: This follows the discussion at
https://sympa.inria.fr/sympa/arc/mpfr/2015-12/msg00055.html
and should solve these problems under MS Windows (mingw32), though this
cleanup is more general than an attempt to fix a Windows issue.
2016-01-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed case when prec > bn * GMP_NUMB_BITS and directed rounding
typo
2016-01-28 Vincent Lefèvre <vincent@vinc17.net>
[tests/tcan_round.c] Updated comment and corrected condition on prec.
[tests/tcan_round.c] Updated comments.
[src/round_p.c] Added an assertion (similar to what was added to
mpfr_can_round_raw). This triggers failures, which could also be
detected with MPFR_WANT_ASSERT >= 2, due to the fact that mpfr_div
can internally generate a number that is not normalized before a
rounding test.
[src/round_prec.c] Updated comments.
2016-01-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
more work on mpfr_can_round
fixed bug in mpfr_can_round for input = 2^k
2016-01-27 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Replaced "Rounding Related Functions" by
"Rounding-Related Functions" (thanks to Keith Briggs for the remark).
[tests/tcan_round.c] Added tests for powers of two. This triggers
errors. I may have done mistakes, but at least x = 2^32, j = 32,
r1=MPFR_RNDN, r2=MPFR_RNDN seems buggy.
2016-01-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
simplified
another detail
2016-01-27 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Corrected mpfr_can_round description again as the
possible difference is on 0+ = 2^(emin-1), not about overflow.
Let's just say "assuming an unbounded exponent range".
[doc/mpfr.texi] Corrected mpfr_can_round description (about overflow).
2016-01-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
yet another improvement
improved documentation
2016-01-27 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Clarified change in r9873.
2016-01-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improve documentation of mpfr_can_round
also print the rounded value
added pointer to examples/can_round.c
2016-01-27 Vincent Lefèvre <vincent@vinc17.net>
[examples/can_round.c] Removed the useless #include <gmp.h> and
replaced the internal mpfr_dump by mpfr_printf.
2016-01-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improved documentation of mpfr_can_round
added example on how to use mpfr_can_round
2016-01-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
mention mpfr_set/get_decimal128 for the future (low priority for now)
2016-01-21 Vincent Lefèvre <vincent@vinc17.net>
[src/round_p.c] Code formatting.
2016-01-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added remark about Ei vs E1
2016-01-21 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsqrt.c] Improved bug20160120.
[tests/tsqrt.c] In bug20160120, check the validity of the result with
mpfr_check first, because the mpfr_sqrt was generating invalid data.
2016-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug in mpfr_sqrt reported by Fredrik Johansson
added test case for bug reported by Fredrik Johansson
added FIXME
2016-01-20 Vincent Lefèvre <vincent@vinc17.net>
[tests/tzeta.c] Added casts for printf.
[tests/tzeta.c] Some corrections. Made the input value of the latest
test clear (avoiding a long string at the same time).
2016-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug for zeta(s) with s near an even negative integer
2016-01-20 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Instructions on how to cross-compile MPFR for MinGW
(i586-mingw32msvc) and test it under Wine.
[doc/README.dev] Typo.
[tests/tgeneric.c] Improved the generic tests in order to trigger the
mpfr_jn bug found by Fredrik Johansson (r9841) and potential similar
bugs: For half cases, the precision of the inputs was modified to be
smaller than the base precision (for the result). Here, this rule is
changed so that if the base precision is small (< 16), then the
precision of the inputs is chosen to be significantly *larger* than
the base precision in general.
Note: With this improvement, both tj0 and tj1 fail in r9840.
2016-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added references
added section about gamma_inc
fixed bug found by Fredrik Johansson
added reference for eint
2016-01-20 Vincent Lefèvre <vincent@vinc17.net>
[tests/tj0.c] Avoid mpfr_set_d.
2016-01-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added bug found by Fredrik Johansson in mpfr_j0
added mpfr_gamma_inc
2016-01-19 Vincent Lefèvre <vincent@vinc17.net>
[src/gamma_inc.c] Use MPFR_ARE_SINGULAR.
2016-01-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
deal with the case where one of a or x is not regular
2016-01-19 Vincent Lefèvre <vincent@vinc17.net>
[tools/nightly-test] Corrected tests.
2016-01-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added reference
2016-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added the incomplete beta function
incomplete Gamma is now available
switch to bash and add --enable-decimal-float
minor modification of documentation for mini-gmp
added target "make bench"
2016-01-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
allow tgamma x prec to print gamma(x) to prec bits
2016-01-17 Vincent Lefèvre <vincent@vinc17.net>
[tests] Added tgamma_inc to svn:ignore property.
TODO update.
[src/fmma.c] Removed trailing spaces.
[tests/tgamma_inc.c] Portability correction.
[src/mpfr.h] Improved a comment.
[src/gamma_inc.c] Various corrections.
2016-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
first version of incomplete Gamma function (work in progress)
2016-01-16 Vincent Lefèvre <vincent@vinc17.net>
TODO for correctly rounded polynomials (like fmma).
2016-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
try to fix bugs in fmma (work in progress)
2016-01-15 Vincent Lefèvre <vincent@vinc17.net>
[src/log_ui.c] Added a FIXME comment: mpfr_log_ui is much slower than
mpfr_log on some values of n, e.g. around ULONG_MAX/3.
[tests/tlog_ui.c] Added tests for n around ULONG_MAX/3.
[src/log_ui.c] Fixed the computation of p.
[src/log_ui.c] Removed a mpz_sub_ui(...,1) to match the comment.
This -1 came from the previous code, but this doesn't change the
value of k because a multiple of 3 cannot be a power of 2. Also
renamed a variable.
[src/log_ui.c] Compute the value of k without rounding (if n was larger
than 2^53 or even 2^24 due to dynamic x87 precision, the result could
be wrong) and overflow (3 * n doesn't always fit in a limb).
[src/log_ui.c] Added assertions.
[tests/tlog_ui.c] Added tests for n around LONG_MAX.
[src/log_ui.c] Replaced a comment by an assertion.
[src/log_ui.c] Added a FIXME (integer overflow for large n).
[tests/tlog_ui.c]
* In the loop, do not test n = 0 and n = 1, because mpfr_can_round
always fails for these values, so that the test is pointless.
* Check that mpfr_can_round no longer fails (this is possible as
we are not doing random tests, i.e. the tested values are known);
the additional precision for y had to be increased.
* Also test large values of n (ULONG_MAX down to ULONG_MAX-19). When
GCC's run-time sanitizer -fsanitize=undefined -fno-sanitize-recover
is used, it signals an error for large values of n.
* The reference values y are obtained with mpfr_log instead of
mpfr_log_ui: indeed we need a different implementation from the
tested function, otherwise only the rounding is tested! Without
GCC's run-time sanitizer, this shows that mpfr_log_ui is buggy
for large values of n.
[tests] Added tfmma and tlog_ui to svn:ignore property.
[src/fmma.c] Use MPFR_SET_EXP to get an assertion failure in case of
out-of-range exponent instead of uncontrolled behavior.
[tests/tfmma.c] Added tests that trigger an error.
[src/fma.c] Added a comment for the new code.
2016-01-14 Vincent Lefèvre <vincent@vinc17.net>
[tests/Makefile.am] Tests in lexicographic order.
2016-01-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
in tests, removed #if MPFR_VERSION >= MPFR_VERSION_NUM(2,x,y)
forgot in last commit
added new function mpfr_log_ui
2016-01-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
adapted to 3- and 4-argument functions (using patch from Patrick Pelissier)
2016-01-12 Vincent Lefèvre <vincent@vinc17.net>
[tests/tfmma.c] C++ compatibility.
[tests/tfmma.c] Fixed type in printf.
[src/fmma.c] Replaced mp_ptr by mpfr_limb_ptr (as usual).
Really replaced mpfr_printf by printf.
2016-01-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
give copyright to FSF
replaced mpfr_printf calls
changed copyright (I'm the sole author of this part of the code)
forgot two files
2016-01-12 Vincent Lefèvre <vincent@vinc17.net>
[src/fma.c] C89 compatibility correction.
[src/fma.c] Replaced mp_ptr by mpfr_limb_ptr (as usual).
2016-01-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
speedup in mpfr_fma and mpfr_fms
new functions mpfr_fmma and mpfr_fmms
modified mbench/fma to compute b*c+c instead of b*b+c (b*c+d would be better)
2016-01-08 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Added info about the parallel test harness.
Updated documentation related to valgrind or other wrapper for the tests
due to the fact that Automake 1.13+ generates a parallel test harness.
* doc/README.dev: replaced VALGRIND by LOG_COMPILER.
* tests/Makefile.am: added a comment mentioning LOG_COMPILER.
2016-01-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
mpfrbench: use clock() when getrusage() is not available
2016-01-02 Vincent Lefèvre <vincent@vinc17.net>
[INSTALL] Added a note about tuning MPFR:
For the current GMP version (6.1.0), a Unix-like OS is required.
2016-01-01 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
Copyright notice update: added 2016 with
perl -pi -e 's/ (\d{4}-)?(2015)(?= Free Software)/
" ".($1||"$2-").($2+1)/e' **/*(^/)
under zsh (the m4 and tools/mbench directories were not modified).
Removed 2015 from the example in the doc/README.dev file.
2015-12-28 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Fixed MPFR_WIN_THREAD_SAFE_DLL definition
(patch by Patrick Pélissier).
2015-12-27 Vincent Lefèvre <vincent@vinc17.net>
[tests/mpf_compat.h] Fix: File "inp_str.dat" could not be opened with
builds outside the source directory (objdir different from srcdir).
This did not generate an error, but prevented a test from being done.
Now that mpfr-test.h is included via the mpf_compat.c or mpfr_compat.c
file (there does not seem to be a valid reason not to include it), we
can use src_fopen to open the file in all cases.
[tests] In tversion.c, output the locale too (if supported).
[tests/tinp_str.c] Added a blank line.
[tests]
* inp_str.dat: added a locale-independent line at the beginning of
the file (useful for mpf_compat).
* mpf_compat.h, tinp_str.c: update because of this change.
[tests/tests.c] Improved src_fopen description (do not use the term
"src directory" because there is a directory named "src", but this
is not what is referred here).
2015-12-26 Vincent Lefèvre <vincent@vinc17.net>
[tests/mpf_compat.h] Fix: changed "inp_str.data" to "inp_str.dat"
due to the file rename in r8120 (otherwise nothing is tested).
[tests/mpf_compat.h] For mpf_set_str and mpf_init_set_str, avoid strings
with ".", since for GMP the decimal separator is locale dependent (the
tests can be run in non-C locales on purpose in order to detect issues
in various locales), so that for the mpf_compat test, the conversion
fails and the mpf value x is set to 0 (which can yield other problems,
such as with mpf_div (y, x, x), which raises an exception).
Note: this problem appeared in r9157, where tests_start_mpfr() was added
to mpf_compat.h (the locale setting is done in this function).
2015-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
patch from Patrick Pelissier (for MinGW)
2015-12-15 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsum.c] Corrections for C++.
2015-12-14 Vincent Lefèvre <vincent@vinc17.net>
Removed trailing spaces.
2015-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
review by Rob (sisyphus1@optusnet.com.au)
removed obsolete parts (?) for MinGW
new text for Windows/Visual Studio/Visual C++ part contributed by Brian Gladman
2015-12-14 Vincent Lefèvre <vincent@vinc17.net>
[INSTALL] Switch to UTF-8.
2015-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changes proposed by Alexander (sav_ix@ukr.net)
2015-12-14 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsum.c] Correction.
2015-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
clock() should work everywhere
2015-12-14 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsum.c] The timing test from r9753 in POSIX-only.
[doc/mpfr.texi] Updated the month.
2015-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
update INSTALL file
-D__USE_MINGW_ANSI_STDIO is needed for GMP only
2015-12-11 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Updated comment about overlapping between input and output.
2015-12-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
document that (currently) mpfr_sum doesn't allow overlap
timing test to compare mpfr_sum and naive algorithm (without correct rounding)
update wrt -D__USE_MINGW_ANSI_STDIO
note about MinGW and TLS support
improving error message
2015-12-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added comment and message for errors under MinGW
2015-12-03 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Updated a comment about clang and division by 0.
2015-11-11 Vincent Lefèvre <vincent@vinc17.net>
[doc/sum.txt] Update.
[doc/sum.txt] Update.
[doc/sum.txt] Minor correction.
2015-11-10 Vincent Lefèvre <vincent@vinc17.net>
[doc/sum.txt] Minor correction.
[doc/sum.txt] Minor correction.
[doc/sum.txt] Update.
[doc/sum.txt] Clarification: avoid the word "iteration" for the loop
over the inputs, when possible.
[doc/sum.txt] Update.
[doc/sum.txt] Update.
[doc/sum.txt] Update.
2015-11-09 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Added a FIXME comment about the reuse of an input for the
output.
2015-11-06 Vincent Lefèvre <vincent@vinc17.net>
GMP 5.0.0 or newer is required (instead of 4.2.0).
[doc/sum.txt] Major and final update (complete rewrite).
[src/mpfr-gmp.h] Added a TODO.
[src/sum.c] Bug fixed (MPN_COPY_INCR instead of MPN_COPY_DECR).
2015-11-05 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Minor comment correction.
[src/sum.c] Added another assertion (checked).
[src/sum.c] Added assertions (checked).
2015-11-04 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsum.c] Added a comment.
[TODO] In tsum, add testcases for mpfr_sum triggering the bug fixed
in r9722.
[src/sum.c] Bug fix: an error bound was too large to compute the sign
of the secondary term (when the TMD occurs).
2015-11-03 Vincent Lefèvre <vincent@vinc17.net>
[tests/{tstdint.c,tvalist.c}] Updated and improved comment about the
test of partial + full <mpfr.h> inclusion.
[configure.ac] C code starting with # (preprocessor directives) must not
be indented.
2015-11-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
simplify the configuration with mini-gmp
2015-10-30 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Updated comment for sum_raw().
2015-10-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
better definition of GMP_NUMB_BITS
2015-10-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
update description of file
2015-10-29 Vincent Lefèvre <vincent@vinc17.net>
[tests/tdiv.c] Improved comment about the mpfr_divhigh_n_basecase bug.
2015-10-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
more tests do work with mini-gmp (from GMP 6.1.0-rc1)
2015-10-29 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] For the tests on the source files, ignore everything
related to mini-gmp, not just the src/mini-gmp.[ch] files.
[doc/README.dev] "To make a release": mention -DMPFR_TUNE_COVERAGE.
[tests/tdiv.c] Updated comment about the mpfr_divhigh_n_basecase bug.
2015-10-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed replacement for mpn_neg (return value was wrong)
adapt for mini-gmp (from GMP 6.1.0-rc1)
replace obsolete mpz_div_2exp function by mpz_xdiv_q_2exp
2015-10-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
adapt mini-gmp stuff to GMP 6.1.0-rc1
replace obsolete mpz_div by mpz_tdiv_q
2015-10-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fix bug reported by Ricky Farr
(https://sympa.inria.fr/sympa/arc/mpfr/2015-10/msg00023.html)
2015-10-22 Vincent Lefèvre <vincent@vinc17.net>
[autogen.sh] Restore the INSTALL file also if the process receives
a usual signal (SIGHUP, SIGINT, SIGQUIT or SIGTERM).
[tests/tversion.c] Added a comment about compiler info.
[tests/tversion.c] Instead of __GNUC__, __GNUC_MINOR__ and
__GNUC_PATCHLEVEL__, output __VERSION__, which gives more
information (for GCC development versions and ICC).
2015-10-21 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Updated comment for sum_raw().
2015-09-15 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Added a comment about mpfr_get_{si,ui,sj,uj} and flags.
[doc/mpfr.texi] Updated the month.
[doc/mpfr.texi] Changed "returned value" to "return value" when this
is the value returned by the C function (synonymous, but sometimes
less ambiguous).
[doc/mpfr.texi] For r9689, "returned value" → "return value".
[doc/mpfr.texi] Completed the specification of mpfr_get_{si,ui,sj,uj}
and mpfr_get_z (inexact flag, and returned value for mpfr_get_z).
[tests/tget_z.c] Fixed and improved the check_one() test.
* The input value was modified at each iteration, giving z = 0 very
quickly, so that not much was tested in practice; in particular,
the third argument of mpz_fdiv_q_2exp in mpfr_get_z was never
properly tested (since it has no effect for z = 0).
* Added various tests of the flags.
[tests/tget_z.c] Optimized the check_one() test.
2015-09-10 Vincent Lefèvre <vincent@vinc17.net>
Merged the win-thread-safe-dll branch: support build as thread-safe DLL
on Windows: changes from Stephan Tolksdorf
https://gforge.inria.fr/tracker/download.php/136/619/19537/4980/changes.zip
+ a correction and some consistency checks. See MPFR bug 19537 on:
https://gforge.inria.fr/tracker/index.php?func=detail&aid=19537&group_id=136&atid=619
[src/mpfr-impl.h] Resolved the problem under Linux.
[src/mpfr-impl.h] Detect some possible inconsistencies under Unix,
when some macro should imply a MS-Windows platform.
Merged the latest changes from the trunk since this wasn't the cause
of the problem.
Applied changes from Stephan Tolksdorf:
https://gforge.inria.fr/tracker/download.php/136/619/19537/4980/changes.zip
The MPFR build fails on my Linux machine with
CFLAGS=-Werror=missing-prototypes
because MPFR_WIN_THREAD_SAFE_DLL gets defined (this CFLAGS just allowed
me to detect the problem with MPFR_WIN_THREAD_SAFE_DLL, which could have
otherwise remained unnoticed).
Include config.h when need be.
2015-09-07 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Updated mpz_t caching item, suggesting mpz_init2 instead.
[TODO] Added: check whether mpz_t caching is necessary (this was
committed in r8911). In short, timings should be done with -static
(this wasn't clear), they may depend on the malloc implementation,
and after a look at the source, the difference in the timings with
mpz_t caching is surprising and should be explained.
2015-09-04 Vincent Lefèvre <vincent@vinc17.net>
[tools/ck-copyright-notice] Check src/mparam_h.in instead of the
generated (and not distributed) src/mparam.h file; this is also
useful to avoid an error after running "make tune".
2015-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
distribute the mpfrbench README
add a README for mpfrbench
2015-09-04 Vincent Lefèvre <vincent@vinc17.net>
More details in a comment about assertions via tuneup.
2015-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed failed assertion during "make tune"
2015-08-25 Vincent Lefèvre <vincent@vinc17.net>
[tests/tget_z.c] Flags testing.
[doc/README.dev] Updated a URL.
[tests/tstdint.c] Support MPFR_PRINTF_MAXLM.
[tests/tget_sj.c] Support MPFR_PRINTF_MAXLM.
[tests/tget_sj.c] Typo.
[acinclude.m4] Instead of checking whether the 'j' printf length
modifier is working, try to find one that works.
[acinclude.m4] Check whether the 'j' printf length modifier is working.
[tests/tget_sj.c] Improved check_erange (more flags testing).
[tests/tget_sj.c] Improved check_sj and check_uj even more.
[tests/tget_sj.c] Improved check_sj and check_uj (flags testing).
2015-08-24 Vincent Lefèvre <vincent@vinc17.net>
[tests/tfits.c] New tests at the limits of the types.
[tests/tfits.c] For the mpfr_fits_{uintmax,intmax}_p functions, check
that the flags are not modified and added tests of -Inf and -0.
[tests/tfits.c] For the mpfr_fits_{u,s}{long,int,short}_p functions,
check that the flags are not modified and added tests of -Inf and -0.
2015-08-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed the AMD K8 tuning (cf r8118)
2015-08-24 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset_si.c] Improved NaN mpfr_get_si / mpfr_get_ui test.
[src/{fits_intmax.c,fits_s.h,fits_u.h}] Fixed mpfr_fits_* functions:
the flags could be modified, which made the new mpfr_get_{si,ui} tests
fail (tests/tset_si.c r9649).
[tests/tset_si.c] Added mpfr_get_{si,ui} tests, including flags.
2015-08-20 Vincent Lefèvre <vincent@vinc17.net>
[src/mparam_h.in] Improved comment: __amd64__ is generic to all
x86 processors with a 64-bit ABI (amd64, a.k.a. x86_64), thus
suggest to move mparam.h files to more meaningful locations.
[configure.ac] Added test for usability of gmp.h at link time
(merged changeset r9644 from the 3.1 branch, with minor changes
due to the fact that a known problem between GMP 4.1 and GCC 5
can no longer occur, now that we require GMP 4.2.0 or newer).
2015-08-19 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] "To make a release": mention abi-compliance-checker.
2015-07-31 Vincent Lefèvre <vincent@vinc17.net>
[src/fpif.c] Added an assertion (I get a build failure with gcc-snapshot
20150722-1 due to -Werror=array-bounds, but the code looks OK).
Simplified test on: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67077
2015-07-31 Paul Zimmermann <Paul.Zimmermann@inria.fr>
remove usage of mpn_rootrem in mpfr_sqrt since now mpn_sqrtrem is faster
(https://gmplib.org/list-archives/gmp-devel/2015-July/004074.html)
2015-07-30 Vincent Lefèvre <vincent@vinc17.net>
[src/next.c] Added a note concerning the exceptions.
2015-07-20 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
[tests/tversion.c] Output MPFR_VERSION_STRING too.
[tests/tversion.c] Check and output additional mpfr_buildopt_* info.
Added mpfr_rint_roundeven and mpfr_roundeven functions, with
documentation and tests.
2015-07-16 Vincent Lefèvre <vincent@vinc17.net>
[tests/tfrexp.c]
* Replaced each mpfr_get_exp occurrence by the internal MPFR_GET_EXP
macro in order to make sure that an assertion failure is triggered
in case of singular number (see also the comment added in r9618).
* Fixed the remaining problem due to an overflow and infinite value.
[src/mpfr.h] Added a comment about the drawback of the mpfr_get_exp()
macro, defined in addition to the function.
2015-07-15 Vincent Lefèvre <vincent@vinc17.net>
[tests/tfrexp.c] Simplification: merged the tests on the ternary values,
the returned MPFR values and the flags.
[src/{div_2si.c,div_2ui.c,mul_2si.c}] Fixed some underflow cases in
rounding to nearest when the exact result is -2^(emin-2), i.e. the
middle of 0 and the minimum negative number in absolute value (the
correction in r5517 was incorrect/incomplete).
[src/exceptions.c] Added logging for mpfr_underflow and mpfr_overflow.
[tests/tmul_2exp.c] Extended the underflow() test to negative numbers,
triggering a new bug.
[src/frexp.c] Added a comment.
2015-07-02 Vincent Lefèvre <vincent@vinc17.net>
[tools/build-patch] Rebuild the mpfr.info file if mpfr.texi has been
modified, in order to take it into account in the patch. This is needed
since the mpfr.info file is distributed in the tarball.
[tools/mpfrlint] Check a Texinfo rule (Section "Ending a Sentence")
with common words that end with a capital letter.
(merged changeset r9603 from the 3.1 branch)
2015-06-28 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Updated URL of TS 18661-4.
2015-06-26 Vincent Lefèvre <vincent@vinc17.net>
[src/frexp.c] Handle internal overflow.
[tests/tfrexp.c] Forgot a "exit (1);".
[tests/tmul_2exp.c] Overflow test: more output info; improved code.
[src/mul_2si.c] Fixed overflow case when n = 0.
[tests/tmul_2exp.c] In the overflow test, check mpfr_mul_2ui and
mpfr_mul_2si too (mpfr_mul_2ui was OK).
[src/div_2si.c] Fixed overflow case when n = 0.
[tests/tmul_2exp.c] In the overflow test, check mpfr_div_2si too.
[src/div_2ui.c] Fixed overflow case (can occur only when n = 0).
[tests/tmul_2exp.c] Completed the overflow test.
[tests/tfrexp.c] Added tests (currently fail due to the mpfr_div_2ui
unhandled-overflow bug).
[tests/tmul_2exp.c] Added tests where mpfr_div_2ui overflows, which
is currently not handled.
[src/frexp.c] Fixed a bug occurring when the current exponent range
does not contain 0.
2015-06-25 Vincent Lefèvre <vincent@vinc17.net>
[src/check.c] Typo in a comment.
2015-06-19 Vincent Lefèvre <vincent@vinc17.net>
[tools/announce-text] Update due to recent InriaForge upgrade.
2015-06-16 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Added a paragraph about the multiple use of MPFR.
[TODO] Added: use symbol versioning.
2015-06-12 Vincent Lefèvre <vincent@vinc17.net>
[doc/faq.xsl] Remove the indent="no" to get the same behavior as before
when using libxslt 1.1.27+. See:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=718535#10
[tests/tfma.c] Improved the new underflow tests (test_underflow3) to
test FMA(-x,y,-z).
[src/fma.c] Completely fixed the scaling in case of underflow.
[src/fma.c] Partially fixed the scaling in case of underflow,
corresponding to the testcase from r9566. Double rounding is
not handled yet (failure triggered by r9567).
[tests/tfma.c] Improved the new underflow tests (test_underflow3) to
yield some cases with double rounding when scaling: If the only fix
in src/fma.c is to change the rounding mode of the last mpfr_div_2ui
(computing s / 2^scale) to rnd_mode, a new failure appears for n = 2,
k = 4, s = -1, MPFR_RNDN.
[tests/tfma.c] Corrected the new underflow tests to really generate
underflows, showing a bug in mpfr_fma.
[src/fma.c] Added log messages.
[tests/tfma.c] The code removed in r9560 was actually necessary,
but do this in a better way.
2015-06-11 Vincent Lefèvre <vincent@vinc17.net>
[tests/tfma.c] Added other underflow tests.
[tests/tfma.c] Some improvements.
[tests/tfma.c] GNU coding style.
[tests/tfma.c] Removed code that isn't necessary.
[doc/README.dev] "To make a release": mention -DMPFR_COV_CHECK and
-DMPFR_ALLOCA_MAX=0 tests.
2015-06-10 Vincent Lefèvre <vincent@vinc17.net>
[tests/trandom.c] Cleaner test, avoiding the explicit use of mpfr_rands.
[tests/trandom.c] Improved latest change, as some other test already
assume a fixed PRNG with GMP >= 4.2.0 (now the value of the last
random number of the test is checked).
[tests/trandom.c]
* Get a non-zero fixed-point number whose first 32 bits are 0 with the
default GMP PRNG. This corresponds to the case cnt == 0 && k != 0 in
src/urandomb.c (fixed in r8762) with the 32-bit ABI.
* Output a warning (with a fatal error when the MPFR_COV_CHECK macro
is defined) if one doesn't get such a number, probably because the
GMP PRNG has changed.
[src/sqrt.c] The bug fixed in r9540 actually came from r9014, which
incorrectly replaced MPFR_EXP by MPFR_SET_EXP. So, restored the
previous code (re-adding the assertion check), keeping my comment
from r9540 to explain why we don't use MPFR_SET_EXP.
[tests/tgeneric.c] Fixed overflow/underflow tests introduced in r9539:
the tests were done in all rounding modes, but the code was incorrect
if the exponent of the result depended on the rounding mode. So, the
tests are now done only in the rounding mode previously selected. This
should be sufficient to detect bugs.
[src/lngamma.c] For mpfr_lgamma and mpfr_lngamma, the exponent range
was not restored in some cases (some large results). Bug introduced
in r8917 (trunk only).
[src/{cos.c,sin.c}] Fixed bug related to the exponent range, introduced
in r6461 with the use of mpfr_sincos_fast.
Details:
For mpfr_sin, the exponent range was not restored, and restoring it
before calling mpfr_sincos_fast as this was done for mpfr_cos did
not work; indeed the source of this function shows that it needs an
extended exponent range. So, changed both mpfr_cos and mpfr_sin to
call mpfr_sincos_fast in the extended exponent range and restore the
exponent range at the end, like in usual code.
[tests/tgeneric.c] Check whether the exponent range has been
modified by the tested function (which should never happen).
This check triggers failures in tlgamma, tlngamma and tsin.
[src/sqrt.c] Fixed assertion failure in reduced exponent range.
Note: This could happen only in very specific exponent ranges,
in particular, which do not include the number 1.
[tests/tgeneric.c] Added overflow/underflow tests (→ 4 failed tests).
2015-06-08 Vincent Lefèvre <vincent@vinc17.net>
[src/zeta_ui.c]
* Support reduced exponent range for the generic case.
* Added logging.
[tests/tzeta_ui.c] Added tests in reduced exponent range.
[src/add_ui.c] Fixed format string in MPFR_LOG_FUNC.
2015-06-07 Vincent Lefèvre <vincent@vinc17.net>
[tests/tzeta_ui.c] Code simplification.
[tests/tzeta_ui.c] Test zeta(0) in reduced exponent range and all
rounding modes.
[src/zeta_ui.c] Fixed zeta(0) in reduced exponent range.
[tests/tzeta_ui.c] Added testcase.
2015-06-05 Vincent Lefèvre <vincent@vinc17.net>
[src/{ui_div.c,ui_sub.c}] Correction for reduced exponent range.
[tests/tui_sub.c] Check overflow.
[tests/tui_div.c] Check overflow.
[tests/tgeneric.c] Removed useless parentheses.
[tests/tgeneric.c] Special cases with unsigned long argument.
[tests/tpow_all.c] Better flags output in error message.
2015-06-04 Vincent Lefèvre <vincent@vinc17.net>
[src/set_q.c] Added missing MPFR_SAVE_EXPO_FREE in case of preliminary
overflow or underflow (extreme cases).
[src/set_q.c] Replaced a "return" by MPFR_RET: this is at least needed
in the extreme case cd != 0, and safer in general.
[tests/tset_q.c] Check the flags.
[src/mul_ui.c] Fixed bug in mpfr_mul_ui/si: the inexact flag wasn't set.
[tests/t{add,div,mul,sub}_ui.c] Replaced tgeneric_ui.c by tgeneric.c,
showing a bug in mpfr_mul_ui (missing inexact flag).
[tests/{tui_div.c,tui_sub.c}] Added generic tests, yielding assertion
failures (due to a reduced exponent range) when assertions are checked.
[tests/tgeneric.c] Major clean-up, with some minor corrections.
Added support for unsigned long argument, which can be the first
or the second one (another intent is to replace tgeneric_ui.c,
which does fewer tests concerning the flags).
[tests/tdiv_d.c] Corrected the tested function for the generic tests.
[tests/td_div.c] Corrected the tested function for the generic tests.
[tests/tui_sub.c] Minor improvements.
[tests/tgeneric_ui.c] Added missing \n. Minor improvements.
[tests/tui_div.c] Minor improvements.
2015-06-03 Vincent Lefèvre <vincent@vinc17.net>
[tests/trint.c] Corrected the description (copy-paste error in r9473).
[src/rint.c] Handle reduced exponent range.
[tests/trint.c] Extend basic_tests from [56,72] to [1,72] since i < 4
(|x| < 1) are special cases in the implementation.
[tests/trint.c] Also run BASIC_TEST in reduced exponent range
(emin = emax = EXP(x)).
[tests/trint.c] Also run BASIC_TEST2 in reduced exponent range
(emin = emax = EXP(x)).
[src/rint.c] Added a comment about the mpfr_rint_* functions.
[src/rint.c] Simplified and fixed the mpfr_rint_* functions: in some
corner cases, an intermediate overflow would not be propagated. No
testcases added for this particular problem since huge precision
numbers would be involved.
2015-06-02 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Added description of the flags for the mpfr_rint,
mpfr_ceil, mpfr_floor, mpfr_round, mpfr_trunc functions.
2015-06-01 Vincent Lefèvre <vincent@vinc17.net>
[tests/trint.c] In the basic tests, test the flags.
2015-05-31 Vincent Lefèvre <vincent@vinc17.net>
[tests/trint.c] Corrections for r9476 and r9477.
[configure.ac] For the gcc compiler, better choice of the -W flags
when the selected language is C++ (e.g. when CC=g++).
2015-05-29 Vincent Lefèvre <vincent@vinc17.net>
[tests/trint.c] Added basic tests of the mpfr_{trunc,floor,ceil,round}
functions.
[tests/trint.c] Added basic tests of the mpfr_rint_* functions.
[doc/mpfr.texi] Added blank lines to improve readability.
[tests/trint.c] Updated the description (test_generic_round is now
tested, which wasn't done at all before).
[tests/trint.c] Added generic tests for the mpfr_rint_* functions.
Since all numbers in ]0,1/2[ round to the same value, in order to
avoid redundant tests, increased the TEST_RANDOM_EMIN value to -20
and set TEST_RANDOM_ALWAYS_SCALE to 1.
Note: only these new tests generate an error if the change of the
exponent range is no longer done in these mpfr_rint_* functions.
2015-05-29 Vincent Lefèvre <vincent@vinc17.net>
[tests] Added always_scale argument (boolean) to tests_default_random()
so that when it is true, scaling is always performed on random numbers
generated by mpfr_urandomb(), instead of preferring numbers of the order
of magnitude of 1 for half outputs. This will be useful for mpfr_rint_*
tests.
For tgeneric.c, the value of this argument is controlled by a new macro
TEST_RANDOM_ALWAYS_SCALE (0 by default, which corresponds to the current
behavior). For the other tests that call tests_default_random(), the
argument is set to 0, so that the behavior remains the same.
2015-05-29 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Added a remark concerning the mpfr_rint_* functions.
2015-05-28 Vincent Lefèvre <vincent@vinc17.net>
[src] Fixed allocation issue for multithreaded applications:
https://sympa.inria.fr/sympa/arc/mpfr/2015-05/msg00001.html
* mpfr-gmp.{c,h}: made mpfr_allocate_func, mpfr_reallocate_func and
mpfr_free_func thread-local; updated MPFR_GET_MEMFUNC to execute
mp_get_memory_functions only when these pointers have not been set
to the actual function pointers yet.
* mpfr-impl.h: #include "mpfr-thread.h" earlier (before mpfr-gmp.h,
where MPFR_THREAD_ATTR is now used).
2015-05-25 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-gmp.c] Replaced mpfr_allocate_func and mpfr_free_func
by __gmp_allocate_func and __gmp_free_func in mpfr_tmp_allocate
and mpfr_tmp_free respectively, fixing the crash in talloc.
See: https://sympa.inria.fr/sympa/arc/mpfr/2015-05/msg00001.html
[tests/talloc.c] Avoid a failure with --with-gmp-build due to the fact
that the MPFR_ALLOCA_MAX macro is not defined in this case.
2015-05-23 Vincent Lefèvre <vincent@vinc17.net>
Added libtool-tcc-rpath.patch from
https://lists.gnu.org/archive/html/libtool-patches/2015-05/msg00000.html
so that tcc can be used with libtool 2.4.3 to 2.4.6.
In doc/README.dev, documented how to use this patch (before a release).
[tests] Added talloc.c and updated check_PROGRAMS in Makefile.am.
This test detects an allocation bug added in r8813, which occurs
if mpfr_tmp_allocate() is invoked before __gmp_allocate_func when
the GMP build is not used (thus this bug is not visible in most
code since mpfr_init2 is generally called first, directly or not,
and it uses __gmp_allocate_func). Details:
https://sympa.inria.fr/sympa/arc/mpfr/2015-05/msg00001.html
[tests/{tstdint.c,tvalist.c}] Added missing #include "mpfr-test.h"
(detected with gcc -Werror=implicit-function-declaration), needed
since r9447.
2015-05-22 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-gmp.c] Code formatting.
[tests/tstckintc.c] Fixed undefined behavior (invalid pointer).
Define MPFR_ALLOCA_MAX macro: Maximum size for the use of alloca by
temporary allocations (default: 16384).
[tests/{tstdint.c,tvalist.c}] Use tests_start_mpfr / tests_end_mpfr,
in particular to detect a wrong MPFR version (due to a libtool bug).
2015-05-21 Vincent Lefèvre <vincent@vinc17.net>
[autogen.sh] Exit with the exit status of autoreconf. Thus a failure
will be noticed more easily.
[NEWS] Update.
[acinclude.m4] Added a comment about memmove and memset being considered
to be missing when gcc -Werror is used, because of a "conflicting types
for built-in function" error.
[acinclude.m4] Various corrections in the tests:
* MPFR_CHECK_MP_LIMB_T_VS_LONG was always failing due to a typo.
* MPFR_FUNC_GMP_PRINTF_SPEC: missing #include <string.h> for strcmp.
* Replaced rint by nearbyint in messages (as nearbyint is tested).
* Avoid warnings to avoid failures when -Werror is used.
2015-05-20 Vincent Lefèvre <vincent@vinc17.net>
[tests/{tcmp_d.c,tcmp_ld.c,tget_d.c}] Avoid warnings concerning unused
variables when MPFR_ERRDIVZERO is defined (useful with -Werror).
[tests/tests.c] Avoid a warning concerning an unused variable
when HAVE_DENORMS is not defined (useful with -Werror).
2015-05-19 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Improved mpfr_swap description again.
[doc/mpfr.texi] Correction and improvements in the formatting.
[doc/mpfr.texi] Added a warning for mpfr_set_prec and mpfr_prec_round
about allocation issue, as these functions change the precision of x.
[doc/mpfr.texi] Typo in the latest change.
[doc/mpfr.texi] Rewrote the mpfr_swap description. This should solve
the documentation issue reported on:
https://gforge.inria.fr/tracker/index.php?func=detail&aid=18954&group_id=136&atid=619
2015-05-18 Vincent Lefèvre <vincent@vinc17.net>
[doc/sum.txt] Update (preliminary steps).
2015-05-13 Vincent Lefèvre <vincent@vinc17.net>
[doc/sum.txt] Started the rewrite of the doc.
2015-05-06 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Update concerning mpfr_sum.
[doc/mpfr.texi] Update concerning mpfr_sum.
[doc/sum.txt] The specification of the sign of a zero result only
applies to an exact zero, of course (for an inexact zero result,
the usual rule of the rounding mode is applied).
[tests/t[ne]random_chisq.c] Fixed memory leak (detected by GCC's
AddressSanitizer).
[doc/README.dev] "To make a release": Test with GCC's AddressSanitizer
(-fsanitize=address).
[tests/tabort_defalloc*.c] Disable the tests if __SANITIZE_ADDRESS__
is defined, i.e. when GCC's AddressSanitizer is used, because it
reports the error before GMP can do the abort.
2015-05-05 Vincent Lefèvre <vincent@vinc17.net>
[tests/tests.c] Make tests_default_random() more intuitive, avoiding
automatic changes of the current exponent range in some cases: instead
of adding some random exponent in [emin,emax] to the exponent of the
random number x in ]0,1[, force this random exponent to be the one of
x, so that its exponent is guaranteed to be in [emin,emax]. This avoids
a failure in tsum due to the fact that the exponent range was changed
automatically (and not restored).
[tests/tsum.c] In cancel(), increase the number of tests from 8 to 1000.
This is much more, but the test is fast compare to other ones so that
the running time increases by a few percents only. And this triggers a
new bug: the exponent range is not restored (on a 64-bit machine).
[tests/tsum.c] Changes in cancel():
* The fail-test was x[n] > bound instead of |x[n]| > bound, so that
some failures could be missed.
* More output in case of failure.
* Handle underflow in the bound computation. This fixes an incorrect
failure due to a bound rounded toward zero instead of toward +inf
with GMP_CHECK_RANDOMIZE=1431478020 (found by the nightly tests).
[tools/nightly-test] Run "make check" with VERBOSE=1 in order to have
tests/test-suite.log output in case of failure, now that Automake 1.13+
is used.
2015-04-28 Vincent Lefèvre <vincent@vinc17.net>
Added a TODO about mpfr_sum.
2015-04-24 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] Updated a comment about Automake 1.13.
[Makefile.am] Updated comment about ACLOCAL_AMFLAGS.
[TODO] Suggest to move some macro definitions from acinclude.m4 to the
m4 directory as suggested by the Automake manual.
2015-04-23 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Grouped everything about the test suite near the end
of this file. Added information about how the test suite works since
the full Automake 1.13 support (r8821).
To take into account that Automake 1.13 or later will be used:
* doc/mpfr.texi, INSTALL: updates related to "make check".
* configure.ac: require Automake 1.13 since the documentation now
assumes that 1.13 or later is used (and because previous Automake
versions are no longer tested).
2015-04-10 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Mention the complete rewrite of function mpfr_sum.
[tests/tsum.c] Added a comment about the latest fixed bug.
Merged the new-sum branch:
* New feature for developers in order to improve the testsuite:
value coverage checking (MPFR_COV_CHECK macro), allowing one
to check whether some combinations of values are tested. See
example of use in src/sum.c and tests/tsum.c files.
* src/sum.c: full rewrite of mpfr_sum. Note: the documentation
of the algorithm in doc/sum.txt is currently a bit obsolete.
* tests/tsum.c: many new tests, some of them specifically written
for the new algorithm and implementation.
2015-04-09 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Fixed bug: mpn functions do not accept a zero size argument.
[tests/tsum.c] Replaced a mpfr_inits by a mpfr_inits2.
[tests/tsum.c] Added a simple test that triggers a glibc free() error
or segmentation fault when MPFR is configured with GMP 6.0.0 built
with "--disable-alloca ABI=32". GCC's address sanitizer shows a
heap-buffer-overflow. This is mainly for debugging as this problem
also occurs in other tests (it is quite generic).
[tests/tsum.c] Removed a temporary comment.
Merged the latest changes from the trunk.
[tests/tsum.c] Added check_underflow test.
2015-04-08 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsum.c] Comments.
[src/sum.c] Bug fix: use MPFR_EXP instead of MPFR_SET_EXP to set the
exponent since it can be outside the current exponent range before
it is checked with mpfr_check_range. Also added a static assertion
(always satisfied in practice) to make sure that exponent related
computations cannot yield an integer overflow.
[tests/tsum.c] Added check_overflow test, which triggers a bug.
2015-03-31 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsum.c] Completed the cancel test (generic random tests with
cancellations): check the bound on the result.
[tests/tsum.c] Improved the check4 test:
* removed some not very useful tests to reduce the running time;
* added tests checking "MPFR_RNDN, tmd=2, rbit=0, sst=1, negative",
which was the only remaining one output by check_coverage (when
MPFR_COV_CHECK is defined).
[tests/tsum.c] Reduced the check4 test because it was much too long
compared to the other tests. The bug fixed in r9356 is still triggered
and "MPFR_RNDN, tmd=2, rbit=0, sst=0, negative" is still checked.
2015-03-30 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsum.c] Updated comment of the check4 test.
[src/sum.c] Bug triggered by the check4 test fixed.
[tests/tsum.c] Another correction in the check4 test.
[tests/tsum.c] In the check4 test, two terms didn't correspond to
the formula given in the comment; corrected these terms (the same
bug is triggered).
[tests/tsum.c] Forgot the h in the error message of the check4 test.
[tests/tsum.c] Extend the check4 test even further.
[tests/tsum.c] Extend the check4 test even further.
[tests/tsum.c] Added check4 test, which triggers a bug.
2015-03-27 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] In the TMD detection:
* improved variable nbits to decrease the number of operations;
* added some comments;
* fixed the shift count bug triggered by the bug20150327 test.
[tests/tsum.c] Added bug20150327 testcase.
[tests/tsum.c] Corrected test of the ternary values inex1 and inex2.
2015-03-20 Vincent Lefèvre <vincent@vinc17.net>
[tools/ck-copyright-notice] Bug fix and improvements.
[tools/ck-copyright-notice] More checks.
2015-03-19 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Do not consider the corrected sst for MPFR_COV_SET.
[tests/tsum.c] More tests.
[src/sum.c] Added comments.
[src/sum.c] In the final rounding, forgot to handle the possible
exponent change in the negative case with corr == 2.
2015-03-17 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsum.c] Improved the check3 tests, which were added in the
latest commit. They now trigger an assertion failure in sum.c.
[tests/tsum.c] New tests.
[tests/tsum.c] Value coverage checking: tmd can be 2 only for MPFR_RNDN.
2015-03-16 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Better logging.
[src/sum.c] Bug fix: the sum_raw code was unnecessarily assuming
too much; thus, removed too parameters, which can be very easily
recomputed only when they make sense.
2015-03-12 Vincent Lefèvre <vincent@vinc17.net>
[doc/sum.txt] Added a new table concerning the correction term.
[src/sum.c] Updated rounding.
2015-03-10 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Added comments on the correction. Minor changes in the code.
2015-03-06 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Added information on how to do type punning
(something we already did, but with no justification yet).
2015-02-27 Vincent Lefèvre <vincent@vinc17.net>
[doc/sum.txt] Updated TODO.
[doc/sum.txt] Added TODO (since the description is a bit obsolete).
[src/sum.c] In the latest commit, the temporary area was split for
the computations that determine the sign of the error term in case
the TMD occurs, as these computations occur earlier in the code.
This was actually not necessary since the content of the accumulator
has already been copied to the final destination (only sign handling
and rounding have not been done yet, but they entirely take place in
the destination). As a consequence, let's revert the code related to
this split. The actual changes concerning the merge of pre-rounding
and final rounding can be seen with "svn diff -r 9328:9330".
[src/sum.c]
* Removed any reference to the obsolete step numbering.
* Merged pre-rounding and final rounding, simplifying the code.
The correction value still needs to be fixed.
[src/sub1sp.c] Avoid an unnecessary mpn_lshift after an mpn_sub_1 when
the initial value was a power of two.
[src/next.c] Avoid an unnecessary loop when the exponent decreases.
2015-02-26 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsum.c] Improved test portability.
[tests/tsum.c] New tests.
[src/sum.c] Completed the implementation (but there's still a bug).
[tests/tsum.c] New tests.
2015-02-25 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Improved the setting of sst (Step 8), using the fact
that the accumulator is 0 iff cancel = 0.
[src/sum.c] Bug fix: when determining the sticky bit, the search was
starting at the rounding bit instead of the bit following it.
[tests/tsum.c] New tests.
[src/sum.c] More logging.
[tests/tsum.c] In the generic test, also test with negative numbers.
Updated value coverage checking for mpfr_sum.
[doc/README.dev] Document the new MPFR_COV_CHECK macro.
Value coverage checking when MPFR_COV_CHECK is defined, initially
for mpfr_sum.
[src/sum.c] Bug fix in the ternary value.
[tests/tsum.c] Added check of the ternary value.
[src/sum.c] Removed incorrect assertions.
[tests/tsum.c] Re-enabled cancel() test.
2015-02-24 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Update.
[src/sum.c] Update.
[src/sum.c] Use the new SAFE_DIFF macro.
Merged the latest changes from the trunk (r9306).
[src/mpfr-impl.h] Added SAFE_DIFF macro (safe difference).
[src/sum.c] Fixed a test.
[src/sum.c] Better logging.
[src/sum.c] Minor correction of last change of a comment.
[src/sum.c] More logging and comments.
[src/sum.c] Fixed bug introduced in r9294 (minexp wasn't updated).
[src/sum.c] Log the value of tq.
[src/sum.c] Bug fix.
[src/sum.c] Virtually eliminate halfway cases by making them equivalent
to a non-halfway case.
2015-02-21 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Update.
Merged the latest changes from the trunk (r9295).
[src/mpfr-impl.h] Fixed and improved some sign-related macros
(some parentheses were missing).
[src/sum.c] Update: sum_raw, with a new prototype, now reiterates until
the error bound is acceptable; thus the "while" loops have been removed
from sum_aux.
2015-02-20 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsum.c] Increased the number of tests to get 2 current failures
with a "break" in the last loop of sum.c (m = 438, m = 3780), without
the exit() in the generic test. Improved error message.
[tests/tsum.c] Completely rewrote the generic test (now allows one to
detect that the implementation is incomplete when adding a "break" in
the last loop of sum.c).
2015-02-19 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsum.c] Run bug20131027 in each rounding mode.
[src/sum.c] Fixed sum_raw.
2015-02-18 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] More logging.
Merged the latest changes from the trunk.
Logging: the log stream is flushed after each log output when
the MPFR_LOG_FLUSH environment variable is set.
Factorized the logging macros by moving tests inside LOG_PRINT.
[src/sum.c] Correction. Set the exponent.
[src/sum.c] Added a log message.
[src/sum.c] Bug fix: I had inverted positive and negative.
2015-02-13 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsum.c] Removed the obsolete mpfr_sum_sort related test
(which could obviously no longer compile), so that I can start
debugging before finishing the implementation.
Merged the latest changes from the trunk.
[doc/mpfr.texi] Updated the month.
Copyright notice update: added 2015 with
perl -pi -e 's/ (\d{4}-)?(2014)(?= Free Software)/
" ".($1||"$2-").($2+1)/e' **/*(^/)
under zsh, reverting the tools/mbench directory (not distributed with
MPFR). Removed 2014 from the example in the doc/README.dev file.
2015-02-12 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Copyright notice update.
[src/sum.c] Split mpfr_sum into mpfr_sum (handling special cases)
and sum_aux (generic case only). Revised some comments.
[src/sum.c] When updating minexp, detect a potential integer overflow
first (macro UPDATE_MINEXP). Updated comments.
[src/sum.c] Logging of sum_raw: log *cancelp at the end.
[src/sum.c] Update (Step 8).
[src/sum.c] Corrected/improved logging.
2015-01-23 Vincent Lefèvre <vincent@vinc17.net>
Added algorithms.fls (generated by latexmk) to svn:ignore property.
2015-01-21 Vincent Lefèvre <vincent@vinc17.net>
[tests/tfpif.c] Updated a mpfr_set_zero line for consistency and
better readability.
[tools/mpfrlint] Added mpfr_set_(inf|zero) tests on the sign.
[tests/tset.c] More mpfr_set_inf tests.
[tests/tset.c] More mpfr_set_zero tests.
[tools/mbench/timp.h] Spelling mistake in a comment.
2014-12-17 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Added a TODO.
[src/sum.c] Added missing closing parenthesis from r9257. Step 8 update.
[doc/sum.txt] Step 8: renamed "sgn" to "sst".
[doc/sum.txt] Merged old Step 9 with Step 8; minor changes.
[src/sum.c] Avoid a loop in some cases.
[src/sum.c] Remember the rounding bit for Step 9; correction for
halfway cases in round to nearest.
[doc/mpfr.texi] Updated the month.
2014-12-16 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Added an item about improved caching.
[NEWS,doc/mpfr.texi] In particular, mention the minimum of 10% increase
of the precision (done in r8967).
[NEWS] Note that the behavior of the mpfr_set_exp function changed.
[src/Makefile.am] As this changed the ABI (the old, unwise behavior
was documented), reset -version-info age. This is not that bad since
there are other changes in the behavior, though regarded as bugs or
previously undocumented behavior.
Moved src/sum.txt into the doc directory, and updated the reference
in src/sum.c.
2014-12-12 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.txt] Update (Step 9).
[src/sum.txt] Correction.
2014-12-11 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.*] Update.
2014-12-04 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Mention the tools/build-patch script.
2014-12-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
pointed to Feature Request
2014-11-28 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Determine the number of cancelled bits in sum_raw instead
of the main loop, since it will also be useful in Step 8.
[src/sum.*] Update (Step 8).
2014-11-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed issue reported by Dan Grayson:
https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=18314&group_id=136
2014-11-13 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Minor change concerning mp_limb_t.
2014-11-12 Vincent Lefèvre <vincent@vinc17.net>
Style improvements.
[src/exp_2.c] Improved t = 0 test.
[src/exp_2.c] Fixed a bug added in r9233 (a case t = 0 was no longer
taken into account).
[src/exp_2.c] GNU coding style.
2014-11-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improve mpfr_exp2 (patch from Patrick Pelissier)
2014-11-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improve mpfr_atan for small precision (patch from Patrick Pelissier)
added check for libquadmath (not used)
2014-11-03 Vincent Lefèvre <vincent@vinc17.net>
[src/cache.c] Improved mpfr_clear_cache in case mpfr_free_cache is
called often (like with GC-based systems). Patch by Patrick Pélissier.
[src] Applied patch by Patrick Pélissier to allocate some constant-size
MPFR numbers on the stack instead of using mpfr_init2, and replace some
MPFR_ASSERTN by MPFR_ASSERTD.
2014-10-31 Vincent Lefèvre <vincent@vinc17.net>
[src/get_str.c] Improved comments.
2014-10-30 Vincent Lefèvre <vincent@vinc17.net>
[src/get_str.c] Free the temporary memory allocated in the Ziv loop ASAP
and at a single place (the code should be clearer like that).
[src/get_str.c] Code refactoring.
[tests/tget_str.c] Code formatting.
[tests/tget_str.c] Fixed a test that made mpfr_get_str crash with
logging (even when the base is invalid, the MPFR number must be
initialized).
[src/check.c] Added a note saying that mpfr_check() must not be called
on statically allocated numbers (only used inside MPFR).
[src/get_str.c] Removed the "MPFR_ASSERTD (mpfr_check (p));" (added in
previous commit) because of that.
[src/get_str.c] Added some logging (MPFR_LOG_*), which triggers a crash
in tget_str with MPFR_LOG_ALL=1. An analysis with gdb shows that this
is due to an invalid MPFR number in mpfr_ceil_mul(). Added a
MPFR_ASSERTD (mpfr_check (p));
there, which fails in tget_str (this was the cause of the crash), even
without logging.
2014-10-29 Vincent Lefèvre <vincent@vinc17.net>
mpfr_get_str now sets the NaN flag on NaN input. See:
https://sympa.inria.fr/sympa/arc/mpfr/2014-10/msg00013.html and
https://gforge.inria.fr/tracker/index.php?func=detail&aid=18228&group_id=136&atid=619
Also completed the mpfr_get_str description in mpfr.texi concerning
the special numbers and the exception flags.
2014-10-28 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
[doc/mpfr.texi] Removed a spurious "an".
[src/get_str.c] Improved style consistency.
[doc/mpfr.texi] In the mpfr_get_str description, note that the type
mpfr_exp_t is large enough to hold the exponent in all cases.
[doc/mpfr.texi] Improved mpfr_get_str description concerning the
returned pointer (it was ambiguous in the case of an invalid base).
2014-10-09 Vincent Lefèvre <vincent@vinc17.net>
[tests/tests.c] Updated the error message last changed.
[tests/tests.c] Updated the error message last changed + comment.
2014-10-08 Vincent Lefèvre <vincent@vinc17.net>
[tests/Makefile.am] Added a reference to the bug I've just reported
against GNU Automake (completing the other references).
[tests/tests.c] Updated the error message last changed.
2014-10-07 Vincent Lefèvre <vincent@vinc17.net>
[tests/tests.c] Changed an error message.
2014-10-06 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.txt] Update.
[src/sum.c] Improved a comment.
[src/sum.c] Got rid of maxexp2 in the mpfr_sum function, since after the
sum in the main iteration, the old maxexp value is no longer needed:
it's simpler to reuse maxexp for maxexp2 since maxexp2 will be the new
maxexp value at the next iteration.
[src/sum.txt] Update, in particular concerning the variables used in the
implementation.
2014-09-09 Vincent Lefèvre <vincent@vinc17.net>
[tests] Corrections for builds with "config.h".
2014-08-26 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Reset copyright years to 2014 since the whole file is
being rewritten from scratch (i.e. everything is new material).
[src/sum.txt] Update.
2014-08-25 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.*] Update (Step 7, including a part of Step 8 in Step 7).
[src/sum.c] Correction (Step 7).
[src/sum.c] Corrected r9197 (two "else" branches were mixed up), and
update (Step 8).
[src/sum.c] Correction when determining the early value of inex.
[src/sum.c] Update (Step 8).
[src/sum.txt] Update about the value of d.
[src/sum.c] Added comments for Step 7 about carry and inex.
2014-08-22 Vincent Lefèvre <vincent@vinc17.net>
Merged the latest changes from the trunk (here, tools/mpfrlint).
[tools/mpfrlint] Avoid false positives in the check of MPFR_LOG_MSG.
[src/sum.*] Update (Step 7).
2014-08-21 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.txt] Updated Note 2 again.
[src/sum.txt] Updated Note 2.
[src/sum.*] Various corrections, and update.
Merged the latest changes from the trunk.
[src] Cleaner use of MPFR_SET_SIGN.
2014-08-19 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Updated comments.
[src/sum.c] Update (Step 7).
[src/sum.c] Improved description of sum_raw.
[src/sum.c] Added description of sum_raw.
2014-08-18 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Suppressed a level of block (which became rather useless
now that Step 3 has been moved to a separate function).
[src/sum.c] Moved Step 3 to a separate auxiliary function sum_raw.
[src/sum.c] Renamed variables: p -> x, pe -> xe, pq -> xq (because
the p suffix is used here for pointers to mp_limb_t).
[src/sum.c] Updated comments.
2014-08-17 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Added item on tests (mpfr.h macros vs mpfr-impl.h).
[src/mpfr.h] Fixed the mpfr_signbit() macro, which depended on
mpfr-impl.h (the problem wasn't detected in the tests since mpfr-impl.h
is included in them). Thanks to Rob for the bug report.
2014-08-14 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.*] Update (Step 7).
2014-08-13 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.txt] Update.
[src/sum.txt] Update (another tricky case).
2014-08-12 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.txt] Update.
[src/sum.txt] Update.
2014-08-11 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.*] Completed Step 6.
2014-08-08 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.txt] Update.
[src] Moved the comment about the mpfr_sum algorithm from sum.c to
a new file sum.txt (this will later go into algorithms.tex).
2014-08-06 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Updated the algorithm.
[src/sum.c] Updated the algorithm.
2014-08-05 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Added some log messages.
Merged the latest changes from the trunk (but reverted tests/tsum.c).
[tools/mpfrlint] Improved check of MPFR_LOG_MSG.
[tools/mpfrlint] Replaced {src,tests}/*.{c,h} by $srctests.
[src/ai.c] Corrected log messages.
[doc/mpfr.texi] Updated the month.
Update concerning the P type specifier for formatted output, since
mpfr_prec_t was changed to a signed type in MPFR 3.0.0.
* doc/mpfr.texi: d and i can be used (o, u, x, and X are still OK
in practice since a mpfr_prec_t value is usually nonnegative);
changed a "unsigned int" to "int".
* src/vasprintf.c: updated a comment.
2014-07-23 Vincent Lefèvre <vincent@vinc17.net>
[tests/mpf_compat.h] Fixed a bug (mpf_set_prec_raw usage with GMP/MPF).
[tests]
* mpfr-test.h: no longer include <stdio.h> right here since the
included mpfr-impl.h does that and even better for C++.
* mpf_compat.c, mpfr_compat.c: include mpfr-test.h as it does useful
things (in particular, include config.h via mpfr-impl.h if there
is one, and define __MPFR_TEST_H__ for mpfr-impl.h).
* mpf_compat.h: no longer include some headers already included
via mpfr-test.h (see above change); added tests_start_mpfr and
tests_end_mpfr (showing memory inconsistency with mpf_compat).
2014-07-20 Vincent Lefèvre <vincent@vinc17.net>
[src/get_str.c] Coding style: better code for a boolean.
2014-07-17 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Update.
2014-07-10 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] "To make a release": check also without mpz_t caching.
[tools/ck-copyright-notice] Ignore src/mini-gmp.[ch] files.
[tools/mpfrlint]
* Ignore src/mini-gmp.[ch] files for some tests.
* Check that __gmp[nz]_ functions are not used (with 2 exceptions),
since this breaks the support of mini-gmp and may also break
future/modified GMP versions.
Note: only code added in r8911 (mpz_t caching) currently fails to
follow this rule.
Do not test include guards before a #include: the test must be done only
in the included file itself. Note that some files such as mpfr.h may
have multiple parts that could be enabled depending on the context, so
that testing a guard before a #include may yield incorrect behavior.
2014-07-09 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Updated the list of macros used for building and
checking MPFR.
[acinclude.m4] Corrected a message.
2014-07-08 Vincent Lefèvre <vincent@vinc17.net>
Renamed the MPFR_TEST_DIVBYZERO macro to MPFR_TESTS_DIVBYZERO
for consistency with MPFR_TESTS_TIMEOUT.
2014-07-07 Vincent Lefèvre <vincent@vinc17.net>
[tests] Minor improvements.
[tests/reuse.c,tests/taway.c] Added mpfr_ai and mpfr_digamma.
[tests/tmul_d.c] Minor improvement.
[src/mul.c] Fixed a test when MPFR_WANT_ASSERT >= 2 (NaN with non-NaN
was not detected as an error).
[src] MPFR_WANT_ASSERT clean-up.
Note: the mul.c test for MPFR_WANT_ASSERT >= 3 is now enabled for
MPFR_WANT_ASSERT = 2 (since setting MPFR_WANT_ASSERT to 3 was not
possible with configure options), and fixed.
Added debug of branch prediction / --enable-debug-prediction configure
option (patch from Patrick Pélissier, with some changes).
2014-07-02 Vincent Lefèvre <vincent@vinc17.net>
[src/round_raw_generic.c] Updated comment about MPFR_RNDNA.
[doc/mini-gmp] Added a note about MPFR_USE_MINI_GMP.
[doc/README.dev] Added an item on the use of GMP functions.
[doc/README.dev] "To make a release": test with mini-gmp.
Removed the need of MPFR_USE_MINI_GMP tests for mpfr_[ne]random
functions (source and tests) as mpfr_random_deviate_value no longer
needs mpq_t (since r9066). Also removed a static assertion in
src/random_deviate.c for the same reason.
Note: the change done in r9133 is now really useful!
[src/mpfr.h] Added other missing "#ifndef MPFR_USE_MINI_GMP".
[tests/t[ne]random.c] Code clean-up: added !defined(MPFR_USE_MINI_GMP)
to protect mpfr_printf. This is actually not needed due to the initial
"#ifndef MPFR_USE_MINI_GMP" but this is for a different reason.
[tests/t[ne]random.c] Reverted the changes done in r9126,9127,9130
and added a proper comment.
[src/mpfr.h] Added a missing "#ifndef MPFR_USE_MINI_GMP"
(not really useful, but cleaner).
[tests/t[ne]random.c] Fixed the change done in r9126 and r9127.
Renamed WANT_MINI_GMP to MPFR_USE_MINI_GMP as it is used in mpfr.h
(all MPFR macros that appear there should start with MPFR_ to avoid
conflicts with other software).
[tools/mpfrlint] Detect the possible use of forbidden macros in mpfr.h.
[tests/terandom.c] Put the WANT_MINI_GMP test at the right place, like
what has been done for "tests/tnrandom.c".
[tests/tnrandom.c] Put the WANT_MINI_GMP test at the right place
(at the same time of the HAVE_STDARG test), but this should be
improved in the future, e.g. with a HAVE_MPFR_PRINTF macro.
2014-07-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added comment
2014-07-02 Vincent Lefèvre <vincent@vinc17.net>
[src/mul.c] Minor correction of a comment.
2014-07-01 Vincent Lefèvre <vincent@vinc17.net>
[tests/trandom_deviate.c] Correction (fprintf format).
2014-07-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
patch from Charles Karney:
> Here is the patch which repeats the chi-squared tests in the case of
> suspiciously high values. The probability of a false positive is now
> 1/10^9. I also got rid of the mpfr_printf's.
2014-06-30 Vincent Lefèvre <vincent@vinc17.net>
[tools/build-patch]
* Removed unnecessary quotes for better readability (this is zsh).
* When <patchlevel> (second argument) is used, use the correct name
for the generated patch; at the same time, fixed a checkobj call.
* Added comment about typical usage.
[tools/build-patch] Correction if MPFR_CURRENT_DIR is set: to make sure
that it is always up-to-date, we want to allow it to be a symlink (e.g.
.../mpfr-current), so that we want to call realpath on it.
Added tools/build-patch zsh script to transform a raw patch into a patch
to be put on the MPFR www server.
[src/mpfr.h] For the mpfr_{mul,div}_si macros: s/positive/non-negative/
[configure.ac] Correction of two "configure --help" messages
(from Patrick Pélissier and other changes).
[src/mpfr.h] Coding style.
New macros for mpfr_{mul,div}_ui to optimize the call when the integer
is a constant number that is a power of 2.
New macros for mpfr_{mul,div}_si to optimize the call when the integer
is a constant number that is positive.
(Modified patch from Patrick Pélissier)
2014-06-26 Vincent Lefèvre <vincent@vinc17.net>
[src/vasprintf.c] Improved comments.
[src/vasprintf.c] Fixed assertion failures for tiny numbers (the code
was correct, but the assertions didn't check against the right bound).
[src/div.c] Bug fix: avoid integer overflow in the code added in r9086
(now tdiv no longer fails).
[src/div.c] Bug fix: avoid an integer overflow when dividing the
largest finite MPFR number by the smallest positive one.
(merged changeset r9105 from the 3.1 branch)
[tests/tdiv.c] Forgot "exit (1);".
[tests/tdiv.c] Added mpfr_div tests on extreme values. This detects
2 problems (at least on a 64-bit machine): a result is not a valid
MPFR number (mpfr_check fails) and the flags are incorrect.
2014-06-25 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsprintf.c] Fixed test added in r9099 (the problem was unrelated
to the bug in vasprintf.c).
[tests/tsprintf.c] Added a test with the minimum exponent
(currently triggers an assertion failure in vasprintf.c).
2014-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
define MPFR_SKIP_EXTREME to avoid currently failing tsum test
2014-06-25 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsum.c] Do not run the check_extreme test (which currently fails)
when the MPFR_SKIP_EXTREME environment variable is defined.
2014-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
reconfigure for mpfrbench
speedup in mpfr_div for n/n division, using mpz_tdiv_q
2014-06-25 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Check when simple mp_limb_t constants could be used
(MPFR_LIMB_ZERO, MPFR_LIMB_ONE, and MPFR_LIMB_MAX).
Merged the latest changes from the trunk.
Use MPFR_IS_NEG and MPFR_IS_POS instead of comparing the sign with 0.
Done with
perl -pi -e '
s/MPFR_SIGN *\(([^)]+)\) *<=? *0/MPFR_IS_NEG ($1)/g;
s/MPFR_SIGN *\(([^)]+)\) *>=? *0/MPFR_IS_POS ($1)/g;
' {src,tests}/*.{c,h}
and some manual changes.
More code clean-up (for both consistency and readability):
* Use the simple mp_limb_t constants when possible.
* New internal macro MPFR_IS_NORMALIZED.
Note: this was done with
perl -pi -e '
s/~ *\(mp_limb_t\) *0/MPFR_LIMB_MAX/g;
s/\(mp_limb_t\) *-1/MPFR_LIMB_MAX/g;
s/\(mp_limb_t\) *0/MPFR_LIMB_ZERO/g;
s/\(mp_limb_t\) *1L?/MPFR_LIMB_ONE/g' {src,tests}/*.{c,h}
svn revert src/mpfr-impl.h
and some manual changes.
Code clean-up:
* Simplified the definition of simple mp_limb_t constants: it is
better to avoid GMP internals when there is a standard way.
* Replaced the use of MP_LIMB_T_MAX by the new macro MPFR_LIMB_MAX.
* So, removed the now useless MP_LIMB_T_MAX and GMP_LIMB_HIGHBIT
definitions from "mpfr-gmp.h".
[src/mpfr-mini-gmp.h] GMP_NUMB_MASK is no longer needed.
[tests/random2.c] Removed a useless use of GMP_NUMB_MASK.
[src/div.c] In the case where the divisor has one limb (latest commit),
check that the value of this limb fits in an unsigned long, otherwise
mpfr_div_ui cannot be used. Indeed, according to the GMP manual §2.2,
a limb may be a long long (actually unsigned):
For example in some 32-bit ABIs, GMP may support a limb as either a
32-bit `long' or a 64-bit `long long'.
Note: if a limb is an unsigned long, this new test will be no-op, since
always true.
2014-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
speedup of mpfr_div when divisor has one limb
2014-06-25 Vincent Lefèvre <vincent@vinc17.net>
[src/random_deviate.h] Fixed prototypes:
* Added __MPFR_DECLSPEC to avoid failure with Windows DLL; see
https://sympa.inria.fr/sympa/arc/mpfr/2014-06/msg00003.html
* Added _MPFR_PROTO for consistency (though it will probably
be removed in the near future).
* Removed variable names (coding style).
2014-06-24 Vincent Lefèvre <vincent@vinc17.net>
[tests] Added terandom_chisq and tnrandom_chisq to svn:ignore property.
[tests] Applied patch by Charles Karney (chi-squared tests for
mpfr_[ne]random), together with the contents of his mail about
this patch.
2014-06-23 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
2014-06-22 Vincent Lefèvre <vincent@vinc17.net>
Updated URL's.
[doc/README.dev] Updated URL's (use of https instead of http).
2014-06-20 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] At Step 2, ignore the input bits of exponent >= maxexp.
[src/sum.c] Fixed maxexp2 update, and added truncflag for future
truncation on the most significant part >= maxexp at Step 2 (TODO).
2014-06-19 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Another major update concerning the algo and Step 2.
[src/sum.c] Added a TODO about carry propagation (so, it seems that
using two windows may not really be that interesting to guarantee a
low complexity).
2014-06-17 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Implemented Step 2.
[tests/trandom_deviate.c] New version, with fixes of ternary value
(inexact) handling by Charles Karney.
[tests] Added trandom_deviate to svn:ignore property.
[tests/trandom_deviate.c] GNU style and C90 compatibility.
[doc/README.dev] Updated note about ternary values (macros).
[doc/README.dev] Added a note about ternary values.
2014-06-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
patches from Charles Karney
2014-06-17 Vincent Lefèvre <vincent@vinc17.net>
[tests/trandom_deviate.c] Removed useless "#ifdef HAVE_STDARG":
printf is a standard C function and is always defined.
[tests/trandom_deviate.c] GNU style. Pre-C99 compatibility
(statements after declarations).
[tests/trandom_deviate.c] Untabified.
2014-06-16 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Updated the algorithm and started to rewrite again,
in a cleaner way and with more comments.
2014-06-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added trandom_deviate.c to improve coverage (contributed by Charles Karney)
updated information about coverage test
2014-06-05 Vincent Lefèvre <vincent@vinc17.net>
[src/mul.c] English usage in a comment.
2014-06-03 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset_ld.c] Updated a comment.
2014-05-22 Vincent Lefèvre <vincent@vinc17.net>
Changed "INRIAGForge" to "InriaForge" (due to the rename).
2014-05-14 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Correction about clang sanitizer: mention the
-fno-sanitize=float-cast-overflow,float-divide-by-zero option.
[doc/README.dev] About clang sanitizer, mention the
-fno-sanitize=float-divide-by-zero option.
2014-05-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added description of algorithm used for mpfr_log (from Sylvie Boldo)
2014-04-25 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Updated an old note about GCC 4.9.
[doc/README.dev] Completed the note about GCC's sanitizer. See
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44786 (sanitizer)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60275 (no recover)
[doc/README.dev] Completed the note about GCC's sanitizer.
[doc/README.dev] Mention that GCC 4.9 supports "-fsanitize=undefined".
2014-04-22 Vincent Lefèvre <vincent@vinc17.net>
[tests/tpow.c] Removed comment that can now be confusing: try_mpfr.html
was actually not using the mpfr_pow function, but exp(y*log(x)).
[tests/tpow.c] Added a test corresponding to buggy output on
http://ex-cs.sist.ac.jp/~tkouya/try_mpfr.html but everything
is OK in r9038.
2014-04-15 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Update about patches and autotools files.
[doc/README.dev] Update about patches and autotools files.
[tests/tsum.c] Changed initialization in check_extreme(), which wasn't
supported by ISO C90.
[free_cache.c] Avoid mixed declarations and code for ISO C90 support.
Re-added configure test on GMP_NUMB_BITS and sizeof(mp_limb_t), and
updated it:
* BYTES_PER_MP_LIMB is no longer tested (see r9029).
* The test is now always run, not just when --with-gmp-build is used.
* Results are output in config.log in case of failure.
* The error message has been updated.
2014-04-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
BYTES_PER_MP_LIMB -> MPFR_BYTES_PER_MP_LIMB for GMP 6 compatibility
when --with-gmp-build is used. See mailing-list discussion:
https://sympa.inria.fr/sympa/arc/mpfr/2014-04/msg00000.html
2014-04-11 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Updated comment to be even more clear, with more details.
2014-04-07 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Updated comment.
[src/sum.c] Updated comment.
[src/sum.c] Improved (corrected) algo in comment. Code not updated.
2014-03-28 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Update.
[src/sum.c] Added a comment.
[src/sum.c] Update.
2014-03-26 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] More thoughts about the algorithm and its implementation.
2014-03-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
other argument reduction for log_ui
2014-03-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
mpn_sqrtrem (rp, sp, sp, rrsize) is faster than
mpn_sqrtrem (rp, NULL, sp, rrsize): avoids one allocation and one copy
2014-03-25 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Update.
Merged the latest changes from the trunk.
Added MPFR_PREC_COND, MPFR_PREC_IN_RANGE and MPFR_GET_PREC internal
macros (to mpfr-impl.h). Use these macros at some places in the code
(replacing some MPFR_PREC instances, as suggested by a patch from
Patrick Pélissier).
[src/mpfr-impl.h] Added an MPFR_ASSERTD in MPFR_MPZ_SIZEINBASE2
(from a patch by Patrick Pélissier).
[src/sqrt.c] Replaced a MPFR_EXP by MPFR_SET_EXP (from a patch by
Patrick Pélissier).
[src/div.c] Added MPFR_ASSERTD assertions and improved a test
(patch from Patrick Pélissier).
2014-03-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed FIXME
2014-03-17 Vincent Lefèvre <vincent@vinc17.net>
[doc/algorithms.*] A formula about radix conversion was incorrect
(and didn't match the correct code) when the output radix b is a
power of two. Added reference to Matula's "In-and-Out Conversions"
(correctness and optimality of the formula) and left a FIXME.
For more information, see the August/September discussion in the
MPFR list, particular subthreads starting at:
https://sympa.inria.fr/sympa/arc/mpfr/2012-08/msg00028.html
https://sympa.inria.fr/sympa/arc/mpfr/2012-09/msg00000.html
https://sympa.inria.fr/sympa/arc/mpfr/2012-09/msg00011.html
2014-03-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added item
2014-03-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added item (mpfr_log_ui)
2014-03-14 Vincent Lefèvre <vincent@vinc17.net>
[src/sum.c] Corrected the detection of Inf. Improved algo in comment.
[tests/tsum.c] Improved check_more_special test.
[tests/tsum.c] Added check_more_special test.
[doc/mpfr.texi] Updated the month.
[doc/mpfr.texi] Correction in the mpfr_set_str description.
Rewrote special cases of mpfr_sum.
2014-03-10 Vincent Lefèvre <vincent@vinc17.net>
Added a TODO item concerning gmp_op.c functions with mpz_srcptr and
the use of mpz_fits_slong_p and a mpfr_*_si function (see r8992).
2014-03-02 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Fixed the mpfr_get_default_rounding_mode() macro for
C++ (it didn't have the correct type), and improved the similar ones.
[src/lngamma.c] Fixed allocation.
[src/lngamma.c] Temporarily disabled fast argument reconstruction
because it doesn't compile with g++.
2014-03-01 Vincent Lefèvre <vincent@vinc17.net>
Removed trailing spaces.
2014-02-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[lngamma.c] implemented fast way of computing x*(x+1)*...*(x+k-1)
(it remains to speed up the computation of the Bernoulli numbers)
speedup of the mpfr_xxx_z functions when z fits in a long
explicit possible speedup in mpfr_[ln]gamma
2014-02-24 Vincent Lefèvre <vincent@vinc17.net>
[doc/algorithms.tex] Avoid inconsistent spaces.
2014-02-21 Vincent Lefèvre <vincent@vinc17.net>
[tools/mbench/README] Conversion into UTF-8.
[tools/mbench] Replaced GMP_RNDx by MPFR_RNDx.
2014-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
definitively fix the name mpfr_min_prec
2014-02-17 Vincent Lefèvre <vincent@vinc17.net>
[src/bernoulli.c] Minor bug fixed and other improvements.
2014-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
update for mpfr_gamma and Bernoulli numbers
2014-02-17 Vincent Lefèvre <vincent@vinc17.net>
[src/bernoulli.c] Fixed pointer types (build failure with -Werror).
[src/mpfr-impl.h] Removed obsolete mpfr_bernoulli_internal prototype,
which makes the compilation of bernoulli.c fail.
[src/bernoulli.c] Improved isprime() by using MPFR_ASSERTD.
2014-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
use a faster algorithm (based on Von Staudt–Clausen theorem) to compute
Bernoulli numbers -> speedup in mpfr_*gamma and mpfr_li2
2014-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
more changes suggested by Wolf Lammen (and also test 2^(-1074))
2014-02-16 Vincent Lefèvre <vincent@vinc17.net>
[tests/memory.c] Limit heap memory to 4 MB. This should be sufficient.
Currently, only tsum should fail, but mpfr_sum will be rewritten soon.
2014-02-15 Vincent Lefèvre <vincent@vinc17.net>
[src/set_d.c] Fixed type to avoid non-representable unsigned → signed
conversion.
[src/set_d.c] Correction when MPFR_WANT_ASSERT is defined.
Untabified and removed trailing spaces.
2014-02-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
partial patch from Wolf Lammen:
- move the normalization code, necessary in an extremely rare corner case only,
out of the way of the normal case, for speed up
Rename MPFR gmp_randstate_ptr into mpfr_gmp_randstate_ptr
(patch from Patrick Pélissier)
2014-02-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
print message for "possibly double-double, little endian" long double format
different fixes for set_ld, get_ld and cmd_ld with double-double
2014-02-14 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset_ld.c] Fixed an assertion to support systems where
2^1023 + 2^(-1074) is exactly representable, while not detected
as double-double.
2014-02-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
recognize long-double format for ppc64le
(https://sympa.inria.fr/sympa/arc/mpfr/2014-02/msg00014.html)
2014-02-14 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Added item on special case of mpfr_add and mpfr_sub.
2014-02-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added test for get_ld
2014-02-14 Vincent Lefèvre <vincent@vinc17.net>
[src/cache.c]
* Improved r8966: Setting the cache size to 10% more than the
requested precision may be a bad idea in large precisions.
It's better to guarantee a minimum of 10% increase; if the
user wants to, he can still control the maximum precision by
pre-computing the constant at this precision. Also make sure
that if pold == 0, the mpfr_init2 size is the same as the
mpfr_set_prec one (in order to avoid immediate reallocation).
* Replaced a comment by a couple of MPFR_ASSERTD's.
2014-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
when recomputing a constant, use a precision 10% larger than the wanted
precision to avoid many recomputations
2014-02-13 Vincent Lefèvre <vincent@vinc17.net>
[src/round_raw_generic.c] Added a FIXME comment for MPFR_RNDNA.
[src/bernoulli.c] GNU style.
[src/mpfr-impl.h] Corrected prototypes.
2014-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
implement cache for Bernoulli numbers (patch from Patrick Pélissier)
tuned parameters for [ln]gamma now that we cache Bernoulli numbers
added bench target so that we can simply do "make bench"
2014-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added test for double-double
added comment about mpfr_gamma
forgot to restore the exponents in last commit
added reference for efficiency issue with mpfr_gamma
improve mpfr_gamma at around 1000 bits
2014-02-12 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
Merged the set_exp branch into the trunk. Changes:
* src/mpfr-impl.h: updated the MPFR_SET_EXP(x, exp) definition for
the MPFR_EXP_CHECK case. There are 2 consequences:
1. The exp expression is evaluated several times (this should be
OK with the MPFR code and optimizations).
2. The real value of exp is tested for the assertion, instead of
the value converted to mpfr_exp_t. Thus new bugs could be found
(e.g. when an unsigned type is used instead of signed).
* src/set_exp.c: set the exponent only if x is a non-zero ordinary
number, i.e. already has a valid significand and a valid exponent
(thus it is no longer a low-level function, and it can no longer
generate an invalid value from a valid one).
* doc/mpfr.texi: updated mpfr_set_exp description and added an item
in the "API Compatibility / Changed Functions" section.
* Clean-up.
Original discussion:
https://sympa.inria.fr/sympa/arc/mpfr/2011-01/msg00092.html
[src/rint.c] Added FIXME comment.
[src/next.c] Improved handling of special values.
[src/hypot.c] Reverted changeset r8950 (MPFR_SET_EXP is OK).
[src/hypot.c] Replaced a MPFR_SET_EXP by MPFR_EXP.
[src/fpif.c] Bug fixes and code clean-up. At the same time, took the
future mpfr_set_exp change into account (see set_exp branch).
[src/set.c] Cosmetic change.
[src/fpif.c] English usage.
[src/cache.c] Replaced a MPFR_SET_EXP by MPFR_EXP (in practice, the code
was working, but just because MPFR_DECL_INIT_CACHE inits the cache with
a real exponent, though the significand pointer is null).
2014-02-11 Vincent Lefèvre <vincent@vinc17.net>
[src/mul.c] Cosmetic change.
[src/atan.c] Fixed types of some variables, in particular
unsigned → signed conversion of non-representable value
(detected due to the new MPFR_SET_EXP assertion check in
the set_exp branch).
[src/atan.c] Fixed types of some variables, in particular
unsigned → signed conversion of non-representable value.
Now, all the tests pass on Linux/x86_64.
[src/exp3.c] Fixed types of some variables, in particular
unsigned → signed conversion of non-representable value
(detected due to the new MPFR_SET_EXP assertion check in
the set_exp branch).
[src/exp3.c] Fixed types of some variables, in particular
unsigned → signed conversion of non-representable value.
Now, 161 tests pass and 8 tests fail on Linux/x86_64.
[src/{set_ui_2exp.c,set_uj.c}] Fixed types of some variables, in
particular unsigned → signed conversion of non-representable value
under some conditions.
[src/{set_ui_2exp.c,set_uj.c}] Fixed types of some variables, in
particular unsigned → signed conversion of non-representable value
under some conditions.
This doesn't change the number of failed tests.
[src/{sqrt_ui.c,sub_ui.c,ui_div.c,ui_sub.c}] Changed cnt type from
unsigned long to int (signed) due to the MPFR_SET_EXP requirement.
Otherwise the code was correct.
Now, 160 tests pass and 9 tests fail on Linux/x86_64.
[src/mpfr-impl.h] Added a comment about MPFR_SET_EXP: exp is required
to have a signed type.
[src/{set_d.c,set_f.c}] Type clean-up to improve maintainability.
[src/random_deviate.c] Type clean-up to improve maintainability.
[src/set_si_2exp.c] Fixed unsigned → signed conversion of
non-representable value when mpfr_exp_t has the same size
as int.
[src/set_si_2exp.c] Fixed unsigned → signed conversion of
non-representable value when mpfr_exp_t has the same size
as int (unrelated to MPFR_SET_EXP change).
[src/add_ui.c] Cosmetic changes.
[src/add_ui.c] Fixed unsigned → signed conversion of non-representable
value (detected due to the new MPFR_SET_EXP assertion check in the
set_exp branch).
[src/add_ui.c] Fixed unsigned → signed conversion of non-representable
value (detected due to the new MPFR_SET_EXP assertion check).
Now, 92 tests pass and 77 tests fail on Linux/x86_64.
[src/random_deviate.c] Added an assertion.
[tests/random2.c] Fixed unsigned → signed conversion of
non-representable value (detected due to the new MPFR_SET_EXP
assertion check in the set_exp branch).
[tests/random2.c] Fixed unsigned → signed conversion of
non-representable value (detected due to the new MPFR_SET_EXP
assertion check).
Now, 87 tests pass and 82 tests fail on Linux/x86_64.
Updated src/urandomb.c due to the change of mpfr_set_exp behavior.
Now, 77 tests pass and 92 tests fail on Linux/x86_64.
[tests/trandom.c] Improved test to get an assertion failure instead of
a segmentation fault.
Start of mpfr_set_exp behavior clean-up.
* src/mpfr-impl.h: updated the MPFR_SET_EXP(x, exp) definition for
the MPFR_EXP_CHECK case. There are 2 consequences:
1. The exp expression is evaluated several times (this should be
OK with the MPFR code and optimizations).
2. The real value of exp is tested for the assertion, instead of
the value converted to mpfr_exp_t. Thus new bugs can be found
(e.g. when an unsigned type is used instead of signed).
* src/set_exp.c: set the exponent only if x is a non-zero ordinary
number, i.e. already has a valid significand and a valid exponent
(thus it is no longer a low-level function, and it can no longer
generate an invalid value from a valid one).
* doc/mpfr.texi: updated mpfr_set_exp description and added an item
in the "API Compatibility / Changed Functions" section.
Currently 73 tests pass and 96 fail on Linux/x86_64, either due to bugs
or due to code not yet updated for this change.
Set svn:ignore property on the tools/bench directory.
2014-02-06 Vincent Lefèvre <vincent@vinc17.net>
[src/set_ld.c] Added a note about the test for infinity.
2014-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
make -> make mpfrbench
2014-02-05 Vincent Lefèvre <vincent@vinc17.net>
Removed MPFR_CHECK_MAX as it is now useless: all "max" tests succeed.
[src/lngamma.c] Fixed bug introduced in the latest change r8917
(inexact was not initialized in the case compared < 0).
2014-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added code for large inputs in lngamma/lgamma
2014-02-04 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Suggest timing-based thresholds for asymptotic expansions.
2014-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
use asymptotic expansion for large positive argument
2014-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
tiny change to distinguish different versions of the manual
2014-01-29 Vincent Lefèvre <vincent@vinc17.net>
[src] Add constants:
* __gmpfr_mone = -1
* mpfr_const_log2_RNDD = log(2) rounded down in precision 64 bits
* mpfr_const_log2_RNDU = log(2) rounded up in precision 64 bits
(modified patch from Patrick Pélissier).
2014-01-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added reference
2014-01-29 Vincent Lefèvre <vincent@vinc17.net>
[src] mpz_t caching (modified patch by Patrick Pélissier).
[src/const_pi.c] Rewrote a condition to avoid a potential
integer overflow (?) and match a comment.
[src/const_pi.c] Use of GROUP allocation and minor optimization
(modified patch by Patrick Pélissier).
2014-01-28 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Added a note about "rounding to odd" / "sticky rounding".
2014-01-27 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Run-time assertions concerning relations between
the MPFR exponent type and the long type are allowed (see r8896).
2014-01-26 Vincent Lefèvre <vincent@vinc17.net>
[tests/mpf_compat.h] In MPFR mode, skip the tests when mpfr_exp_t is not
a long.
[tests/tset_ld.c] Fixed printf argument.
[tests/tgamma.c] Fixed printf argument (bug detected with
_MPFR_EXP_FORMAT=2 and -Werror=format=).
[tools/bench/mpfrbench.c] No longer use the numberof macro, and
#include "mpfr.h" instead of "mpfr-impl.h", so that mpfrbench.c
can now be linked against an installed MPFR library.
2014-01-24 Vincent Lefèvre <vincent@vinc17.net>
Added MPFR_CHECK_GMP configure check.
Useful if the user provides --with-gmp with a directory containing
a GMP version that doesn't have the correct ABI: the previous tests
won't trigger the error if the same GMP version with the right ABI
is installed on the system, as this library is automatically
selected by the linker, while the header (which depends on the ABI)
of the --with-gmp include directory is used. Before this test, one
was getting an error in MPFR_CHECK_DBL2INT_BUG, though the error is
not related to a double-to-integer conversion bug.
[src/mpfr-impl.h] Corrections for the case _MPFR_EXP_FORMAT == 4:
* No longer use MPFR_EXP_MIN and MPFR_EXP_MAX unconditionally in
a #if directive, since if MPFR_HAVE_INTMAX_MAX is not defined,
the compilation fails. The test was not really useful anyway:
if one really wants mpfr_eexp_t to be long int if mpfr_exp_t
has the same range as long int, then _MPFR_EXP_FORMAT == 3 is
sufficient (and this is the default).
* Removed a test that should be always true due to the previous
inclusion of mpfr.h (intmax_t has already been used there in
the case _MPFR_EXP_FORMAT == 4).
[doc/README.dev] Rephrased paragraph added in r8897.
[doc/README.dev] Added a note for Automake 1.13+ and failed tests.
[src] Replaced some MPFR_ASSERTN's by MPFR_STAT_STATIC_ASSERT (from the
detection by mpfrlint). Note: the MPFR_ASSERTN's concerning relations
between the MPFR exponent type and the long type have not been replaced
because these tests may fail with the non-standard _MPFR_EXP_FORMAT = 4
on some platforms (e.g. 32-bit ones), and we still want to be able to
build MPFR in this case in order to test it; this needs to be fixed.
[tools/mpfrlint] Constant checking in assertions.
[src/mpfr-mini-gmp.c] Use lower case for function parameters.
2014-01-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
re-enable assertions (patch from Patrick Pélissier)
removed an MPFR_LIKELY that is not so likely...
2014-01-24 Vincent Lefèvre <vincent@vinc17.net>
Optimization: likely / unlikely, etc. (patch by Patrick Pélissier).
Coding style.
[tune/tuneup.c] Fix compilation error due to static assertion being
wrong (patch by Patrick Pélissier).
[src/const_log2.c] Optimization by using GROUP allocation (patch
by Patrick Pélissier).
[src/exp_2.c] Optimization: Increase the initial estimate of the number
of iterations (patch by Patrick Pélissier).
[src/erfc.c] Use of static assertion instead of run time assertion
(patch by Patrick Pélissier).
[src/sum.c] Removed trailing spaces.
[src/sin_cos.c] Optimization: use of MPFR_MPZ_SIZEINBASE2, GROUP
allocation, and MPFR_ALIAS (modified patch by Patrick Pélissier).
[tools/mbench/mfv5-libc.cc] Fix warning when compiling with recent GCC
due to unused but set variable (patch by Patrick Pélissier).
2014-01-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
revert to EXTRA_PROGRAMS (bin_PROGRAMS is installed in /usr/local/bin,
which is not what we want, we could use noinst_PROGRAMS, which would be
compiled automatically, but for coherence with GNU MPC we use EXTRA_PROGRAMS
which is not compiled automatically)
divide the global score to get a number around 1000
added reference
gnu style
2014-01-23 Vincent Lefèvre <vincent@vinc17.net>
Added libtool-tcc-wl.patch patch from
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=663945#46
to add tcc support to libtool 2.4.2 and below.
In doc/README.dev, documented how to use this patch (before a release).
[tests/tadd.c] Added check_extreme test (huge + tiny).
[tests/tsum.c] Added check_extreme test (same test as in tadd.c,
but with mpfr_sum instead of mpfr_add), and temporarily disabled
the cancel test.
Use of the numberof macro.
[tools/bench/mpfrbench.c] Whitespace clean-up.
[src/const_euler.c] Removed trailing spaces.
[tools/bench/Makefile.am] Fix for separate build directory (problem
detected with "make distcheck").
[src/sum.c] Updated comment.
[src/sum.c] Updated comment.
[src/sum.c] Added a possible algorithm in comment.
[src/sum.c] Added FIXME comment.
2014-01-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
missing space
Mickaël is the only author of MPFRbench
updated authors and contributors
new code for Euler's constant (contributed by Fredrik Johansson)
added subdir tools/bench
added MPFRbench
added MPFRbench
make mpfrbench compiled just with "make"
changes for MPFRbench
new directory for MPFRbench (contributed by Mickaël Gastineau and Bill Hart)
2014-01-22 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsum.c] Added a comment about the cancellation test.
[tests/tsum.c] In the cancellation test, do a random permutation.
2014-01-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
mention sponsors
2014-01-22 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsum.c] In the cancellation test: reduced the number of tests;
output debug information when building with -DDEBUG.
[tests/tsum.c] Added simple cancellation test.
[tests/tests.c] Fixed tests_default_random in case mpfr_exp_t > long.
[doc/mpfr.texi] Improved mpfr_sum description.
[src/sum.c] Do not use bitwise operations on values that can be
negative. Added comments about what the functions do.
2014-01-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed regression noticed by Patrick Pelissier with --enable-gmp-internals
2014-01-22 Vincent Lefèvre <vincent@vinc17.net>
[tests/tests.c] Fixed bug in test_version() introduced in r8821.
[src/lngamma.c] Fixed divide-by-zero flag for negative integers.
[tests/tlngamma.c] Test the flags for some special values. Clean-up.
2014-01-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed two items done
2014-01-21 Vincent Lefèvre <vincent@vinc17.net>
[src/{exp.c,exp_2.c}] mpfr_exp optimization (modified patch
by Patrick Pélissier).
[src/round_prec.c] Added a note about the reallocation.
LIKELY some code.
[src/lngamma.c] Fixed mpfr_lngamma behavior on nonpositive integers
and -Inf.
[doc/mpfr.texi] Updated the documentation on the general rules for
special values and on mpfr_lngamma.
[tests/tlngamma.c] Update.
See <https://sympa.inria.fr/sympa/arc/mpfr/2013-08/msg00008.html>
(behavior of mpfr_lngamma on zero and general rule for such limits).
[acinclude.m4,configure.ac] Check that a directory passed to
a --with-gmp* configure option exists and doesn't contain any
space, and canonicalize the name if the realpath utility is
available (patch by Patrick Pélissier).
[src/mul.c] Optimization (modified patch by Patrick Pélissier).
[src] Added support for MPFR_PURE_FUNCTION_ATTR, MPFR_HOT_FUNCTION_ATTR,
and MPFR_COLD_FUNCTION_ATTR, and fixed some LIKELY/UNLIKELY conditions
(modified patch by Patrick Pélissier).
[src/*.c] Replaced mpfr_set_divby0 by the faster MPFR_SET_DIVBY0,
and so on (except for src/exceptions.c).
[tools/mpfrlint] Update for flags related functions: check that
the macros are used in src (except for exceptions.c and mpfr.h)
instead of the functions.
[src/mpfr-impl.h] Removed some useless parentheses in comments,
for mpfrlint.
2014-01-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added more detail in case of error
2014-01-21 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Added MPFR_SET_* macros to set flags efficiently.
Small mpfr_erf improvement (modified patch by Patrick Pélissier).
[src/mpfr-gmp.h] TMP_FREE optimization as tmp_marker is often null
(based on a patch by Patrick Pélissier).
[configure.ac] --enable-mini-gmp message: fixed layout; experimental.
[NEWS] Mini-gmp support is experimental.
[NEWS] Mention the new --enable-mini-gmp configure option.
[NEWS] Mini-gmp support.
[NEWS] MPFR now depends on GMP 4.2+. Dropped K&R C compatibility.
[NEWS] Better Automake 1.13 support.
Merged the vl-am113 branch: test suite improvement with Automake 1.13.
* Moved GMP version check from tversion.c to the test_version()
function of tests.c, so that this check is done in every test.
This function now returns an int, as there are now 3 cases:
1. An error in MPFR version check is a fatal error: test_version()
exits with an error (exit status = 1).
2. An error in GMP version check is a non-fatal error: if there
are no errors in MPFR version check, test_version() returns
with value 1.
3. Otherwise test_version() returns with value 0 (everything is
fine).
* tversion.c still runs test_version(), but fails if this function
returns with an error, i.e. any error is fatal for this test.
Note: for the other tests, one just has a message in the output
in case of GMP version mismatch.
* mpfr-test.h: updated test_version() prototype.
* Makefile.am: removed the second tversion invocation, and output
the contents of tversion.log if this file exists (typically with
Automake 1.13+, for which one no longer gets tversion output by
default).
[tests/Makefile.am] Removed obsolete comment.
2014-01-20 Vincent Lefèvre <vincent@vinc17.net>
Dropped obsolete __gmp_const (replaced by const).
[TODO] Removed mini-gmp support: done.
Small mpfr_exp improvement (modified patch by Patrick Pélissier).
[tools/mbench] Patch by Patrick Pélissier: import base support,
corei7 support, build fix (with MPFR 3.1+).
2014-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
come back to revision 8723 which was faster (measured with tools/mbench/mfv5
on 53 and 1024 bits). The reason is that the "new" version had overhead for
mpfr_round_p (about 40 cycles on Core 2) and mpfr_set (about 98 cycles for
53 bits, and 132 cycles for 1024 bits)
2014-01-20 Vincent Lefèvre <vincent@vinc17.net>
Added __builtin_unreachable / MPFR_ASSUME support (modified patch
from Patrick Pélissier).
MPFR now depends on GMP 4.2+ instead of 4.1+.
GMP 4.2 compatibility fixed.
Code clean-up.
(Modified patch from Patrick Pélissier)
[src/fms.c] Coding style.
[src/fma.c] Changed mp_prec_t to mpfr_prec_t.
2014-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added mpfr_fma
2014-01-20 Vincent Lefèvre <vincent@vinc17.net>
[tests/tests.c] Output a \n between two error messages when need be.
2014-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
speed up mpfr_fma [common work with Jeroen Demeyer]
2014-01-20 Vincent Lefèvre <vincent@vinc17.net>
[tests]
* Moved GMP version check from tversion.c to the test_version()
function of tests.c, so that this check is done in every test.
This function now returns an int, as there are now 3 cases:
1. An error in MPFR version check is a fatal error: test_version()
exits with an error (exit status = 1).
2. An error in GMP version check is a non-fatal error: if there
are no errors in MPFR version check, test_version() returns
with value 1.
3. Otherwise test_version() returns with value 0 (everything is
fine).
* tversion.c still runs test_version(), but fails if this function
returns with an error, i.e. any error is fatal for this test.
Note: for the other tests, one just has a message in the output
in case of GMP version mismatch.
* mpfr-test.h: updated test_version() prototype.
* Makefile.am: removed the second tversion invocation.
[tests/Makefile.am] Output the contents of tversion.log if this file
exists (typically with Automake 1.13+, for which one no longer gets
tversion output by default).
2014-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
simplified the fms code (joint work with Jeroen Demeyer)
fixed bug in mpfr_exp_3, and memory leak in texp
2014-01-20 Vincent Lefèvre <vincent@vinc17.net>
[src/li2.c] Use MPFR_RET_NEVER_GO_HERE () instead of MPFR_ASSERTN (0)
to avoid an error with:
./configure --enable-logging CFLAGS="-Werror=return-type"; make
[src/mpfr-impl.h] Updated comment of the MPFR_RET_NEVER_GO_HERE macro.
2014-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added new test that currently fails (found with mini-gmp)
2014-01-18 Vincent Lefèvre <vincent@vinc17.net>
Spelling consistency:
non-negative → nonnegative
non-positive → nonpositive
[doc/README.dev] More on exponent handling.
[tests/tset_str.c] Fixed and improved a mpfr_set_str_binary random test.
Some code clean-up.
[tests/tset_str.c] Removed useless and confusing cast.
[src/set_d.c] Improved a comment about signed zeros.
2014-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed memory leak
instructions to compile MPFR with mini-gmp
disable those tests for mini-gmp
fixed test which might produce subnormal numbers
disable two tests that depend on the random generator
followup from previous commit: 1^Inf is special too
fixed issue for n^x with x=Inf when the random number n is 0
fixed issue when x=0 and y=Inf (or converse)
fixed issue when x=0 and y=Inf (or converse)
fixed bug in test file
2014-01-18 Vincent Lefèvre <vincent@vinc17.net>
[src/set_d.c] Fixes and other minor changes suggested by Wolf Lammen:
https://sympa.inria.fr/sympa/arc/mpfr/2014-01/msg00007.html
[src/set_d.c] In extract_double, replaced long by int for exp (it may be
faster, and shouldn't be slower as it is more restrictive than long).
[src/set_d.c] Removed obsolete comment from r245.
[src/set_d.c] Renamed __gmpfr_extract_double to extract_double
(this is just a static function).
[src/set_d.c] Fixed __gmpfr_extract_double precondition on d.
Bug found by Wolf Lammen:
https://sympa.inria.fr/sympa/arc/mpfr/2014-01/msg00007.html
2014-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
more progress with mini-gmp:
=======================
9 of 157 tests failed
(13 tests were not run)
=======================
2014-01-18 Vincent Lefèvre <vincent@vinc17.net>
[tests/{ty0,ty1}.c] Reduce emax for the generic tests.
2014-01-17 Vincent Lefèvre <vincent@vinc17.net>
[src/lngamma.c] FIXME: proposed method for overflow detection.
[src/lngamma.c] Minor improvements.
2014-01-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
missing \n
missing \n
missing \n in error messages
missing \n in error messages
2014-01-17 Vincent Lefèvre <vincent@vinc17.net>
[src/lngamma.c] Added a MPFR_LOG_FUNC.
[src/digamma.c] FIXME: for x large, use the asymptotic expansion.
[src/digamma.c] Added 2 MPFR_LOG_FUNC's.
[tests/tgeneric.c] Fixed bug found by PZ: code introduced in r4538 to
test the maximum (in absolute value) positive and negative arguments
was buggy, as only the negative one was tested.
→ This makes some tests fail on the maximum positive argument.
2014-01-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
some progress with mini-gmp:
=======================
34 of 157 tests failed
(13 tests were not run)
=======================
mpn_copyd (rp, sp, n) should be used when rp >= sp
fixed bug which could appear with probability 1/2^32 or 1/2^64
2014-01-17 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-mini-gmp.c] Removed trailing spaces.
[tools/mpfrlint] Update due to the mini-gmp support (r8753).
[tests] Various fixes for r8753.
[src/mpfr.h] Indentation.
[src/mpfr-impl.h] Indentation.
Avoid an empty translation unit (see ISO C99, 6.9). Some errors could
be triggered with "gcc -std=c99 -pedantic-errors".
2014-01-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
more progress for the mini-gmp interface
2014-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added two new files for mini-gmp interface
first step towards making MPFR compile with --enable-mini-gmp, so far make
succeeds and all tests compile, but many tests fail, will investigate later
2014-01-16 Vincent Lefèvre <vincent@vinc17.net>
[src/get_z_exp.c] Added an assert for security in case the precision is
large, but the error should be handled properly (to be discussed).
Note: there are still corrupt memory problems when the precision is
large enough but below the mpz limit (a bug in GMP?).
Note [VL, 2014-01-17]: these problems are due to an integer overflow in
mpz/clear.c of GMP 5.1.3; I've reported the bug here:
https://gmplib.org/list-archives/gmp-bugs/2014-January/003321.html
[src/get_z_exp.c] Avoid a potential overflow.
[src/extract.c] Type clean-up with 2 bug fixes (these bugs should have
no effect on most platforms without too aggressive optimizations).
2014-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
replaced function _mpz_realloc by preferred one mpz_realloc2
2014-01-16 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Added mini-gmp support.
2014-01-15 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Mention speed improvement with --enable-assert[=full] and GCC
(due to the fix in r8746).
2014-01-14 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Fixed the MPFR_ASSERTN macro as suggested by
Wolf Lammen: https://sympa.inria.fr/sympa/arc/mpfr/2014-01/msg00002.html
Note: the semantics doesn't change, it should just be more efficient.
2014-01-12 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset_ld.c] Output MPFR_LDBL_MANT_DIG in some failure case.
2014-01-11 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset_d.c] More information in a failed test.
2014-01-10 Vincent Lefèvre <vincent@vinc17.net>
[tests/Makefile.am] In LOADLIBES, replaced $(INCLUDES) by $(AM_CPPFLAGS)
(this should have been done at the same time as r8364).
2014-01-09 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] "To make a release" update. In particular at step 5,
replaced "make dist" by "make distcheck" so that some problems can be
detected at step 5 instead of step 6, ensuring that the tarballs are
complete.
[src/Makefile.am] Forgot to add mpfr-cvers.h in r8739.
When static assertions are not supported by the C implementation
natively (new C11 feature), their MPFR implementation got broken by
changeset r8625, as the __MPFR_GNUC macro in mpfr-sassert.h was not
defined in the configure test (since mpfr-impl.h wasn't included)
and generated an error, disabling the static assertions support.
This is fixed by the following changes, avoiding code duplication
and thus risk of inconsistencies in future modification:
* copied some of the version detection macros from mpfr-impl.h to
a standalone file mpfr-cvers.h, and updated the macros;
* in mpfr-impl.h, replaced these macros by a #include "mpfr-cvers.h"
and updated a comment;
* in mpfr-sassert.h, added a #include "mpfr-cvers.h".
[acinclude.m4] In the Static Assertions test, avoid a warning with GCC
and added comments.
2014-01-07 Vincent Lefèvre <vincent@vinc17.net>
ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
[tools/mpfrlint] Use codespell if available.
[TODO] Fixed a misspelling, using codespell.
Fixed misspellings, using codespell.
2014-01-06 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Added item: new functions of IEEE 754-2008 / C binding draft.
2014-01-05 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] "To make a release": added a paragraph about warnings.
[tests/trint.c] Avoid a warning.
[acinclude.m4] Avoid a warning due to variable set but not used in a
test, making the test fail with gcc -Werror=unused-but-set-variable.
[acinclude.m4] Replaced "main()" by "main (void)".
2014-01-04 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
2014-01-03 Vincent Lefèvre <vincent@vinc17.net>
Fixed warnings from GCC's -Wold-style-declaration option:
MPFR_THREAD_ATTR must be at beginning of declaration.
Copyright notice update: added 2014 with
perl -pi -e 's/ (\d{4}-)?(2013)(?= Free Software)/
" ".($1||"$2-").($2+1)/e' **/*(^/)
under zsh (the tools/mbench directory was not modified).
Removed 2013 from the example in the doc/README.dev file.
2013-12-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
work around for bug in mpn_set_str
(https://gmplib.org/list-archives/gmp-bugs/2013-December/003267.html)
2013-12-12 Vincent Lefèvre <vincent@vinc17.net>
Added tools/repl-variadic Perl script to replace the variadic functions
mpfr_clears, mpfr_inits and mpfr_inits2, in case they are not supported
by the compiler.
2013-11-28 Vincent Lefèvre <vincent@vinc17.net>
[tests/tstckintc.c] Improved tests when mpfr_custom_init_set is used as
a macro (i.e. without parentheses) to trigger the bug fixed in r8715.
[src/mpfr.h] Fixed bug in the mpfr_custom_init_set macro (typo in
variable name, which can yield incorrect behavior if the second
argument is not a simple expression).
Thanks to Andreas Enge for the bug report:
https://sympa.inria.fr/sympa/arc/mpfr/2013-11/msg00029.html
2013-11-21 Vincent Lefèvre <vincent@vinc17.net>
[src/lngamma.c] No longer declare B as initialized with GCC (see r5534),
as the "may be used uninitialized" warning no longer occurs with latest
GCC: trunk revision 203899 (Debian 20131021-1), for the future GCC 4.9.
The warning still occurs with GCC 4.8.2 (Debian 4.8.2-1):
$ gcc-4.8 -O2 -Wall -c gamma.c
In file included from gamma.c:27:0:
gamma.c: In function ‘mpfr_gamma’:
lngamma.c:468:17: warning: ‘B’ may be used uninitialized in this function [-Wmaybe-uninitialized]
B = mpfr_bernoulli_internal (B, m); /* B[2m]*(2m+1)!, exact */
^
lngamma.c:165:10: note: ‘B’ was declared here
mpz_t *B;
^
Note: with GCC 4.8.2, at least -O is needed to reproduce the warning,
and -Wmaybe-uninitialized without -Wuninitialized (or -Wall) doesn't
trigger the warning.
2013-11-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added -Wlogical-op
2013-11-15 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsprintf.c] Added a few tests.
[doc/README.dev] This may seem obvious, but this is not the first time
this happens: + "When adding the expected result, do NOT use the one
obtained from the MPFR function! Otherwise, if this function is buggy,
the test will be wrong and the function will remain buggy."
[tests/tsprintf.c] Fixed incorrect test from r5652 (the corresponding
bug in src/vasprintf.c has been fixed in r8705).
2013-11-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug reported by David Binderman
(https://sympa.inria.fr/sympa/arc/mpfr/2013-11/msg00009.html)
2013-11-06 Vincent Lefèvre <vincent@vinc17.net>
[tests/thypot.c] More NaN tests.
2013-11-06 Philippe Théveny <philippe.theveny@laposte.net>
[tests/thypot.c] Fix use of a non explicitly initialized variable.
2013-11-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[sum.c] the call to mpfr_can_round was obviously wrong
2013-11-04 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsum.c] Updated TODO comment (→ check underflows).
2013-11-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[sum.c] mpfr_sum should consider the maximal precision of its inputs/output
2013-10-28 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsum.c] Added a TODO comment: add generic random test with
cancellations, and tests with intermediate overflows.
[tests/tsum.c] Added test for bug reported by Joseph S. Myers:
https://sympa.inria.fr/sympa/arc/mpfr/2013-10/msg00015.html
2013-09-27 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Added an example for mpfr_fits_*, corresponding to the
bug fixed in r8503.
[src/mpfr-impl.h] Document that DOUBLE_ISNAN(x) is valid on long double.
[tests/tset_ld.c] In Isnan_ld, do not convert the long double argument
to double, as this can give an overflow and unexpected behavior without
default IEEE 754 behavior. With this change, this tset_ld test no longer
fails with "clang -O2 -fsanitize=undefined -fno-sanitize-recover".
[tests/tset_ld.c] Avoid a division by zero if MPFR_ERRDIVZERO.
[tests/tset_ld.c] Move tests_start_mpfr call earlier.
[tests/tget_flt.c] Corrections when MPFR_ERRDIVZERO is defined.
[src/mpfr-impl.h] With clang, disable division by zero using constants
due to a bug in its sanitizer and because IEEE 754 division by zero is
currently not properly supported.
With this change, the tget_d test no longer fails with:
clang -O2 -fsanitize=undefined -fno-sanitize-recover
2013-09-26 Vincent Lefèvre <vincent@vinc17.net>
[tests/tget_flt.c] Protect a division by 0.
2013-09-17 Vincent Lefèvre <vincent@vinc17.net>
[src/Makefile.am] Updated -version-info to 6:0:2 for MPFR 3.2.0.
2013-09-16 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] For MPFR 3.2: The --enable-decimal-float configure option
no longer requires --with-gmp-build (see r8402).
2013-09-15 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] Detect broken _Decimal64 support on powerpc64 with
the mode32 ABI.
[tests/tget_set_d64.c] More meaningful messages in check_inf_nan.
[tests/tget_set_d64.c] More meaningful messages in check_inf_nan
after failures on powerpc64 with the mode32 ABI.
2013-09-04 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Added: implement optional cache sharing between threads.
2013-09-02 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Changed node name "Integer Related Functions" to
"Integer and Remainder Related Functions", as the corresponding
section title was changed in r4867. Added associated @cindex.
[doc/mpfr.texi] Updated the month.
[doc/mpfr.texi] Specified special values (in particular the sign of 0)
for Section 5.10 "Integer and Remainder Related Functions".
[src/round_raw_generic.c] Support MPFR_RNDNA for this class of functions
at the request of John P. Hartmann (to support one of IBM's High Level
Assembler rounding mode for hexadecimal floating-point constants).
[src/round_raw_generic.c] Code simplification / comment corrections.
2013-08-26 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] About clang sanitizer, mention -fno-sanitize-recover
for more visibility in automated tests.
2013-08-23 Vincent Lefèvre <vincent@vinc17.net>
[src/ai.c] Moved the handling of the special cases NaN and ±Inf to
the main function mpfr_ai.
[src/agm.c] Corrected a comment.
[tests/tagm.c] Added tests concerning special values,
in particular (zero,negative) and symmetric tests.
[doc/mpfr.texi] Corrected mpfr_agm description.
2013-08-21 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Revisit the conversion functions between a MPFR number and
a native floating-point value.
2013-08-19 Vincent Lefèvre <vincent@vinc17.net>
[doc] Added mpfr.t2d and mpfr.t2p to svn:ignore property.
Note: These directories are now generated when using "make mpfr.dvi"
and "make mpfr.pdf". This comes from a change in Automake 1.13 (see
its 2012-06-20 changelog) for the texi2dvi and texi2pdf invocations.
2013-08-10 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Before release, test with gcc -mpc64 under Linux/x86.
2013-08-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tversion.c] added GCC version
[tset_ld.c] try to fix a bug on i686-freebsd
(see http://hydra.nixos.org/build/5665961/log/raw)
[tset_ld.c] added debug information
2013-08-07 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset_ld.c] Reverted changeset r8657 as %a is C99-only. Moreover
the memory representation already gives the necessary information (and
the decimal output was correct on the machine where the test fails).
2013-08-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tset_ld.c] maybe this will fix the issue for i686-freebsd?
Cf http://hydra.nixos.org/build/5662697.
[tset_ld.c] in case of error, print d in hexadecimal
2013-08-07 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset_ld.c] In the "mpfr_set_ld should be exact" error, output
the memory representation of d.
2013-08-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tset_ld.c] print value of MPFR_LDBL_MANT_DIG in case of error
2013-08-07 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Space consistency.
2013-08-06 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset_ld.c] Corrected a comment.
[tests/tset_ld.c] Set some long double variables as volatile in order to
avoid optimizations that yield failures with xlc on power7 (not tested).
[src/get_ld.c] Oops... The non-working code was due to a missing cast.
So, simplified the code.
[acinclude.m4] Define HAVE_LDOUBLE_MAYBE_DOUBLE_DOUBLE if the
"long double" format seems to be double-double (e.g. on PowerPC).
[src/get_ld.c] Added double-double support.
2013-08-05 Vincent Lefèvre <vincent@vinc17.net>
[src/get_ld.c] GNU style.
[tests/tset_ld.c] Improved output in case of error.
[tests/tset_ld.c] Improved check_set_get() test function; in particular,
it no longer takes a mpfr_t argument: the precision of the MPFR number
is now determined dynamically from the long double d. Thus some numbers
having a precision > MPFR_LDBL_MANT_DIG in double-double arithmetic are
now tested (e.g. on PowerPC).
[doc/mpfr.texi] "correctly-rounded" → "correctly rounded" (see rule on
https://en.wikipedia.org/wiki/Wikipedia:HYPHEN#Hyphens and the IEEE 754
and ISO C standards don't use a hyphen either).
[doc/mpfr.texi] Added missing @code{}'s in mpfr_fpif_import description.
[doc/mpfr.texi] Replaced periods ending a sentence by "@." in the
following cases: when the preceding character is a capital letter
or a closing parenthesis following a capital letter (e.g. "NaN.",
"MPFR.", "MPFR).", etc). This is needed to get correct spacing in
the generated .info and PDF files with the next sentence of the
paragraph (when there is one).
[tests/tset_ld.c] Removed the "check largest 2^k that is representable
as a long double" test based on macros LDBL_MAX and LDBL_EPSILON, which
are not correct in some C implementations. There is already another
"check the largest power of two" test, based on a loop, which is OK.
2013-08-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tset_ld.c] improve tests to avoid spurious errors for double-double
representation where MPFR_LDBL_MANT_DIG=106 and numbers
with 107 bits or more
2013-08-02 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Document that log1p(-1) = -Inf.
[doc/mpfr.texi] Updated the month.
[doc/mpfr.texi] Moved mpfr_log1p & mpfr_expm1 after mpfr_log & mpfr_exp
respectively.
[tests/tset_ld.c] Comment on LDBL_MAX.
2013-08-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tset_ld.c] missing conversion from int to mpfr_rnd_t
[tset_ld.c] improve error message
2013-08-02 Vincent Lefèvre <vincent@vinc17.net>
[src/set_ld.c] Corrected a comment.
2013-08-01 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Completed specification of mpfr_lngamma and mpfr_lgamma
on 1 and 2 (result is +0).
[doc/mpfr.texi] Improved description of mpfr_rec_sqrt and mpfr_hypot.
[tests] Added terandom and tnrandom to svn:ignore property.
[src] Improved some comments with "0", about its sign.
[doc/mpfr.texi] Completed specification on special numbers (±0, ±Inf).
2013-08-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tset_ld.c] increase precision to take into account double-double encoding
[tset_ld.c] replaced error by warning when _GMP_IEEE_FLOATS is not defined
2013-07-22 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-sassert.h] Get rid of annoying warnings
typedef 'MPFR_ASSERT_xxx' locally defined but not used
with GCC 4.8+ (better than the non-portable solution r8618). Thanks to
Jonathan Wakely: https://gcc.gnu.org/legacy-ml/gcc-help/2013-07/msg00142.html
2013-07-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[configure.ac] revert commit 8618 since it breaks hydra jobs i686-cygwin,
i686-freebsd, i686-solaris and x86_64-freebsd
(cf http://hydra.nixos.org/eval/955753)
2013-07-22 Vincent Lefèvre <vincent@vinc17.net>
Applied patch 3 by Ondřej Bílka with some manual corrections,
fixing typos:
https://sympa.inria.fr/sympa/arc/mpfr/2013-07/msg00016.html
Applied patch 2 by Ondřej Bílka, fixing capitalization:
https://sympa.inria.fr/sympa/arc/mpfr/2013-07/msg00015.html
Applied patch 1 by Ondřej Bílka, fixing common typos:
https://sympa.inria.fr/sympa/arc/mpfr/2013-07/msg00014.html
[configure.ac] Added -Wno-unused-local-typedefs flag to avoid spurious
"typedef 'MPFR_ASSERT_xxx' locally defined but not used" warnings due
to the implementation of static assertions.
2013-07-16 Vincent Lefèvre <vincent@vinc17.net>
Slightly restructured doc/README.dev and mentioned C-Reduce.
2013-07-12 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] If the gmp.h vs libgmp test fails, also output the value
of some variables (in case config.log is available, information can
also be retrieved from "Cache variables" and "Output variables" near
the end).
2013-07-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
revert temporary commit 8613
2013-07-11 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] Improved MPFR_CHECK_DBL2INT_BUG in case of failure
and added comments about that.
2013-07-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[configure.ac] temporary commit to investigate problem with i686-solaris on hydra
2013-07-11 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] In the CC and CFLAGS setup from gmp.h, modified the
list of commands to select the C preprocessor since /lib/cpp isn't
the best choice under Solaris.
[configure.ac] Moved AM_PROG_AR (introduced in r8546) after the
CC and CFLAGS setup from gmp.h, because AM_PROG_AR makes Autoconf
select a compiler (before it may be chosen from __GMP_CC).
[configure.ac] The test of CC and CFLAGS was done too late! Moved this
test earlier (checked on Debian/unstable with autoconf 2.69).
2013-07-10 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] Improved r8608 (gmp.h/libgmp on stderr).
2013-07-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[configure.ac] print also the versions of gmp.h/libgmp on stderr, hoping they
will appear on i686-solaris
[src/exp_2.c] removed useless instruction
2013-07-10 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] Corrected change in r8602 to get an error in the case
i == 0 and u != 1.
2013-07-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[configure.ac] added fflush to see versions of gmp.h/libgmp
2013-07-10 Vincent Lefèvre <vincent@vinc17.net>
[src/exp_2.c] Fixed undefined behavior (present in all MPFR versions)
detected by "clang -fsanitize=undefined".
[doc/README.dev] Suggest to test with "clang -fsanitize=undefined";
see <https://blog.regehr.org/archives/963>.
2013-07-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
more helpful debug information
added debug information for double-to-integer conversion bug
2013-07-09 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr.h] Updated a comment about ICC.
[doc/README.dev] Added URL about compiler detection.
2013-06-07 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Another update about signed and unsigned integer types.
[doc/README.dev] Update about signed and unsigned integer types.
2013-06-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/random_deviate.c] applied patch from Charles Karney
[tests/Makefile.am] reorder test files
2013-06-07 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Added URL's about C++ reserved keywords.
2013-06-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed to allow compilation with C++:
[src/random_deviate.h] must declare the types before extern C {...}
[tests/tget_sj.c,tests/tset_si.c] "not" seems to be reserved in C++
2013-06-07 Vincent Lefèvre <vincent@vinc17.net>
[doc/algorithms.tex] Slightly improved a bound under which mpfr_hypot
cannot have an internal underflow, thus is correct.
2013-06-06 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Improved a test to avoid false positives.
[doc/algorithms.tex] Updated/improved the proof of mpfr_hypot in the
scaling case.
[src/hypot.c] Slightly improved scaling to avoid even more underflow
in the scaling of y or in its square.
[src/hypot.c] Added a comment on the FIXME.
[src/mpfr-gmp.h] Removed useless and meaningless definitions.
[src] Moved mp_bitcnt_t definition for GMP < 5 from mpfr-gmp.h to
mpfr-impl.h (mpfr-gmp.h is only for definitions from GMP internals
as it is included only in builds without GMP internals).
[src/mpfr-gmp.h] Fixed mp_bitcnt_t presence test.
2013-06-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed macro to typedef when mp_bitcnt_t is missing (for coherence with GMP)
fixed compiler warnings
[mpfr-gmp.h] added replacement for mp_bitcnt_t
[hypot.c] added comment
2013-06-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
applied patch from Charles Karney
2013-06-05 Vincent Lefèvre <vincent@vinc17.net>
[README] Added ar-lib (due to AM_PROG_AR in r8546) and test-driver
(installed by Automake 1.12+).
2013-06-03 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
2013-06-02 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] In AM_INIT_AUTOMAKE, lowered Automake version requirement
to 1.11.2 (for AM_PROG_AR), as Ubuntu 12.04 LTS only has Automake 1.11.3
(we assume that such distributions have a security patch).
[configure.ac] In AM_INIT_AUTOMAKE, require Automake 1.11.6 for
AM_PROG_AR and security reasons.
[NEWS,doc/mpfr.texi] New and deprecated functions in MPFR 3.2.
Spelling: gaussian -> Gaussian (Wikipedia, Wolfram MathWorld, dict).
[doc/mpfr.texi] Slight doc improvement for mpfr_grandom.
2013-06-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added assertion
2013-06-01 Vincent Lefèvre <vincent@vinc17.net>
[src/random_deviate.c] Updated a comment.
2013-06-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
in case mp_limb_t is smaller than unsigned long, use alternate code for
highest_bit_idx
2013-06-01 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Update for random_deviate.
[src/nrandom.c] Corrected indentation.
[src/random_deviate.h] Fixed a typo in a macro name.
[src/random_deviate.c] Removed trailing spaces.
Added ar-lib to svn:ignore property (this script comes from Automake,
due to the use of AM_PROG_AR in configure.ac as of r8546).
2013-05-31 Vincent Lefèvre <vincent@vinc17.net>
[tests/memory.c] Added a FIXME comment about the time complexity of
tests_memory_find (Paul Zimmermann noticed that tgrandom on a large
value takes a lot of time, probably because of that).
2013-05-31 Paul Zimmermann <Paul.Zimmermann@inria.fr>
updated NEWS and contribution section in mpfr.texi
#include <...> -> #include "..." for local files
removed obsolete comment
GNU style
GNU style
GNU style
added tests files for mpfr_nrandom and mpfr_erandom
removed RANDOM_SIMPLE=1 stuff (this was an alternate slower implementation).
Kept in svn history as a reference.
removed mpfr_grandom_alt (likewise previous commit)
removed mpfr_urandom_alt (slower than mpfr_urandom, but it can be recovered
from the svn history to illustrate one of the basic properties of a newly
initialized mpfr_random_deviate_t)
removed mpfr_random.h, headers are in mpfr.h
original contribution from Charles Karney <charles.karney@sri.com>
2013-05-30 Vincent Lefèvre <vincent@vinc17.net>
Removed obsolete tools/update-patchv script. Use update-version instead.
[configure.ac] Added AM_PROG_AR to support unusual archivers
(after a warning from Automake 1.13).
[tools/ck-copyright-notice] Update for copyright year ranges.
[doc/mpfr.texi] Updated the month.
Use copyright year ranges, following
https://www.gnu.org/prep/maintain/maintain.html#Copyright-Notices
[tests] Added *.log and *.trs to svn:ignore property.
[INSTALL] Update about configure default options.
Added test-driver (from Automake 1.12+) to svn:ignore property.
2013-05-24 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] Updated comment about -mieee-fp icc option.
2013-05-24 Philippe Théveny <philippe.theveny@laposte.net>
[tests/tprintf] remove tests of invalid format (continuation of r8525).
[src/vasprintf.c] Support all length modifiers defined by ISO C99, even if the
corresponding type is not detected by configure (continuation of r8525).
2013-05-24 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] For ICC, changed the deprecated -mp option to the
equivalent one -mieee-fp; added a comment about that.
2013-05-24 Philippe Théveny <philippe.theveny@laposte.net>
[src/vasprintf.c] Always support 't' and 'L' length modifiers, but don't
test them if configure doesn't find the corresponding type.
Printing invalid format specifiers (continuation of r8525)
[src/vasprintf.c] Add comments.
[tests/tprintf.c] Simplify tests.
2013-05-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
new macro MPFR_MAYBE_UNUSED to avoid compiler warnings
2013-05-23 Philippe Théveny <philippe.theveny@laposte.net>
[src/vasprintf.c] Print invalid format specifier instead of returning an error code, as in GMP.
[tests/tprintf.c] Modify tests for invalid format.
2013-05-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
try to link with GMP even when a dll, since it seems to work now
(see https://sympa.inria.fr/sympa/arc/mpfr/2013-05/msg00010.html)
replaced macros NPRINTF_T and NPRINTF_L by positive versions
PRINTF_T and PRINTF_L, now we don't assume that %td and %Lf are supported
when we don't check it (for example when cross-compiling, or under Windows
when GMP is a dynamic library)
fixed typo
2013-05-15 Vincent Lefèvre <vincent@vinc17.net>
[Makefile.am] Added a comment about ACLOCAL_AMFLAGS, based on the
GNU Automake 1.13.2 release notes.
2013-04-17 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] With clang, do not use GCC's self-initialization trick
as it generates a warning, though clang claims GCC compatibility.
2013-04-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[algorithms.tex] added reference
2013-03-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] added item
2013-03-18 Vincent Lefèvre <vincent@vinc17.net>
[src/fits_intmax.c] Corrected a comment.
[src/{fits_u.h,fits_uintmax.c}] Fixed the mpfr_fits_u*_p functions,
which incorrectly returned 0 ("doesn't fit") on negative arguments
when the rounding to an integer was 0. The fits_uintmax.c file now
uses fits_u.h for consistency.
[tests/tfits.c] Use error numbers to know where an error occurred.
[src/fits_uintmax.c] Replaced an obsolete comment by a TODO.
[tests/tget_sj.c] Added mpfr_get_uj tests on small negative op,
similar to what has been done for mpfr_get_ui in r8498,8499.
[tests/tset_si.c] Minor type correction for r8498 (this shouldn't matter
because the value is normally small, but perhaps not in case of bug).
[tests/tset_si.c] Added mpfr_get_ui tests on small negative op.
[tests/tset_si.c] Corrected comment.
[doc/mpfr.texi] Updated the month.
[doc/mpfr.texi] Improved documentation of the conversions to an integer
(mpfr_get_si, mpfr_get_ui, mpfr_get_sj, mpfr_get_uj).
[tests/tfits.c] Added tests, in particular for small negative op
and in non-RNDN rounding modes; tfits currently fails.
[tools/announce-text] Added short text about what GNU MPFR is.
2013-03-13 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Removed a duplicate word.
2013-03-12 Vincent Lefèvre <vincent@vinc17.net>
[INSTALL] Added a paragraph about Cygwin and threading.
[INSTALL] Improved information on patches.
2013-03-11 Vincent Lefèvre <vincent@vinc17.net>
[tools/announce-text] Added text about how to verify the signatures.
[doc/README.dev] Updated "To make a release" about the web pages.
2013-03-08 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Added info about update-version and ck-version-info.
2013-03-05 Vincent Lefèvre <vincent@vinc17.net>
[tests/tfpif.c] Clean-up. Improved consistency.
2013-03-04 Vincent Lefèvre <vincent@vinc17.net>
[examples] Replaced the old rounding mode macros (GMP_RNDN, etc.) by the
new ones (MPFR_RNDN, etc.) in the *.c files; updated ReadMe file.
[doc/update-faq] Removed the now useless s/GMP_RND/MPFR_RND/ rewriting.
[doc] Slightly modified faq.xsl to avoid libxslt bug 377440, and
moved the addition of special CSS comments for XML compatibility
from update-faq to faq.xsl file.
2013-03-01 Vincent Lefèvre <vincent@vinc17.net>
[tests/tgamma.c] Avoid mpfr_set_d.
[tests/tfpif.c] Avoid mpfr_set_d as the results may depend on the C
implementation.
2013-01-03 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
Copyright notice update: added 2013 with
perl -pi -e 's/2012 Free Software/2012, 2013 Free Software/' **/*(^/)
under zsh, reverting the ChangeLog file and the m4 directory
(the tools/mbench directory was not modified).
Removed 2012 from the example in the doc/README.dev file.
[configure.ac] Corrected comment on clock_gettime (from r8445).
2012-12-31 Vincent Lefèvre <vincent@vinc17.net>
Tuning: reverted changeset r8444 and applied patch by Patrick Pélissier
for GMP 5.1.0 to link against librt conditionally.
2012-12-31 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[Makefile.am] -lrt is needed for clock_gettime() [undefined with GMP 5.1.0]
2012-12-21 Vincent Lefèvre <vincent@vinc17.net>
[tests/tfpif.c] Added a TODO.
[src/fpif.c] Added an assert on MPFR_PREC_MIN because the code seems
to be based on this (always true with the current value).
[doc/mpfr.texi] Minor corrections of mpfr_fpif_import documentation.
2012-12-21 Olivier Demengeon <olivier.demengeon@inria.fr>
mpfr_fpif_import now check precision size. Documentation updated for mpfr_fpif_import.
2012-12-20 Vincent Lefèvre <vincent@vinc17.net>
Compatibility with GMP 5.1.0 when gmp-impl.h is included (thanks to Rob:
https://sympa.inria.fr/sympa/arc/mpfr/2012-12/msg00003.html); clean-up.
2012-12-12 Vincent Lefèvre <vincent@vinc17.net>
[src/fpif.c] Added a FIXME comment in mpfr_fpif_import concerning the
precision.
2012-12-11 Vincent Lefèvre <vincent@vinc17.net>
[src/fpif.c] Added comments. Fixed mpfr_fpif_read_precision_from_file
in the case where the precision size > sizeof(mpfr_prec_t) and/or when
the read precision is too large (as mpfr_prec_t is signed).
2012-12-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[fpif.c] completed FIXME
2012-12-08 Vincent Lefèvre <vincent@vinc17.net>
[src/fpif.c] Added a FIXME comment: large precisions read from the file
can trigger undefined behavior if sizeof(mpfr_prec_t) is too small.
2012-12-07 Olivier Demengeon <olivier.demengeon@inria.fr>
Fixed stack overflow bug in fpif.c
2012-12-05 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4,configure.ac] Moved the "double-to-integer conversion bug"
test after the gmp.h detection as it uses gmp.h (otherwise one gets an
incorrect error on this test if gmp.h can't be found or is unusable).
2012-12-03 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Removed a useless comma from r8428.
[doc/mpfr.texi] Updated the month.
[doc/mpfr.texi] Updated warning in mpfr_min_prec description,
in particular for the use with mpfr_prec_round.
2012-10-17 Vincent Lefèvre <vincent@vinc17.net>
[src/set_uj.c] Change to help the compiler to detect dead code,
improving the coverage (from a patch by Patrick Pélissier).
[src/get_d64.c] Added a const (thanks to Patrick Pélissier).
2012-10-10 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] Check struct lconv members (from <locale.h>) to avoid a
build failure under Android, which does not have them; see
https://sympa.inria.fr/sympa/arc/mpfr/2012-10/msg00002.html
[src/mpfr-impl.h] Decimal point / thousands separator support can now be
detected automatically by configure (from the presence of <locale.h>
and the above members) or explicitly disabled/enabled by the user by
defining the MPFR_LCONV_DPTS macro to 0 or 1 via CFLAGS (a configure
switch might be added in the future).
[tests/tsprintf.c] Do the locale_da_DK test only if MPFR_LCONV_DPTS is
true.
2012-09-29 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Note about GNU extensions and ICC.
2012-09-20 Vincent Lefèvre <vincent@vinc17.net>
[get_float128.c,set_float128.c] Avoid an empty translation unit
(forbidden by ISO C, detected with gcc -ansi -pedantic-errors)
when MPFR_WANT_FLOAT128 is not defined.
Applied patch (with minor changes) by Patrick Pélissier to improve
the mpfr_round_nearest_away interface.
2012-09-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[nightly-test] modified so that decimal floats are tested (with gcc)
2012-09-05 Vincent Lefèvre <vincent@vinc17.net>
Removed trailing whitespace.
[doc/mpfr.texi] Updated the month.
2012-09-04 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] Improved error message when the compiler doesn't know
_Decimal64 (if MPFR is built with --enable-decimal-float).
2012-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
revert changeset r8412 (_Decimal64 might be defined in C++, but not as a macro)
updated documentation wrt --enable-decimal-float
added support for --enable-decimal-float with g++ (does not work with icpc,
the Intel C++ compiler)
[tests/tl2b.c] fix for C++
2012-09-04 Vincent Lefèvre <vincent@vinc17.net>
[src/set_d.c] Updated a comment on the negative zero.
[src/get_str.c] #include "mpfr-intmax.h" so that UINT64_C has a chance
to be defined (optionally used as of r8406).
2012-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/set_d64.c] fix for systems where +0.0 and -0.0 are stored identically in
memory
[src/set_d64.c] better code to detect -0.0 (copied from set_d.c)
[tests/tl2b.c] use UINT64_C for 64-bit integer constants
[src/get_str.c] update table generated by "tests/tl2b 1"
[get_d64.c,set_d64.c] small fixes (did not work any more with --with-gmp-build)
[set_d64.c] some cleanup, since sprintf adds a final '\0', and fixed a too
small memory allocation
2012-09-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] removed an item (done)
Now --enable-decimal-float does not require any more --with-gmp-build.
Still disabled by default: some more testing is needed before we can enable
it by default (if _Decimal64 is supported).
2012-08-29 Vincent Lefèvre <vincent@vinc17.net>
[tests/tstrtofr.c] Updated bug20120829 comment (bug fixed in r8396).
[tests/tstrtofr.c] Fixed small type error.
2012-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[strtofr.c] new try to fix the assertion failure on 32-bit
2012-08-29 Vincent Lefèvre <vincent@vinc17.net>
[tests/tstrtofr.c] Added more bug20120829 tests, showing that r8394 is
still buggy on 32-bit machines (assertion failure in strtofr.c).
2012-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[strtofr.c] fix for failing test case introduced in r8392
2012-08-29 Vincent Lefèvre <vincent@vinc17.net>
[tests/tstrtofr.c] Updated a comment: the 2nd testcase of r8392 also
triggers an assertion failure on 32-bit machines.
[tests/tstrtofr.c] Added 2 testcases:
* One triggering an assertion failure in strtofr.c r8389
on 32-bit machines (fixed in r8390).
* One still triggering an assertion failure in strtofr.c (r8391)
on 64-bit machines.
2012-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[strtofr.c] fixed comments
2012-08-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[strtofr.c] fix for err >= GMP_NUMB_BITS
2012-08-28 Vincent Lefèvre <vincent@vinc17.net>
[src/strtofr.c] Consistency correction: towards → toward.
[src/sin_cos.c] Consistency correction: towards → toward.
[doc] Updated FAQ.html with update-faq.
2012-08-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[strtofr.c] fixed bug in mpfr_strtofr in case:
(1) the input string was used entirely
(2) the conversion was done by a division
(3) and the division was exact
In such a case the "reconstruction" of the ternary value was
inexact.
2012-08-16 Vincent Lefèvre <vincent@vinc17.net>
[src/get_d64.c] mpfr_get_decimal64 was buggy in MPFR_RNDN on some
values x such that 0.5e-398 < |x| < 1e-398 (smallest subnormal):
it was returning 0 instead of +/- 1e-398 (see r8370).
[tests/tget_set_d64.c] Added testcases.
2012-08-15 Vincent Lefèvre <vincent@vinc17.net>
[src/get_d64.c] Fixed get_decimal64_max by simplifying it completely,
and changed get_decimal64_min in the same way.
Thanks to Rob (Sisyphus) for the idea.
[tests/tget_set_d64.c] Added overflow tests (they cover the two bad
tests fixed in r8372 and trigger a bug in get_decimal64_max).
[tests/tget_set_d64.c] Added some tests for large numbers.
Renamed WANT_ASSERT to MPFR_WANT_ASSERT in order to avoid a clash
with GMP when MPFR is configured with --with-gmp-build.
2012-08-14 Vincent Lefèvre <vincent@vinc17.net>
[src/get_d64.c] Fixed overflow cases.
[tests/tstrtofr.c] Added testcase from bug reported by Joseph S. Myers.
2012-08-13 Vincent Lefèvre <vincent@vinc17.net>
[src/get_d64.c] mpfr_get_decimal64 is buggy in MPFR_RNDN for values x
such that 0.5e-398 < |x| < 1e-398. Added a FIXME comment.
See: https://sympa.inria.fr/sympa/arc/mpfr/2012-08/msg00002.html
2012-07-27 Vincent Lefèvre <vincent@vinc17.net>
[src/fpif.c] No longer assume that if HAVE_BIG_ENDIAN is not defined,
the architecture is little endian. Detect the case where neither
HAVE_BIG_ENDIAN nor HAVE_LITTLE_ENDIAN is defined (currently an
error).
[configure.ac] Fixed the use of AC_C_BIGENDIAN (since AC_CONFIG_HEADERS
is not used, one must have an ACTION-IF-UNIVERSAL argument).
[doc/README.dev] Check with "-UHAVE_BIG_ENDIAN -UHAVE_LITTLE_ENDIAN"
(unknown/unspecified endianness) before a release.
[doc/README.dev] Update now that autogen.sh is in the repository.
Added autogen.sh sh script from Daniel Richard G. to install/update the
autotools files and clean up caches (useful before a release).
Updated autotools files to get rid of obsolete macros (thanks to
Daniel Richard G. for the patch; kept the autoconf requirement
to 2.60 instead of changing it to 2.68 as done with autoupdate,
since 2.60 seems to be sufficient according to the changes and
2.68 is too recent, e.g. Debian/stable still has 2.67).
--- Note ---
This update has another effect: The "Configs for Windows DLLs."
code (from "case $host in" to "esac") is now executed at the right
time, after options like --disable-static are taken into account.
Juste before this change, the test
if test "$enable_shared" = yes; then
was always false. This could be seen on hydra:
With r8360:
[...]
configure flags: --disable-static --disable-dependency-tracking
--prefix=/nix/store/95zhbb0v23syxsazx33hg3acbvixyq5a-mpfr-0-3.2.0-dev
[...]
checking for DLL/static GMP... static
[...]
checking whether to build shared libraries... yes
checking whether to build static libraries... no
[...]
With r8367:
[...]
configure flags: --disable-static --disable-dependency-tracking
--prefix=/nix/store/8zblwffd2ww1z0smqlgwrfzcl6b48rim-mpfr-0-3.2.0-dev
[...]
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for DLL/static GMP... static
[...]
[src/mpfr-intmax.h] Updated comment formatting so that mpfrlint
doesn't complain.
2012-07-26 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] Replaced "sed" by "$SED".
[tools/mpfrlint] Check for sed.
[tools/mpfrlint] Check for grep, egrep and fgrep (see r8356 correction).
2012-07-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
we use a 77-bit approximation in get_str.c (and not 76-bit)
2012-07-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[configure.ac] grep -> $EGREP (thanks Marc Glisse)
https://sympa.inria.fr/sympa/arc/mpfr/2012-07/msg00006.html
2012-07-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[acinclude.m4] fix for cross-compilation
2012-07-24 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] Improved a message and corrected gmp.h inclusion.
2012-07-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[acinclude.m4] added test for double-to-integer conversion bug
revert r8349 (will do the test in configure)
2012-07-24 Vincent Lefèvre <vincent@vinc17.net>
Improved doc/mpfr.texi about MPFR_USE_INTMAX_T.
[src/mpfr-intmax.h] Define MPFR_USE_INTMAX_T if <inttypes.h> and/or
<stdint.h> is available. This is needed on systems for which the
current (non-standard) macro tests in mpfr.h is not sufficient.
This will force the support of intmax_t/uintmax_t in this case and
also avoids a failure in the tests on such systems.
Tested by replacing the macro tests in mpfr.h by just
#if defined (MPFR_USE_INTMAX_T)
to simulate such a system.
2012-07-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tinternals.c] added test for double -> mp_limb_t conversion
2012-07-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr.h] patch for FreeBSD (tested on gcc76.fsffrance.org with freebsd-83-amd64)
2012-07-10 Vincent Lefèvre <vincent@vinc17.net>
Added tools/announce-text sh script to be run before publishing an
announce of a new GNU MPFR release (it does some checking, then it
outputs the announce text to stdout).
Mention this script in "doc/README.dev".
[doc/README.dev] Updated "To make a release".
2012-07-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] added item
2012-07-06 Vincent Lefèvre <vincent@vinc17.net>
[tests/{tset_d.c,tget_flt.c}] Disabled two tests when HAVE_SIGNEDZ
isn't defined, because these tests rely on signed zeros.
[acinclude.m4] Added a test for signed zeros (tcc currently doesn't
support signed zeros, and 2 MPFR tests fail because of that).
[acinclude.m4] Removed useless "#include <math.h>" in the test
for subnormal numbers.
[acinclude.m4] Replaced the AC_TRY_RUN obsolete macro by
AC_RUN_IFELSE([AC_LANG_SOURCE([[...]])],...) as documented
in the GNU Autoconf manual.
Minor correction in the test for subnormal numbers.
[tests] Added trndna to svn:ignore property.
[tests/tset_d.c] Formatting.
Replaced "denormalized" by the official term "subnormal".
2012-07-05 Vincent Lefèvre <vincent@vinc17.net>
[tools/coverage] unset MPFR_* environment variables in a better way.
[tools/coverage] unset MPFR_* environment variables in a better way.
2012-07-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[coverage] unset MPFR_* environment variables to get reproducible results
[tabort_defalloc2.c] changed char* into void* to please g++ compiler
2012-07-04 Vincent Lefèvre <vincent@vinc17.net>
[tests/trndna.c] Removed useless initialization.
2012-07-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[trndna.c] restore emin
[coverage] unset GMP_CHECK_RANDOMIZE so that the coverage test is deterministic
2012-07-04 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Replaced a "should not" by a "must not".
[doc/mpfr.texi] Consistency change.
2012-07-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[trndna.c] increase emin when smallest possible
[rndna.c] special treatment for the case 2^(emin-2)
several changes suggested by Vincent Lefevre
[rndna.c] changed the specification since on 32-bit machines we have no margin
for the smallest exponent emin
added new function mpfr_round_nearest_away() as discussed during the June 2012
workshop
2012-07-03 Vincent Lefèvre <vincent@vinc17.net>
[tools/coverage] Minor update, just in case...
2012-07-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[exp.c] fixed typo
2012-07-03 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
[tests/{td_div.c,tget_d.c}] Disable tests with a division by 0 if
MPFR_ERRDIVZERO is defined.
[tests/tests.c] Improved an error message.
[acinclude.m4] Fixed sigaction check to support "gcc -std=c99", like
what has been done for math/round.
2012-07-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[trndna.c] test file for mpfr_round_nearest_away()
2012-07-02 Vincent Lefèvre <vincent@vinc17.net>
[src/rndna.c]
* Handle singular cases like with other functions. Avoid the goto.
* Reordered the tests to make them simpler and easier to understand
(it wasn't immediately visible that inex could not be 0 for the
second "else") and fixed the case lastbit == 1 && inex < 0.
[src/rndna.c] Added a note saying that this method doesn't work
for 2^(emin-2).
2012-06-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[rndna.c] new function that computes rounding to nearest-away
2012-06-28 Vincent Lefèvre <vincent@vinc17.net>
[tests/tprintf.c] Test the thousands separator in some en_US locale,
if available (modified patch from Patrick).
Added coverage tune (from a patch by Patrick).
2012-06-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr.texi] added support by ERC grant of Andreas
2012-06-27 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Replaced a few @samp by @code for consistency.
2012-06-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr.texi] document MPFR_WANT_DECIMAL_FLOATS and MPFR_WANT_FLOAT128
2012-06-27 Vincent Lefèvre <vincent@vinc17.net>
[src/mulders.c] Clean-up and static assertions (patch from Patrick).
[tests/tgrandom.c] Replaced GMP_RNDN by MPFR_RNDN.
[tests/tgrandom.c] Improved a test and added a new one for
mpfr_grandom(x, NULL, ...).
[doc/mpfr.texi] Completed spec of mpfr_grandom.
2012-06-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[coverage] added instructions how to use this script
2012-06-27 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Update: test coverage.
[tools/coverage] Detailed coverage (from a patch by Patrick).
2012-06-26 Vincent Lefèvre <vincent@vinc17.net>
[src/{mpfr-impl.h,print_raw.c}] Removed unused function mpfr_dump_mant
(added in r3410, but never used); patch by Patrick.
[tests/tsin.c] Improved coverage.
[tests/tset.c] Test the mpfr_set function too (patch by Patrick).
Added configure option --enable-assert=none to avoid checking any
assertion (this is based on a patch by Patrick).
[src/digamma.c] Correction: assertions must never have any side effect.
[tests] Updated svn:ignore property.
[src/atan.c] Removed trailing whitespace.
Forgot to add some files in r8266 (tests that are expected to fail).
Support tests that are expected to fail (from a patch by Patrick).
[tests/tversion.c] Output the applied patches (if any).
[tests/tstckintc.c] Correction and test improvement (from a patch
by Patrick).
[tools/coverage] Correction by Patrick.
2012-06-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[atan.c] improved code coverage by removing some dead code after some numerical
analysis with Benjamin Dadoun
2012-06-26 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Removed obsolete "but see below".
[tests/tinternals.c] mpfr_set_prec_raw missing tests (thanks to Patrick).
[tests/tset_si.c] Also test the mpfr_set_ui function (instead of macro).
[NEWS] 3.2.0 will be "dinde aux marrons".
2012-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[gamma.c] simplified mpfr_gamma_1_minus_x_exact() after code coverage analysis
with Benjamin Dadoun
2012-06-25 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] aclocal -> acinclude.m4 in a comment.
[src/{init2.c,mpfr-impl.h}] Clean-up.
2012-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] removed one item, added one
2012-06-25 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] Detect whether _Thread_local (C11) is supported.
[src/mpfr-thread.h] Use _Thread_local if supported, instead of __thread.
(Patch from Patrick)
2012-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[gamma.c] simplified code for mpfr_gamma_2_minus_x_exact() (thanks to coverage
analysis by Benjamin Dadoun)
2012-06-25 Vincent Lefèvre <vincent@vinc17.net>
[src/Makefile.am] Added mpfr-sassert.h to libmpfr_la_SOURCES.
[src/init2.c] Replaced classic assertions by static assertions.
Added Static Assertion support (modified patch from Patrick).
* Added src/mpfr-sassert.h: implementation of static assertions.
* src/mpfr-impl.h: include "mpfr-sassert.h".
* acinclude.m4: test whether static assertions are supported.
[doc/README.dev] Suggest to test with and without -std=c11.
[tests/tset_float128.c] Test the sign of 0. Use mpfr_equal_p instead of
mpfr_cmp (this is safer if a result is NaN).
[src/set_float128.c] Avoid a goto (useless here, contrary to set_ld.c).
[src/get_float128.c] !MPFR_IS_ZERO -> MPFR_NOTZERO; GNU coding style.
tests: updated svn:ignore property.
[tests/tset_float128.c] Got rid of the remaining mpfr_printf's.
2012-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tset_float128.c] added missing empty main when functions are not tested
[set_float128.c,tset_float128.c] untabified and got rid of mpfr_printf
2012-06-25 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Added a period.
[doc/mpfr.texi] Updated the month.
[configure.ac] "configure --help" formatting for --enable-float128.
2012-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
compile mpfr_set_float128 and mpfr_get_float128 only when __float128 is supported
[configure.ac] __float128 is supported by GCC >= 4.3
2012-06-25 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset_float128.c] mp_rnd_t -> mpfr_rnd_t
2012-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added new functions mpfr_set_float128 and mpfr_get_float128
[get_ld.c] fixed typo
2012-06-25 Vincent Lefèvre <vincent@vinc17.net>
[tests/tversion.c] Test mpfr_buildopt_tune_case() vs MPFR_TUNE_CASE.
[src/buildopt.c] Made mpfr_buildopt_tune_case() simpler.
2012-06-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[li2.c] replaced mpfr_cmp_d by mpfr_cmp_ui_2exp
2012-06-21 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset_ld.c] For _GMP_IEEE_FLOATS, use #if instead of #ifdef
since mpfr-impl.h defines it to 0 if it was undefined.
2012-05-18 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Added a reference to a new discussion concerning __float128.
2012-05-14 Sylvain Chevillard <Sylvain.Chevillard@inria.fr>
* Other corrections (essentially bad or missing declarations) in metaMPFR.
2012-05-11 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Improved the description of the mpfr_flags_ functions.
2012-05-10 Sylvain Chevillard <Sylvain.Chevillard@inria.fr>
* Corrected small errors.
2012-05-10 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Improved mpfr_flags_test description, giving an example.
[src/mpfr.h] Define MPFR_FLAGS_ALL from the individual flags
(MPFR_FLAGS_UNDERFLOW...). Suggestion by Paul Zimmermann.
Note: the output expression looks OK in assertion failures.
[doc/mpfr.texi] Correction on mpfr_clear_flags description.
2012-05-09 Vincent Lefèvre <vincent@vinc17.net>
Added functions that operate on groups of flags: mpfr_flags_clear,
mpfr_flags_set, mpfr_flags_test, mpfr_flags_save and mpfr_flags_restore.
(reintegrated flags branch to the trunk: svn merge --reintegrate ...)
2012-05-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
patch from Nitin A Kamble for automake 1.12.
This patch avoids these issues with automake 1.12:
| configure.ac:304: error: automatic de-ANSI-fication support has been removed
| tests/Makefile.am:12: error: automatic de-ANSI-fication support has been removed
2012-05-07 Vincent Lefèvre <vincent@vinc17.net>
[AUTHORS,INSTALL,doc/mpfr.texi] Updated the e-mail address of the
MPFR mailing-list to match the List-* headers written by the new
mailing-list server (the old one still works, but may lead to bad
interaction with MUA's that attempt to honor the List-Post header
when replying to the list(s)).
[src/lngamma.c] Added mpfr_explgamma internal function to handle
overflows/underflows (intermediate or not) in mpfr_gamma.
Updated the general overflow detection to use this function.
[src/gamma.c] Fixed the general underflow detection.
[src/lngamma.c] Removed spurious parentheses.
[tests/tgamma.c] Added tests for 32-bit and 64-bit machines, showing an
underflow detection bug in gamma.c (see FIXME comment added in r8185).
[tests/tgamma.c] Added tests to trigger the pre-r8189 endless loop
on 32-bit machines.
2012-05-04 Vincent Lefèvre <vincent@vinc17.net>
[tests/tgamma.c] Updated exp_lgamma to test the ternary value.
[src/lngamma.c] Fixed the problem with the overflow flag (r8192).
Improved src/lngamma.c (mainly on changes from r8189):
* Declarations of ok variable were used in nested block.
* Added a missing "MPFR_ZIV_FREE (loop);".
* In the overflow detection code, call mpfr_lngamma only once, use
mpfr_equal_p instead of mpfr_cmp, and share code with the end.
Note: the problem with the overflow flag (r8192) hasn't been solved yet.
[tests/tgamma.c] Added a test showing a failure on 64-bit machines
due to an unset overflow flag.
[tests/tgamma.c] Updated exp_lgamma to test underflow & overflow flags.
[TODO] For mpfr_get_flt, etc., exception flags should be raised.
2012-05-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/lngamma.c] fixed endless loop with test cases introduced in r8188
2012-05-03 Vincent Lefèvre <vincent@vinc17.net>
[tests/tgamma.c] Updated the exp_lgamma_tests test to trigger an
endless loop due to undetected overflow on 64-bit machines.
[tests/tgamma.c] Say that the freeze is for 64-bit machines only.
[tests/tgamma.c] Added more mpfr_tgamma tests, showing a freeze.
[src/gamma.c] Corrected the FIXME comment concerning the underflow
detection.
[src/gamma.c] Added a FIXME comment: the underflow detection may still
be buggy (or the explanation is incomplete).
[src/gamma.c] Completed the explanation concerning the new underflow
detection.
[src/gamma.c] Removed the FIXME comment (from r8169).
[src/gamma.c] Untabified.
ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
[doc/mpfr.texi] Updated the month.
2012-05-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[gamma.c] tentative fix for the underflow problem
2012-05-03 Vincent Lefèvre <vincent@vinc17.net>
Updated URL's of mailing-list archives/messages in all files
(except ChangeLog, as it is generated).
[TODO] Updated URL's of mailing-list archives/messages.
2012-05-02 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Updated concerning MPFR_RNDNA.
2012-04-27 Vincent Lefèvre <vincent@vinc17.net>
[src/gamma.c] Added a FIXME comment.
[TODO] Suggested a new rounding mode: MPFR_RNDE, to be used when the
result is known to be exact (normal mode: optimize; debug mode: check).
[src/gamma.c] Use the new MPFR_DBGRES macro.
[tests/tgamma.c] Improved testcase test20100709.
[tests/tgamma.c] Updated testcase test20100709 for 64-bit machines,
as this bug reappeared in r8159.
2012-04-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/gamma.c] fixed bug found by Giridhar Tammana
https://sympa.inria.fr/sympa/arc/mpfr/2012-04/msg00013.html
Note (VL): this fix triggers an infinite loop on 32-bit machines
(or with -m32) in test20100709 from tgamma.c and this is partly
the opposite of changeset r6996.
2012-04-26 Vincent Lefèvre <vincent@vinc17.net>
[tests/texceptions.c] Added a comment for check_groups().
[src/mpfr-impl.h] Improved the noreturn feature.
2012-04-25 Vincent Lefèvre <vincent@vinc17.net>
Added support for _Noreturn function specifier (ISO C11).
* acinclude.m4: define MPFR_HAVE_NORETURN if _Noreturn is supported.
* src/mpfr-impl.h: use _Noreturn when MPFR_HAVE_NORETURN is defined.
Tested with GCC 4.6 (no _Noreturn) and 4.7 (supports _Noreturn).
[doc/README.dev] Added a note about the new experimental
-ftrack-macro-expansion GCC option.
2012-04-24 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Small correction on the mpfr_flags_t description.
[src/mpfr-impl.h] Added MPFR_FLAGS_DIVBY0 (missing from r8143).
[src/mpfr-impl.h] Forgot to replace the mpfr_clear_divby0 internal macro
by MPFR_CLEAR_DIVBY0 in r8141.
2012-04-23 Vincent Lefèvre <vincent@vinc17.net>
[src/ai.c] Use an intermediate variable to avoid a huge macro expansion
in ASSERT_FAIL with gcc -ansi -pedantic-errors.
(Merged changeset r8149 from the trunk)
[src/mpfr-impl.h] Added a comment concerning MPFR_INT_CEIL_LOG2 and
macro expansion.
[src/ai.c] Use an intermediate variable to avoid a huge macro expansion
in ASSERT_FAIL with gcc -ansi -pedantic-errors.
[tools/mpfrlint] Update after r8143.
(Merged changeset r8147 from the trunk)
[tools/mpfrlint] Update after r8141.
2012-04-20 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Removed item about saving/restoring flags.
[tests/texceptions.c] Added test of the mpfr_flags_* functions/macros.
[NEWS] New mpfr_flags_* functions.
Merged /trunk:r8141-8142 with a few manual changes due to conflict:
replaced the flags-related mpfr_clear_* internal macros (which were
already removed in this flags branch) by an uppercase version using
a do-while in order to prevent one from using them in an expression.
Renamed MPFR_SET_ERANGE to MPFR_SET_ERANGEFLAG for consistency.
[src/mpfr-impl.h] Improved comment about MPFR_CLEAR_* macros.
[src] Replaced the flags-related mpfr_clear_* internal macros by an
uppercase version with a do-while in order to prevent one from using
them in an expression. Renamed MPFR_SET_ERANGE to MPFR_SET_ERANGEFLAG
for consistency.
2012-04-19 Vincent Lefèvre <vincent@vinc17.net>
Implemented the mpfr_flags_* functions (and mpfr_flags_test as a macro).
The MPFR_FLAGS_* macros had to be moved from mpfr-impl.h to mpfr.h (as
they are now part of the API). Check that MPFR_FLAGS_ALL <= INT_MAX (or
similar) when need be. Removed the mpfr_clear_* macros and merged r8139
(about the MPFR_SET_ERANGE macro) from the trunk due to a risk to break
the sequence point rules.
[src/mpfr-impl.h] Use a do-while statement for the MPFR_SET_ERANGE()
macro in order to prevent one from using this macro in an expression,
as the sequence point rules could be broken if __gmpfr_flags is
assigned twice in the same expression (via macro expansions).
Note: This cannot be done for the mpfr_clear_* flags macros because
we want to be able to follow the API inside MPFR (thus these macros
must be usable wherever a function is). These macros should probably
be removed or renamed in the future (e.g. via the flags branch).
2012-04-17 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Added documentation for the new functions on groups
of flags (not implemented yet).
2012-04-11 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Suggest mpfr_pow_q and variants.
2012-03-28 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated "API Compatibility" section: functions
mpfr_fmodquo, mpfr_fpif_export and mpfr_fpif_import are new in
MPFR 3.2.
2012-03-27 Vincent Lefèvre <vincent@vinc17.net>
[tests/tfpif.c] Removed trailing whitespace.
2012-03-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/fpif.c,tests/tfpif.c] changed to GNU style
2012-03-26 Olivier Demengeon <olivier.demengeon@inria.fr>
Add a test on FILE* in fpif.c; Added a missing test on a return value; Changed the way to compute number of bytes needed for the limb of a mpfr number; Increase coverage test of fpif.c
2012-03-26 Vincent Lefèvre <vincent@vinc17.net>
[src] New mpfr_flags_t type, defined as an unsigned int. For the
__gmpfr_flags variable and internal flags-related variables,
replaced unsigned int by mpfr_flags_t (note that this doesn't
change the ABI, since unsigned int was already used).
[tests] Cast __gmpfr_flags to unsigned int when printed with %u.
2012-03-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added new function mpfr_fmodquo
(cf https://sympa.inria.fr/sympa/arc/mpfr/2012-03/msg00020.html)
2012-03-26 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-examples/version.c] Output sizeof(mpfr_t) value.
[tests/tests.c] Improved src_fopen() a bit.
[doc/README.dev] Explain the use of the new MPFR_DBGRES macro.
[src/mpfr-impl.h] Added a MPFR_DBGRES macro to avoid a warning in
non-debug mode, e.g. with GCC's -Wunused-but-set-variable, when a
result is tested only in an MPFR_ASSERTD expression.
[src/const_euler.c] Avoid such a warning by using MPFR_DBGRES.
MPFR_ASSERTD or MPFR_ASSERTN must be used for assertions, not ASSERT.
2012-03-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tests.c] fixed problem with src_fopen
(https://sympa.inria.fr/sympa/arc/mpfr/2012-03/msg00021.html)
[tests/Makefile.am] inp_str.data -> inp_str.dat
renamed tests/inp_str.data into tests/inp_str.dat
[tests/tinp_str.c] now use tests/inp_str.dat
[tests/tfpif.c] use src_fopen instead of fopen
[src/fpif.c] simplified &x[i] into x+i
[src/mparam_h.in] better recognition of AMD64 systems
[tools/cfarm.sh] updated
[tests.c] fixed compiler warning (gcc70.fsffrance.org, NetBSD, gcc 4.1.3)
2012-03-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[fpif.c] simplified code since nb_data is always 1
[mparam_h.in] recognize __tune_amdfam10__ (for example gcc10.fsffrance.org)
[configure.ac] use AC_C_BIGENDIAN to determine endianness of words
[tests/Makefile.am] the name of the test file for the export/import functions has changed
2012-03-19 Vincent Lefèvre <vincent@vinc17.net>
tests: updated svn:ignore property.
[src/mpfr.h] Indentation.
2012-03-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed the order of arguments of mpfr_fpif_import so that the modified
argument is first
[NEWS] updated item about the new mpfr_fpif_export and mpfr_fpif_import functions
mpfr_fpif_export_binary -> mpfr_fpif_export
mpfr_fpif_import_binary -> mpfr_fpif_import
stream.data renamed to mpfrtest.dat
[tfpif.c] now use remove()
2012-03-19 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] "in future version" → "in future versions".
[doc/mpfr.texi] Updated the month.
[src/fpif.c,tests/tfpif.c] Corrected coding style.
2012-03-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/fpif.c] fixed a few warnings and errors with g++ (found on hydra)
2012-03-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[out_raw.c] removed obsolete file (replaced by fpif.c)
[tests/Makefile.am] put tfpif at its right place
[src/fpif.c] fixed problem with sign on gcc38
[tests/tfpif.c] solved FIXME's, added new test with fixed data file
[tests/stream.data] data file for tfpif.c (to check we get same results with
different word size and endianness)
[tests/Makefile.am] added stream.data to make dist
[fpif.c] added comments
[tfpif.c] improve error message in case of mismatch
[acinclude.m4] forgot double-double big endian
[mpfr.texi] added note saying that mpfr_fpif_export_binary and
mpfr_fpif_import_binary are experimental
[mpfr.texi] added documentation for mpfr_fpif_export_binary and mpfr_fpif_import_binary
[fpif.c] replaced sizeof(var) by sizeof(type)
2012-03-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[fpif.c] fixed a few issues
[src/fpif.c,src/mpfr.h,tests/tfpif.c] a few fixes so that make and make check
pass on one machine. Will fix the
remaining issues later.
2012-03-15 Vincent Lefèvre <vincent@vinc17.net>
Added FIXME for export/import MPFR numbers, did some corrections,
updated NEWS file.
[doc/README.dev] Update about C headers.
2012-03-15 Olivier Demengeon <olivier.demengeon@inria.fr>
Add copyright material in fpif.c and test_fpif.c
Add functions/tests to export/import mpfr number in a binary format
2012-03-13 Vincent Lefèvre <vincent@vinc17.net>
Improved mpfr_check and added a missing testcase.
2012-03-09 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Corrected information about valgrind.
[src/mpfr-impl.h] Updated a comment.
[src/mpfr-impl.h] Improved macros from the changeset r8025, in
particular to avoid an error with the --enable-assert configure
option and the -ansi -pedantic-errors gcc compiler flags.
2012-03-08 Vincent Lefèvre <vincent@vinc17.net>
[tests/tprintf.c] Corrected the test with MPFR_CHECK_LARGEMEM=1 again,
and improved it in case _MPFR_PREC_FORMAT == 2, where MPFR_PREC_MAX is
INT_MAX minus some small constant (see r8035).
[tests/tprintf.c] Corrected the test with MPFR_CHECK_LARGEMEM=1.
[tests/tinits.c] Improved the large precision test so that it is still
performed after r8035 (where MPFR_PREC_MAX has been decreased).
[tests/tconst_log2.c] Replaced mpfr_printf by mpfr_out_str.
2012-03-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tconst_log2.c] use hexadecimal output in case of error in check_large()
[get_ld.c] added comments and ASSERT()
[tset_ld.c] added test to better exercise get_ld and set_ld for subnormals,
and replaced some 64 by MPFR_LDBL_MANT_DIG
2012-03-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tconst_log2.c] improved error message, cf
https://sympa.inria.fr/sympa/arc/mpfr/2012-03/msg00017.html
[get_ld.c] deal with the case "long double" == "double"
[acinclude.m4] deal with long double == double
[src/set_ld.c] idem
2012-03-07 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Prepare for new version 3.2.0 (will be 4.0.0).
[INSTALL] Added information about --with-sysroot.
[INSTALL] Removed an obsolete paragraph saying that the test suite
can't be run with a C++ compiler. C++ related problems have been
fixed a long time ago.
2012-03-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] added new item about saving/restoring flags
added tuning parameters for mips (on gcc49.fsffrance.org)
2012-03-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tuneup.c] fixed compiler warning (got on gcc49.fsffrance.org)
2012-03-05 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr.h] Minor change to be consistent with "src/mpfr-gmp.h".
[src/mpfr.h] Added a reference to MPFR bug 13947.
[src/mpfr.h] Simple temporary fix following GMP's internal __gmp_const
macro removal in <https://gmplib.org/repo/gmp/rev/d287cfaf6732> (and its
replacement by const): if __gmp_const isn't define, let's define it to
const.
2012-03-03 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Mention the mpfr_exp bug fix (from r6964 in exp_2.c).
2012-02-27 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] If 'gmp.h' and 'libgmp' seem to have different versions,
output the temporary LD_RUN_PATH value (may be useful for debugging).
2012-02-24 Vincent Lefèvre <vincent@vinc17.net>
[tests] Removed #include of headers already included via "mpfr-test.h"
(<limits.h>, <stdio.h>, <stdlib.h>). Note: this change doesn't apply
to tvalist.c, which is a special test that doesn't use "mpfr-test.h".
[src] #include <stdlib.h> unconditionally in mpfr-impl.h; removed
this #include from the .c files.
[src/logging.c] #include <stdarg.h> was no longer necessary. Removed.
[src/logging.c] Updated a comment (contained obsolete information).
[src/mpfr-impl.h] Use %.*Rg instead of %.*Rf for MPFR_LOG_VAR.
[NEWS] Mention an internal change in MPFR 3.1.0.
Corrected a typo in MPFR_LOG_FUNC of add_d.c, add_ui.c and mul_d.c
(mpfr_get_prec → mpfr_log_prec), fixing bug 13933.
The consequence was random freezes (on the same binary) with dynamic
linking (and just more memory with static linking to the MPFR library)
when logging was used.
[src/const_euler.c] Use the safer MPFR_BLOCK.
2012-02-23 Vincent Lefèvre <vincent@vinc17.net>
[src/const_euler.c] Removed a useless log message added in r8040.
[src/const_euler.c] Replaced computations on double by computations
on MPFR types, with detection of overflows. Fixed inconsistencies
with algorithms.tex (due to rounding) in the computation of n.
[src/mpfr-impl.h] Removed #define ALPHA (no longer used).
[src/mpfr-impl.h] Removed obsolete #define EXPM1.
[src/erf.c] Removed an obsolete #define.
[BUGS] Update concerning huge precisions and integer overflows.
[examples/version.c] Output mpfr_prec_t information with all MPFR
versions. Output signedness information for MPFR types/macros.
[src/mpfr.h] Decrease the MPFR_PREC_MAX value by 256 in order to
avoid some integer overflows in existing code that increases the
working precision (if mpfr_prec_t is on 64 bits, this does not
change anything in practice), as too large precisions should be
detected via assertions for more security. After discussion, it
has been decided to keep the MPFR_PREC_MAX value close to 2^31
when mpfr_prec_t is on 32 bits.
[src/mpfr-impl.h] Added a comment concerning MPFR_ADD_PREC.
[examples/version.c] Output more information about the precision and
exponent types.
2012-02-22 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Use MPFR_ADD_PREC in MPFR_ZIV_NEXT.
[src/mpfr-impl.h] Added an MPFR_ADD_PREC macro to safely increase some
precision (i.e. with an assertion check for integer overflow).
[src/ai.c] Use this MPFR_ADD_PREC macro, in particular in a case where
the additional precision can be huge.
TODO: Other files would need to use MPFR_ADD_PREC.
[tests/tinits.c] Updated the large precision test to trigger a bug fixed
in r8025 on 32-bit machines (or when MPFR is built with -m32). Here the
crash was due to (MPFR_PREC (b) + GMP_NUMB_BITS-1)/GMP_NUMB_BITS in
"src/set.c".
[src/rec_sqrt.c] Removed useless #include (mpfr-impl.h does a better job
for stdio).
[tests/tinits.c] Improved r8026 (missing #include, support 16-bit prec).
Document the MPFR_DEBUG_BADCASES environment variable before bad_cases()
in tests/tests.c (where it is used). Remove it from "doc/README.dev"
since it is useful only in case of crash / infinite loop in bad_cases(),
and will give useless output otherwise.
2012-02-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] added comment
[doc/README.dev] added environment variables
[tinits.c] added test to check #13918 is fixed
2012-02-22 Vincent Lefèvre <vincent@vinc17.net>
Avoid potential integer overflows and improve consistency. This should
fix bug #13918 "Segfault with precision = MPFR_PREC_MAX on 32-bit".
Note: this problem appeared in MPFR 3.0.0 when the precision type (now
mpfr_prec_t) was changed to a signed integer.
[configure.ac] Added a comment mentioning a problem with GNU gold ld.
2012-02-15 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Added reference to ISO/IEC 24747:2009 (C, special functions).
2012-01-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed directory src/x86_64/xeon
[src/Makefile.am] removed x86_64/xeon/mparam.h
2012-01-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
share parameters between x86_64/core2 and x86_64/xeon (gcc70)
[src/Makefile.am] forgot to add new param file
added tuning parameters for -mtune=nocona (gcc70)
2012-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mparam_h.in] swap tests for 32-bit and 64-bit powerpc, since on powerpc64
the parameters for 32-bit are used!
2012-01-15 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Updated "To make a release".
2012-01-10 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Added a note to item about sNaN/qNaN.
[doc/mpfr.texi] Updated the month.
[doc/mpfr.texi] Mention the AriC project-team.
Reverted incorrect change in ChangeLog from r7993.
Changed Arenaire to AriC with:
perl -pi -e 's/Contributed by the Arenaire/Contributed by the AriC/' **/*(^/)
under zsh.
[doc] Updated FAQ.html with update-faq.
[doc/faq.xsl] Remove only the top-level comments from the HTML file.
[doc/faq.xsl] Updated a comment.
Copyright notice update: added 2012 with
perl -pi -e 's/2011 Free Software/2011, 2012 Free Software/' **/*(^/)
under zsh, reverting the ChangeLog file (the m4 and tools/mbench
directories were not modified).
Removed 2011 from the example in the doc/README.dev file.
2011-12-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] trivial change (to test the commit logs)
2011-12-09 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] Mention --disable-thread-safe.
[INSTALL] Added information about system/compiler bugs related to TLS
or optimizations.
2011-12-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[INSTALL] added note about buggy TLS support
2011-11-28 Vincent Lefèvre <vincent@vinc17.net>
[tests/turandom.c] Removed an obsolete comment.
[src/mpfr-gmp.h] Updated the TODO comment about the rand state.
[doc/mpfr.texi] Updated the month.
[tests/trandom.c,tests/turandom.c] Fixed compatibility with GMP 4.1.x
(since the default PRNG has changed between GMP 4.1 and 4.2).
[doc/mpfr.texi] Mentioned the difference between GMP 4.1 and 4.2 about
the changes of mpfr_urandom and mpfr_urandomb in MPFR 3.1.
[src/mpfr-gmp.h] Added a TODO comment.
2011-11-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
revert previous commit (test)
commit test
2011-11-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mpfr-thread.h] added pointer to TLS on Windows
2011-11-09 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsprintf.c] Added a test showing a regression in MPFR 3.1.0
(but fixed in r7931 and later).
2011-11-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tatan.c] mpfr_set_emin -> set_emin (idem for emax)
2011-11-09 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Added a reference to an old discussion concerning __float128.
2011-11-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] added item
2011-11-03 Vincent Lefèvre <vincent@vinc17.net>
[src/vasprintf.c] Untabify.
2011-11-03 Philippe Théveny <philippe.theveny@laposte.net>
[src/vasprintf.c] Corrected a comment.
2011-11-03 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsprintf.c] Coding style.
2011-11-02 Vincent Lefèvre <vincent@vinc17.net>
[src/strtofr.c] Spelling.
[src/vasprintf.c] Spelling.
[src/vasprintf.c] Corrected a comment.
[tests/tsprintf.c] Added tests.
[src/vasprintf.c] Untabify. Minor correction in a comment.
2011-11-02 Philippe Théveny <philippe.theveny@laposte.net>
[src/vasprintf.c] Rewrite in a cleaner way the part of regular_fg implied in the bug reported by Pavel Holoborodko (see r7931).
2011-11-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mpn_exp.c] changed FIXME into TODO
[src/mpn_exp.c] added comment
[src/vasprintf.c] (hopefully) fixed bug reported by Pavel Holoborodko
[tests/tsprintf.c] added corresponding test case
2011-10-14 Vincent Lefèvre <vincent@vinc17.net>
[tests/Makefile.am] Added -L$(top_builddir)/src/.libs to AM_LDFLAGS.
[INSTALL] Removed the notes on HP-UX (obsolete after the above change).
2011-10-13 Vincent Lefèvre <vincent@vinc17.net>
[INSTALL] Corrected notes for HP-UX.
[INSTALL] Added notes for HP-UX after a bug report. See discussion:
https://sympa.inria.fr/sympa/arc/mpfr/2011-10/msg00042.html
2011-10-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] added one item
[corei5/mparam.h] tuning files for Core i5 (not yet used since GMP 5.0.2 does
currently recognize Core i5 as "k8", however the k8 tuning
parameters are not so bad for Core i5)
2011-10-05 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Improved MPFR_IS_PURE_FP definition, so that
MPFR_ASSERTD takes a boolean (0 or 1).
2011-10-04 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Fixed a bug in the MPFR_UNLIKELY macro for GCC
(found under Mac OS X / PowerPC with the mode32 GMP ABI, and MPFR
built with --enable-assert=full).
(Merged changeset r7908 from the 3.1 branch.)
2011-09-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[doc/mpfr.texi] added reference and comment for eint
2011-09-25 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Rephrased mpfr_frexp description.
2011-09-24 Vincent Lefèvre <vincent@vinc17.net>
Renamed "division-by-zero" to "divide-by-zero" (term used by the
ISO C99 standard, the IEEE 754-2008 standard using divideByZero,
and the old IEEE 754-1985 standard using both "divide by zero"
and "division by zero").
[src/gmp_op.c] Forgot to update the flags in some functions.
[tests/tgmpop.c] Improved division-by-zero tests.
2011-09-23 Vincent Lefèvre <vincent@vinc17.net>
[doc/faq.xsl] Added a comment about the MPFR logo.
2011-09-22 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Improved mpfr_frexp description.
[doc/mpfr.texi] Corrected typo in the mpfr_frexp description.
2011-09-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tools/cfarm.sh] updated for MPFR 3.1.0 rc2
2011-09-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[cfarm.sh] updated for MPFR 3.1.0-rc1 (with GMP 5.0.2)
2011-09-20 Vincent Lefèvre <vincent@vinc17.net>
[examples/version.c] Output mpfr_buildopt_gmpinternals_p() and
mpfr_buildopt_tune_case() values with MPFR 3.1 or later.
Renamed mpfr_buildopt_internals_p to mpfr_buildopt_gmpinternals_p.
Added mpfr_buildopt_internals_p function.
[doc/mpfr.texi] Added commas.
[src/gmp_op.c] Handle the special cases in mpfr_cmp_q and mpfr_cmp_f.
2011-09-19 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Added an item about the minimum and maximum exponents.
[src/agm.c] Replaced MPFR_EMIN_MIN and MPFR_EMAX_MAX by MPFR_EXT_EMIN
and MPFR_EXT_EMAX respectively (see r7862 and r7863).
[src/mpfr-impl.h] Define new macros MPFR_EXT_EMIN and MPFR_EXT_EMAX.
[doc/README.dev] Document how to specify the minimum exponent or the
maximum exponent.
2011-09-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/agm.c] replaced __gmpfr_emax by MPFR_EMAX_MAX (same for __gmpfr_emin).
Solves bug on gcc54 with --enable-thread-safe and GCC 4.3.2.
2011-09-19 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-gmp.h] Added missing prototype for __gmpn_sbpi1_divappr_q
(it could be detected when building MPFR with g++).
2011-09-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tgmpop.c] check for erange flag in mpfr_cmp_[f,q,z]
(https://sympa.inria.fr/sympa/arc/mpfr/2011-09/msg00013.html)
2011-09-19 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Updated "To make a release".
2011-09-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mpfr-gmp.h] fixed bug with --enable-gmp-internals introduced in r7455
(mpfr_limb_ptr is not yet defined when reading mpfr-gmp.h
thus we can't use it)
2011-09-19 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Correction: "5 exception types" → "6 exception types"
(thanks to Case Vanhorsen for the report).
2011-09-14 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Define LONGLONG_STANDALONE before including
mpfr-longlong.h so that udiv_qrnnd_preinv is defined (this is
useful at least on IA64 when compiling without gmp-impl.h).
Thanks to Patrick Pélissier for the fix.
2011-09-11 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated "API Compatibility" section: as of MPFR 3.1,
the mpfr.h header can be included several times, while still supporting
optional functions.
[doc/mpfr.texi] Replaced some @code by @file for consistency.
[doc/mpfr.texi] Updated "API Compatibility" section: functions
mpfr_frexp, mpfr_grandom and mpfr_z_sub are new in MPFR 3.1.
[doc/mpfr.texi] Documented function mpfr_buildopt_tune_case,
and added it to the list of added functions.
[NEWS] Function mpfr_buildopt_tune_case is new in MPFR 3.1.
[doc/mpfr.texi] Updated "API Compatibility" section
(new division-by-zero exception in MPFR 3.1).
[doc/mpfr.texi] Updated the month.
[doc/mpfr.texi] MPFR_RNDA was introduced in MPFR 3.0.0 and should
no longer be considered experimental.
2011-09-10 Vincent Lefèvre <vincent@vinc17.net>
[tests/trec_sqrt.c] Fixed bug introduced in r7711 (build failure
with a C++ compiler).
[TODO] Replaced "configure.in" by "configure.ac".
[doc/README.dev] Removed obsolete paragraph about AM_MAINTAINER_MODE.
[tools/mpfrlint] Correction after r7825.
[tools/mpfrlint] Run tools/ck-mparam.
Added tools/ck-mparam sh script to check the mparam.h files
(gcc is needed).
2011-09-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/amd/k8/mparam.h] removed spurious end of comment
2011-09-09 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] For the valgrind example, use the same arguments
as in gnulib's valgrind-tests.m4 file.
ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
[Makefile.am] Added tools/ck-copyright-notice to EXTRA_DIST as it is
used in dist-hook.
[tools/ck-copyright-notice] Added copyright notice (since this file is
distributed in the tarballs). Note: the first year is 2008 as a part
of the code comes from r5370 in mpfrlint.
[tools/ck-copyright-notice] Skip src/mpfr-longlong.h as this file
(which comes from GMP) has a specific copyright notice.
[src/mp_clz_tab.c] Updated the copyright notice.
[tools/ck-copyright-notice] Check that the first copyright year for
the mparam.h files is 2005.
Added copyright notice to the mparam.h files (with the same years
as in the template).
Added tools/ck-copyright-notice sh script from mpfrlint (updated) to
check that copyright notices exist and appear to be correct. Updated
tools/mpfrlint to run tools/ck-copyright-notice instead of its old
test. In Makefile.am, run tools/ck-copyright-notice in dist-hook for
"make dist".
[tools/mpfrlint] More files under src and tests directories.
2011-09-08 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Update for MPFR 3.1.x.
[tests/Makefile.am]
* Added "AM_LDFLAGS = -no-install" to prevent libtool from generating
wrapper scripts for the tests (according to discussions and tests,
there should be no negative effects); useful for gdb and valgrind.
* Added $(VALGRIND) to TESTS_ENVIRONMENT in order to easily run the
tests under valgrind with: VALGRIND="valgrind -q" make check
[doc/README.dev] Update for gdb and valgrind.
2011-08-31 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Improved the specification of mpfr_get_f.
2011-08-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[configure.ac] added comment about minimal GMP version
dummy change to check if GMP_CHECK_RANDOMIZE is now used in the Hydra
builds on http://hydra.nixos.org/jobset/gnu/mpfr-trunk
2011-08-19 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Added some references to the ternary definition.
2011-08-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[doc/mpfr.texi] improved the documentation of mpfr_set_str, as suggested by
Vincent Lefevre
2011-08-19 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Added "Ternary value" to the concept index.
2011-08-15 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Added information on how to update the FAQ.
[doc] Updated FAQ.html with update-faq.
2011-08-12 Vincent Lefèvre <vincent@vinc17.net>
[tune/tuneup.c] Untabified.
[src/mulders.c] Replaced MPFR_ASSERTD by MPFR_ASSERTN on constant
expressions (this is a temporary change, as they should later be
replaced by static assertions).
[src/mulders.c] Replaced mp_ptr and mp_srcptr (internal to GMP) by
mpfr_limb_ptr and mpfr_limb_srcptr.
[src/mpfr-gmp.h] Avoid potential identifier collision by using an
underscore for variable names declared in the invert_pi1 macro.
[src/mpfr-gmp.h] Untabified.
[doc/mpfr.texi] Updated the month.
2011-08-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[k8/mparam.h] added comment
[x86/mparam.h] new tuning contributed by Jim Cloos
[amd/amdfam10/mparam.h] added GMP version
[mpfr-gmp.h] use mpfr_pi1_t instead of gmp_pi1_t to avoid using GMP's namespace
2011-08-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mulders.c] use mpn_sbpi1_divappr_q if available and WANT_GMP_INTERNALS
is defined
[src/mpfr-gmp.h] defined macros needed for mpfr_divhigh_n_basecase
[configure.ac] check for mpn_sbpi1_divappr_q
2011-08-05 Vincent Lefèvre <vincent@vinc17.net>
Updated version to 3.2.0-dev.
2011-08-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[amdfam10/mparam.h] tuning parameters contributed by Jim Cloos
[mulders.c] added a basecase code for Mulders' short division
[tuneup.c] added corresponding tuning code
[TODO] added an item
2011-08-04 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] In the INTMAX_MAX test, no longer hardcode the
"#include <stdint.h>" (for instance, this doesn't work under
Solaris 9: INTMAX_MAX is defined only via <inttypes.h>), but
include "mpfr-intmax.h" instead (needs a temporary CPPFLAGS).
2011-08-01 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Much faster formatted output (mpfr_printf, etc.) with %Rg and similar.
[doc/README.dev] Added copyright notice in case the file is distributed.
[doc/README.dev] Added information on how to run the MPFR test suite
under valgrind.
Untabified and removed trailing spaces.
[tests/tversion.c] Improved output information.
2011-07-31 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[hppa/mparam.h] updated for new Mulders' division
[sparc64/mparam.h] updated for new Mulders' division
[powerpc64/mparam.h] updated for new Mulders' division
[ia64/mparam.h] updated for new Mulders' division
[amd/k8/mparam.h] updated for new Mulders' division
[x86/core2/mparam.h] updated thresholds for new Mulders' division
[mparam_h.in] changed the detection of 64-bit Core 2, and added
MPFR_TUNE_CASE for default case
[tversion.c] print GMP version (header and library), and file for tuning
parameters
[x86_64/core2/mparam.h] updated for Mulders' division
Added tuning for MPFR_DIV_THRESHOLD, and default value.
It now remains to do the tuning on the architectures in mparam_in.h.
2011-07-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[NEWS] added speed improvement in mpfr_div
2011-07-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mulders.c] fixed bug in mpfr_divhigh_n (this routine was not used yet)
[div.c] now use Mulders' short product for large division. It remains to
do the automatic tuning of MPFR_DIV_THRESHOLD. The speedup is nice,
for example on my Core 2 Duo laptop we got with MPFR 3.0.0:
[zimmerma@coing tests]$ ./timings-mpfr 1000
Using MPFR-3.0.0 with GMP-5.0.2
[precision is 3322 bits]
x*y took 0.004543 ms (262143 eval in 1191 ms)
x*x took 0.003616 ms (524287 eval in 1896 ms)
x/y took 0.009087 ms (131071 eval in 1191 ms)
sqrt(x) took 0.007004 ms (262143 eval in 1836 ms)
exp(x) took 0.293040 ms (4095 eval in 1200 ms)
log(x) took 0.253724 ms (4095 eval in 1039 ms)
sin(x) took 0.306960 ms (4095 eval in 1257 ms)
cos(x) took 0.290842 ms (4095 eval in 1191 ms)
arccos(x) took 0.590620 ms (2047 eval in 1209 ms)
arctan(x) took 0.560332 ms (2047 eval in 1147 ms)
and now we get:
[zimmerma@coing tests]$ ./timings-mpfr 1000
Using MPFR-3.1.0-dev with GMP-5.0.2
[precision is 3322 bits]
x*y took 0.004444 ms (262143 eval in 1165 ms)
x*x took 0.002686 ms (524287 eval in 1408 ms)
x/y took 0.006989 ms (262143 eval in 1832 ms)
sqrt(x) took 0.007084 ms (262143 eval in 1857 ms)
exp(x) took 0.292063 ms (4095 eval in 1196 ms)
log(x) took 0.246886 ms (4095 eval in 1011 ms)
sin(x) took 0.259096 ms (4095 eval in 1061 ms)
cos(x) took 0.244933 ms (4095 eval in 1003 ms)
arccos(x) took 0.556424 ms (2047 eval in 1139 ms)
arctan(x) took 0.526624 ms (2047 eval in 1078 ms)
We see that other routines also benefit from the speedup in mpfr_sqr and
mpfr_div (log, sin, cos, arccos, arctan).
2011-07-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[algorithms.tex] added algorithm for division with Mulders' short product
(can anybody check the algorithm is ok?)
2011-07-29 Vincent Lefèvre <vincent@vinc17.net>
[src/vasprintf.c] Added a comment.
[src/get_str.c] Added a comment about the use of mpfr_ceil_mul
(exported and declared in mpfr-impl.h since r7760).
2011-07-28 Philippe Théveny <philippe.theveny@laposte.net>
Avoid expensive calls to mpfr_get_prec() using mpfr_ceil_mul() instead.
Make ceil_mul() public as mpfr_ceil_mul() in mpfr-impl.h
2011-07-28 Vincent Lefèvre <vincent@vinc17.net>
[src/mulders.c] MPFR coding conventions for r7752.
2011-07-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
modified the default tuning parameters so they are within the bounds of the
ARITH-20 paper "Short Division of Long Integers"
[src/mulders.c] declare mpfr_mullow_n as non-static since it might be useful
elsewhere
[tuneup.c] fix tuning bounds of short product and division according to the
ARITH-20 paper
[acinclude.m4] detect long double format in m68k
[tget_flt.c] added test to check FLT_MAX + FLT_MAX gives INFP
(to early detect compiler bugs)
[nightly-test] changed -pedantic-errors into -pedantic
[mulders.c] added some code for short division (FoldDiv, not used),
added comments and fixed bounds in accordance with the
ARITH-20 paper
2011-07-28 Philippe Théveny <philippe.theveny@laposte.net>
Use a buffer in order to avoid a double call to mpfr_get_str.
2011-07-26 Vincent Lefèvre <vincent@vinc17.net>
[src/log.c] Replaced TMP_* by MPFR_GROUP_* (patch by Patrick).
2011-07-22 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Added a comment about TLS variable initialization.
[doc/mpfr.texi] Added information about TLS variable initialization.
[doc/mpfr.texi] Split Chapter "MPFR Basics" into nodes as it is now
quite large (thus references to particular sections are now possible).
2011-07-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[vasprintf.c] simplified and improved round_to_10_power(), also contributed
a negative number of lines of code :-)
Still not optimal, since round_to_10_power() is still called
twice for printing say pi with mpfr_printf ("%Rg\n", x), once
from partition_number(), once from regular_fg(), and thus
mpfr_get_str is called at least 3 times!
[configure.ac] improve error message when libgmp is not found
[mpfr.texi] added note about threads for mpfr_set_default_prec and
mpfr_get_default_prec
2011-07-06 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
[NEWS, doc/mpfr.texi] mpfr_min_prec was a new function in MPFR 3.0.0.
2011-07-01 Vincent Lefèvre <vincent@vinc17.net>
[tests/tget_flt.c] Replaced FLT_MAX + FLT_MAX by (float) DBL_POS_INF,
which should trigger fewer compiler bugs. See:
https://sympa.inria.fr/sympa/arc/mpfr/2011-07/msg00002.html
[src/ieee_floats.h] Added a comment about the NaN format when
_GMP_IEEE_FLOATS is defined.
2011-07-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tget_flt.c] check for compiler bug
(https://sympa.inria.fr/sympa/arc/mpfr/2011-07/msg00000.html)
2011-06-30 Vincent Lefèvre <vincent@vinc17.net>
Removed all the svn:eol-style properties (they were set to "native"),
and in doc/README.dev, explained why svn:eol-style native should not
be used.
2011-06-28 Vincent Lefèvre <vincent@vinc17.net>
[tools/ck-version-info] Check DLL version in LIBMPFR_LDFLAGS line from
configure.ac (patch by Stefan Graff, with minor changes).
2011-06-26 Vincent Lefèvre <vincent@vinc17.net>
[tools/ck-version-info] 2 corrections:
* update due to the change of the libmpfr_la_LDFLAGS line in r7724;
* to support the CRLF end-of-line sometimes used under MS-Windows
(perl should normally take care of that, but Windows software is
not always consistent).
[doc/mpfr.texi] Due to the "@unnumbered Function and Type Index",
replaced the other "Function Index" by "Function and Type Index"
(note: the function index and the type index are merged thanks to
the "@synindex tp fn" line at the beginning of mpfr.texi).
2011-06-25 Vincent Lefèvre <vincent@vinc17.net>
Ported patch r7723 (changes suggested by Stefan Graff to be able
to build Windows DLLs with GCC 4.6[*]) to the trunk, not tested
(something more may be needed due to the source reorganization).
[*] https://sympa.inria.fr/sympa/arc/mpfr/2011-06/msg00013.html
2011-06-21 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
[doc/mpfr.texi] Corrected a note about mpfr_set_*, due to the addition
of mpfr_set_decimal64.
2011-06-20 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Removed comment added in r7181, as it is no longer
necessary since r7182 (new option --enable-gmp-internals).
[configure.ac] Updated comment concerning __gmpn_rootrem (mention
WANT_GMP_INTERNALS).
[doc/README.dev] Added a note about logging and timeout.
[src] Conversion into UTF-8 (only comments were concerned).
[TODO] Conversion into UTF-8.
[src/pow.c] Made the code more robust concerning the scaling (a bug was
very unlikely, though), and updated the comments (partial proof).
2011-06-01 Vincent Lefèvre <vincent@vinc17.net>
[examples/version.c] Output MPFR features and size of MPFR types.
2011-05-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/rec_sqrt.c] continued review; I can now prove that cu=0 in all cases
[tests/trec_sqrt.c] added tests for corner cases
2011-05-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[rec_sqrt.c] more review of codes, following comments from Vincent
2011-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[rec_sqrt.c] removed tabs
[rec_sqrt.c] review and small change of changeset 7651: most probably cu=0
when th=0 (and maybe cu=0 always, I cannot find an example where
cu <> 0) but considering the case th=0 is more natural.
2011-05-18 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] List the contributors in the alphabetic order, like
the main authors.
Made AUTHORS and doc/mpfr.texi consistent.
Updated AUTHORS file and copyright notices (for more consistency).
[tests/thyperbolic.c] Fixed copyright notice.
[src/inp_str.c] Improved comment.
[src/fits_s.h] Improved comment.
[doc/mpfr.texi] Updated the month.
[src/mpfr.h] Avoid a warning from mpfrlint.
[configure.ac] Consistency change in the copyright notice.
[tests/tsqr.c] Added a note in the check_mpn_sqr error message.
[tests/tsqr.c] Added a test of mpn_sqr concerning a bug seen
with GCC 4.5.2 and GMP 5.0.1 on m68k (m68000 target).
2011-05-17 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Added a note about a texinfo bug.
2011-05-13 Vincent Lefèvre <vincent@vinc17.net>
Added mpfr-intmax.h header.
Started to support mpfr_exp_t defined as intmax_t (_MPFR_EXP_FORMAT==4).
[NEWS] Added that the mpfr.h header can be included several times,
while still supporting optional functions.
[doc/mpfr.texi] Document what to do if mpfr.h can be included
multiple times (fixes MPFR bug #9653).
2011-05-12 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Added a note to run tests with -D_MPFR_PREC_FORMAT=2.
[src/mpfr-impl.h] Exponent properties: corrected comments and removed
obsolete mp_exp_unsigned_t definition (was internal only).
[src/{mpfr.h,mpfr-impl.h,vasprintf.c}] Clean-up and improvement
of definitions related to mpfr_exp_t. MPFR can now be built with
-D_MPFR_PREC_FORMAT=2 to have mpfr_prec_t and mpfr_exp_t defined
as an int.
[src/mpfr.h] Fixed spaces in a comment.
Fixed printf's calls: support the case where mpfr_prec_t is not a long
(or unsigned long).
[merged changeset r7643 from the exp-int branch]
[src/strtofr.c] Support the case where mpfr_exp_t < long; mpfr_exp_t is
currently defined as mp_exp_t, which comes from GMP, and GMP currently
defines mp_exp_t as a long, except on Cray (never tested for MPFR). But
this may change in the future (possibly as an option)...
[merged changeset r7642 from the exp-int branch]
[src/mpfr-impl.h] Added missing parentheses in MPFR_SADD_OVERFLOW
(fortunately the current MPFR code was not affected).
[tests/tpow_z.c] More details for a test in case of failure.
[src/sub1.c] Fixed several bugs: integer overflows and potential
out-of-bound pointers. They might be visible on particular platforms,
with a particular configuration (e.g. 64-bit limbs and 32-bit exponent
type) or particular compiler options (to check such overflows).
[merged changesets r7637-7638 from the exp-int branch]
2011-05-11 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsin.c] Added a test (it failed before the fix in r7308).
Fixed constants pi and log(2) computation when logging is used: When
MPFR is built with logging support, these two constants are used by
the logging functions (via mpfr_fprintf, then mpfr_log, for the base
conversion). Since the mpfr_cache function isn't re-entrant when
working on the same cache, we need to define two caches for each
constant. Otherwise the constants could be incorrect; for instance,
"MPFR_LOG_ALL=1 ./tconst_pi" was failing.
Note: the bug was introduced with the new logging system from r7575
for MPFR 3.1.0, based on mpfr_fprintf instead of mpfr_out_str (which
doesn't depend on mpfr_log).
2011-05-09 Vincent Lefèvre <vincent@vinc17.net>
[tests/tests.c] Replaced atoi by strtoul to read the seed from
GMP_CHECK_RANDOMIZE, as it is an unsigned long.
[tests/texp.c] Fixed the test comparing mpfr_exp_2 and mpfr_exp_3:
filter out 0, as it is handled correctly only by mpfr_exp.
2011-05-06 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Completed the note to run tests under gdb.
[doc/README.dev] Added a note to run tests under gdb.
2011-05-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[README.dev] added hint for logging
2011-05-04 Vincent Lefèvre <vincent@vinc17.net>
[src/atan.c] Fixed bug in mpfr_atan: mpfr_check_range was called on the
unrounded result (no longer allocated) instead of the rounded result.
Consequence of this bug: possible incorrect or invalid result and/or
incorrect flags if either the unrounded result or rounded result is not
in the current exponent range. Or possibly worse if the memory used by
the unrounded result is modified before the return of the function.
[tests/tatan.c] Corrected a comment.
[tests/tatan.c] Added a testcase showing a failure of mpfr_atan
in a reduced exponent range.
[src/const_pi.c] Removed useless assignment.
2011-05-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr-impl.h] fixed typo
2011-05-03 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] In MPFR_RNDRAW_GEN, do not try to compute the
sticky bit when not necessary (directed mode with rb = 1).
[src/mul.c] FIXME comment: with the change in MPFR_RNDRAW_GEN,
uninitialized data are no longer read; there's still something
wrong, at least with the code documentation, though.
[src/mul.c] Updated the FIXME comment.
Bug in mpfr_mul: a call mpfr_mulhigh_n(pointers..., n) where n is some
size is done, but the mpfr_mul code assumes a result whose size can be
arbitrarily larger, thus may depend on uninitialised data.
* [src/mul.c] Added a FIXME comment.
* [tests/tmul.c] Added a corresponding test. The result is not checked
but valgrind complains of the use of uninitialised value(s).
[src/mpfr-impl.h] MPFR_RNDRAW_GEN: added other missing parentheses.
[src/mpfr-impl.h] MPFR_RNDRAW_GEN: added missing parentheses.
[src/mpfr-impl.h] Logging: do not take into account the Ziv loops due
to logging (i.e. used by the MPFR functions called by the mpfr_fprintf
in LOG_PRINT).
[src/mpfr-impl.h] Avoid recursive logging for MPFR_ZIV_* macros too,
and fixed type for the output of the precision.
[src/mpfr-impl.h] Avoid recursive logging (not wanted and freezes MPFR).
[src/rec_sqrt.c] Improved the comment added in r7651.
2011-05-02 Vincent Lefèvre <vincent@vinc17.net>
[src/rec_sqrt.c] Fixed the buffer overflow (bug 12553).
[src/rec_sqrt.c] Added an assertion to avoid a buffer overflow
(mpn_add_1 and mpn_sub_1 don't support size = 0). It sometimes
fails, and this is the following bug:
https://gforge.inria.fr/tracker/index.php?func=detail&aid=12553&group_id=136&atid=619
[src/rec_sqrt.c] Added a comment about a buffer overflow. Bug report:
https://gforge.inria.fr/tracker/index.php?func=detail&aid=12553&group_id=136&atid=619
[tests/tvalist.c] Make sure that fct is used (avoid a warning).
[tests/tsin_cos.c] status_f and status were not read (compared) in
coverage_01032011, yielding a warning.
[src/mpfr-impl.h] Avoid a spurious warning with some use of MPFR_BLOCK.
[doc/README.dev] Added command to test with valgrind.
2011-05-01 Vincent Lefèvre <vincent@vinc17.net>
Added "make dist" support for -dev MPFR versions by distributing the
tests/data files in the tarball for such MPFR versions ("make check"
fails if some data file couldn't be read for such versions).
* configure.ac: add a Makefile variable DATAFILES, which contains the
list of the tests/data files if the MPFR version ends with "-dev".
* Makefile.am: add $(DATAFILES) to EXTRA_DIST.
2011-04-29 Vincent Lefèvre <vincent@vinc17.net>
Added casts for printf (mpfr_prec_t was assumed to be an unsigned long).
[src/strtofr.c] Support the case where mpfr_exp_t < long.
[src/mpfr-impl.h] Added missing parentheses in MPFR_SADD_OVERFLOW.
[tests/trint.c] Removed a useless pointer cast (in general, such casts
are either useless or incorrect, as breaking aliasing rules).
2011-04-28 Vincent Lefèvre <vincent@vinc17.net>
[tests/tpow_z.c] More details concerning a failure.
[src/sub1.c] Added a useless cast (for maintainability: may be needed
in case of future change) and comments about the last change (r7637).
[src/sub1.c] Fixed several bugs: integer overflows and potential
out-of-bound pointers.
[src/cmp2.c] Added an assertion.
2011-04-18 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] Correction of problems triggering the warning
"warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body"
with autoconf 2.68:
* Fixed missing quoting in an AC_RUN_IFELSE.
* Added an AC_LANG_SOURCE in another AC_RUN_IFELSE.
[acinclude.m4] s/can not/cannot/
[acinclude.m4] Added comment about the warning:
warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body
2011-04-15 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] Use conventional quotes.
[acinclude.m4] Added a comment.
2011-04-12 Vincent Lefèvre <vincent@vinc17.net>
[src/asin.c] Fixed bug in mpfr_asin for x = 1 or -1 in extremely reduced
exponent range (when pi is not representable, but pi/2 is).
[tests/tasin.c] Added testcase.
2011-04-08 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Removed "allow generic tests to run with a restricted
exponent range" (this was done in r7470).
2011-04-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] added item
2011-04-05 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
[INSTALL,doc/mpfr.texi] Say that mpfr@loria.fr is the MPFR mailing-list.
2011-04-01 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] Removed the -Wno-format GCC option, which was added
when logging was used, as it is no longer needed after the changes
done in r7575,7578 (mpfr_fprintf is now used for logging instead of
fprintf with the Glibc register_printf_function extension).
2011-03-29 Vincent Lefèvre <vincent@vinc17.net>
[tests/reuse.c] Added a comment.
[src/pow.c] Fixed a bug in mpfr_pow_general when an argument is reused
(e.g. mpfr_pow(x,x,y,rnd) or mpfr_pow(y,x,y,rnd)) and the result is
negative, thus when x is negative and y is a huge odd integer ("huge"
because not-too-large integers are currently handled by mpfr_pow_z).
[tests/reuse.c] Added a mpfr_pow(x,x,y,rnd) test showing a failure
when x is negative and y is a huge odd integer.
[src/subnormal.c] Improved a comment.
[tests/reuse.c] Test also negative numbers.
[tests/reuse.c] GNU coding style.
[src/mul.c] Updated a comment.
[src/powerof2.c] Updated comment.
[src/powerof2.c] More detailed comment.
2011-03-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[cfarm.sh] complete tests with mpfr-3.0.1-rc1
2011-03-21 Vincent Lefèvre <vincent@vinc17.net>
[src/pow_z.c] Fixed bug bug20110320, that occurs in extremely reduced
exponent range (more precisely, if 1 is out of range, i.e. emin > 1).
[tests/tpow.c] Added testcase bug20110320.
[tests/tgeneric.c] Added debug information.
2011-03-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[cfarm.sh] shell script to test MPFR on the GCC Compile Farm
2011-03-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[digamma.c] fixed compiler warning (ISO C90 forbids mixed declarations and code)
2011-03-17 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Added a note about the fix in the mpfr_subnormalize
implementation, in case users would think the old behavior
was chosen on purpose.
Completed r7575 (Get rid of deprecated register_printf_function
function in logging system): there was a remaining old MPFR_LOG_FUNC
in "src/div_ui.c". Now, the MPFR source no longer contains '%#R'.
[src/mul_2si.c] Removed trailing whitespace.
[doc/README.dev] Fixed variable name from r7575.
2011-03-17 Philippe Théveny <philippe.theveny@laposte.net>
Get rid of deprecated register_printf_function function in logging system.
2011-03-15 Vincent Lefèvre <vincent@vinc17.net>
[src/erfc.c] Fixed a problem (incorrect flags or possible crash) in
extremely reduced exponent range. Support the case where mpfr_prec_t
is larger than a long.
[tests/terf.c] Added some tests of the flags (no failure in them,
thanks to the mpfr_cmp_si (x, -27282) in erfc.c, for 1b).
[tests/tgeneric.c] In failure messages, output the name of the
tested function. This is useful for programs that have generic
tests for several functions, such as terf.
[tests/terf.c] Added a testcase showing a failure due to bad flags
in a reduced exponent range.
2011-03-14 Vincent Lefèvre <vincent@vinc17.net>
[tests/terf.c] Changed mp_exp_t (r7564) to mpfr_exp_t.
2011-03-11 Vincent Lefèvre <vincent@vinc17.net>
[src/erfc.c] Added an assertion for future platforms (e.g. with 128-bit
exponent type).
[src/erfc.c] Fixed r7564 (comparison must really be signed).
[tests/terf.c] Fixed test added in r7564 for 32-bit machines.
2011-03-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[erfc.c] fixed bug found by Pascal Molin: when we increase the exponent range
on 64-bit machines, erfc() wrongly underflows for x >= 27282
2011-03-10 Vincent Lefèvre <vincent@vinc17.net>
[src/jn.c] Fixed the MPFR_FAST_COMPUTE_IF_SMALL_INPUT test for n == 1
in underflow cases.
[src/jn.c] No need for mpfr_clear_flags (already done in MPFR_BLOCK).
[src/jn.c] Check that no intermediate underflow or overflow occurs.
[doc/algorithms.tex] For the Bessel function, say that the algorithm
assumes that no underflows/overflows occur.
2011-03-09 Vincent Lefèvre <vincent@vinc17.net>
[src/gamma.c] More robust code (for the change in r7551).
Removed trailing spaces.
[tests/tgeneric.c] Added feature for MPFR_SUSPICIOUS_OVERFLOW to avoid
spurious failures by defining TGENERIC_SO_TEST to some well-chosen test.
[tests/tgamma.c] Added a comment about MPFR_SUSPICIOUS_OVERFLOW.
[src/gamma.c] Fixed the special code for tiny values.
[tests/tgamma.c] Corrected a test and added other tests for tiny x > 0.
[tests/tgamma.c] Updated a comment.
[tests/tgamma.c] Restore emax.
[tests/tgamma.c] Do not initialize x twice.
[tests/tgamma.c] Do not run the same test twice if emin = MPFR_EMIN_MIN.
[tests/tgamma.c] Added tests for tiny values, showing bugs in special
code for such values. Run tgamma with at least an argument to get all
the failures.
2011-03-07 Vincent Lefèvre <vincent@vinc17.net>
[src/jn.c] Fixed mpfr_jn_k0() internal function:
* The prototype was incorrect: one needs "unsigned long" for n
(actually absn), in case absn is equal to - LONG_MIN.
* The formula and the code were incorrect for n = 0, due to the
division by n; it was yielding k0 = ULONG_MAX. The case n = 0
is now handled separately.
* Small optimization: division by log(2) -> multiplication by
1/log(2).
[src/jn.c] Avoid integer overflow in the computation of the initial
working precision. This makes several tests fail, but logging shows
that previous non-failure was due to undefined behavior due to huge
k0 computed by mpfr_jn_k0.
[src/jn.c] Added a comment for mpfrlint.
[tools/mpfrlint] Change of r7515: any mpfr_clear_* can be mentioned.
[src/jn.c] Added comments and fixed a bug.
[src/jn.c] Detect incorrect error analysis (that may have been the goal
of the assertion corrected in r7534, but this wasn't documented). Added
a FIXME comment.
[src/jn.c] Fixed incorrect assertion. It could occur only
in precision >= 2^(1+s/2), where s is the bitsize of a
"long", e.g. p >= 2^17 = 131072 on most 32-bit machines and
p >= 2^33 = 8,589,934,592 on most 64-bit machines. Only some
arguments are affected (|z| between around 2^(s/2) and p/2).
[tests/Makefile.am] Added a comment.
[doc/README.dev] Corrected a typo.
2011-03-06 Vincent Lefèvre <vincent@vinc17.net>
[src/jn.c] Improved underflow detection. Still not complete, though.
[src/jn.c] Comments: English usage.
2011-03-05 Vincent Lefèvre <vincent@vinc17.net>
[tests/trint.c] mantissa -> significand (standard and correct term).
[tests/trint.c] Do not use snprintf (C99).
2011-03-04 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Added a test to check that the snprintf function (C99)
is not used.
2011-03-04 Olivier Demengeon <olivier.demengeon@inria.fr>
Previous extended coverage test in trint.c now self generate tests in and compare values
Extend test coverage of mpfr_rint to 100%
2011-03-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/add1sp.c] same as previous commits
[src/sub1sp.c] ibidem (see previous commit log)
[add1.c] ibidem (see previous commit log)
2011-03-03 Vincent Lefèvre <vincent@vinc17.net>
[src/add.c,src/sub.c] Split assertions for C90 compilers, to avoid
too long strings generated by #expr. Problem seen with:
gcc -ansi -pedantic-errors
[src/yn.c] Minor change.
[src/yn.c] Extend the exponent range (code not checked concerning
internal exceptions, such as overflows, underflows and divby0).
[src/agm.c] Added comments (for mpfrlint, in particular).
[tools/mpfrlint] The use of mpfr_overflow_p, etc. is allowed if
mpfr_clear_flags is mentioned (useful for checking purpose at the
end of a function, but this needs an explicit mpfr_clear_flags;
otherwise MPFR_BLOCK should still be used).
[src/agm.c] Completed scaling to avoid intermediate overflow/underflow.
[src/agm.c] Bug fix in error computation: in Ziv's iteration, err kept
its value from the previous iteration instead of being reset to 0.
Consequence: a possible loss of performance in rare cases.
[src/cmp2.c] Removed a useless assertion and updated comments.
2011-03-02 Vincent Lefèvre <vincent@vinc17.net>
[src/agm.c] Added a FIXME comment.
[src/agm.c] Updated exception checking (more informative).
[src/agm.c] Check internal exceptions: the error analysis may be
incorrect in case of exception.
[src/agm.c] Implemented scaling to avoid intermediate overflow/underflow
(but the tagm test still fails, due to a rounding error this time).
[tests/tagm.c] Added tests triggering intermediate underflow/overflow.
[tests/tagm.c] Also test the ternary value and the flags.
[tests/tagm.c] Corrected values (using Pari).
[src/agm.c] Extend the exponent range. This doesn't make the algorithm
correct yet, as intermediate underflow or overflow is still possible in
the first multiplication.
2011-03-01 Olivier Demengeon <olivier.demengeon@inria.fr>
Change some functions called in test tsin_cos.c
Extend coverage test of mpfr_sincos_fast to 100%
Extend coverage test of mpfr_custom_get_kind to 100%
2011-02-25 Vincent Lefèvre <vincent@vinc17.net>
[src/jn.c] Fix: support reduced exponent ranges for small inputs.
[src/gamma.c] Added a comment about an overflow case.
[tests/tgamma.c] Added tests in maximum exponent range.
[src/gamma.c] Fixed flags when x if very small (protect from
intermediate overflow).
[tests/tgamma.c] Corrected test number.
[tests/tgamma.c] Added a test in maximum exponent range.
[src/gamma.c] Fixed inexact flag when x if very small.
[tests/tgamma.c] Added tests.
[src/gamma.c] Fixed a bug occurring in reduced exponent range.
[tests/tgamma.c] Added corresponding testcase.
[src/lngamma.c] Do not use MPFR_EXP after a mpfr_clear (even though
this currently work).
[src/rem1.c] Fixed mpfr_rem1 in reduced exponent range (the function
is actually simplified).
2011-02-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] added an item
2011-02-25 Vincent Lefèvre <vincent@vinc17.net>
Fixed mpfr_div_2si, mpfr_div_2ui and mpfr_mul_2si in some corner cases.
[tests/tmul_2exp.c] Small correction in output (in case of failure).
2011-02-21 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset_q.c] Corrections in function prototypes.
2011-02-21 Olivier Demengeon <olivier.demengeon@inria.fr>
Remove the use of mpfr_get_default_prec in some coverage test
Add some coverage test in tests/tset_q.c
fixed coding convention of 2 tests functions
2011-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tget_d.c] fixed some compiler errors and warnings
2011-02-18 Vincent Lefèvre <vincent@vinc17.net>
[tests/tversion.c] Split a printf into several ones to reduce the
string length below the 509-byte limit from C90 (useful to avoid
an error when testing with gcc -ansi -pedantic-errors).
2011-02-18 Olivier Demengeon <olivier.demengeon@inria.fr>
Extend test coverage to 100% on mpfr_z_sub and mpfr_mul_q function
Extend test coverage on mpfr_get_d_2exp function
2011-02-18 Vincent Lefèvre <vincent@vinc17.net>
[tests/tmul_2exp.c] Also test mpfr_div_2si and mpfr_div_2ui (same bug).
[tests/tmul_2exp.c] Added a testcase showing a bug in mpfr_mul_2si
(possible intermediate overflow).
[src/zeta.c] Support zeta(eps) with |eps| very small or 0
in extremely reduced exponent range.
[src/atan2.c] Fix: the overflow or underflow flag was set in the case
x = power of two and y/x overflows or underflows.
[src/atan2.c] Support special cases in extremely reduced exponent range.
[src/acos.c] Support acos(0) in extremely reduced exponent range.
2011-02-17 Vincent Lefèvre <vincent@vinc17.net>
[tests/tgeneric.c] Added generic tests in a reduced exponent range.
This currently makes 10 tests fail on a 64-bit machine.
[tests/mpfr-test.h] Defined a SAME_VAL(X,Y) macro to test whether two
floating-point data have the same value, seen as an element of the set
of the floating-point data (Level 2 in the IEEE 754-2008 standard).
[src/mpfr-impl.h] Defined a MPFR_EXP_FSPEC macro containing the
format specifier for mpfr_eexp_t, to output an exponent with:
printf ("%" MPFR_EXP_FSPEC "d", (mpfr_eexp_t) exponent);
[tests/tgeneric.c] Reformat.
[doc/README.dev] Added a warning about whitespace in the mpfr.texi file.
[doc/mpfr.texi] Fixed spacing for the mpfr.info file.
2011-02-10 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Detect the use of mp_ptr and mp_srcptr.
[doc/mpfr.texi] Updated the month.
[src/gmp_op.c] Added a blank line.
2011-02-09 Olivier Demengeon <olivier.demengeon@inria.fr>
Added mpfr_z_sub (function/test/doc)
2011-02-09 Vincent Lefèvre <vincent@vinc17.net>
Added new types mpfr_limb_ptr and mpfr_limb_srcptr to src/mpfr-impl.h,
and replaced mp_ptr and mp_srcptr (GMP internals) by these 2 new types
respectively.
2011-02-08 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Fix for Intel's compiler (ICC) under MS Windows:
MPFR was incorrectly assuming that ICC had some extensions like
under GNU/Linux. This made the MPFR compilation fail.
[src/mpfr-impl.h] Corrected a typo in a comment.
2011-02-05 Vincent Lefèvre <vincent@vinc17.net>
[INSTALL] Removed incorrect note.
2011-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[INSTALL] added hint for VS2008 and Intel compiler v11.1
2011-02-03 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac,Makefile.am] Clean-up and depend on GNU Automake 1.11.
2011-01-31 Vincent Lefèvre <vincent@vinc17.net>
[src/zeta_ui.c,tests/tzeta_ui.c] Patch from Patrick Pélissier for
the division-by-zero support in mpfr_zeta_ui (and test):
2011-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/zeta.c] patch from Patrick Pelissier (problem with division by zero flag)
2011-01-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] removed division by zero item (done)
[src/get_str.c,TODO] updated comments, mpfr_get_str already supports base <= 62
2011-01-27 Vincent Lefèvre <vincent@vinc17.net>
[tests/tj0.c] GMP_RNDN → MPFR_RNDN.
[src/subnormal.c] Set the inexact and underflow flags when needed. Fixes
https://gforge.inria.fr/tracker/index.php?func=detail&aid=7958&group_id=136&atid=622
[tests/tsubnormal.c] Improved the tests, in particular for the flags.
[doc/mpfr.texi] Documented the change.
[doc/mpfr.texi] Corrected order in Section "Changed Functions".
[tests/tj0.c] Added case for which s = 0 occurs in mpfr_jn.
[src/jn.c] Added a log message.
[src/div_ui.c] Added logging support.
2011-01-26 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsum.c] Fixed bug in test (do not set the exponent on 0).
[tests/tsum.c] Formatting.
[tests/tsum.c] Fixed get_prec_max and added some checks.
Current failure: tab[1] is not valid.
[src/sum.c] Added an assertion.
[src/check.c] Replaced MPFR_IS_PURE_FP by !MPFR_IS_SINGULAR, the
former macro now has a check for validity in debug mode (r7426).
The goal of mpfr_check is to test the validity, so that we don't
want this check here.
[src/mpfr-impl.h] In the MPFR_IS_PURE_FP test, if positive, check that
the number is normalized (debug mode only). This makes 2 tests fail:
tcheck and tsum. Note: with logging active, tsum was already triggering
an assertion failure in mpfr_get_str (via mpfr_add).
[src/add.c] Formatting.
[src/li2.c] Fixed crash in mpfr_li2 when logging is used.
2011-01-24 Vincent Lefèvre <vincent@vinc17.net>
[src/jn.c] Corrected a comment.
2011-01-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/jn.c] added notes for correctness of the algorithm used
2011-01-24 Vincent Lefèvre <vincent@vinc17.net>
[src/jn.c] C90 compatibility fix (empty macro arguments are undefined).
[src/jn.c] Added an assaertion against a potential overflow (which
probably never occurs, but this should be proved...).
2011-01-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/jn.c] patch from Patrick Pelissier
2011-01-23 Vincent Lefèvre <vincent@vinc17.net>
[src/jn.c] Forgot to change an MPFR_EXP to MPFR_GET_EXP.
[src/jn.c] Replaced MPFR_EXP by MPFR_GET_EXP when the value should
really be an exponent. Removed incorrect and useless casts. Added
an assertion to protect against potentially incorrect code.
[src/jn.c] Patch from Patrick Pélissier (mpfr_check_range and other).
2011-01-21 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Update the check for mpfr_printf-like functions
in the tests.
[tests/tprintf.c] Consistency.
[tests/tgrandom.c] Added a comment.
[tests/tgrandom.c] Protection of the mpfr_printf by #ifdef HAVE_STDARG.
2011-01-20 Vincent Lefèvre <vincent@vinc17.net>
[src/eint.c] Added a FIXME.
2011-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/out_raw.c] added pointer to discussion
2011-01-17 Vincent Lefèvre <vincent@vinc17.net>
[tests/tvalist.c] Correction for C++ compilers.
[doc/mpfr.texi] Added division-by-zero exception.
[doc/README.dev] Updated "To make a release".
[NEWS] Update for MPFR 3.1.x.
[src/grandom.c] Reformat.
[tools/mpfrlint] tests/tvalist.c can use mpfr_printf-like functions.
[tests/tgrandom.c] Added a FIXME: do not use mpfr_printf in the tests.
[tests] Untabified and removed trailing spaces.
[src/grandom.c,src/mpfr.h] Untabified and removed trailing spaces.
[src/frexp.c] Corrections.
[src/out_raw.c] Untabified.
[src/out_raw.c] Fixed some bugs on the incomplete code.
[src/atan2.c] MPFR_EXP -> MPFR_GET_EXP and reformat.
[src/ai.c] Removed trailing spaces.
[doc/mpfr.texi] Updated the month.
Copyright notice update: added 2011 with
perl -pi -e 's/2010 Free Software/2010, 2011 Free Software/' **/*(^/)
under zsh, reverting the ChangeLog file and the m4 and tools/mbench
directories.
[doc/README.dev] Updated year in example.
tests: updated svn:ignore property.
[src/pow.c] Added an assertion.
[tests/td_div.c] Consistency change.
[tests/tdiv_d.c] Updated test of special cases.
[src/log1p.c] Added support for the division-by-zero exception.
[tests/tlog1p.c] Test the flags for special cases.
Added support for the division-by-zero exception in functions
mpfr_atanh, mpfr_cot, mpfr_coth, mpfr_csc, mpfr_csch,
mpfr_digamma, mpfr_eint, mpfr_gamma, mpfr_lgamma, mpfr_lngamma,
mpfr_log, mpfr_log2 and mpfr_log10.
2011-01-16 Laurent Fousse <laurent@komite.net>
[tests/tgrandom.c] Add missing cast for malloc.
2011-01-16 Vincent Lefèvre <vincent@vinc17.net>
[src/yn.c] Added support for the division-by-zero exception.
[src/rec_sqrt.c] Added support for the division-by-zero exception.
[src/pow_si.c] Improved robustness (in case of future changes).
Added support for the division-by-zero exception for the power functions
(with additional tests). (Corrected patch from Patrick.)
2011-01-16 Laurent Fousse <laurent@komite.net>
Rename mpfr_urandom_gaussian to mpfr_grandom.
2011-01-15 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Corrections for mpfr_urandom_gaussian.
[tests/turandom_gaussian.c] Fixed C99-only code.
2011-01-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/frexp.c,tests/tfrexp.c] added new function mpfr_frexp
[src/urandom_gaussian.c] fixed copyright line
[src/out_raw.c] started writing code (work in progress, please continue if
you are interested)
2011-01-14 Laurent Fousse <laurent@komite.net>
[doc/mpfr.texi] Document urandom_gaussian.
[tests/Makefile.am] Include turandom_gaussian in tests.
[tests/turandom_gaussian.c] Add tests for urandom_gaussian.
2011-01-14 Vincent Lefèvre <vincent@vinc17.net>
[tests/tdiv.c] Added consistency tests between mpfr_div, mpfr_ui_div,
mpfr_si_div, mpfr_div_ui and mpfr_div_si (check the ternary value,
the flags and the result of the division).
[src/ui_div.c] Fixed prototype formatting.
[src/div_ui.c] Fixed prototype formatting. Set division-by-zero flag.
2011-01-14 Laurent Fousse <laurent@komite.net>
[src/urandom_gaussian.c] Fix x -> xp, and scaling.
[src/urandom_gaussian.c] Pick the signs of the outputs at random.
[src/urandom_gaussian.c] Fix precision of temporary results.
[src/urandom_gaussian.c] Add missing inits/clears.
[src/mpfr.h] Declare urandom_gaussian.
[src/Makefile.am] Add urandom_gaussian.c to the sources.
[src/urandom_gaussian] Start work on gaussian distribution.
2011-01-14 Vincent Lefèvre <vincent@vinc17.net>
[tests/tgeneric.c] Fixed code introduced in r7346, again.
2011-01-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[sin_cos.c] moved macros to mpfr-impl.h, added README
[sin_cos.c] new inexact flags computed by mpfr_check_range were lost
2011-01-14 Vincent Lefèvre <vincent@vinc17.net>
[tests/tgeneric.c] Fixed code introduced in r7346.
[tools/coverage] Update from Patrick.
[src/ui_div.c] Set the division-by-zero flag.
[tests/tui_div.c] Updated and improved the test of special cases.
Note: tpow_all currently fails since the support of the division-by-zero
exception is not complete yet.
[src/div.c] Set the division-by-zero flag.
[tests/tdiv.c, tests/td_div.c] Updated and improved the test of special
cases.
[tests/tset.c] Tests didn't fail in case of error from PRINT_ERROR_IF.
[tests/tgeneric.c] Added comments.
[tests/tgeneric.c] Check the division-by-zero flag.
Improved tests/texceptions.c (mpfr_clear_*, mpfr_set_*).
Added support for the division-by-zero exception.
[src/exceptions.c] Fixed bad #undef's (with currently no consequences).
2011-01-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] removed item about inlined mpfr_neg: Patrick Pelissier tried it but it
does not speed things
2011-01-14 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Removed an obsolete comment.
2011-01-13 Laurent Fousse <laurent@komite.net>
[src/atan2.c] "Exact" division can be inexact because of the exponent range.
2011-01-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[out_raw.c] exchanged bits for precision and exponent
[out_raw.c] first proposal for external format
2011-01-13 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] MPFR_IS_POWER_OF_2: added parentheses.
2011-01-13 Laurent Fousse <laurent@komite.net>
Add tests for special case of atan2 (x power of 2).
Add special case for atan2(x,y) when x is a power of 2.
New macro MPFR_IS_POWER_OF_2.
2011-01-13 Vincent Lefèvre <vincent@vinc17.net>
TLS support is now detected automatically. If TLS is supported, MPFR is
built as thread safe by default. To disable TLS explicitly, configure
MPFR with --disable-thread-safe.
2011-01-13 Laurent Fousse <laurent@komite.net>
Add tests for mpfr_ai special case x=0.
Add special case for x=0 in mpfr_ai1.
2011-01-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[algorithms.tex] extended Lemma 2 to the case of terms of the form 1/(1+delta)
2011-01-13 Vincent Lefèvre <vincent@vinc17.net>
tests: return 77 for skipped tests (see GNU Automake manual).
tests: updated svn:ignore property.
TODO update after r7317 and r7320.
Support multiple inclusions of mpfr.h w.r.t. <stdio.h> and <stdarg.h>
(MPFR_USE_FILE and/or MPFR_USE_VA_LIST are needed until GMP is fixed).
Added test "tests/tvalist.c".
2011-01-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mpfr-longlong.h] idem as previous commit for other 2 FIXME's
[mpfr-longlong.h] resolved one FIXME, by adding a new one :-)
2011-01-13 Vincent Lefèvre <vincent@vinc17.net>
Support multiple inclusions of mpfr.h w.r.t. <stdint.h> / <inttypes.h>.
2011-01-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
another patch from Patrick Pelissier to test get_ld (with export of data used)
patch from Patrick Pelissier to use clock_getime instead of rdtsc
(use "make rt" instead of "make")
References:
https://stackoverflow.com/questions/3388134/rdtsc-accuracy-across-cpu-cores
https://en.wikipedia.org/wiki/Time_Stamp_Counter
2010-12-25 Vincent Lefèvre <vincent@vinc17.net>
[src/get_ld.c] Updated a comment about the last change.
[src/get_ld.c] Minor performance improvement.
2010-12-19 Vincent Lefèvre <vincent@vinc17.net>
[tools/mbench/Makefile] Update due to source reorganization (r7087):
patch from Patrick Pelissier.
2010-12-17 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Update (exp-int branch, internal macro).
[src/sin.c] Fixed failure in debug mode (missing MPFR_IS_ZERO test).
[src/rec_sqrt.c] Improved comment.
Added exp-int branch from r7304, where mpfr_exp_t is defined as an
int instead of mp_exp_t. This is for testing only for usual 64-bit
machines (e.g. x86_64 GNU/Linux), where mpfr_exp_t and mpfr_prec_t
are now on 32 bits instead of 64 bits. Many tests currently fail
for unknown reasons.
TODO: find the cause of these failures, starting with the low level
functions (since they can affect higher level ones).
2010-12-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[rec_sqrt.c] put back some information lost in commit 7302
2010-12-17 Vincent Lefèvre <vincent@vinc17.net>
[src/cmp2.c] Corrected a comment.
Replaced some MPFR_EXP by MPFR_GET_EXP.
[src/rec_sqrt.c] Removed a variable that was used only once.
[src/mpfr.h] Changed comment for mpfrlint.
Added MPFR_TMP_LIMBS_ALLOC macro and updated the source to use it.
tools/mpfrlint: check its use instead of MPFR_TMP_ALLOC.
[src/sum.c] Improved readability.
[src/mpfr-impl.h] Formatting.
2010-12-14 Vincent Lefèvre <vincent@vinc17.net>
[TODO] Added year on a date (the item was added on 2007-07-28 in r4707).
2010-12-13 Vincent Lefèvre <vincent@vinc17.net>
Added configure.lineno (generated by configure) to the svn:ignore
property of the src directory.
2010-12-12 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Update concerning the --with-gmp-build configure option.
[INSTALL] Corrected a typo from r7293.
Updated INSTALL file after the recent changes in configure.ac concerning
the --with-gmp-build configure option.
[configure.ac] With --with-gmp-build, do not duplicate the include
search paths if the GMP source and build directories are the same.
[configure.ac] Fixed another bug in r7289. This new version now seems
to work with GMP's srcdir pointing to a relative directory or to an
absolute one.
[configure.ac] Fixed bug in r7289.
[configure.ac] Corrected Patrick Pelissier's patch (not tested).
2010-12-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[configure.ac] patch from Patrick Pelissier to solve the problem with
--with-gmp-build when the GMP build directory and the GMP
source directory differ
2010-12-12 Vincent Lefèvre <vincent@vinc17.net>
[tests/Makefile.am] tversion is also run at the end (after a discussion
with Patrick and Paul).
[configure.ac] Fixed two problems with --with-gmp-build:
* "grep -w" isn't POSIX (an error shouldn't matter with recent GMP
versions, as CFLAGS and CC would then be retrieved from gmp.h).
* "sed" was used instead of "$SED".
2010-12-07 Vincent Lefèvre <vincent@vinc17.net>
[INSTALL] Added a section "If 'gmp.h' and 'libgmp' do not match".
[configure.ac] Improved warning message in case of unmatched 'gmp.h'
and 'libgmp'.
[INSTALL] Update concerning "configure".
2010-12-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[NEWS] fixed news for 3.0.0
2010-12-03 Vincent Lefèvre <vincent@vinc17.net>
[tests/tversion.c] Now fail if the versions of gmp.h and libgmp do not
match (error message improved); previously, the warning could remain
unnoticed, in particular with automatic installations.
2010-11-30 Sylvain Chevillard <Sylvain.Chevillard@inria.fr>
Added metaMPFR in the tools directory of MPFR.
2010-11-29 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr.h] Defined MPFR_DEPRECATED to mark MPFR functions, types
or variables as deprecated.
2010-11-25 Vincent Lefèvre <vincent@vinc17.net>
[tests/tui_pow.c] Updated a comment.
2010-11-23 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Support BSD sed.
2010-11-19 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Detect the use of __mpfr_struct structure members
in .c files.
[src/min_prec.c] Replaced x->_mpfr_d by MPFR_MANT(x).
2010-11-18 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Commented out the declaration of mpfr_round_raw_3
(since this function is no longer defined).
[src/min_prec.c] Major simplification of mpfr_min_prec by using
mpn_scan1 (suggestion by Andreas Enge).
2010-11-15 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Added a comment about mpn_sqr_n.
2010-11-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[algorithms.tex] replaced reference to Graillat05 by earlier one (Higham02)
2010-11-12 Vincent Lefèvre <vincent@vinc17.net>
[tools/nightly-test] Added a comment about the use of -pedantic-errors.
2010-11-10 Vincent Lefèvre <vincent@vinc17.net>
[src/sub1.c] Minor simplification.
[tests/tpow.c] Avoid warnings if mpfr_exp_t < long.
2010-11-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mul.c] fixed bug introduced in revision 7183, and reported by Brian Gladman
on Windows, where mpfr_exp_t has 32 bits and mp_limb_t has 64 bits
2010-11-09 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr.h] Use only mpfr_* types in __MPFR_EXP_* macro definitions
(should have been done in r7236).
[src/mpfr.h] Changed a "void" into a "mpfr_void" in a macro definition
(should have been done in r7236).
[tests/tset_si.c] Added testcase for problem fixed in r7236.
2010-11-08 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr.h] Removed some useless casts that where added in r7121 and
r7236 (such casts prevented the compiler from emitting diagnostics in
incorrect calls).
[tests/Makefile.am] Added a comment (warning about LOADLIBES).
2010-10-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[taway.c] reduced time of the test
2010-10-25 Vincent Lefèvre <vincent@vinc17.net>
Mentioned --enable-gmp-internals in INSTALL and NEWS.
2010-10-24 Vincent Lefèvre <vincent@vinc17.net>
[tests/taway.c] Added a FIXME (test is too long on old machines).
[acinclude.m4] Corrected comment for PowerPC.
2010-10-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added tuning parameters for HPPA (on HP-UX machine kindly provided by David
Kirkby)
2010-10-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[powerpc32/mparam.h] added more info on processor and operating system used
needed stuff to use src/powerpc32/mparam.h file
(note that long double is IEEE double on PowerPC32)
[powerpc32/mparam.h] param file for powerpc32 (made on PowerPC 604 under AIX)
2010-10-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tuneup.c] added cast from time_t to long, after warning under HP-UX:
tuneup.c:1131: warning: format '%ld' expects type 'long int', but argument 3 has type 'time_t'
tuneup.c:1133: warning: format '%ld' expects type 'long int', but argument 2 has type 'time_t'
(I don't know if it is because time_t is unsigned, or has a different width)
2010-10-22 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr.h] Added a space.
[src/mpfr.h] Avoid some problems with macro expansion if the user
defines macros with the same name as keywords.
[doc/mpfr.texi] Document the use of macros.
2010-10-22 Sylvain Chevillard <Sylvain.Chevillard@inria.fr>
Included the new /arch/mparam.h files into the dist.
2010-10-20 Sylvain Chevillard <Sylvain.Chevillard@inria.fr>
Cosmetic change: the constant MPFR_TUNE_CASE is now defined in mparam_h.in.
Hence the files src/some-architecture/mparam.h are now simply obtained by
performing 'make tune' on some architecture and copying the resulting
src/mparam.h to src/some-architecture/mparam.h.
Typo.
Up-to-date thresholds.
2010-10-20 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsub.c] mp_prec_t -> mpfr_prec_t
[src/sub1.c] Removed trailing spaces.
2010-10-19 Vincent Lefèvre <vincent@vinc17.net>
[tests/*.c] Support the case where mpfr_exp_t is not a long int
(but with such a future extension, one should probably provide
a MPFR_PRIexp macro, similar to what <inttypes.h> does).
[tests/texceptions.c] Added casts, in case mpfr_exp_t is not a long int.
2010-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tset_ld.c] replaced hexadecimal long double constants by decimal constants
2010-10-19 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset_ld.c] Added a FIXME for r7222 change.
2010-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[set_ld.c] fixed bug #11300 on bug tracker
[tset_ld.c] added corresponding tests
[algorithms.tex] modified proof of mpfr_sub in accordance with source code
2010-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
this is a tree of all possible cases that can happen for rounding in mpfr_sub
(file sub1.c) for rounding to nearest.
The nodes at depth 1 of the tree correspond to the 3 possible cases before
rounding: (1) sh=0, (2) sh>0 and the low sh bits are 1/2 ulp, (3) sh>0 and
the low sh bits are 0.
The nodes at depth 2 represent the possible subcases for k=0 in the rounding
loop.
The nodes at depth 3 represent the possible subcases for k=1 in the rounding
loop.
2010-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sub1.c] fixed another remaining issue in case 1d1
(case sh=0, i.e., the result uses a full number of limbs,
the first neglected limbs of b and c match,
and for the next limbs, low(b) > low(c)).
This case was incorrectly rounded up (add_one_ulp).
[tests/tsub.c] added more test cases
[tgmpop.c] in case of error, print mpz_t in decimal instead of binary
[tuneup.c] increase maximal number of calls to speed_measure from 5 to 30
(seems to solve problems on gcc15)
2010-10-18 Vincent Lefèvre <vincent@vinc17.net>
[tests/tcan_round.c] Removed an incorrect cast, fixing a bug (in the
test) that was producing a failure for GMP_CHECK_RANDOMIZE=1287710095
on 64-bit machines (visible since mpfr_prec_t is now signed).
[src/sub1.c] Removed trailing whitespace.
2010-10-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[sub1.c] previous fix was not incorrect (but strangely our tests cases did
not exhibit that)
[tfma.c] added more test cases from Jakub Jelinek
[sub1.c] fixed bug found by Jakub Jelinek (#11301 on tracker)
2010-10-18 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] Updated the month.
[tests/tsub.c] Fixed inex test in bug20101017.
2010-10-18 Sylvain Chevillard <Sylvain.Chevillard@inria.fr>
Mention the warning message displayed by gcc when the ABI of gcc and MPFR
differ.
Note: the message does not automatically imply the problem; however, if the
message appears, the ABI somehow differ, so it is worth mentioning it.
Users might look for the message in INSTALL in order to see if their problem is
mentioned.
2010-10-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[INSTALL] added "Notes about ABI" section
2010-10-18 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsub.c] Updated comment of bug20101017.
[tests/tsub.c] Added testcase for bug found by Jakub Jelinek
(bug 11301 on INRIAGforge).
2010-10-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tuneup.c] print size when speed_measure fails
2010-10-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr.texi] added that the 'N' mode rounds ties to even in the mpfr*printf
functions
2010-10-15 Sylvain Chevillard <Sylvain.Chevillard@inria.fr>
Reorganized mparam_h.in in separate files.
Added mpfr_buildopt_tune_case function.
2010-10-14 Sylvain Chevillard <Sylvain.Chevillard@inria.fr>
Modified the number of iterations in the loop of mpfr_speed_measure.
2010-10-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tuneup.c] new function mpfr_speed_measure, which calls speed_measure() several
times (currently 30) until there is no failure.
In case all 30 calls fail, give some hints to the user.
2010-10-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tuneup.c] try again when speed_measure returns -1.0 (i.e. fails)
also check return value of speed_measure in all cases
(was not done for mulhigh, sqrhigh and divhigh, reported
by Sylvain Chevillard)
2010-10-12 Sylvain Chevillard <Sylvain.Chevillard@inria.fr>
Small indication explaining what is the negative threshold for Ai.
2010-10-10 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr-impl.h] Added MPFR_UEXP macro to check (in debug mode) that
a value is nonnegative before a cast to mpfr_uexp_t.
[src/add1.c] Use the MPFR_UEXP macro to make sure that the avoided
warning doesn't hide a real bug.
2010-10-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
avoid several compiler warnings with g++
[nightly-test] added -Wno-sign-compare for g++, to avoid spurious warnings
[nightly-test] do not use -Wmissing-prototypes for g++
[add1.c] fixed compiler warning (from g++)
2010-10-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mulders.c] fixed comment
2010-10-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[sqrt.c,mulders.c] added missing cast (detected by nightly builds with g++)
2010-10-01 Vincent Lefèvre <vincent@vinc17.net>
[src/mulders.c] Untabified.
2010-09-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mulders.c] fixed comments about error analysis in short product,
and improved short division code
2010-09-30 Vincent Lefèvre <vincent@vinc17.net>
Removed trailing spaces and untabified several files.
[src/mul.c] Added comments concerning the latest changes about mulhigh.
2010-09-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mulders.c] removed leftover debug stuff
2010-09-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/mulders.c] added new function mpfr_divhigh_n() for short division
(not used yet), fixed comments and added error analysis
in mpfr_mulhigh_n() and mpfr_sqrhigh_n()
[src/sqrt.c] fixed ill-placed MPFR_TMP_MARK
[src/mparam_h.in] added default MPFR_DIVHIGH_TAB for mpfr_divhigh_n()
[src/round_p.c] typo
[src/mpfr-impl.h] added prototype for mpfr_divhigh_n
[src/mul.c] added comment, simplified code
[tune/tuneup.c] added tuning for mpfr_divhigh_n(), increased MAX_STEPS to get
a better tuning (will take longer), set tolerance to 1.0
added new option --enable-gmp-internals to use GMP undocumented function
(at user's own risk). So far only mpn_rootrem is used in mpfr_sqrt.
[doc/README.dev] added comment about mpn_rootrem
2010-09-28 Vincent Lefèvre <vincent@vinc17.net>
[configure.ac] Added a FIXME note about incorrect use of an internal
GMP symbol (__gmpn_rootrem).
2010-09-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[src/sqrt.c] followup to previous commit: only compute an extra limb of the
square root for rounding to nearest (for directed rounding, it
suffices to know if the remainder is zero or not)
[src/sqrt.c] now uses mpn_rootrem (if available) instead of mpn_sqrtrem since
mpn_rootrem is faster. Also refactored the code: now compute one
more limb of the square root when the target precision is a
multiple of GMP_NUMB_LIMB. This greatly simplifies the code.
[src/sqrt.c] simplified computation of sticky bit
2010-09-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mulders.c] fixed typo
2010-09-27 Vincent Lefèvre <vincent@vinc17.net>
[src/mulders.c] Replaced MPFR_ASSERTD with constant expression
by MPFR_ASSERTN.
[tools/mpfrlint] Added a test:
Constant checking should use MPFR_ASSERTN, not MPFR_ASSERTD.
2010-09-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mulders.c] modified mpfr_sqrhigh_n threshold so that it is > n/2
2010-09-27 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] Added a FIXME concerning autoconf 2.68.
2010-09-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mulders.c] use mpn_lshift instead of mpn_add_n, and improved the default
Mulders cutoff k beyond 1024 limbs (extrapolated from the cutoff
k for n=1023 on Core 2, and checked experimentally it is faster)
2010-09-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tuneup.c] changed lower bound for exp_2 threshold from MPFR_PREC_MIN (2) to
GMP_NUMB_BITS. Seems to be better (since for p=2 the 2nd routine
was sometimes already faster).
[mul.c] another changes for Mulders' algorithm in case of a square
2010-09-24 Vincent Lefèvre <vincent@vinc17.net>
[src/mul.c] Change in r7166 was incomplete. Fixed suspicious code.
2010-09-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mparam_h.in] updated for 64-bit Core2
now use Mulders' algorithm also for mpfr_sqr, provides nice speed improvement
in all functions that perform squarings
2010-09-21 Vincent Lefèvre <vincent@vinc17.net>
[doc/mpfr.texi] API compatibility section: noted that mpfr_urandom
and mpfr_urandomb changed for MPFR 3.1.
2010-09-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[INSTALL] update about "make tune"
2010-09-21 Vincent Lefèvre <vincent@vinc17.net>
[doc] Updated FAQ.html with update-faq.
2010-09-20 Sylvain Chevillard <Sylvain.Chevillard@inria.fr>
Indicated the location of README.dev.
2010-09-19 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Minor update.
2010-09-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[NEWS] inform the users that mpfr_add_one_ulp and mpfr_sub_one_ulp will be
removed
2010-09-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] added efficiency item
2010-09-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
replaced calls to mpfr_printf by calls to mpfr_dump
(mpfr_printf might not be defined)
[NEWS,doc/mpfr.texi] updated: the GMP random functions do not depend on the
computer word size
2010-09-15 Vincent Lefèvre <vincent@vinc17.net>
[tools/mpfrlint] Check for mpfr_printf-like functions in the tests.
[doc/mpfr.texi] Updated the month.
2010-09-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[doc/mpfr.texi] added notes for mpfr_urandom and mpfr_urandomb
[Makefile.am] updated LOADLIBES with reorganization of the sources
[algorithms.tex] added sections for pow_ui and root
[src/urandom.c] now mpfr_urandom also returns identical values on 32-bit and
64-bit machines
[tests/turandom.c] modified corresponding test
replaced mpfr_printf in tests by calls to mpfr_out_str
2010-09-15 Vincent Lefèvre <vincent@vinc17.net>
[doc/README.dev] Updated the paragraph added in r7137.
[doc/README.dev] Added a paragraph about the use of system-dependent
functions in the test suite.
Some minor corrections in comments.
[src/printf.c] Typo in a comment.
[src/printf.c] Slight modification of a comment.
2010-09-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[urandomb.c] modified to leave the GMP random generator in the same state,
independent of GMP_NUMB_BITS
[trandom.c] test of the above
[urandom.c] added FIXME's
[turandom.c] check we leave the GMP random generator in the same state,
independent of GMP_NUMB_BITS. Currently this fails on 64-bit
computers.
[urandomb.c] added comment + slight change
2010-09-01 Vincent Lefèvre <vincent@vinc17.net>
[src/mpfr.h] Added casts to improve robustness in case of undefined
behavior and compiler extensions based on UB (in particular -fwrapv).
MPFR doesn't use such extensions, but these macros will be used by
3rd-party code, where such extensions may be required.
[src/mpfr.h] Updated a comment concerning -Wconversion.
[src/mpfr.h] Added casts to unsigned long in mpfr_cmp_si and mpfr_set_si
macros for GCC, in order to avoid warnings in programs that use MPFR and
are compiled with -Wconversion (suggestion by Andreas Enge); such casts
are OK since if X is a constant expression, then (unsigned long) X is
also a constant expression, so that the optimizations still work.
Reformatted these macros.
[src/mpfr.h] Fixed bug in the mpfr_cmp_ui macro for GCC (also used
by mpfr_cmp_si), when the evaluation of the first argument yields
side effects and the second argument is a constant expression with
the value 0.
[tests/tcmp_ui.c] Added side-effect tests similar to those in tset_si.c,
showing a bug in the mpfr_cmp_ui and mpfr_cmp_si macros.
[tests/tcmp_ui.c] Check mpfr_cmp_ui and mpfr_cmp_si macros against
side effects in the arguments.
[src/mpfr.h] Added a comment about the macros that use
__builtin_constant_p.
2010-08-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tsqrt.c] improved comment, and added test sqrt(+0) == +0
2010-08-29 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsqrt.c] Renamed check_nan() to check_singular().
[tests/tsqrt.c] Check that sqrt(-0) has a negative sign.
2010-08-26 Vincent Lefèvre <vincent@vinc17.net>
[INSTALL] Replaced "patches" by "allpatches".
2010-08-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[configure.ac] fixed typo
2010-08-23 Vincent Lefèvre <vincent@vinc17.net>
[src/gmp_op.c] Extend the exponent range in mpfr_cmp_q and mpfr_cmp_f.
[src/gmp_op.c] In mpfr_add_q / mpfr_sub_q, check with MPFR_ASSERTN
that an internal overflow/underflow doesn't occur. In theory, such
an exception is possible, but only if q has a huge numerator or
denominator. This is not supported (note: other problems may occur
first, such as insufficient memory).
[tests/tgmpop.c] Added overflow tests for mpfr_add_q / mpfr_sub_q.
[tests/{mpfr-test.h,tests.c}] Added flags_out function to output flags.
[src/gmp_op.c] Extend the exponent range in mpfr_add_q / mpfr_sub_q
(overflow/underflow exceptions are not supported yet).
[tests/tgmpop.c] Added corresponding testcases.
2010-08-19 Vincent Lefèvre <vincent@vinc17.net>
[src/gmp_op.c] Fixed the Inf +/- Inf cases for mpfr_add_q / mpfr_sub_q.
[tests/tgmpop.c] Added Inf +/- Inf tests.
2010-08-19 Philippe Théveny <philippe.theveny@laposte.net>
[tests/tgmpop.c] Fix rounding mode in overflow tests
2010-08-19 Vincent Lefèvre <vincent@vinc17.net>
[src/gmp_op.c] The function mpfr_cmp_z could fail in a reduced
exponent range.
[tests/tgmpop.c] Added a corresponding testcase.
[src/gmp_op.c] The functions mpfr_mul_z, mpfr_div_z, mpfr_add_z and
mpfr_sub_z could fail in a reduced exponent range. Fixed.
[tests/tgmpop.c] Added corresponding testcase.
2010-08-18 Vincent Lefèvre <vincent@vinc17.net>
[tests/tgmpop.c] Disabled buggy tests.
[src/gmp_op.c] Fixed the intermediate overflow case in mpfr_muldiv_z
(for mpfr_mul_q and mpfr_div_q).
[src/gmp_op.c] Added function mpfr_muldiv_z (currently static -- should
it be in the API?) that computes y = RND(x*n/d), where n and d are mpz
integers. Changed mpfr_mul_q and mpfr_div_q to use this function.
Note: the code of the general case is currently the same as the old
mpfr_mul_q/mpfr_div_q code, thus needs to be fixed.
[tests/tgmpop.c] Replaced GMP_RNDN by MPFR_RNDN.
[tests/tgmpop.c] Added testcase for mpfr_mul_q/mpfr_div_q bug noted
in src/gmp_op.c (due to intermediate overflow).
2010-08-17 Vincent Lefèvre <vincent@vinc17.net>
[src/logging.c] Added a comment about register_printf_function.
Added tools/ck-version-info Perl script with the same license as
Makefile.am, to check consistency concerning -version-info and
that the -version-info value is up-to-date.
Updated Makefile.am:
* In dist-hook, replaced complex sh code by a call to ck-version-info.
* Distribute ck-version-info (EXTRA_DIST).
Updated svn:ignore properties.
[Makefile.am] Put tools/get_patches.sh back to EXTRA_DIST.
[src/Makefile.am] Fixed -version-info (I forgot to increment CURRENT).
2010-08-17 Vincent Lefèvre <vincent@vinc17.net>
Source reorganization. In short:
* Added directories and moved related files into them:
- src for the MPFR source files (to build the library).
- doc for documentation files (except INSTALL, README...).
- tools for various tools (scripts) and mbench.
- tune for tuneup-related source files.
- other for other source files (not distributed in tarballs).
Existing directories:
- tests for the source files of the test suite (make check).
- examples for examples.
- m4 for m4 files.
* Renamed configure.in to configure.ac.
* Added/updated Makefile.am files where needed.
* Updated acinclude.m4 and configure.ac (AC_CONFIG_FILES line).
* Updated the documentation (INSTALL, README, doc/README.dev and
doc/mpfr.texi).
* Updated NEWS and TODO.
* Updated the scripts now in tools.
The following script was used:
#!/usr/bin/env zsh
svn mkdir doc other src tools tune
svn mv ${${(M)$(sed -n '/libmpfr_la_SOURCES/,/[^\]$/p' \
Makefile.am):#*.[ch]}:#get_patches.c} mparam_h.in \
round_raw_generic.c jyn_asympt.c src
svn mv mbench check_inits_clears coverage get_patches.sh mpfrlint \
nightly-test update-patchv update-version tools
svn mv bidimensional_sample.c speed.c tuneup.c tune
svn mv *.{c,h} other
svn mv FAQ.html README.dev algorithm* faq.xsl fdl.texi mpfr.texi \
update-faq doc
svn mv configure.in configure.ac
svn cp Makefile.am src/Makefile.am
svn rm replace_all
[Modifying some files, see above]
svn add doc/Makefile.am
svn add tune/Makefile.am
2010-08-16 Vincent Lefèvre <vincent@vinc17.net>
[Makefile.am] Updated -version-info (the interface hasn't really been
changed yet -- though the future bug fix / rewrite of mpfr_mul_q and
mpfr_div_q could be seen as an addition -- but this eases maintenance
and avoids -version-info conflict with the 3.0 branch).
[bidimensional_sample.c] Added copyright notice.
[ai.c] Prototype clean-up.
2010-08-16 Vincent Lefèvre <vincent@vinc17.net>
Avoid a compilation failure on OSF/1 (Tru64) 5.1 due to non-C99
conformance though <inttypes.h> is available. In various source
files and m4 files, use the following form only:
#if HAVE_INTTYPES_H
# include <inttypes.h>
#endif
#if HAVE_STDINT_H
# include <stdint.h>
#endif
Updated README.dev to mention this form.
2010-08-13 Vincent Lefèvre <vincent@vinc17.net>
[tests] Avoid warning due to -Wunused-but-set-variable (from future
GCC 4.6). Only let the one from tsubnormal.c because it's a TODO.
* mpf_compat.h: use the variables, that are there for prototype
checking.
* tpow.c, tpow_z.c: test the ternary value.
* tremquo.c: removed inex variables (the bug due to the MPFR value).
* tset.c: test the ternary value.
* tset_ld.c: removed the long double variable (it cannot be tested
in a portable way and the bug was an assertion failure).
* tzeta_ui.c: removed the inexact variable (not really useful here).
[get_f.c] Avoid warning due to -Wunused-but-set-variable (from
future GCC 4.6).
[gamma.c] Avoid warning due to -Wunused-but-set-variable (from
future GCC 4.6).
[gmp_op.c] Avoid warning due to -Wunused-but-set-variable (from
future GCC 4.6).
[exp_2.c] No longer define qn and sizer, which are no longer used since
r6919. This was detected by gcc-snapshot (4.6.0 prerelease) under Debian
(-Wunused-but-set-variable).
[NEWS] Update.
[ieee_floats.h] Avoid breaking aliasing-rules when _GMP_IEEE_FLOATS is
defined (e.g. with --with-gmp-build), by replacing a struct by a union
like in r6381 for long double.
[configure.in] Removed useless slash.
2010-08-12 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Prepare for new version 3.1.0.
[README.dev] Removed obsolete paragraph about the old prepare script.
[update-version] Detect errors.
Updated FAQ.html with update-faq.
[faq.xsl] Do not copy XML comments.
Updated FAQ.html with update-faq.
[README.dev] INRIAGforge -> INRIAGForge.
[README] Update:
* InriaGforge -> INRIAGForge (official typography).
* Updated URL of the Subversion FAQ (now on apache.org).
* README.dev provided via SVN only.
* Removed the old note about the old CVS repository.
2010-08-11 Vincent Lefèvre <vincent@vinc17.net>
[gmp_op.c] mpfr_mul_q and mpfr_div_q are still buggy; added comment.
[tests/tgmpop.c] Added missing "static".
2010-08-11 Philippe Théveny <philippe.theveny@laposte.net>
gmp_op.c: Fix ternary value returned by mpfr_mul_q and mpfr_div_q in overflow cases.
2010-08-04 Vincent Lefèvre <vincent@vinc17.net>
README.dev: updated "To make a release" (test of FP division by 0).
Support implementations where the floating-point division by 0 fails.
* acinclude.m4: added a test to check whether the FP division by 0
fails, and define MPFR_ERRDIVZERO in such a case.
* tests/tests.c: if MPFR_TEST_DIVBYZERO is defined, test whether
there has been a floating-point division by 0 (FE_DIVBYZERO or
FE_INVALID exception).
* tests/tgeneric.c: if MPFR_ERRDIVZERO is defined, disable the
huge and tiny cases.
* tests/t*_{flt,d,ld}.c: if MPFR_ERRDIVZERO is defined, disable
tests involving NaN and infinities.
[README.dev] Update about the compilers.
[README.dev] Mention clang.
[get_sj.c] Fixed bug found by John Regehr:
https://gforge.inria.fr/tracker/index.php?func=detail&aid=10839&group_id=136&atid=619
Note: the problem was an undefined behavior that could occur when
sizeof(mp_limb_t) < sizeof(intmax_t) and |x| was small enough,
because a right shift was >= the type width. However as the shifted
value was 0, most platforms should not be affected by this bug. This
problem was detected with clang -fcatch-undefined-ansic-behavior.
[tests/tget_sj.c] Added tests of 1 and -1.
[get_sj.c] Added assertions concerning
https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=10839&group_id=136
[configure.in] When logging is enabled, remove the possible -pedantic
from GMP's CFLAGS to avoid warnings about C conformance.
[mpfr-impl.h] Reverse-merged changeset r7042. The code was not
incorrect: the warning is due to the -pedantic from GMP's CFLAGS.
[mpfr-impl.h] Correction to avoid GCC warnings
warning: invalid storage class for function 'x_f'
warning: invalid storage class for function '__mpfr_log_cleanup'
when building MPFR with logging support.
2010-08-03 Vincent Lefèvre <vincent@vinc17.net>
[mpfrlint] Correction for the future MPFR source structure.
[mpfrlint] Execute check_inits_clears.
[check_inits_clears] Correction.
2010-08-02 Vincent Lefèvre <vincent@vinc17.net>
[Makefile.am] Moved ieee_floats.h from EXTRA_DIST to libmpfr_la_SOURCES.
[Makefile.am] Clean-up: removed gen_inverse.h from EXTRA_DIST because
it is already in libmpfr_la_SOURCES.
2010-08-01 Vincent Lefèvre <vincent@vinc17.net>
[mparam_h.in] Removed the comment about the dependency bug.
(svn merge -r7032:7031 mparam_h.in)
[Makefile.am] Added "BUILT_SOURCES = mparam.h", fixing bug
https://gforge.inria.fr/tracker/index.php?func=detail&aid=10810&group_id=136&atid=619
[mparam_h.in] Added a comment concerning the bug in the mparam.h dependency rule:
https://gforge.inria.fr/tracker/index.php?func=detail&aid=10810&group_id=136&atid=619
[mparam_h.in] Enable C mode for Emacs.
[mparam_h.in] Deleted trailing whitespace.
[mparam_h.in] Bug fix: added a newline at the end of the file.
2010-07-30 Vincent Lefèvre <vincent@vinc17.net>
Replaced
Contributed by the Arenaire and Cacao projects
by
Contributed by the Arenaire and Caramel projects
[AUTHORS] Updated a sentence.
Added configure.lineno (generated by configure) to svn:ignore property.
2010-07-29 Vincent Lefèvre <vincent@vinc17.net>
[README.dev] For announces, changed mpfr into mpfr-announce.
2010-07-26 Vincent Lefèvre <vincent@vinc17.net>
[ai.c] Replaced mp_exp_t by mpfr_exp_t.
2010-07-25 Vincent Lefèvre <vincent@vinc17.net>
[ai.c] Fixed several bugs in mpfr_ai.
2010-07-20 Sylvain Chevillard <Sylvain.Chevillard@inria.fr>
Updated bidimensional_sample to take into account the fact the mpfr_ai1 and mpfr_ai2 are now statically defined.
mpfr_ai1 and mpfr_ai2 are now declared static. Only mpfr_ai is global.
Forgot a declaration in the previous commit.
2010-07-20 Sylvain Chevillard <Sylvain.Chevillard@inria.fr>
Added automatic tuning of mpfr_ai.
More precisely:
* removed ai2.c: both implementations are now in the same file ai.c
* added thresholds and automatic choice of the method to use in function of the thresholds.
* added procedures for tuning functions like ai into tuneup.c
* added a tuning procedure into tuneup.c
2010-07-19 Vincent Lefèvre <vincent@vinc17.net>
[tests/tget_flt.c] Fixed printf strings (missing backslash).
2010-07-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tget_flt.c] completed previous commit
[tget_flt.c] print more information in case a test fails
2010-07-09 Vincent Lefèvre <vincent@vinc17.net>
[gamma.c] Added an assert concerning the mpfr_exp_t size.
[tests/tgamma.c] Use mpfr_set_str instead of mpfr_set_d.
[exp_2.c] Untabified.
2010-07-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[gamma.c] fixed bug reported on MPFR list:
https://sympa.inria.fr/sympa/arc/mpfr/2010-07/msg00001.html
In the underflow detection:
* we took log instead of log2
* at the end, we added the wrong terms
2010-07-01 Vincent Lefèvre <vincent@vinc17.net>
[mpfr-impl.h] Added a comment concerning the 'noreturn' property.
2010-06-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[exp_2.c] added 3 more bits to initial working precision. On a sample of 20247
tests by Sylvain Chevillard with precisions in [50, 100], the number
of Ziv's failures decreased from 1184 to 144, which is less than 1%
(to reduce to zero, we would have to increase the number of extra
bits from 8 to 17).
2010-06-28 Vincent Lefèvre <vincent@vinc17.net>
[round_prec.c] Applied a patch from Patrick Pélissier (with
slightly modified comments) to make mpfr_prec_round compatible
with non-mpfr_init allocation methods when no realloc is needed.
2010-06-25 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] Use AC_FUNC_ALLOCA to have HAVE_ALLOCA_H defined
when available. This problem was introduced when AC_FUNC_ALLOCA
was removed from configure.in in r6765. Note: building MPFR with
--with-gmp-build is not affected as GMP's config.h is used.
[mpfr-gmp.h] Reverted incorrect changeset r6987 (see code about alloca).
2010-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr-gmp.h] include alloca.h
[mpfr.texi] added comment about config.log
2010-06-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[exp_2.c] fixed problem reported by Sylvain Chevillard for large x, where the
cancelled bits were counted twice
2010-06-24 Vincent Lefèvre <vincent@vinc17.net>
[tests/tfprintf.c] Cosmetic improvement suggested by Denis Excoffier.
2010-06-23 Vincent Lefèvre <vincent@vinc17.net>
[README.dev] Minor change to match a filename on the website.
[tests/tout_str.c] Fixed bug introduced in r6976: changed size_t into
unsigned int for printf (the size of unsigned int is sufficient here).
2010-06-22 Vincent Lefèvre <vincent@vinc17.net>
[out_str.c] Handle the output errors.
[out_str.c] Handle output error in the special cases of mpfr_out_str
(and use MPFR_IS_SINGULAR like in the other functions).
2010-06-22 Philippe Théveny <philippe.theveny@laposte.net>
Fix wrong return value of mpfr_out_str on special values.
2010-06-22 Vincent Lefèvre <vincent@vinc17.net>
Updated version to 3.1.0-dev.
[README.dev] Added a paragraph about the precision, rounding mode and
exponent types.
In mpfrlint, detect the use of mp_exp_t and mp_prec_t.
Fixed the files that were generating warnings.
2010-06-22 Sylvain Chevillard <Sylvain.Chevillard@inria.fr>
I forgot to replace one occurrence of isqrt.
Use of __gmpfr_isqrt instead of my own isqrt wrapper.
Added a tool for nicely displaying which method is the best in function of x
and prec when several method can be used for evaluating a given function f in x
at precision prec.
2010-06-21 Vincent Lefèvre <vincent@vinc17.net>
[Makefile.am] Fixed dist-hook for -dev versions (I assumed that ||
and && were right associative, while they are left associative).
Thanks to Laurent Rineau for noticing this problem.
2010-06-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[exp_2.c] fixed inefficiency for large x: the initial precision was too small,
which had the effect that the first Ziv iteration did fail with
non-negligible probability (problem reported by Sylvain Chevillard).
Also in case of 2 iterations or more the K variable was corrupted.
Note (2012-03-03): huge inefficiency has been noticed when evaluating
mpfr_exp on an argument close to log(2^n) in RNDU:
https://sympa.inria.fr/sympa/arc/mpfr/2012-03/msg00000.html
One has an obvious hard-to-round case, meaning that several iterations
are needed and that K is corrupted. This changeset fixes this bug.
2010-06-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[INSTALL] added note about problem with MSVC runtime (seems to be fixed)
[Makefile] alternate patch to r6959 from Patrick Pelissier
[INSTALL] comments from Vincent Lefevre
[mbench] fixes to make mbench work again (tested with GCC 4.4.3)
[INSTALL] updated notes on Windows (contributed by Brian Gladman)
2010-06-10 Vincent Lefèvre <vincent@vinc17.net>
[tests/Makefile.am] Reordered check_PROGRAMS.
[README.dev] Untabified.
[BUGS] Update.
2010-06-09 Vincent Lefèvre <vincent@vinc17.net>
[INSTALL] Added a note on Mac OS X; thanks to FX Coudert and Fumihiro
Chiba: https://sympa.inria.fr/sympa/arc/mpfr/2010-06/msg00011.html
2010-06-08 Vincent Lefèvre <vincent@vinc17.net>
[INSTALL] Update concerning CC/CFLAGS and the --with-gmp-build option.
2010-06-07 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Added an item about the --with-gmp-build configure option and
the use of GMP's internal header files.
2010-06-06 Vincent Lefèvre <vincent@vinc17.net>
[exp_2.c] Reverted incorrect optimization patch r6922 (added a comment).
There were failures on 32-bit machines.
[mpfr-impl.h] Added log messages for the MPFR_GROUP_* macros.
[mpfrlint] Detect incorrect use of MPFR_LOG_MSG.
[ai2.c] Fixed build failure with --enable-logging, due to incorrect
MPFR_LOG_MSG usage (see README.dev).
README.dev: updated "To make a release".
[ai.c] Fixed build failure with --enable-logging, due to incorrect
MPFR_LOG_MSG usage (see README.dev).
2010-06-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[exp_2.c] speed improvement using MPFR_GROUP_* (from Patrick Pelissier):
Pass 69
mpfr_add: 63 / 102.97 / 126
mpfr_exp: 430 / 11861.26 / 46588
Was before we removed MY_MPZ_INIT:
Pass 50
mpfr_add: 63 / 103.09 / 126
mpfr_exp: 430 / 10911.86 / 44215
2010-06-04 Vincent Lefèvre <vincent@vinc17.net>
[exp_2.c] Removed useless and possibly incorrect cast
(in case -q doesn't necessarily fit in an int).
2010-06-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[exp_2.c] got rid of MY_INIT_MPZ, small slowdown, but code should be more
robust. Below are timings from Patrick Pelissier with mbench:
mpz_init:
Pass 78
mpfr_add: 63 / 102.86 / 126
mpfr_exp: 441 / 12067.81 / 47355
MY_MPZ_INIT
Pass 50
mpfr_add: 63 / 103.09 / 126
mpfr_exp: 430 / 10911.86 / 44215
Prec=53 bits (core 2 duo 64 bits)
2010-06-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[exp_2.c] fixed problem reported by Sylvain Chevillard with following code
and MPFR_EXP_2_THRESHOLD=36 (valgrind complains).
It was due to the fact that GMP might allocate extra limbs,
see https://gmplib.org/list-archives/gmp-devel/2010-June/001577.html.
The fix is not optimal in the sense that GMP does not give a bound
on the allocated memory, thus we can only guess.
#include "mpfr.h"
int main(void) {
mpfr_t x,w;
mpfr_init2(x, 37);
mpfr_init2(w, 37);
mpfr_set_str(x, "-1.000001100100100001111110110101010001p+20", 2, MPFR_RNDN);
mpfr_exp (w, x, MPFR_RNDN);
mpfr_clear (w);
mpfr_clear (x);
return 0;
}
2010-06-03 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] Math library check: removed rule specific to HP-UX
(only -lM was tested while this library may not be available; so,
let's use the default rule as -lm works).
[mpfr.texi] Arenaire -> Arénaire.
2010-06-02 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] 3.0 -> 3.0.0.
[NEWS] Added test coverage for MPFR 3.0.0.
2010-05-31 Vincent Lefèvre <vincent@vinc17.net>
[INSTALL] Added missing blank lines (consistency).
[tests/tset_z_exp.c] Fixed type in a printf.
2010-05-31 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[INSTALL] added instructions for "make tune"
[README.dev] completed missing instructions for "make tune"
[tset_z_exp.c] fixed two FIXME
2010-05-31 Vincent Lefèvre <vincent@vinc17.net>
[tests/tset_z_exp.c] Added 2 FIXME in the test.
[tests/tset_z_exp.c] Removed testcase bug20100531 (this was a bug in
the test, which didn't detect overflow cases due to too large random
exponent).
[tests/tset_z_exp.c] Added testcase bug20100531.
[mpfr.texi, NEWS] Update related to r6879: "Made defined the previously
undefined cases of mpfr_get_si, mpfr_get_ui, mpfr_get_sj, mpfr_get_uj,
mpfr_get_z and mpfr_get_z_2exp. In such cases, the erange flag is set.".
[mpfr.texi] Corrected mpfr_atan2 range (added in r6831).
2010-05-28 Vincent Lefèvre <vincent@vinc17.net>
[mpfr.texi] Made an example fit on 80 columns for the info manual.
[mpfr.texi] Changed some @math into @var in the mpfr_fmod description
(for consistency).
[mpfr.texi] Corrected a paragraph.
[mpfr.texi] Added an example to get the MPFR version (and at the same
time, check whether MPFR is already installed).
Added examples/version.c (and updated Makefile.am).
[mpfr.texi] Correction (English usage).
[Makefile.am] Improved dist-hook rule.
2010-05-27 Philippe Théveny <philippe.theveny@laposte.net>
Fix typo.
2010-05-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] removed one item, added one
[mpfr.texi] removed FIXME (resolved: Philippe confirmed that gmp_printf does
not work with mpf2mpfr.h)
2010-05-25 Vincent Lefèvre <vincent@vinc17.net>
Made defined the previously undefined cases of mpfr_get_si, mpfr_get_ui,
mpfr_get_sj, mpfr_get_uj, mpfr_get_z and mpfr_get_z_2exp. In such cases,
the erange flag is set.
2010-05-25 Sylvain Chevillard <Sylvain.Chevillard@inria.fr>
* 80 columns.
do ... while(0) style for macros.
2010-05-25 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Correction.
[mpfr.texi] Minor changes.
[INSTALL] Reverted incorrect changeset r6870.
[mpfr.texi] Added a comment about non-ASCII characters.
2010-05-25 Philippe Théveny <philippe.theveny@laposte.net>
More explicit documentation on the use of specifiers in printf function.
2010-05-25 Vincent Lefèvre <vincent@vinc17.net>
[mpfr.texi] Encoding correction for ±.
[NEWS, mpfr.texi] mpfr_custom_get_mantissa was renamed to
mpfr_custom_get_significand.
[tests/tstckintc.c] Changed mpfr_custom_get_mantissa into
mpfr_custom_get_significand (but mpfr_custom_get_mantissa
was still working thanks to the #define).
[mpfr.h, stack_interface.c] Changed mpfr_custom_get_mantissa into
mpfr_custom_get_significand (r6862 was incomplete).
[mpfr.h] <stdint.h> support: also test _STDINT (for MS Visual Studio).
Thanks to Brian Gladman for the information.
[buildopt.c] Missing #include "mpfr-impl.h" for cygwin builds.
[mpfrlint] Detect such errors (mpfr-impl.h may be needed because it
includes config.h when there is one).
2010-05-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr.texi] more changes after answers by Vincent to my questions
2010-05-24 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Reformat / fixed typography.
[sub1sp.c] Fixed a problem that appeared after mpfr_prec_t has been
made signed. It was visible on PowerPC (tested on Linux 32 bits and
on Mac OS X 32 & 64 bits), but could potentially affect any platform
as a negative shift count was generated. As the faulty expressions
were in a MPFR_ASSERTD, the failure could occur only when assertion
checking had been enabled.
2010-05-22 Vincent Lefèvre <vincent@vinc17.net>
[README.dev] Removed trailing spaces.
[README.dev] Added information about intmax_t and corresponding macros.
Detect when the intmax_t type is available but INTMAX_MAX doesn't work
(e.g. with gcc -ansi -pedantic-errors in 32-bit mode under GNU/Linux).
New macros MPFR_UINTMAX_MAX, MPFR_INTMAX_MAX and MPFR_INTMAX_MIN are
defined and used internally instead of UINTMAX_MAX, INTMAX_MAX and
INTMAX_MIN. If these C99 macros work, then the MPFR_* macros use them,
otherwise MPFR uses its own definitions.
mpfr_div_ui8 and mpfr_mul_ui5 didn't have to be exported.
[ai2.c] GNU style.
[ai2.c] Style correction (necessary for ansi2knr, if still useful).
[ai.c, ai2.c] Untabified / removed trailing spaces.
[ai.c] GNU style.
[mpfr.texi] Corrected the paragraph about whether MPFR is installed.
[mpfr.texi] Corrections and answers to PZ comments from r6831.
The document encoding is now UTF-8.
2010-05-21 Vincent Lefèvre <vincent@vinc17.net>
[mpfr.texi] n-char-sequence was changed into n-char-sequence-opt
in r6132, but I forgot to update all the occurrences.
2010-05-21 Sylvain Chevillard <Sylvain.Chevillard@inria.fr>
* Removed double precision numbers.
* Handle +0 and -0 the same way.
* Use MPFR_GET_EXP in ai2.c
2010-05-20 Sylvain Chevillard <Sylvain.Chevillard@inria.fr>
* Corrected a bug when x=0 (MPFR_GET_EXP requires to assert that x!=0).
Corrected some warnings.
Corrected an error that prevented the doc from compiling.
2010-05-20 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: corrections.
2010-05-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr.texi] explain why mpfr_sum uses an array of pointers to mpfr_t
[mpfr.texi] changes after a complete reading of the documentation.
There are some issues left that I don't know how to solve,
they are marked with @c PZ in mpfr.texi.
2010-05-19 Vincent Lefèvre <vincent@vinc17.net>
[mpfr.texi, NEWS] Noted that the mpfr_ai implementation is incomplete
and experimental.
[ai.c] Use MPFR_IS_SINGULAR. Added a FIXME comment for Ai(0).
Type corrections for C++ compilers (in particular, mpfr_rnd_t vs int).
[ai.c] Fixed possible problem in reduced exponent range.
Removed trailing spaces.
2010-05-19 Sylvain Chevillard <Sylvain.Chevillard@inria.fr>
* Removed some warnings.
* More conform to GNU coding standards.
2010-05-19 Vincent Lefèvre <vincent@vinc17.net>
Removed obsolete patch-aclocal-icc and updated README.dev (about
"To make a release").
[Makefile.am] Added a comment concerning -version-info and MPFR 3.0.x.
ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
[mpfr.texi] Preliminary interfaces are no longer preliminary.
[mpfr.texi] API Compatibility: mention the detection of the availability
of intmax_t with C++ compilers.
[mpfr.texi] signness -> signedness (thanks to Philippe).
[mpfr.texi] Missing @code.
[mpfr.texi] Corrected C terminology (table -> array).
2010-05-18 Vincent Lefèvre <vincent@vinc17.net>
[mpfr.texi, NEWS] Mention that mpfr_ai is a new function in MPFR 3.0.
Removed obsolete prepare script (autoreconf does the same thing).
2010-05-18 Sylvain Chevillard <Sylvain.Chevillard@inria.fr>
* I added a new implementation of Airy Ai. This implementation uses Smith's
algorithm.
Currently, it is provided as a separate implementation mpfr_ai2.
* Please note that both mpfr_ai and mpfr_ai2 need to efficiently evaluate
Gamma(1/3) and Gamma(2/3). This is provided by functions in the file
gammaonethird.c
* There is no test file for mpfr_ai2 since it should quickly disappear behind
a single implementation using the best of mpfr_ai and mpfr_ai2.
However, if necessary, a test file can be obtained by copying tai.c and
replacing mpfr_ai by mpfr_ai2 everywhere.
* I do not know if gammaonethird.c will remain like that in the future. Should
we make this implementation available as a public MPFR function? In this case,
I have to write a wrapper for providing a correctly rounded implementation.
Moreover, it contains functions that could be interesting for the
implementation of other functions (the functions mpfr_div_ui*). Maybe, it
could be worth providing a file specially for this purpose.
2010-05-18 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] Added release name.
[NEWS] Updated "Changes from versions 2.3.* to version 2.4.0"
from MPFR 2.4.2.
[mpfr.texi] Completed Section 6.1 "Type and Macro Changes".
[mpfr.texi] Updated Section 6.1 "Type and Macro Changes".
[mpfr.texi] Missing space.
[mpfr.texi] Updated Section 6.1 "Type and Macro Changes".
[NEWS] A bit less ambiguous...
[NEWS] More details for mp_rnd_t/mpfr_rnd_t, like mp_prec_t/mpfr_prec_t.
2010-05-17 Vincent Lefèvre <vincent@vinc17.net>
Added "API Compatibility" section to the MPFR manual.
TODO: Section 6.1 "Type and Macro Changes".
[NEWS] mpfr_strtofr now accepts bases from 37 to 62 (r5965).
2010-05-10 Vincent Lefèvre <vincent@vinc17.net>
INSTALL: updated section about MS Windows.
INSTALL: updated section about MS Windows.
2010-05-08 Vincent Lefèvre <vincent@vinc17.net>
[tests/tests.c] Fixed code when _MPFR_PREC_FORMAT != 3.
2010-05-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tests.c] fixed compiler warning (found by nightly tests)
2010-05-07 Vincent Lefèvre <vincent@vinc17.net>
New exponent type mpfr_exp_t for MPFR (replacing GMP's mp_exp_t).
[README.dev] Updated a paragraph concerning signed and unsigned types.
Changed the precision type mpfr_prec_t from an unsigned integer type
into the corresponding signed integer type, in order to avoid problems
due to the usual arithmetic conversions when mixing mpfr_prec_t and
mp_exp_t in an expression.
* NEWS: mentioned this change.
* mpfr-impl.h: removed MPFR_INTPREC_MAX (which wasn't used) and updated
the MPFR_UNSIGNED_MINUS_MODULO(S,A) macro, which assumed that A was
unsigned; this macro now works even when A is signed.
* mpfr.h: added mpfr_uprec_t; updated mpfr_prec_t and MPFR_PREC_MAX.
* tests/tcheck.c: disabled a test on MPFR_PREC_MAX+1 with MPFR >= 3
(this test doesn't work with a signed mpfr_prec_t and isn't needed).
Note: all tests pass under GNU Linux x86 and x86_64.
[tests/tcheck.c] Forgot to remove a printf (added during testing).
[tests/tcheck.c] Support signed mpfr_prec_t (avoid integer overflow).
[tests/mpf_compat.h] Fixed prototype of function main.
[mpfr.h] Added a comment concerning the definition of MPFR_PREC_MAX.
2010-05-06 Vincent Lefèvre <vincent@vinc17.net>
print_rnd_mode.c: added an assertion so that we do not forget to update
this file after a new rounding mode is added.
2010-05-03 Vincent Lefèvre <vincent@vinc17.net>
[mpfr.texi] Added a paragraph about multiple inclusions of mpfr.h and/or
gmp.h header files.
2010-05-03 Philippe Théveny <philippe.theveny@laposte.net>
Update documentation for mpfr_print_rnd_mode.
2010-05-03 Vincent Lefèvre <vincent@vinc17.net>
To avoid breaking the ABI when faithful rounding gets implemented, added
MPFR_RNDF to the mpfr_rnd_t enum type now, and removed MPFR_RND_MAX from
the enumeration (it is now defined as a macro in mpfr-impl.h).
fits_* (signed version): corrections and optimizations.
[fits_uintmax.c, fits_u.h] Some casts could be incorrect in the case
mp_exp_t > mpfr_prec_t. Set prec to the int type since in practice,
prec will be small enough to fit in an int. The fact that prec is now
signed allows us to remove a useless test (also note that prec should
be computed at compile time, so that this should be at least as fast).
[fits_uintmax.c, fits_u.h] Comments: doesn't -> don't
mpfr.texi: updated the month.
2010-05-03 Philippe Théveny <philippe.theveny@laposte.net>
Add specifier 'Y' for the rounding away from zero mode in printf-like functions.
2010-04-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr.texi] removed obsolete mpfr_round_prec
2010-04-30 Vincent Lefèvre <vincent@vinc17.net>
[fits_intmax.c,fits_s.h] Added FIXME comments.
Optimized fits_u.h and made fits_uintmax.c like fits_u.h for the
special numbers.
Optimized mpfr_fits_uintmax_p.
Changed mp_prec_t into mpfr_prec_t.
2010-04-19 Vincent Lefèvre <vincent@vinc17.net>
[configure.in] r6765 introduced non-POSIX syntax. Fixed.
2010-04-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[configure.in] check for GMP internal files only with --with-gmp-build
2010-04-12 Vincent Lefèvre <vincent@vinc17.net>
[NEWS] New function mpfr_regular_p (was added in r6417, 2009-09-14).
2010-04-07 Vincent Lefèvre <vincent@vinc17.net>
[mpfr-gmp.h] Fixed alloca prototype (bug detected by tcc 0.9.25
under Linux/x86_64).
2010-03-24 Vincent Lefèvre <vincent@vinc17.net>
[mpfr.texi] Improved/corrected the documentation of functions
mpfr_lgamma, mpfr_digamma, mpfr_j0/j1/jn, mpfr_y0/y1/yn, mpfr_agm,
mpfr_hypot and mpfr_min_prec.
[mpfr.texi] Removed a "currently" that is no longer needed.
[mpfr.texi] Updated description of mpfr_atan2, now that IEEE 754-2008
has been published and follows the same conventions as C99 for atan2.
[mpfr.texi] Updated description of mpfr_pow, now that IEEE 754-2008
has been published and follows the same conventions as C99 for pow.
(IEEE 754-2008 doesn't currently specify pow(±inf,non-zero), but
I've suggested a correction for the errata page.)
2010-03-23 Vincent Lefèvre <vincent@vinc17.net>
[mpfr.texi] Improved documentation of mpfr_print_rnd_mode (from a
suggestion by Chris Saunders).
2010-03-22 Vincent Lefèvre <vincent@vinc17.net>
[mpfr.texi] Various corrections and other improvements.
[mpfr.texi] Improved the documentation of mpfr_dim too.
2010-03-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr.texi] improved the documentation of mpfr_rec_sqrt and mpfr_cbrt
(thanks Vincent)
[mpfr.texi] improved documentation of mpfr_sqrt and mpfr_sqrt_ui
2010-03-21 Vincent Lefèvre <vincent@vinc17.net>
[mpfr.h] Added a comment about integer overflows in macros.
2010-03-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tai.c] enable first test of check_large, and reduced total time
2010-03-19 Sylvain Chevillard <Sylvain.Chevillard@inria.fr>
Added a mention about the current limitation of mpfr_ai in mpfr.texi.
Removed check of ai.c for large arguments. I added in algorithms.tex a
mention about the fact that mpfr_ai is currently not made for large
arguments.
* Corrected problems regarding the GNU recommendations for formatting source code.
2010-03-18 Vincent Lefèvre <vincent@vinc17.net>
tests: added tai to the svn:ignore property.
2010-03-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tai.c] reduce the maximal exponents in test_generic()
also reduce the number of random tests to decrease the test time
2010-03-18 Vincent Lefèvre <vincent@vinc17.net>
README.dev: in the tests, use mpfr_equal_p rather than mpfr_cmp.
2010-03-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tai.c] replace mpfr_cmp by mpfr_equal_p
2010-03-18 Vincent Lefèvre <vincent@vinc17.net>
tests/tset_z_exp.c untabified.
mpfr.texi: removed trailing whitespace.
mpfr.texi: updated the month.
Untabified AUTHORS (consistency).
2010-03-18 Sylvain Chevillard <Sylvain.Chevillard@inria.fr>
* Corrected problems regarding the GNU recommendations for formatting source code.
* Corrected the date of the copyright.
2010-03-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tai.c] added test for large inputs
[AUTHORS] added Sylvain Chevillard
2010-03-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr.texi] added Sylvain as contributor
2010-03-17 Sylvain Chevillard <Sylvain.Chevillard@inria.fr>
* Added function mpfr_ai. The implementation is the most naive: it evaluates
the series step by step until it can stop.
A special strategy is used to detect possible problems when Ai(x) is very
close to 0.
* Updated algorithms.tex with the technical description of the implementation
of mpfr_ai.
* Added algorithm2e.sty and algorithm2e-compatibility.sty (necessary to
compile algorithms.tex now).
* Updated mpfr.texi to let it know this new function.
* Added a basic test file for mpfr_ai. I will add other test cases later.
* Added a small HOWTO to README.dev about how to add a new test file for new
functions.
2010-03-11 Vincent Lefèvre <vincent@vinc17.net>
GMP_RNDx -> MPFR_RNDx
2010-03-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tstrtofr.c] added test for 1.23e, cf
https://gmplib.org/list-archives/gmp-bugs/2010-March/001898.html
2010-03-11 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsqrt.c] Add the test -1 <= x/sqrt(x^2) <= 1, which corresponds
to -1 <= x/sqrt(x^2+y^2) <= 1 with y = 0. I don't think the test with
random y is still necessary, though, since even a bad sqrt accuracy
would not be detected.
2010-03-10 Vincent Lefèvre <vincent@vinc17.net>
[tests/tsqrt.c] Added a comment about the x/sqrt(x^2+y^2) test.
2010-03-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tsqrt.c] fixed bug reported by Sam Rawlins
(https://sympa.inria.fr/sympa/arc/mpfr/2010-03/msg00007.html)
Note: this "bug" had no noticeable consequences; this can just be seen
as an incomplete test.
2010-02-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[NEWS] added item
2010-02-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[acinclude.m4] now also recognize "IEEE double, little endian" long-double
format (not tested, should happen on ARM)
[acinclude.m4] added recognition of "IEEE double big endian" long double format
(tested on gcc40.fsffrance.org and gcc53, both PowerPC's)
2010-02-24 Vincent Lefèvre <vincent@vinc17.net>
[acinclude.m4] Added test for long double = double-double (GCC/PowerPC).
This test cannot currently be reliable, so we just output a warning.
2010-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[NEWS] minor grammar fix
[NEWS] be more precise about API compatibility
[mpfr.h] added #define mpfr_get_z_exp mpfr_get_z_2exp for compatibility
2010-02-23 Vincent Lefèvre <vincent@vinc17.net>
tests: added tset_z_exp to the svn:ignore property.
2010-02-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed mpfr_get_z_exp -> mpfr_get_z_2exp (old function)
mpfr_set_z_exp -> mpfr_set_z_2exp (new function)
added new function mpfr_set_z_exp (companion to mpfr_get_z_exp)
2010-02-18 Vincent Lefèvre <vincent@vinc17.net>
* Added tests/tstdint.c to test the double inclusion of mpfr.h when only
the second occurrence needs <stdint.h> (this can happen when one uses
several libraries that use MPFR under different conditions).
* Added tstdint to the svn:ignore property of "tests".
* TODO: mentions that tstdint should be added to check_PROGRAMS in
the tests/Makefile.am file once this is fixed.
mpfr.texi: updated Section "Internals".
2010-02-16 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: updated the month.
mpfr.h: disable the INTMAX_C / UINTMAX_C test with C++ compilers as it
doesn't work well in this case (e.g. possible failure with Boost); see
https://sympa.inria.fr/sympa/arc/mpfr/2010-02/msg00025.html
and the whole discussion.
mpfr.texi: update.
2010-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[configure.in] removed check for C++ and Fortran compiler (comment said to
remove it for libtool >= 2.0)
2010-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] dummy change to check if we still get commit mails
2010-01-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr.texi] added note about mpfr_set_str
2010-01-25 Vincent Lefèvre <vincent@vinc17.net>
Simplified get_patches.sh; minor consequence: the trailing space in
the string returned by mpfr_get_patches() when there are patches is
no longer present (this trailing space wasn't desired anyway).
configure.in: updated message for different gmp.h and libgmp versions.
See <https://sympa.inria.fr/sympa/arc/mpfr/2010-01/msg00051.html>.
2010-01-20 Vincent Lefèvre <vincent@vinc17.net>
FAQ.html, faq.xsl, README, TODO: slightly changed the copyright notice
to make it consistent with the one of the other files. In short, "and
the GNU General Public License" has been removed, but it was ambiguous
(we did not say which version of the GNU GPL) and useless (for GPLv3)
because the LGPLv3 is compatible with the GPLv3:
https://www.gnu.org/licenses/gpl-faq.html#WhatDoesCompatMean
INSTALL:
* added copyright notice (at the top, like GMP);
* replaced "Installing MPFR" by "Installing GNU MPFR".
Copyright notice update: added 2010 with
perl -pi -e 's/2009 Free Software/2009, 2010 Free Software/' **/*(^/)
under zsh, reverting the ChangeLog file and the mbench directory.
tests: added turandom to the svn:ignore property.
INSTALL: updated paragraphs about the search paths (in particular,
--with-gmp=/usr/local is no longer chosen as an example as it does
not work as expected; a note has been added about that).
INSTALL: rewrote a paragraph about search paths.
2010-01-18 Philippe Théveny <philippe.theveny@laposte.net>
[urandom.c] Fix case emin > 0.
2010-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] added more details for random distribution functions
[tprintf.c, tfprintf.c] cleaned up previous commit
2010-01-18 Vincent Lefèvre <vincent@vinc17.net>
tests/turandom.c: updated a test (if emin > 1 and rnd == MPFR_RNDN,
then the result is necessarily 0).
tests/turandom.c: more tests in restricted exponent range.
urandom.c: corrected a comment.
2010-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tprintf.c,tfprintf.c] print obtained chain in test #8
(https://sympa.inria.fr/sympa/arc/mpfr/2009-12/msg00035.html)
2010-01-18 Philippe Théveny <philippe.theveny@laposte.net>
[urandom.c] Fix bug in setting random exponent.
2010-01-16 Vincent Lefèvre <vincent@vinc17.net>
urandom.c: added a FIXME comment.
2010-01-15 Vincent Lefèvre <vincent@vinc17.net>
urandom.c: removed unused variable k; updated a comment.
2010-01-15 Philippe Théveny <philippe.theveny@laposte.net>
[urandom.c] Improve generation of random exponent.
[urandom.c] Fix bug introduced in r6667.
2010-01-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] added item
2010-01-15 Philippe Théveny <philippe.theveny@laposte.net>
[urandom.c] Fix case nextabove(0) in reduced exponent range.
[tests/turandom.c] Change accumulation of ternary value in the loop, it was not portable in system with sign and magnitude representation for integers.
[urandom.c] Move generation of a random rounding bit in a separate function.
[urandom.c] Remove trailing whitespace.
[urandom.c] Call mpfr_nextabove in maximum exponent range.
2010-01-15 Vincent Lefèvre <vincent@vinc17.net>
urandom.c: added a FIXME so that it is not forgotten.
mpfr.texi: updated the month.
mpfrlint: require bash.
2010-01-14 Vincent Lefèvre <vincent@vinc17.net>
urandom.c: clean-up (avoid a useless goto).
README.dev: added a paragraph (use MPFR_ASSERTN, not printf + exit).
2010-01-14 Philippe Théveny <philippe.theveny@laposte.net>
[mpfr.texi] Cosmetic change.
[urandom.c, mpfr.texi] Change the behavior of mpfr_urandom to the usual mpfr function interface (wrt the ternary value and the out-of-range behavior).
[tests/turandom.c] Check new behavior and add a test for the inclusion in [0, 1].
2010-01-13 Philippe Théveny <philippe.theveny@laposte.net>
New function mpfr_urandom.
2010-01-11 Vincent Lefèvre <vincent@vinc17.net>
README.dev: added a note about patches and the autotools.
2010-01-10 Vincent Lefèvre <vincent@vinc17.net>
Added mpfrlint test for the required autoconf versions (see r6649).
2010-01-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[README.dev] required version of autoconf did not agree with acinclude.m4
2010-01-08 Vincent Lefèvre <vincent@vinc17.net>
configure.in: replaced BITS_PER_MP_LIMB by GMP_NUMB_BITS (should have
been done in r6645).
mpfrlint: check that GMP_LIMB_BITS isn't used.
Replaced GMP_LIMB_BITS by GMP_NUMB_BITS to use only one of these macros.
2010-01-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[configure.in] put back test BITS_PER_MP_LIMB == BYTES_PER_MP_LIMB * CHAR_BIT
(this is done only with --with-gmp-build, and BYTES_PER_MP_LIMB
is defined in this case in gmp-impl.h, at least in GMP 5)
BITS_PER_MP_LIMB -> GMP_LIMB_BITS
got rid of BYTES_PER_MP_LIMB in configure.in (no longer defined by GMP)
Note[VL] (mpfr-impl.h): a mpn_sqr_n() macro is defined to use mpn_mul
if it is not already defined (in gmp-impl.h from GMP 4.x).
2009-12-23 Vincent Lefèvre <vincent@vinc17.net>
[mbench/Makefile] Patch from Patrick Pelissier to solve the -I problem
with GCC.
2009-12-21 Vincent Lefèvre <vincent@vinc17.net>
[mbench/Makefile] Added a comment (warning about the use of -I).
2009-12-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
patch from Patrick Pelissier
2009-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[scale2.c] added missing include (compilation with --with-gmp-build did fail)
[exp_2.c] small improvements in Smith method: compute x^{2i} as (x^i)^2 instead
of x^{i-1} * x. The error analysis is unchanged.
[tuneup.c] fix for sin_cos threshold (we had a problem since mpfr_sin_cos
was calling mpfr_cos, which was calling mpfr_sincos_fast in some
cases
[mparam_h.in] put new thresholds for Core 2 64-bit
2009-12-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[acinclude.m4] reversed order for case "quad, mais en little endian" for
coherence with other cases
2009-12-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
patch to recognize IEEE quad, little endian format for "long double"
[scale2.c] now mpfr_scale2 is included in mpfr-impl.h, instead of #including
"scale2.c" twice (thus it was compiled twice)
2009-12-07 Vincent Lefèvre <vincent@vinc17.net>
sin_cos.c: in case of tiny inputs, keep the flags. In practice, this
fixes the following bug in mpfr_sin_cos (shown by the latest additions
to tsin_cos.c): if emin is the minimal exponent (MPFR_EMIN_MIN), the
absolute value of the input is the minimum positive number and the
rounding mode is toward 0 (or equivalent), then the underflow flag is
dropped. The other exception cases (e.g., in case of reduced exponent
range) are handled by mpfr_check_range().
tests/tsin_cos.c: in consistency(), better error message.
tests/tsin_cos.c: in consistency(), improved testing on underflow case.
tests/tsin_cos.c: in consistency(), added testing on underflow case.
tests/tsin_cos.c: in consistency(), fixed flags testing.
tests/tsin_cos.c: in consistency(), test also the flags.
tests/tsin_cos.c: in consistency(), test also the returned value
(the one that gives inexact-related information).
2009-11-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tfits.c] converted to GNU coding style
2009-11-30 Vincent Lefèvre <vincent@vinc17.net>
README.dev: updated "To make a release".
uceil_exp2.c: fixed indentation.
2009-11-29 Vincent Lefèvre <vincent@vinc17.net>
mpfr-impl.h: got rid of broken code when _GMP_IEEE_FLOATS was defined
(broken aliasing rules, yielding failures with GCC 4.5.0 20091119).
2009-11-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tset_ld.c] now perform tests even if old gcc bug is present
2009-11-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tget_d.c] removed workaround for old gcc bug. Comment was:
/* workaround for gcc bug on m68040-unknown-netbsd1.4.1,
where DBL_MIN gives (1-2^(-52))/2^1022 */
[tadd.c, tmul.c] got rid of workaround for old gcc bug. Comment was:
/* Parameter "z1" of check() used to be last in the argument list, but that
tickled a bug in 32-bit sparc gcc 2.95.2. A "double" in that position is
passed on the stack at an address which is 4mod8, but the generated code
didn't take into account that alignment, resulting in bus errors. The
easiest workaround is to move it to the start of the arg list (where it's
passed in registers), this macro does that. FIXME: Change the actual
calls to check(), rather than using a macro. */
[strtofr.c] removed patch for old FreeBsd/Alpha bug
(https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=72024)
2009-11-26 Vincent Lefèvre <vincent@vinc17.net>
[pow_si.c] Updated comment added in r4355 concerning a bug
in Sun's compiler for Solaris/x86.
Updated comments concerning the old FreeBSD bug 72024 on LONG_MIN / 1.
2009-11-25 Vincent Lefèvre <vincent@vinc17.net>
[tfprintf.c,tprintf.c] Fixed other types in function with variable
arguments (even though there were no warnings on the tested machine).
[tfprintf.c,tprintf.c] Fixed types in function with variable arguments.
2009-11-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tfprintf.c,tprintf.c] applied patch from Philippe Theveny
[acinclude.m4] removed check for %zu, no longer needed
[acinclude.m4] added test for %zu
[tfprintf.c,tprintf.c] added #ifdef's for NPRINTF_ZU
2009-11-25 Vincent Lefèvre <vincent@vinc17.net>
configure.in: corrected a comment.
tests/tstckintc.c: fixed types for the printf %p format specifier.
2009-11-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tget_flt.c] replaced %a by %.8e
[tget_d.c,tget_ld_2exp.c] replaced %a and %La by %.16e and %.16Le
[tget_d.c] removed C99-specific instruction
[nightly-test] added -ansi -pedantic-errors
2009-11-24 Vincent Lefèvre <vincent@vinc17.net>
configure.in: completed the GMP CC/CFLAGS detection.
configure.in: added a test to check for CC and CFLAGS in gmp.h only
when the user doesn't redefine them and he isn't cross-compiling.
configure.in: improved the GMP CC/CFLAGS detection.
configure.in: try to fix the GMP CC/CFLAGS detection. Not finished.
configure.in: replaced "test ... -o ..." (obsolete in POSIX)
by "test ... || test ...".
configure.in: replaced "test ... -a ..." (obsolete in POSIX)
by "test ... && test ...".
INSTALL: made instructions more clear.
2009-11-23 Vincent Lefèvre <vincent@vinc17.net>
README.dev: updated "To make a release".
README.dev: last things to do when making a release.
2009-11-22 Vincent Lefèvre <vincent@vinc17.net>
sin_cos.c: fixed a potential bug by changing a rnd_mode into MPFR_RNDZ
in mpfr_can_round. Indeed, in r4574, the change from
if (!mpfr_can_round (c, m, GMP_RNDZ, rnd_mode, MPFR_PREC (z)))
to
if (!mpfr_can_round (c, m, GMP_RNDN, rnd_mode,
MPFR_PREC (z) + (rnd_mode == GMP_RNDN)))
looks wrong to me: in RNDN, the extra bit due to rnd_mode == GMP_RNDN
changes a RNDN worst case into a RNDZ worst case.
Note: The second mpfr_can_round with the same problem has been fixed
in r6513.
tests/tsin_cos.c: ported bug20091122 from the 2.4 branch to the trunk.
But no failure in the trunk.
2009-11-20 Vincent Lefèvre <vincent@vinc17.net>
tests/tconst_pi.c: fixed types for C++.
Changeset r6162 broke Solaris builds. Fixed that by no longer checking
INTMAX_MAX and UINTMAX_MAX to detect use of <stdint.h> / <inttypes.h>.
2009-11-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[cos.c] fixed case where reduced argument is zero
2009-10-30 Vincent Lefèvre <vincent@vinc17.net>
tcos.c: added a testcase yielding an assertion failure (this bug makes
tsin_cos fail).
tests/tsin_cos.c: ported the consistency test from the 2.4 branch.
This yields an assertion failure (Linux/x86_64).
2009-10-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[cache.c] fixed bug with directed rounding
[tconst_pi.c] added test for bug with directed rounding
2009-10-21 Vincent Lefèvre <vincent@vinc17.net>
exceptions.c: improved a comment.
tpow.c: added an overflow test.
tpow.c: added an overflow test in RNDZ.
2009-10-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] added efficiency item
2009-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[lngamma.c] fixed typo, added comments about argument reduction, and replaced
code using doubles
[TODO] added efficiency item
2009-10-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[exp.c] binary splitting is now used for prec >= MPFR_EXP_THRESHOLD
(instead of prec > MPFR_EXP_THRESHOLD before). This is more
consistent with the other thresholds.
[TODO] added efficiency item
[mparam_h.in] added /* bits */ for MPFR_EXP_THRESHOLD and MPFR_EXP_2_THRESHOLD
2009-10-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tsin_cos.c] removed useless instruction, and added comments
[sin_cos.c] fixed call to mpfr_can_round (rounding mode was wrong)
[tsin_cos.c] added new test
[li2.c] fixed bug when x is near 0
[tli2.c] added new test
2009-10-09 Vincent Lefèvre <vincent@vinc17.net>
tests/tsin_cos.c: mp_rnd_t -> mpfr_rnd_t.
tests/tsin_cos.c: added a comment about bug20091008, corresponding to
r6507; in fact, the bug concerns only the return value (see r6444).
2009-10-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[sin_cos.c] fixed error analysis
[tsin_cos.c] added new test
2009-10-07 Vincent Lefèvre <vincent@vinc17.net>
tests/tsin_cos.c: mp_rnd_t -> mpfr_rnd_t.
tests/tsin_cos.c: removed trailing spaces.
2009-10-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tsin_cos.c] changed binary to hexadecimal string (was too long for C89)
[sin_cos.c] fixed bug introduced in r6447 (some variables had their precision not updated in Ziv's loop)
[tsin_cos.c] added a new test
2009-09-29 Vincent Lefèvre <vincent@vinc17.net>
FAQ update.
2009-09-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr.texi] added note about mpfr_can_round
[tcan_round.c] added more tests
2009-09-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[README.dev] added item for new releases: we should say if they are binary
and/or API compatible with previous releases (we often forgot
to say it in the past)
2009-09-23 Vincent Lefèvre <vincent@vinc17.net>
tests: added tget_flt to the svn:ignore property.
tests/Makefile.am: added information about LOADLIBES.
2009-09-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/Makefile.am] put back LOADLIBES=... (enables to compile a program foo.c
in the test directory by simply doing "make foo")
[atan.c] updated the comments
2009-09-22 Vincent Lefèvre <vincent@vinc17.net>
atan.c: added a FIXME comment.
atan.c: added some assertions.
2009-09-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[atan.c] implemented argument reduction (cf error analysis in algorithms.tex)
2009-09-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/Makefile.am] removed LOADLIBES=...
2009-09-20 Vincent Lefèvre <vincent@vinc17.net>
mpfrlint: check that lines aren't too long.
Makefile.am: line-wrap libmpfr_la_SOURCES (M-q with Emacs) for
compatibility with some vendor grep.
Makefile.am, tests/Makefile.am: patch from Ralf Wildenhues.
https://lists.gnu.org/archive/html/bug-automake/2009-09/msg00033.html
2009-09-18 Vincent Lefèvre <vincent@vinc17.net>
mpfr-impl.h, sin_cos.c, tests/tsin_cos.c: mp_rnd_t -> mpfr_rnd_t.
sin_cos.c: GMP_RNDx -> MPFR_RNDx.
sin_cos.c: untabified.
frac.c, tests/tfrac.c: fixed underflow case in mpfr_frac and added
testcase.
2009-09-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[acos.c] initial working precision was too small
2009-09-18 Vincent Lefèvre <vincent@vinc17.net>
modf.c: no longer extend the exponent range at all, since there are
no intermediate computations (note: the mpfr_frac bug that has just
been fixed affected this change in modf.c).
[frac.c] Patch r6456 was incorrect: the problem with the non-significant
bits had to be dealt with only in the case t = r. This is now fixed.
tests/tfrac.c: reverted overflow case test (was incorrect because the
input was too large).
tests/tfrac.c: also test the overflow case.
tests/tfrac.c: more tests (case where the fractional part rounds to 1).
2009-09-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[NEWS] added item
[sin.c,cos.c] use mpfr_sincos_fast when prec >= MPFR_SINCOS_THRESHOLD
2009-09-18 Vincent Lefèvre <vincent@vinc17.net>
tests/tfrac.c: more tests (there are also problems in rounding away
from zero or equivalent).
2009-09-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added tuning mechanism for mpfr_sin_cos
2009-09-18 Vincent Lefèvre <vincent@vinc17.net>
tests/tfrac.c: also test the ternary value (it is incorrect too).
frac.c: fixed bug in mpfr_frac (the non-significant bits in low limb
were not cleared).
tests/tfrac.c: improved the testcase so that it triggers the bug for
both 32 bits and 64 bits.
tests/tfrac.c: added a comment for latest testcase.
tests/tfrac.c: added testcase for bug in mpfr_frac.
tests/tmodf.c: typo in error message.
modf.c: extending the exponent range in the first two cases is useless
because there are no intermediate computations (just a mpfr_set). Let's
do that only for the general case.
tests/tmodf.c: added overflow tests.
modf.c: corrected a comment (rounding can yield an overflow, but not
an underflow).
2009-09-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[sin_cos.c] added asymptotically fast code, with threshold currently hardcoded
at 20000 bits, should be determined by tuneup.c
2009-09-18 Vincent Lefèvre <vincent@vinc17.net>
Deleted trailing spaces.
2009-09-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[modf.c] changed semantics of return value in accordance with mpfr_sin_cos
2009-09-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[sin_cos.c] more precise meaning of the return value
[sinh_cosh.c] idem as above
[taway.c] fixed to check the more precise return value
2009-09-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr.texi] t was not initialized in Newton's example
2009-09-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed _binary32 into _flt for file names too:
svn mv get_binary32.c get_flt.c
svn mv set_binary32.c set_flt.c
svn mv tests/tget_binary32.c tests/tget_flt.c
[TODO] removed an item
[mpfr.texi] added an example for mpfr_prec_round
[NEWS] added mpfr_set_flt and mpfr_get_flt
changed suffix _binary32 -> _flt
[get_binary32.c] fixed a bug in subnormal range
2009-09-15 Vincent Lefèvre <vincent@vinc17.net>
mpfrlint: bug fix.
mpfr.texi: updated the month.
mpfrlint: execute svn in C locale.
mpfrlint: check mpfr.texi's UPDATED-MONTH.
2009-09-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tget_d.c] fixed FIXME
2009-09-15 Vincent Lefèvre <vincent@vinc17.net>
tget_d.c code is C99-only (bug introduced in r6424). Please fix!
2009-09-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[get_binary32.c] also forgot in previous commit
[set_binary32.c] file forgot in previous commit
added new functions mpfr_set_binary32 and mpfr_get_binary32
fixed bug in mpfr_get_d and mpfr_get_decimal64 for RNDA
[mpfr.texi] improved description of mpfr_sum, and fixed typo
2009-09-14 Vincent Lefèvre <vincent@vinc17.net>
mpfr.h: added mpfr_regular_p macro.
2009-09-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[sum.c] added reference
[get_ld.c] fixed bug reported by Nelson Beebe
https://sympa.inria.fr/sympa/arc/mpfr/2009-05/msg00061.html
[isregular.c] new function mpfr_regular_p
[iszero.c] fixed typo in comment
[tests/tisnan.c] added tests for mpfr_regular_p
2009-09-11 Vincent Lefèvre <vincent@vinc17.net>
vasprintf.c: changeset r6414 was incorrect, in particular under Linux
(at least some platforms), where wint_t is an unsigned int, not an int.
Instead, let's detect whether integer promotion will occur or not, even
though the ISO C99 standard requires a wint_t type that doesn't yield
an integer promotion (7.24.1#2), because mingw32 defines wint_t as an
unsigned short (thus with integer promotion).
2009-09-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[vasprintf.c] https://sympa.inria.fr/sympa/arc/mpfr/2009-09/msg00012.html
(changed __wint_type into int)
2009-09-08 Vincent Lefèvre <vincent@vinc17.net>
tests/tdigamma.c: added missing void in prototype.
2009-09-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[digamma.c] forgot to set sign for Psi(+Inf)
2009-09-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed function into bernoulli.c (which was static, included 3 times) into
an internal function mpfr_bernoulli_internal
2009-09-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] removed psi(=digamma)
2009-09-02 Vincent Lefèvre <vincent@vinc17.net>
tests/data/digamma: for the special values, use the new mode '*'
(exact cases) instead of 'n'.
tests.c: added special support for exact cases in data_check (to test
all the rounding modes and check the ternary value).
towards -> toward (consistency).
tests: added tdigamma to svn:ignore property.
digamma.c: moved a comment.
2009-09-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[digamma.c] fixed bug (emin/emax were not restored)
[data/digamma] added special values
[tests/tests.c] fix to allow putting nan in data/* files
[data/digamma] unitary test file for mpfr_digamma
[tdigamma.c] now use data/digamma
2009-09-02 Vincent Lefèvre <vincent@vinc17.net>
Removed trailing whitespace.
2009-09-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
bernoulli.c goes into EXTRA_DIST
[digamma.c] new function mpfr_digamma
[lngamma.c,li2.c] factored computation of Bernoulli numbers in new file
bernoulli.c (also used by digamma.c)
2009-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
replaced obsolete GMP functions (suggested by Brian Gladman):
1. mpz_div_2exp ==> mpz_fdiv_q_2exp
2. mpz_div_ui ==> mpz_fdiv_q_ui
3. gmp_randinit (state, GMP_RAND_ALG_LC, 128) ==> gmp_randinit_lc_2exp_size (state, 128)
(Didn't replace mpn_divrem by mpn_tdiv_qr since the parameters differ, and also
for efficiency reasons.)
2009-08-26 Vincent Lefèvre <vincent@vinc17.net>
tsprintf.c: fixed locale_da_DK test.
2009-08-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[csch.c,coth.c,csc.c,cot.c] fixed bug for tiny input and RNDA (result was
rounded to zero instead of away)
2009-08-26 Vincent Lefèvre <vincent@vinc17.net>
tests/tsprintf.c: bug fix (uncommented an "exit(1);").
2009-08-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tgeneric.c] revert previous change, bug is elsewhere
[tgeneric.c] temporary fix in mpfr_can_round call (mpfr_can_round does not
correctly handle MPFR_RNDA)
2009-08-26 Vincent Lefèvre <vincent@vinc17.net>
set_ld.c: replaced a struct by a union. The struct was triggering the
following warning with GCC 4.4:
dereferencing type-punned pointer will break strict-aliasing rules
(possibly due to possible memory alignment problems). The old code
looked strange anyway and unions are exactly for such kind of things.
2009-08-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tset.c] removed unused variables
2009-08-25 Vincent Lefèvre <vincent@vinc17.net>
tcmp_ld.c: use "long double" constants.
Note: this might solve the tcmp_ld failure reported on
https://www.linuxquestions.org/questions/linux-from-scratch-13/mpfr-2-4-1-check-failures-in-lfs-6-5-rc2-746538/
(not tested).
2009-08-24 Vincent Lefèvre <vincent@vinc17.net>
NEWS: update (new function mpfr_set_zero, added in r6339).
mpfr.texi: NaN has a sign bit (in its binary representation),
but as a FP datum, it does not have a sign.
2009-08-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr.texi] added mention of unspecified NaN sign bit for mpfr_set_nan
2009-08-21 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: do not use @code for roundTiesToAway and binary64 as this is
not code and the IEEE 754-2008 standard doesn't use special typography.
mpfr.texi: the sign bit of a NaN is unspecified.
2009-08-18 Vincent Lefèvre <vincent@vinc17.net>
Add examples into $docdir (without using a subdir, as this would be
a bit bloated just to add a few files).
* Added "examples" directory with a ReadMe file and 3 examples.
* Makefile.am: added files from the "examples" directory and changed
dist_doc_DATA into nobase_dist_doc_DATA so that the "examples"
directory is not stripped in the target directory $docdir.
* README: added "examples/".
get_str.c: corrected copyright notice, incorrectly modified in r6364.
2009-08-12 Philippe Théveny <philippe.theveny@laposte.net>
mpfr.texi: Fix typo.
get_str.c: Format a comment.
get_str.c vasprintf.c: Add support for the rounding away from zero mode.
mpfr.texi: MPFR_RNDA mode support in printf functions.
tests/tsprintf.c tests/tget_str.c: Test MPFR_RNDA support.
2009-08-06 Vincent Lefèvre <vincent@vinc17.net>
NEWS: update.
Install some documentation files.
2009-08-05 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: updated section "Installing MPFR".
mpfr.texi: corrected a spelling mistake.
Since GNU Automake 1.11 is available on too few platforms, removed its
requirement (reverted to 1.10 requirement: 1.10.1 was needed only for
dist-lzma, which has been removed). Instead, added hardcoded dist-xz
support (tested with both Automake 1.10.2 and Automake 1.11).
2009-08-04 Vincent Lefèvre <vincent@vinc17.net>
configure.in: replaced dist-lzma by dist-xz (the xz format is the
successor of the lzma format); as a consequence, automake 1.11 is
needed.
2009-07-30 Vincent Lefèvre <vincent@vinc17.net>
Makefile.am, tests/Makefile.am: added copyright notice (similar to
the one of the generated Makefile.in file).
Since COPYING.LESSER makes a reference to the GPLv3, updated COPYING
to the GPLv3. Autotools files are now distributed under the same license
as MPFR (to avoid any reference to the GPLv2).
Renamed COPYING.LIB as COPYING.LESSER (GNU Coding Standards, #7.3)
and updated all the references (except in ChangeLog).
Added algorithms.fdb_latexmk to svn:ignore property.
2009-07-30 Philippe Théveny <philippe.theveny@laposte.net>
tests/tset.c: With revision 6339, some tests were moved and added in the function check_special but this one was not called.
tests/Makefile.am: Strech check_PROGRAMS list to ease insertion of new tests.
Makefile.am: Sort tests in alphabetical order except the very first ones which are needed by the test suite itself.
2009-07-20 Philippe Théveny <philippe.theveny@laposte.net>
vasprintf.c mpfr.texi: Change behavior with %Rf and an empty precision field. The default precision is now 6 with %Rf and %Rg.
tests/tprintf.c tests/tfprintf.c tests/tsprintf.c: Change tests with empty precision field and %Rf.
Makefile.am mpfr.h mpfr.texi set_zero.c: New function mpfr_set_zero.
tests/tset.c: Replace all MPFR_ASSERTN with verbose message. Add tests for mpfr_set_zero.
2009-07-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[INSTALL] hint about patch command
2009-07-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpn_exp.c] reverted previous change (MPN_ZERO is a macro for memset, which
does not forbid zero size)
[coth.c, tcoth.c] fixed coth(+/0) which was wrong (reported by Christopher Creutzig)
[mpn_exp.c] fixed bug reported by David Kirkby on Solaris (GMP compiled with
Solaris compiler)
2009-07-08 Vincent Lefèvre <vincent@vinc17.net>
vasprintf.c: typo in a comment.
2009-07-08 Philippe Théveny <philippe.theveny@laposte.net>
vasprintf.c: Fix bug with %Rf, non-zero precision and a value rounded up to the next power of ten.
2009-07-08 Vincent Lefèvre <vincent@vinc17.net>
vasprintf.c: deleted trailing spaces.
tsprintf.c: added tests of some halfway cases.
2009-07-08 Philippe Théveny <philippe.theveny@laposte.net>
vasprintf.c: Fix bug in precision 0 with format %.0Rf (0.5 rounds to 0).
2009-07-08 Vincent Lefèvre <vincent@vinc17.net>
tsprintf.c: added a test that triggers an assertion failure.
tsprintf.c: fixed a test and added more tests for %.0Rf with the even
rounding rule (shows a bug added in the latest corrections).
2009-07-07 Vincent Lefèvre <vincent@vinc17.net>
tsprintf.c: completed the test on emax (for %Ra and %Rb).
Everything is OK.
tsprintf.c: my test was incorrect (I forgot the R), sorry.
Still completing it...
tsprintf.c: comment (so that the test can be ported to the 2.4 branch).
tsprintf.c: started to write a test for emax, showing a bug (random
output).
2009-07-06 Vincent Lefèvre <vincent@vinc17.net>
ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
mpfr.texi: updated the month.
mpfr.texi consistency: @var{stdout} -> @code{stdout}.
vasprintf.c: do not use a potential function call in SAFE_ABS macro.
2009-07-06 Philippe Théveny <philippe.theveny@laposte.net>
vasprintf.c tests/tsprintf.c: deleted trailing spaces.
2009-06-29 Philippe Théveny <philippe.theveny@laposte.net>
vasprintf.c: Fix bug when the value to be printed is rounded to the next power of ten with %Rf or %Rg (continuation of fix in r6278).
tests/tsprintf.c: Add tests for rounding to next power of ten bug with %Rf or %Rg.
2009-06-26 Vincent Lefèvre <vincent@vinc17.net>
mp_exp_unsigned_t -> mpfr_uexp_t (internal type only).
mpfrlint: check the use of the obsolete mp_rnd_t type.
mp_rnd_t -> mpfr_rnd_t
Suppressed MPFR_CLEAR_FLAGS (no longer did anything).
2009-06-23 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: updated the month.
mpfr.texi: fixed description of mpfr_get_str (clash with variables,
inconsistent cases in the info format).
get_str.c: added a space.
2009-06-21 Vincent Lefèvre <vincent@vinc17.net>
vasprintf.c: corrected comments.
2009-06-19 Philippe Théveny <philippe.theveny@laposte.net>
vasprintf.c: convert GMP_RNDx to MPFR_RNDx.
vasprintf.c: Add brace to disambiguate nested if, and remove unused variable.
tests/tfprintf.c tests/tprintf.c: Do not test very small values with %f.
vasprintf.c: Fix bug when the value to be printed is rounded to the next power of ten with %Rf or %Rg.
tests/tsprintf.c: Add tests for rounding to next power of ten bug.
2009-06-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] added new functions to implement
2009-06-16 Philippe Théveny <philippe.theveny@laposte.net>
sinh_cosh.c: precision of intermediate computation no more depends on precision of input variables.
2009-06-15 Vincent Lefèvre <vincent@vinc17.net>
mpfr.h: new MPFR_VALUE_OF macro, now used by mpfr_get_prec and
mpfr_get_exp macros (this is cleaner than the old hack).
2009-06-14 Vincent Lefèvre <vincent@vinc17.net>
acinclude.m4: Make sure results of calculations on constants used with
the fesetround() test are not precomputed by GCC (occurs on MIPS).
Patch from Maciej W. Rozycki.
https://sympa.inria.fr/sympa/arc/mpfr/2009-06/msg00036.html
gmane.comp.lib.mpfr.general:174
2009-06-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[algorithms.tex] bounds for get_str were checked by Mark Dickinson
2009-06-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[algorithms.tex] fixed typo
[algorithms.tex] fixed and completed up to b=62 table of bounds for get_str
[mpfr.texi] fixed description of case n=0 for get_str (case of powers of two
bases was not coherent with the code)
2009-06-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[algorithms.tex] analyzed precisely the cases where the value is m+1 instead
of m
2009-06-10 Vincent Lefèvre <vincent@vinc17.net>
acinclude.m4: reverted incorrect patch r6267 that makes the test
no longer work on x86 (with traditional FPU, no SSE), where one
should get
checking for gcc float-conversion bug... yes, use -ffloat-store
instead of
checking for gcc float-conversion bug... no
Indeed the "volatile" has the effect to have all the intermediate
results x stored into memory, i.e. it is more or less equivalent
to the -ffloat-store option, so that it does not allow one to test
whether -ffloat-store is needed or not (which is the goal of this
test).
2009-06-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[acinclude.m4] patch from Maciej W. Rozycki on mpfr mailing-list, 9 Jun 2009
added more test cases for the Bessel functions (from John Harrison paper at
Arith19)
2009-06-04 Philippe Théveny <philippe.theveny@laposte.net>
vasprintf.c: Binary output with no digit after the decimal point is now supported. Fix bug when the binary or hexadecimal output value is rounded to the next power of the base. This also change outputs like 0xf.f with format string "%.0Ra" from 8p+1 to 1p+4 (as does gnu libc's printf).
tests/tsprintf.c: add check for rounding to the next base power and fix some test value with %.0Ra (now output 1p+4 instead of 8p+3).
2009-06-03 Philippe Théveny <philippe.theveny@laposte.net>
mpfr-longlong.h: Update to newer GMP version (changeset 12418:12a1d0bf21f0 Sun Mar 01 23:47:31 2009 +0100), merging modifications from r4657.
2009-05-29 Vincent Lefèvre <vincent@vinc17.net>
vasprintf.c: do not use GMP's namespace for identifiers defined in MPFR.
README.dev: added: do not use the GMP namespaces...
mpfr.h: rewrote a comment.
2009-05-29 Philippe Théveny <philippe.theveny@laposte.net>
vasprintf.c: Fix bug, "%%" was not correctly displayed when used alone or before a mpfr_t output.
tests/tfprintf.c tests/tprintf.c: Fix expected values for tests with "%%".
mpfr.texi: Restate subsection Formatted Output Functions/Format String.
2009-05-28 Philippe Théveny <philippe.theveny@laposte.net>
mpfr.texi: details on use of 'P' type in mpfr_printf.
2009-05-27 Philippe Théveny <philippe.theveny@laposte.net>
NEWS: remind bug fixes since version 2.4.0.
set_d64.c: Partial revert of r6190 to fix problem in a simpler way: the decimal digits can be stored in array of char (no need to be unsigned).
2009-05-27 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: updated the month.
tests/tfmod.c: deleted trailing whitespace.
2009-05-22 Philippe Théveny <philippe.theveny@laposte.net>
tests/tatan.c: Add test triggering underflow (test coverage is now 100%).
2009-05-20 Vincent Lefèvre <vincent@vinc17.net>
tests/tgeneric.c: for the second computation, increase the precision
of the inputs in order to trigger the mpfr_fmod bug fixed in r6230
(and potentially other bugs). Thanks to Eric Veach for the idea.
Added tbuildopt to svn:ignore property of tests.
2009-05-20 Philippe Théveny <philippe.theveny@laposte.net>
tests/tfmod.c: complete tests with special values.
tests/tfmod.c: code simplification + check ternary value too.
2009-05-20 Vincent Lefèvre <vincent@vinc17.net>
tests/tfmod.c: replaced NULL by (mpfr_ptr) 0 in mpfr_inits2/mpfr_clears.
tests/mpfr-test.h: added mpfr_cmp_ui0 macro (check that x is not a NaN).
tests/tfmod.c (bug20090519): check that the results are not NaN's and
replaced GMP_RNDN by MPFR_RNDN.
2009-05-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tfmod.c] added testcase for bug reported by Eric Veach
[rem1.c] fixed bug reported by Eric Veach
2009-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] added one item
2009-05-13 Laurent Fousse <laurent@komite.net>
Clarify the fact that mpfr_sum guarantees correct rounding.
2009-05-13 Vincent Lefèvre <vincent@vinc17.net>
mpfr.h: updated a comment.
2009-05-13 Philippe Théveny <philippe.theveny@laposte.net>
mpfr.h: Add a warning comment (removed in r6026).
[merge -c 6209 from branch 2.4]
2009-05-13 Vincent Lefèvre <vincent@vinc17.net>
fms.c: improve the performance of memory allocations in small precision
(almost identical to changeset 6195 for fma.c).
2009-05-12 Vincent Lefèvre <vincent@vinc17.net>
fma.c: patch by Patrick Pélissier to improve the performance of
memory allocations in small precision.
2009-05-05 Philippe Théveny <philippe.theveny@laposte.net>
Put '#include <string.h>' in mpfr-impl.h, remove it elsewhere.
Other cleanup of header inclusion.
Other change (by mistake): corrections in algorithms.tex
2009-05-05 Vincent Lefèvre <vincent@vinc17.net>
NEWS: corrections / limit to 80 characters per line.
2009-05-05 Philippe Théveny <philippe.theveny@laposte.net>
get_d64.c set_d64.c: Fix types.
printf.c tests/tpow_all.c: <string.h> is not automatically included when compiling with --with-gmp-build option.
NEWS Makefile.am mpfr.h mpfr.texi buildopt.c: New functions mpfr_buildopt_tls_p and mpfr_buildopt_decimal_p.
tests/Makefile.am tests/tbuildopt.c: Add tests for mpfr_buildopt_tls_p and mpfr_buildopt_decimal_p.
2009-05-05 Vincent Lefèvre <vincent@vinc17.net>
atan.c: added comments after checking r6186.
2009-05-05 Philippe Théveny <philippe.theveny@laposte.net>
atan.c: expand exponent range when computing arctan(Inf) and arctan(+-1).
tests/tatan.c: Check underflow of arctan(Inf) and arctan(1) with reduced exponent range.
2009-05-04 Vincent Lefèvre <vincent@vinc17.net>
tests/tatan.c: replaced GMP_RNDN by MPFR_RNDN.
2009-04-29 Vincent Lefèvre <vincent@vinc17.net>
Removed trailing spaces.
2009-04-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[atan.c] fixed bug when x is very near but differs from 1
2009-04-29 Vincent Lefèvre <vincent@vinc17.net>
tests/tatan.c: added testcase for bug found by Christopher Creutzig
(atan2_different_prec).
2009-04-22 Vincent Lefèvre <vincent@vinc17.net>
tests/tests.c (data_check): try to open the data file first from the
build directory, then from the source directory.
init2.c: check that mp_bits_per_limb == BITS_PER_MP_LIMB (useful
in case GMP is upgraded with a different ABI, e.g. 32 vs mode32
on PowerPC 64). Without such a check, MPFR can give incorrect
results if the ABI's don't match.
Improved fix for problem dealt with in r6174: use function src_fopen()
(from tests.c) instead of a macro MPFR_SRCDIR.
Fixed problem when the srcdir value contains a word that is #define'd
by the C implementation (test failure) or a comma (worse, the build of
the tests terminates with an error). This can happen only when objdir
and srcdir are different directories.
* tests/Makefile.am (tmul_CPPFLAGS): Put srcdir pathname in quotes.
* tests/tmul.c (MPFR_SRCDIR): Make the default a string.
(QUOTE, NAME): Delete.
(check_regression): Don't QUOTE MPFR_SRCDIR.
Thanks to Sandra Loosemore for the patch.
https://sympa.inria.fr/sympa/arc/mpfr/2009-04/msg00038.html
2009-04-15 Philippe Théveny <philippe.theveny@laposte.net>
get_f.c: remove dead code (x and z always have the same number of limbs).
tests/tget_f.c: Add tests with every rounding mode, add tests with random values.
tests/tget_f.c: Fix typos, better error messages.
2009-04-14 Philippe Théveny <philippe.theveny@laposte.net>
tests/tget_f.c get_f.c: Set result to the maximum value when the mpfr_t is plus infinity and set correct ternary value.
tests/tget_f.c: Fix typo, increase size of y so that x and y have different limb size (they had the same size on MacOS X-32bits).
2009-04-10 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: update concerning intmax_t after the change in r6166.
mpfr.h: for intmax_t, also test _STDINT_H and _STDINT_H_.
[merged changeset r6165 from the 2.4 branch]
mpfr.texi: updated the month.
mpfr.h: for the intmax_t detection, also test INTMAX_MAX / UINTMAX_MAX
(this may be useful for users of C++ compilers, if they have defined
__STDC_LIMIT_MACROS but not __STDC_CONSTANT_MACROS).
mpfr.texi: improvement concerning the use of intmax_t and uintmax_t.
[merged changesets r6160 and r6161 from the 2.4 branch]
2009-04-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[INSTALL] updated Notes on AIX/PowerPC
2009-04-08 Philippe Théveny <philippe.theveny@laposte.net>
NEWS mpfr.texi get_f.c: mpfr_get_f now returns the usual ternary value.
tests/tget_f.c: test the ternary value and the erange flag.
2009-04-08 Vincent Lefèvre <vincent@vinc17.net>
tests/tget_z.c: do not assume specific values of the ternary value.
get_z.c: simplified code.
NEWS: s/an inexact value/a ternary value/
2009-04-08 Philippe Théveny <philippe.theveny@laposte.net>
NEWS mpfr.texi get_z.c: mpfr_get_z now returns an inexact value.
mpfr.h: change prototype of mpfr_get_z.
tests/tget_z.c: test inexact value.
2009-04-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpf2mpfr.h] added comment for #endif
2009-04-08 Philippe Théveny <philippe.theveny@laposte.net>
mpf2mpfr.h: fix typo
2009-04-02 Vincent Lefèvre <vincent@vinc17.net>
get_z.c: fixed title in comment.
2009-04-01 Vincent Lefèvre <vincent@vinc17.net>
get_z.c: detect out-of-range precision (such a detection could be missed
if mpfr_exp_t > mpfr_prec_t).
Removed the comment from mpfr.h added in r6149, and patched get_z.c
(safer code is better than a comment).
mpfr.h: important comment to validate the change done in r6147.
get_z_exp.c: updated comments.
2009-04-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[get_z.c] simplified the code, removed the FIXME
[tget_z.c] added new test
[mpfr.texi] completed documentation of mpfr_get_z_exp (was incomplete for 0)
[tget_z.c] added test case for 0 with emin > 0 (should give 100% coverage for
get_z.c)
2009-03-30 Philippe Théveny <philippe.theveny@laposte.net>
strtofr.c tests/tset_str.c: Code simplification (sizeof (char) is always 1).
vasprintf.c: Cast into size_t (just in case).
vasprintf.c: Code simplification (sizeof (char) is always 1).
2009-03-27 Philippe Théveny <philippe.theveny@laposte.net>
acinclude.m4: remove definition of va_copy, just detect its presence.
printf.c vasprintf.c: #define a replacement of va_copy if needed (in the same way as gmp).
2009-03-26 Philippe Théveny <philippe.theveny@laposte.net>
acinclude.m4: Change MPFR_FUNC_PRINTF_SPEC (renamed MPFR_FUNC_GMP_PRINTF_SPEC) so that it actually checks output.
2009-03-25 Philippe Théveny <philippe.theveny@laposte.net>
Change base upper limit in string conversion up to 62.
2009-03-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr.texi] fixed documentation of mpfr_get_str which was wrong
[tget_str.c] added test cases for odd base and tie breaking case
[get_str.c] fixed typos in comments
[tests/random2.c] added missing mpfr-test.h (revealed by nightly tests), and
removed mpfr-impl.h (already included in mpfr-test.h)
I have also removed MPFR_NEED_LONGLONG_H: I don't see why it
is needed, and all tests pass.
2009-03-24 Philippe Théveny <philippe.theveny@laposte.net>
mpfr.texi: Add a note on mpfr_printf output in binary with precision one.
urandomb.c mpfr-gmp.c mpfr-gmp.h: mpfr_rand_raw is now in urandom.c.
mpfr-impl.h: mpfr_rand_raw is now always build as an internal function.
TODO tests/tests.c tests/random2.c: Use mpfr_rand_raw instead of _gmp_rand
Move mpfr_random2 to tests directory, remove it from API.
mpfr.texi: Improve documentation in Formatted Output Functions/Format String subsection.
2009-03-24 Vincent Lefèvre <vincent@vinc17.net>
cos.c, sin.c: added MPFR_ASSERTN for huge expx.
2009-03-21 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: corrected mpfr_strtofr documentation ("NAN()" is accepted).
tests/tstrtofr.c: added a test for "NAN()".
Note: the code follows the ISO C99 standard for strtod, as explained
in the mpfr_strtofr documentation, so that the code was correct.
[merged changeset 6131 from the 2.4 branch and changed GMP_RNDN into
MPFR_RNDN]
2009-03-19 Vincent Lefèvre <vincent@vinc17.net>
mpfrlint: added some tests for acinclude.m4 and configure.in (sh).
Applied patch from Ralf Wildenhues.
* configure.in: Avoid unportable (and unneeded) shell quoting.
* acinclude.m4: Avoid non-POSIX shell construct.
2009-03-18 Vincent Lefèvre <vincent@vinc17.net>
tests/tmin_prec.c: replaced GMP_RNDN by MPFR_RNDN.
2009-03-16 Vincent Lefèvre <vincent@vinc17.net>
tests/tset_ld.c: removed unused variable.
2009-03-16 Philippe Théveny <philippe.theveny@laposte.net>
tests/tset_ld.c: Add test case for the bug fixed with r6101.
2009-03-16 Vincent Lefèvre <vincent@vinc17.net>
tests/tmin_prec.c: added tests.
tests: updated svn:ignore property.
min_prec.c: fixed another bug (the code was incorrect with >= 2 limbs).
tests/tmin_prec.c: bug fix (side effects in MPFR_ASSERTN), new tests.
README.dev: added a note about assertions and code with side effects.
2009-03-16 Philippe Théveny <philippe.theveny@laposte.net>
tests/tfprintf.c: Use a value less than 2^31-1 compatible (thus < LONG_MAX) in bug_20090316 (cf r6112).
2009-03-16 Vincent Lefèvre <vincent@vinc17.net>
Replaced GMP_RND* by MPFR_RND*.
2009-03-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tests/tmin_prec.c] new file contributed from Laurent Fousse
[tests/Makefile.am] added tmin_prec
2009-03-16 Vincent Lefèvre <vincent@vinc17.net>
min_prec.c: removed a useless test.
min_prec.c: fixed another bug.
2009-03-16 Philippe Théveny <philippe.theveny@laposte.net>
vasprintf.c: Add more debug assertion on the buffer size.
vasprintf.c: Fix bug_20090316 (in buffer_cat, the buffer was 1 character too small in some cases).
tests/tfprintf.c: Add test for bug_20090316.
2009-03-16 Vincent Lefèvre <vincent@vinc17.net>
tests/tadd.c: changed GMP_RND* (from r6071) into MPFR_RND*; this should
have been done when porting the patch from the 2.4 branch.
2009-03-16 Philippe Théveny <philippe.theveny@laposte.net>
tests/tprintf.c: Use new environment variable MPFR_CHECK_LARGEMEM for memory expensive test.
2009-03-16 Vincent Lefèvre <vincent@vinc17.net>
min_prec.c: bug fixed by Laurent.
2009-03-16 Philippe Théveny <philippe.theveny@laposte.net>
tests/tsprintf.c: Fix typo.
2009-03-16 Vincent Lefèvre <vincent@vinc17.net>
Fixed the prototype of mpfr_min_prec (should return a mpfr_prec_t)
and its description.
min_prec.c: fixed a bug (but the code should be improved).
min_prec.c: simplified the singular cases (see other functions).
2009-03-15 Laurent Fousse <laurent@komite.net>
Add prototype for mpfr_min_prec in mpfr.h.
Add documentation for mpfr_min_prec.
New function mpfr_min_prec.
2009-03-15 Vincent Lefèvre <vincent@vinc17.net>
get_ld.c: fixed bugs in the case HAVE_LDOUBLE_IEEE_EXT_LITTLE (one found
by Steve Kargl, and another one concerning the mpfr_set_emax value).
2009-03-13 Philippe Théveny <philippe.theveny@laposte.net>
vasprintf.c: This is probably dead code, but being uncertain, put an assert here.
vasprintf.c: As the buffer helper functions are not used in the current code with a zero parameter len, do not handle this case anymore, check that these cases do not happened in MPFR_ASSERTD macros, add some additional assert to ensure consistency.
vasprintf.c: make clear that string_buffer.curr is a pointer to the null terminating character, fix the only place where it was not handle so.
vasprintf.c: Fix bug.
tests/tprintf.c: Add an expensive test where the output number has more than INT_MAX characters.
vasprintf.c: Fix the bug triggered by the new test in tsprintf.c.
mpfr.texi: Do cosmetic changes and add some details on printf behavior when the precision field is empty.
tests/tsprintf.c: improve code coverage.
tests/tprintf.c: improve code coverage, check the behavior describe in mpfr.texi.
2009-03-12 Vincent Lefèvre <vincent@vinc17.net>
zeta_ui.c: correction r6090 was incorrect as there was another problem:
the 3rd argument of mpz_divexact_ui is an unsigned long, not a limb.
So, fixed the shift count (assuming no padding bits in unsigned long).
zeta_ui.c bug fix: a shift count could be >= width of type (if a limb is
a long long and long long is twice the size of a long). This problem was
detected by a warning on gcc40 with CFLAGS="-mpowerpc64 -mcpu=970 -O2".
2009-03-10 Vincent Lefèvre <vincent@vinc17.net>
tests/tprintf.c: added missing cast to void * for %p.
2009-03-09 Vincent Lefèvre <vincent@vinc17.net>
tests/tfprintf.c: added missing cast to void * for %p.
vasprintf.c: fixed bug in CONSUME_VA_ARG for case MP_LIMB_ARG (%Mu).
README.dev: GMP with ABI=mode32 should be tested on 64-bit PowerPC.
2009-03-06 Philippe Théveny <philippe.theveny@laposte.net>
vasprintf.c: now return -1 when the format string is invalid (undefined behavior in standard C99)
tests/tprintf.c: Additional checks with invalid format strings.
mpfr.texi: Add missing conversion specifier accepted with mpfr_t variable.
2009-03-06 Vincent Lefèvre <vincent@vinc17.net>
add1.c: assertions on the argument values should use MPFR_ASSERTN.
2009-03-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[cache.c] improved comment for mpfr_init_cache
[add1.c] transformed switch() into if-then-else, to get 100% coverage
2009-03-06 Vincent Lefèvre <vincent@vinc17.net>
untabify
update-faq: change GMP_RND into MPFR_RND from the version on the web
(since MPFR 3.0 hasn't been released yet, the FAQ still uses the 2.x
API).
2009-03-05 Vincent Lefèvre <vincent@vinc17.net>
tests/tadd.c: completed the code coverage (case bk == 0 in add1.c).
2009-03-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr-impl.h,cache.c] commented out mpfr_init_cache
[const_catalan.c] decreased initial Ziv precision to get 100% coverage
[cmp2.c] added comments
[tcmp2.c] added test to improve coverage to 100%
[atan2.c,tatan.c] reduced Ziv's initial precision and added test to have
100% coverage of atan2.c
[atan.c] coverage should now be 100%
2009-03-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[algorithms.bib] added new reference
[TODO] added pointers
2009-03-04 Vincent Lefèvre <vincent@vinc17.net>
mpfr-gmp.c (mpfr_assert_fail): output "MPFR" too in assertion failure
messages.
Updated mpfrlint script.
mpfr.texi: updated month.
NEWS: say that the license has changed.
2009-03-03 Vincent Lefèvre <vincent@vinc17.net>
Updated NEWS (function mpfr_random has been removed).
2009-03-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
GMP_RNDX -> MPFR_RNDX
2009-03-03 Vincent Lefèvre <vincent@vinc17.net>
tests: added taway to svn:ignore property.
Update to LGPL v3+, as decided by the main MPFR developers.
2009-02-27 Vincent Lefèvre <vincent@vinc17.net>
Untabified and deleted trailing spaces (for patches).
2009-02-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[rint.c] fixed a bug incorporated with the round away mode
[tget_sj.c] fixed the tests for round away
[rint.c] fixed bug with round away
[taway.c] new test file for round away (with random values)
[tests/Makefile.am] added taway
[set_z.c] GNU style
2009-02-27 Philippe Théveny <philippe.theveny@laposte.net>
tests/tests.c: Change test5rm (formerly test4rm) so that it checks the new
GMP_RNDA rounding mode, and that the corresponding rounding towards infinity
is checked with GMP_RNDZ or with GMP_RNDA in one-pass mode (now, two-pass
mode). Remove a comment about a warning from gcc solved with r5057.
2009-02-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[rem1.c] fixed bug found in adding tests for round away
[add.c] added comment for 0 + 0 with round away
2009-02-26 Vincent Lefèvre <vincent@vinc17.net>
tests/texceptions.c: removed obsolete comments from r2427.
2009-02-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr.h] added comment about order of rounding modes
[texceptions.c] added comments, fixed typo
[tsub.c] added test, fixed typo
2009-02-26 Philippe Théveny <philippe.theveny@laposte.net>
Add tests with round away mode.
2009-02-26 Vincent Lefèvre <vincent@vinc17.net>
Updated version to 3.0.0-dev.
2009-02-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added round to away (still experimental)
[mpfr.h] added comments for rounding modes
2009-02-26 Vincent Lefèvre <vincent@vinc17.net>
Added svn:ignore property on the m4 directory (these .m4 files are
generated automatically).
Makefile.am: updated -version-info (since mpfr_random has been removed,
we already know its value).
Makefile.am: do not check libtool -version-info value if the VERSION
file contains "-dev".
Makefile.am: In a "make dist", check that libtool -version-info value
is up-to-date (this is a heuristic only).
README.dev: updated "To make a release" -- it is important to read
this section entirely before making any release (even if some steps
may be skipped for some particular releases).
2009-02-25 Vincent Lefèvre <vincent@vinc17.net>
tests/tsprintf.c: do not use VLA's (C99 only).
README.dev: update about patches.
tests/tsprintf.c: coding style: removed spurious spaces.
mpfr.texi: updated month.
printf.c: fixed assertion failures in the case buffer == NULL and
size == 0 (see r5995). Also replaced MPFR_ASSERTD(buf != NULL) by
MPFR_ASSERTN(buf != NULL) since buf is provided as an argument.
tests/tsprintf.c: added mpfr_snprintf/mpfr_vsnprintf tests with
buffer == NULL and size == 0 (as allowed in C99 snprintf/vsnprintf
and by the MPFR documentation).
2009-02-25 Philippe Théveny <philippe.theveny@laposte.net>
mpfr.texi: Fix typos.
2009-02-24 Vincent Lefèvre <vincent@vinc17.net>
tuneup.c: untabified.
2009-02-24 Philippe Théveny <philippe.theveny@laposte.net>
printf.c: Fix wrong return value, mpfr_snprintf and mpfr_vsnprintf functions must always return the number of character that would be written if the parameter n had been sufficiently large (it previously returned zero when n == 0).
tests/tsprintf.c: Fix test of mpfr_snprintf and mpfr_vsnprintf (the wrong return value was checked).
2009-02-24 Vincent Lefèvre <vincent@vinc17.net>
printf.c: fix buffer overflow in mpfr_snprintf and mpfr_vsnprintf.
tsprintf.c: added a test showing a buffer overflow in mpfr_vsnprintf.
tsprintf.c: added a test showing a buffer overflow in mpfr_snprintf.
2009-02-23 Vincent Lefèvre <vincent@vinc17.net>
Changed how the test of MPFR_VERSION_MAJOR, MPFR_VERSION_MINOR and
MPFR_VERSION_PATCHLEVEL vs MPFR_VERSION_STRING is performed.
Detailed explanations:
The test was enabled only in release tarballs (suffix not present),
where tests/tversion.c normally contained a "#if 1" (though this
is not the case in the MPFR 2.4.0 tarball). In patches, this test
should be disabled by changing the "#if 1" into "#if 0", due to
the suffix. But as one should be able to apply any patches (in any
order), this method was not satisfactory. The test has been moved
from tests/tversion.c to tests/tests.c (in function test_version),
and the suffix is now ignored in this test; the change of #if has
been removed from the update-version script.
2009-02-20 Vincent Lefèvre <vincent@vinc17.net>
README.dev: corrected update-version usage for patches.
FAQ update.
2009-02-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mparam_h.in] added default thresholds for sparc64
[tuneup.c] print gcc patchlevel
2009-02-19 Vincent Lefèvre <vincent@vinc17.net>
speed.c, tests/texp.c: untabified.
mpfr.texi: improved mpfr_strtofr documentation (completing r5965).
2009-02-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mparam_h.in] added tuning for powerpc64
2009-02-18 Philippe Théveny <philippe.theveny@laposte.net>
strtofr.c: fix typo.
strtofr.c: accept bases up to 62.
mpfr.texi: modify mpfr_strtofr documentation accordingly.
tests/tstrtofr.c: add tests for bases 62, 60, and 61.
2009-02-17 Philippe Théveny <philippe.theveny@laposte.net>
mparam_h.in: Change core2/64bit parameters.
2009-02-17 Vincent Lefèvre <vincent@vinc17.net>
Checks whether C99 length modifiers 'hh' and 'll' are supported by the
system ('hh' is absent on alpha-OSF1-V5, bug reported by Kate Minola).
[Merged changeset 5956 from the 2.4 branch.]
2009-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[texp.c] yet another better fix
[texp.c] fixed previous patch and added comment
[texp.c] fixed corner case test
2009-02-16 Vincent Lefèvre <vincent@vinc17.net>
README.dev: improved latest change.
README.dev: mentioned update-version for patches.
2009-02-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr-gfx.c] added -p option to produce a Postscript file
2009-02-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mparam_h.in] added thresholds for ARM
[README.dev] added description of how to tune MPFR
[README.dev] added another example of using mpfr-gfx
[Makefile] modified Makefile to compile statically, and to allow also
build directories of GMP/MPFR
2009-02-10 Philippe Théveny <philippe.theveny@laposte.net>
mbench/mpfr-gfx.c: add option -rPREC_RATIO for geometric progression.
2009-02-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mparam_h.in] updated Itanium parameters (now for Itanium2)
[mparam_h.in] added symbol __itanium__ for Itanium[12]
2009-02-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[README.dev] fixed typo
[mpfr-gfx.c] added comments in the code (might be useful)
[README.dev] added pointer to mbench to check the thresholds
[mpfr-gfx.c] now also produces a plot.gnuplot file together with plot.data
[mparam_h.in] updated default thresholds with gmp-4.2.4
[tuneup.c] fixed typo
[Makefile.am] added stuff to compile speed program
[speed.c] preliminary program to check the tuning of mpfr (based on tuneup.c)
So far it only measures mpfr_mul up to 1000 bits, with increment
ratio of 1.1. Requires --with-gmp-build like tuneup.
Feel free to improve!
[mparam_h.in] allow __tune_ia64__ in addition to __ia64
[mparam_h.in] replaced __pentium4 by __tune_pentium4__, ...
2009-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[acinclude.m4] removed detection of HAVE_HOST_CORE2
[mparam_h.in] replaced HAVE_HOST_CORE2 by __tune_core2__
2009-02-06 Philippe Théveny <philippe.theveny@laposte.net>
tests/mpf_compat.h: complete r5922 adding missing mpz_init/mpz_clear.
2009-02-06 Vincent Lefèvre <vincent@vinc17.net>
TODO: updated efficiency items.
2009-02-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] added 2 efficiency items
2009-02-06 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: moved MPFR_DECL_INIT specification into Section
"Initialization Functions" (now in the standard MPFR API),
and removed now empty Section "Advanced Functions".
2009-02-05 Vincent Lefèvre <vincent@vinc17.net>
mparam_h.in: updated comment to mention -march=native and -mtune=native.
mpfr.h: updated a comment concerning MPFR_DECL_INIT.
2009-02-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpf2mpfr.h] added mpz_set_f (reported by Francois Morain)
[mpfr.texi] moved mpfr_inits, mpfr_inits2, mpfr_clears to supported functions
[TODO] added new info about MPIR
2009-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[TODO] added info to distinguish GMP and MPIR
2009-01-26 Vincent Lefèvre <vincent@vinc17.net>
Updated the version on the trunk.
2009-01-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[nightly-test] removed --disable-alloca (GMP option)
2009-01-25 Vincent Lefèvre <vincent@vinc17.net>
README.dev: --disable-alloca is a GMP configure option.
2009-01-21 Philippe Théveny <philippe.theveny@laposte.net>
tests/tsprintf.c: remove tests against libc's printf with "%a" (not in ISO C90), and with "%p" (implementation defined).
[merge -c 5885 from branches/2.4]
2009-01-21 Vincent Lefèvre <vincent@vinc17.net>
mpfr-impl.h: avoid a compiler bug under Mac OS X Tiger + Xcode (&x == &x
is false) that makes tset_d fail; this problem was introduced in r5880.
2009-01-20 Vincent Lefèvre <vincent@vinc17.net>
Fixed bug reported by Chris Saunders: if _GMP_IEEE_FLOATS is defined,
the build of tset_ld.c fails because DOUBLE_ISNAN expects a lvalue.
* mpfr-impl.h: documented that for such macros, the argument must
be a lvalue, and always make sure that it is a lvalue (so that
a failure doesn't depend on the environment).
* tests/tset_ld.c: fixed the bug.
tests/tversion.c: be more tolerant when checking whether gmp.h version
and libgmp version are the same (in case patch level is 0).
tests/tset_ld.c: added explanation of NaN-related failures in case
MPFR_NANISNAN is defined.
Added missing void's.
tests/tsprintf.c: removed a blank line (for consistency with the
2.4 branch).
vasprintf.c: deleted trailing spaces.
2009-01-19 Vincent Lefèvre <vincent@vinc17.net>
mpfr-impl.h: comment for DOUBLE_ISNAN with MPFR_NANISNAN defined.
tests/tset_d.c: fixed test of mpfr_set_d on -0 with gcc -ffast-math
(the -d for d = 0.0 was giving 0.0, hence a spurious failure).
mpfr-impl.h: the DOUBLE_ISNAN macro wasn't working with gcc -ffast-math
(at least on x86_64); fixed that by adding another test.
tests/tset_ld.c: Isnan_ld wasn't working either; also the NaN test was
incorrect. Now, the failure on NaN is correctly reported.
tests/tcmp_d.c, tests/tcmp_ld.c, tests/tset_d.c: corrected message.
tests/tcmp_d.c, tests/tcmp_ld.c, tests/tset_d.c: added explanations
of NaN-related failures in case MPFR_NANISNAN is defined.
Note: in tset_d.c, moved the NaN test before the signed-zero test
to catch the failure on the NaN first.
acinclude.m4: improved warning message.
INSTALL: updated "In case of problem".
acinclude.m4: added a warning message for the NAN != NAN test.
2009-01-19 Philippe Théveny <philippe.theveny@laposte.net>
tcmp_d.c tset_d.c tcmp_ld.c: Remove tests with NaN when MPFR_NANISNAN is defined.
tests.c: Add a warning in a comment that Isnan always returns 0 on systems where MPFR_NANISNAN is defined.
vasprintf.c: do not support 't' when NPRINTF_T is defined, HAVE_STDINT_H -> _MPFR_H_HAVE_INTMAX_T.
tests/tfprintf.c: renumber tests (there was two tests #9).
2009-01-19 Vincent Lefèvre <vincent@vinc17.net>
tests/tfprintf.c: %c takes an int argument, not a char (see C standard).
tests/tprintf.c, tests/tsprintf.c:
* %c takes an int argument, not a char (see C standard), even though
this may be equivalent due to integer promotion.
* Add void in prototypes of functions taking no arguments.
mpfr.texi: updated references to the GMP manual.
mpfr.texi: typo in comment.
mpfr.texi: added .info extension in cross-references, to avoid the bug
reported here: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=484740
mpfr.texi: added a reference to a texinfo bug in a comment.
mpfr.texi: added missing @code{}.
mpfr.texi: don't -> do not, doesn't -> does not, won't -> will not.
mpfr.texi: improved Section "Format String".
2009-01-19 Philippe Théveny <philippe.theveny@laposte.net>
tests/tsprintf.c: check if native types are really processed by libc printf.
2009-01-19 Vincent Lefèvre <vincent@vinc17.net>
README.dev: no longer mentions HAVE_QUAD_T since it is no longer used.
2009-01-19 Philippe Théveny <philippe.theveny@laposte.net>
mpfr.texi: Explicit list of type supported by mpfr_printf functions.
acinclude.m4: Remove detection of type modifier 'q'.
vasprintf.c: Remove support of type modifier 'q'.
tests/tfprintf.c tests/tprintf.c: Remove tests with type modifier 'q'.
INSTALL: Warn that --with-gmp, --with-gmp-include/--with-gmp-lib, and --with-gmp-build options are mutually exclusive.
configure.in: Check and fail if --with-gmp, --with-gmp-include/--with-gmp-lib, or --with-gmp-build are use simultaneously.
2009-01-19 Vincent Lefèvre <vincent@vinc17.net>
tests/tests.c: include <sys/fpu.h> only if need be.
2009-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr.texi] made difference between mpfr_set_str and mpfr_strtofr clearer
(after remark from Luis Rivera)
[mpfr.texi] fixed order -> kind (typo found by Luis Rivera, thanks)
2009-01-16 Philippe Théveny <philippe.theveny@laposte.net>
tfprintf.c tprintf.c: Test double with "%f" instead of "%e" so as to avoid failure due to exponent "e+000" on MS Windows.
tests/tfprintf.c tests/tsprintf.c tests/tprintf.c acinclude.m4 vasprintf.c: No longer check libc's printf.
acinclude.m4: Check if %Ld specification is supported (not always the case with MS Windows)
tests/tfprintf.c tests/tprintf.c tests/tsprintf.c: do not check %Ld specification when not available.
get_uj.c get_sj.c tests/tset_sj.c tests/tfits.c fits_intmax.c fits_uintmax.c set_uj.c set_sj.c: make #include-s for intmax_t uniform.
vasprintf.c: make #include-s for intmax_t uniform and use _MPFR_H_HAVE_INTMAX_T instead of HAVE_INTMAX_T.
2009-01-15 Philippe Théveny <philippe.theveny@laposte.net>
tfprintf.c tprintf.c: Remove tests with u_quad_t (on Solaris 10, quad_t exists but u_quad_t doesn't, bug reported by Michael Abshoff).
tfprintf.c tprintf.c: Fix included headers, type intmax_t may be defined in inttypes.h or in stdint.h (see autoconf manual 5.6.1 Portability of Headers).
2009-01-15 Vincent Lefèvre <vincent@vinc17.net>
ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
vasprintf.c: deleted trailing spaces.
configure.in: be more tolerant when checking whether gmp.h version
and libgmp version are the same (in case patch level is 0).
Copyright notice update: added 2009 with
perl -pi -e 's/2008 Free Software/2008, 2009 Free Software/' **/*(^/)
under zsh.
2009-01-14 Vincent Lefèvre <vincent@vinc17.net>
Fixed remaining printf format strings.
tests/tadd1sp.c, tests/tsub1sp.c: fixed function prototypes.
tests/teq.c, tests/tests.c: fixed printf format strings.
tests/tcmp2.c: fixed printf format strings.
2009-01-13 Vincent Lefèvre <vincent@vinc17.net>
tests/tset_str.c: fixed printf format string.
2009-01-12 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: consistency changes and corrections concerning the "erange"
flag (do not use @code{} as this is not an identifier, @emph{} is used
as this is not an English word -- but @emph{} should probably be used
too for the other flag names).
mpfr.texi: typo.
2009-01-12 Philippe Théveny <philippe.theveny@laposte.net>
acinclude.m4: New macro MPFR_CHECK_PRINTF_SPEC looking for support of the "%jd", "%qd", and "%td" conversion specifications in printf and gmp_printf.
configure.in: Call MPFR_CHECK_PRINTF_SPEC when we can link against a suitable gmp library and run test programs at compile time, otherwise (for instance, when cross compiling), everything is enable by default.
vasprintf.c: Disable support for length modifiers not supported by libc's printf ('j' and 'q' for this time).
tests/tprintf.c, tests/tfprintf.c: Disable tests for length modifiers not supported by gmp_printf ('j', 'q', and 't' for this time).
mpfr.texi: Fix typo.
2009-01-08 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: update to January 2009.
Removed useless #include of gmp.h from tests/tfprintf.c and
tests/tsprintf.c for consistency.
2009-01-08 Philippe Théveny <philippe.theveny@laposte.net>
tests/tfprintf.c: Make tests with 'M' specifier optional.
mpfr.texi: Add a warning that gmp may not support 'M' specifier.
vasprintf.c: Add warning comment about 'M' specifier.
mpfr.texi: Fix wrong definition of rounding specifiers.
2008-12-30 Vincent Lefèvre <vincent@vinc17.net>
out_str.c: added assert (check that base is in the required range).
2008-12-26 Vincent Lefèvre <vincent@vinc17.net>
README.dev: suggest "-Wformat=2".
zeta.c: fixed types for printf when DEBUG is defined.
sub1sp.c: fixed types for printf when WANT_ASSERT >= 2 and
when DEBUG is defined.
sub1.c: fixed types for printf when DEBUG is defined.
set_d64.c: set T[] to unsigned int (instead of int) since its values
are printed with %u.
add1sp.c: fixed types for printf when DEBUG is defined.
mpfr-impl.h: fixed MPFR_UNSIGNED_MINUS_MODULO logic and added missing
parentheses.
div.c: fixed types for fprintf when DEBUG and/or DEBUG2 is defined.
div.c: fixed #ifdef.
round_p.c: fixed types for fprintf when WANT_ASSERT >= 2 (since
mp_prec_t is unsigned, it's better to use unsigned long).
round_p.c: fixed types for fprintf when WANT_ASSERT >= 2.
2008-12-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr.tex] improve documentation of %P
2008-12-18 Vincent Lefèvre <vincent@vinc17.net>
Deleted trailing spaces.
2008-12-17 Philippe Théveny <philippe.theveny@laposte.net>
tests/tsprintf.c: clean-up code, improve comment, and put optional tests in tail so that they fail last.
tests/tsprintf.c: Add two regression tests.
2008-12-16 Philippe Théveny <philippe.theveny@laposte.net>
acinclude.m4, vasprintf.c, tests/tfprintf.c, tests/tprintf.c, mpfr.texi: quad_t support
tests/tfprintf.c: code clean-up and output improvement.
tests/tprintf.c: code clean-up.
Note that unsigned long long variable is not set to 1 instead of -1 which was architecture dependent.
2008-12-16 Vincent Lefèvre <vincent@vinc17.net>
tests/tprintf.c:
* stdout_redirect is a boolean (i.e., 0 or 1).
* output freopen(..., stdout) error message to stderr.
2008-12-16 Philippe Théveny <philippe.theveny@laposte.net>
tfprintf.c: more user-friendly messages.
tprintf.c: more user-friendly messages. Warning: because stdout might be redirected, error messages are printed to stderr.
2008-12-15 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: more explanations on the precision field for mpfr_printf.
untabify and remove trailing spaces
2008-12-15 Philippe Théveny <philippe.theveny@laposte.net>
mpfr.texi: more explanations on the precision field.
mpfr.texi: Clearly mention that the length modifier 'q' is unsupported by mpfr-*printf.
vasprintf.c: Do not take quad_t as a long long but as an insupported length modifier.
acinclude.m4: Remove check for quad_t.
tests/tprintf.c tests/tfprintf.c: Remove tests with 'q' length modifier.
2008-12-15 Vincent Lefèvre <vincent@vinc17.net>
tests/tstrtofr.c: fixed a test (in case |res| > 1).
tests/tstrtofr.c: fixed alignment bug in error message.
2008-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[nightly-test] added MPFR_CHECK_LIBC_PRINTF
2008-12-15 Philippe Théveny <philippe.theveny@laposte.net>
acinclude.m4: Check for quad_t.
vasprintf.c: Accept length modifier 'q' if HAVE_QUAD_T is defined (instead of HAVE_LONG_LONG).
README.dev: Add notice for new HAVE_QUAD_T macro.
2008-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr.texi] added warning about usage of mpfr_init
2008-12-15 Vincent Lefèvre <vincent@vinc17.net>
tests/tprintf.c: _MPFR_H_HAVE_INTMAX_T -> HAVE_STDINT_H for <stdint.h>.
2008-12-15 Philippe Théveny <philippe.theveny@laposte.net>
tests/tsprintf.c: Tests against libc's sprintf function are no more executed unless the MPFR_CHECK_LIBC_PRINTF is defined.
tests/tsprintf.c: move bugs 20080610 and 20081214 outside the function random_double.
2008-12-15 Vincent Lefèvre <vincent@vinc17.net>
tests/tsprintf.c: completed comment about the sign of a null exponent.
INSTALL: added a note saying the L modifier was added in C89 (source:
C99 rationale, Section 7.19.6.1).
2008-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[INSTALL] more Windows-related changes
[INSTALL] update on Windows (from Brian Gladman)
[configure.in] removed useless comment
2008-12-14 Vincent Lefèvre <vincent@vinc17.net>
INSTALL: references to ISO (international) instead of ANSI (American).
tests/tsprintf.c: corrected a comment.
2008-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[printf.c,vasprintf.c] include config.h if HAVE_CONFIG_H is defined, to
solve problem noticed by Brian Gladman
2008-12-14 Vincent Lefèvre <vincent@vinc17.net>
tests/tsprintf.c: untabified.
2008-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[INSTALL] added hint for using the MinGW runtime
[tsprintf.c] added new hard-coded test (needs work to overcome error in
system asprintf)
[tsprintf.c] fixed hard-coded test (spec was missing), and print values of
xi,yi,spec in case of error
2008-12-14 Vincent Lefèvre <vincent@vinc17.net>
INSTALL: corrections on r5730.
2008-12-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[INSTALL] added notes on Windows Vista 64 problem
2008-12-12 Vincent Lefèvre <vincent@vinc17.net>
README: added "compile" since it is distributed in the tarball.
Added "compile" to svn:ignore property (this file is installed by
"automake --add-missing" due to AM_PROG_CC_C_O, added in r5710).
vasprintf.c: avoid an abort if field width or precision is > INT_MAX.
2008-12-12 Philippe Théveny <philippe.theveny@laposte.net>
tests.c, tset_ld.c, tgeneric.c: Code clean-up based on icc warnings (as in r5492): Use #ifdef BOOL_MACRO instead of #if BOOL_MACRO.
configure.in: remove line 'GCC=' in icc tests which seems to confuse libtool.
2008-12-12 Vincent Lefèvre <vincent@vinc17.net>
set_ld.c: rewrote exp computation.
vasprintf.c: avoid a possible gcc 4.1.2 bug with -ftrapv.
vasprintf.c: revert incorrect change in r5713.
2008-12-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[set_ld.c] fixed problem with CC=g++ on 64-bit computer:
$ g++ -v
Using built-in specs.
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-mpfr --enable-checking=release x86_64-linux-gnu
Thread model: posix
gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
[vasprintf.c] patch to MPFR_ASSERTN(...) call to avoid failure with gcc -ftrapv
with gcc 4.1.2 (probably compiler error)
2008-12-12 Philippe Théveny <philippe.theveny@laposte.net>
Makefile.am, tmul.c: Rename macro __SRCDIR to MPFR_SRCDIR.
2008-12-11 Philippe Théveny <philippe.theveny@laposte.net>
configure.in: Add AM_PROG_CC_C_O needed by tmul_CPPFLAGS.
tests/Makefile.am: Add tmul.dat in EXTRA_DIST and pass srcdir to tmul.c through tmul_CPPFLAGS.
tests/tmul.c: Add path to tmul.dat.
2008-12-09 Vincent Lefèvre <vincent@vinc17.net>
INSTALL: TLS on darwin may work, but I don't know anything more.
See thread <https://gcc.gnu.org/legacy-ml/gcc/2008-12/msg00107.html>.
2008-12-08 Vincent Lefèvre <vincent@vinc17.net>
README: CVS -> Subversion.
2008-12-03 Vincent Lefèvre <vincent@vinc17.net>
configure.in: format --enable-decimal-float description on 80 columns.
configure.in: for --enable-thread-safe, say that the system must support
it (like what has been done for --enable-logging, just above).
INSTALL: added details about ---enable-thread-safe and TLS support.
2008-11-28 Vincent Lefèvre <vincent@vinc17.net>
urandomb.c: added comments and cleaned up code.
mpfr.texi: improved description of mpfr_urandomb.
2008-11-26 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: changed URL added in r5696 to avoid a redirection.
2008-11-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr.texi] added official url on ftp.gnu.org
2008-11-26 Vincent Lefèvre <vincent@vinc17.net>
tests/tmul.c: removed useless variable.
tests/tmul.c: made reading a string from file more robust.
2008-11-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tmul.c] moved long strings to file tmul.dat, so that gcc -ansi
-pedantic-errors works (ISO C90 does not support strings of length
> 509)
2008-11-26 Vincent Lefèvre <vincent@vinc17.net>
tests/tinternals.c: updated tests for guaranteed C90 support, e.g. with
gcc -ansi -pedantic-errors (avoid error "string length 'nnn' is greater
than the length '509' ISO C90 compilers are required to support" because
expression for #expr in ASSERT_FAIL macro is too long).
README.dev: in Section "To make a release", suggest -pedantic-errors.
2008-11-22 Vincent Lefèvre <vincent@vinc17.net>
r5689 undone: some casts were incorrect (mp_exp_t may be greater than
mp_prec_t, so that casting a mp_exp_t into a mp_prec_t can introduce a
bug). There may be bugs in some cases, but the casts fix the symptom,
not the bug (unless one casts the unsigned type to a signed type that
is *strictly* larger, which is not possible here).
2008-11-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed some signed/unsigned warnings with g++ (please review)
2008-11-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[nightly-test] removed MPFR_CHECK_ALL (no longer used)
added possibility to choose compiler (e.g., g++)
[README.dev] better check ./configure CC=g++
2008-11-21 Philippe Théveny <philippe.theveny@laposte.net>
Fix inclusion order: the limit of integer types like size_t are defined in C++ only when __STDC_LIMIT_MACROS is defined before <stdint.h> is included (from ISO C99 7.18.3).
2008-11-21 Vincent Lefèvre <vincent@vinc17.net>
README: added m4 directory (since it is distributed in the tarball).
2008-11-20 Vincent Lefèvre <vincent@vinc17.net>
Forgot to update Makefile.am too (for r5680).
configure.in: added AC_CONFIG_MACRO_DIR([m4]) for r5680.
2008-11-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr-gmp.c] added comment on recent bug fix on MacOS
[tests] changes to make compilation work with g++ (only fixed errors,
several warnings remain)
2008-11-20 Vincent Lefèvre <vincent@vinc17.net>
Added m4/size_max.m4 file (from gettext).
README.dev: paragraph on tentative definitions.
2008-11-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr-gmp.c] replace tentative definitions by real definitions, solves
configure problems with mpc (see https://lists.gforge.inria.fr/pipermail/mpc-discuss/2008-November/000048.html)
2008-11-18 Vincent Lefèvre <vincent@vinc17.net>
hypot.c: updated a comment.
tests/thypot.c: added a test.
hypot.c: simplified an expression; cosmetic changes.
2008-11-17 Philippe Théveny <philippe.theveny@laposte.net>
hypot.c: Fix underflow problem when diff_exp<=MPFR_EMAX_MAX-2 using fma (provided that mpfr_fma is immune to it).
algorithms.tex: Fix one typo in dilogarithm section.
2008-11-12 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi, NEWS: update concerning mpfr_eq.
mpfr.texi: improved mpfr_eq documentation.
2008-11-12 Philippe Théveny <philippe.theveny@laposte.net>
tests/tstrtofr.c: Add more information when test bug20081028 fails.
2008-11-07 Philippe Théveny <philippe.theveny@laposte.net>
strtofr.c: Replace non-zero digits look up by a simpler test, using the fact that parse_string did remove zeros at end of pstr->mant.
tests/tstrtofr.c: Add other test values around 1 for the bug20081028 non regression test.
2008-11-07 Vincent Lefèvre <vincent@vinc17.net>
strtofr.c: improved style ("exact" is a boolean).
2008-11-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[strtofr.c] new patch (ternary value was still wrong in some cases), should
be ok now
[tstrtofr.c] added new test
2008-11-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[strtofr.c] review of patch added in revision 5660, and added comments
2008-10-29 Vincent Lefèvre <vincent@vinc17.net>
Updated NEWS file.
strtofr.c: in r5660, as pstr_size and pstr->prec both have type size_t,
changed the type of i from mp_size_t to size_t for consistency.
strtofr.c: reverted the change done in r3008, which led to a trivial
assertion. I think the goal is to make sure that pstr_size (of type
size_t) can be represented in a mp_exp_t (as required in the code).
2008-10-29 Philippe Théveny <philippe.theveny@laposte.net>
strtofr.c: fix bug '[#6604] incorrect directed rounding in mpfr_strtofr'.
2008-10-29 Vincent Lefèvre <vincent@vinc17.net>
configure.in: replaced $(...) quoting style by "`...`" since the former
is not supported everywhere (and indeed is not used by the autotools):
https://gmplib.org/list-archives/gmp-bugs/2008-October/001185.html
tests/tstrtofr.c: added bug20081028 (bug found by Christoph Lauter
in mpfr_set_str; this is the corresponding bug in mpfr_strtofr).
tests/tstrtofr.c: corrections related to C usage.
tests/tset_str.c: added bug20081028 (bug found by Christoph Lauter).
2008-10-27 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: updated @dircategory (request by Karl Berry).
This is now GNU MPFR!
README: CVS -> Subversion.
2008-10-23 Philippe Théveny <philippe.theveny@laposte.net>
vasprintf.c: Fix bug with '#' and 'g' flag combination, see also defect report at http://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_233.htm.
tests/tsprintf.c: Fix wrong test value accordingly, add non-regression tests.
2008-10-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[get_d64.c,set_d64.c] added reference to TR 24732
2008-10-16 Vincent Lefèvre <vincent@vinc17.net>
mpfr.h: added a comment about MPFR_SIGN.
2008-10-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[mpfr.h] fixed typo, and added warning about MPFR_SIGN.
Shouldn't we move it in mpfr-impl.h?
2008-10-03 Vincent Lefèvre <vincent@vinc17.net>
INSTALL, configure.in: corrected documentation of --with-gmp* options.
2008-10-02 Vincent Lefèvre <vincent@vinc17.net>
INSTALL: gave more details about --with-gmp-build.
2008-10-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[INSTALL] added warning about usage of --with-gmp-build
2008-09-21 Vincent Lefèvre <vincent@vinc17.net>
TODO: updated LIA-2 terminology ("pole" was in the latest public draft,
"infinitary" in the final standard).
2008-09-19 Philippe Théveny <philippe.theveny@laposte.net>
tests/tstrtofr.c: Remove underflow test unintentionally committed with revision 5640.
2008-09-18 Philippe Théveny <philippe.theveny@laposte.net>
Remove obsolete mpfr_random function and replace it by mpfr_urandomb in tests.
Add void in prototype.
2008-09-18 Vincent Lefèvre <vincent@vinc17.net>
tests/tests.c: added comments about the MPFR_FPU_PREC macro.
2008-09-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[tget_str.c] replaced 'double' input by 'char*' to avoid problems with single
precision (partially solves #3353)
2008-09-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[README.dev] added item about coverage of releases
2008-09-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
final got rid of generic.c (bug 6199)
[generic.c] removed unused file
2008-09-16 Vincent Lefèvre <vincent@vinc17.net>
NEWS, mpfr.texi: documented the fact that mpfr_random and mpfr_random2
will be suppressed in the next release.
ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
2008-09-10 Philippe Théveny <philippe.theveny@laposte.net>
tests/tpow_z.c: Check test for bug20080904 with the minimum possible negative exponent so as not to underflow with (future) 128 bits machine.
2008-09-06 Vincent Lefèvre <vincent@vinc17.net>
pow.c: fixed bug20080904 (from tpow_z.c).
pow.c: added log messages.
2008-09-05 Philippe Théveny <philippe.theveny@laposte.net>
tests/tpow_z.c: Add a test that underflows.
2008-09-05 Vincent Lefèvre <vincent@vinc17.net>
configure.in: updated a comment (for the next automake version).
NEWS: added a note about mpfr_init_gmp_rand (removed in r4953).
2008-09-04 Vincent Lefèvre <vincent@vinc17.net>
README.dev: update (about AM_MAINTAINER_MODE).
2008-09-02 Vincent Lefèvre <vincent@vinc17.net>
Updated README file.
2008-09-01 Vincent Lefèvre <vincent@vinc17.net>
Removed patch-libtool and updated README.dev as libtool has been fixed.
NEWS file update (get default $CC and $CFLAGS from gmp.h).
configure.in: removed a useless blank line.
README.dev: reverse-merged r5440 (about __GMP_CC/__GMP_CFLAGS) as said.
2008-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[algorithms.tex] the truncation error for rec_sqrt was correct, but the
reasoning was not detailed enough
2008-08-27 Vincent Lefèvre <vincent@vinc17.net>
Added patch-aclocal-icc; this is a port of the patch posted on
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=485421
for aclocal.m4 when libtool 1.5.26-4 from Debian has been used.
2008-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[rec_sqrt.c] fixed bug "bad_case1" (truncation error was forgotten, when
output precision was smaller than input precision)
2008-08-27 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: updated the month.
2008-08-26 Vincent Lefèvre <vincent@vinc17.net>
tests/trec_sqrt.c: enable the tests only with MPFR 2.4.0+.
NEWS: noted when some changes were applied in 2.3.* versions.
2008-08-25 Vincent Lefèvre <vincent@vinc17.net>
README.dev: completed information about integer types.
README.dev: added information about mixing signed and unsigned types.
li2.c: avoid even more mixing between signed and unsigned types, by
casting mpfr_prec_t to mp_exp_t in expressions involving mp_exp_t.
This time the bug is fixed: tli2 no longer freezes in 64 bits.
li2.c: use an "int" instead of "unsigned int" in li2_series() to avoid
mixing signed and unsigned types, which can yield implicit conversions
from signed into unsigned, and maybe problems on some platforms. This
doesn't fix the current freeze of tli2 on 64-bit machines, though.
2008-08-24 Vincent Lefèvre <vincent@vinc17.net>
tests/tgeneric.c: changed the way a warning with gcc 4.2+ is avoided
(r5335), as suggested by Manuel López-Ibáñez on GCC bug 36299.
2008-08-21 Vincent Lefèvre <vincent@vinc17.net>
Added data_check support to mpfr_sqr.
Added bad_cases support to mpfr_sqr and mpfr_sqrt.
tests/tsqr.c: corrected function definitions.
Added data_check & bad_cases support to mpfr_rec_sqrt.
tests/trec_sqrt.c: added bad case that makes mpfr_rec_sqrt fail.
mpfr-impl.h: as not all ICC versions define the __ICC macro (only
the __INTEL_COMPILER macro can be defined), define the __MPFR_ICC
and __MPFR_GNUC macros in another way.
tests/tsprintf.c: fixed compilation failure when HAVE_DENORMS isn't
defined, such as with icc 10.1 on Itanium.
tests/tprintf.c: to allow random values to be reproducible,
do not call randlimb several times in a same expression,
because the evaluation order is unspecified.
tests/tpow_all.c: added test of mpfr_rec_sqrt (only with MPFR 2.4.0+).
tests/tpow_all.c: removed useless parentheses.
rec_sqrt.c: added logging support.
algorithms.tex: replaced "towards" by "toward" for consistency with
the MPFR manual and the standards.
algorithms.tex: corrected English usage, spelling and typography
in the section on mpfr_hypot.
2008-08-20 Vincent Lefèvre <vincent@vinc17.net>
tests/thypot.c: added a test for tiny x and y (already done by the
generic tests, but not yet in the 2.3 branch in extended exponent
range).
tests/tgeneric.c: for the special cases tested in precision p1
for n <= 3, set the extended exponent range.
tests/thypot.c: improved error messages.
tests/thypot.c: perform some tests both in the current exponent range
and in the extended exponent range, so that the lost-overflow bug of
MPFR 2.3.1 can be triggered on 64-bit machines too.
tests/tpow_all.c:
* In cmpres(), if z1 and z2 were both zeros, their sign wasn't tested.
* Added test of mpfr_sqr and mpfr_sqrt.
mpfr.texi: added a paragraph on MPFR internal data.
pow_si.c: fixed the underflow/overflow detection for n < 0 by using
a method similar to mpfr_pow_z.
pow_si.c: added logging support.
pow.c: fixed bug in mpfr_pow_general by computing correct bounds
on exp(y*ln|x|). ==> tpow no longer fails in bug20080820.
Note: this bug could affect only underflow cases and possibly cases
near overflow.
tests/tpow.c: updated comment for bug20080820().
tests/tpow.c: added testcase for bug mentioned in r5552.
pow_z.c: solves the underflow problem in round-to-nearest by using
mpfr_pow_general in precision 2 (like in mpfr_pow_pos_z), but this
currently fails due to a more general bug from r4940 (the rounding
modes to compute an upper bound on exp(y*ln|x|) are incorrect).
pow_z.c: formatting.
pow_z.c: moved a log message.
pow_z.c: added log messages.
tests/tpow_all.c: added an underflow test of x^y with y integer < 0.
pow_z.c: no longer take care of the possibly lost overflow flag, as
the other functions do not do this either; this general problem has
been fixed in mpfr_check_range (r5545).
Fixed the following problem:
The overflow flag can be lost in many functions called with the
maximum exponent equal to MPFR_EMAX_MAX (this is the default on
32-bit machines) when the temporary result (in a higher precision)
is representable but once rounded, it yields an overflow.
This needed a slight change of behavior of the mpfr_check_range function
(defined in exceptions.c). Described this change in mpfr.texi and NEWS.
pow_z.c: fixed some of the underflow/overflow problems for z < 0.
tests/tpow_all.c: fixed mpfr_clear in overflow_inv.
tests/tpow_all.c: more detailed error messages.
tests/tpow_all.c: improved overflow_inv tests to trigger a bug
in mpfr_pow_z due to incorrect rounding mode settings in r5315:
on a 64-bit Linux machine, "./tpow_all 1" ends with:
Bad overflow flag in overflow_inv for mpfr_pow, extended exponent range,
s = 1, t = 1, GMP_RNDZ
tests/tpow_all.c: in overflow_inv, reduced t to [0,5] and added tests.
2008-08-19 Vincent Lefèvre <vincent@vinc17.net>
tests/tpow_all.c: improved error messages.
tests/tpow_all.c: changed the precisions in overflow_inv for clearer
output (the reported failures are the same).
tests/tpow_all.c: information about extended exponent range wasn't
always output. For simplicity to provide such an information, made
ext a global variable.
tests/tpow_all.c: added overflow tests for x^(-1). -> Failure.
Fixed basic underflow checking in mpfr_pow.
2008-08-18 Vincent Lefèvre <vincent@vinc17.net>
mpfr-impl.h: defined macro INITIALIZED to declare that some variable
is initialized before being used.
README.dev: described the use of this macro.
lngamma.c: replaced the dummy initialization by this macro.
2008-08-16 Vincent Lefèvre <vincent@vinc17.net>
pow.c: updated comments.
tests/tpow_all.c: added tests -> assertion failed in pow.c line 603.
2008-08-15 Vincent Lefèvre <vincent@vinc17.net>
tests/tpow_all.c: added test of mpfr_ui_div.
pow_z.c: improved comments.
2008-08-14 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: additions related to MPFR caches.
* Added Section "Memory Handling" mentioning caches.
* Added call to mpfr_free_cache in the first example.
* Updated description of function mpfr_free_cache.
tests/texp.c: improved an underflow test to trigger the bug fixed
in r5453 on 32-bit machines too.
log.c: fixed a log message.
exp_2.c: fixed other log messages.
exp_2.c: fixed a log message (the format didn't correspond to the types)
and improved it.
2008-08-12 Vincent Lefèvre <vincent@vinc17.net>
tests/tdiv.c: completed underflow test by testing negative results too.
mul_2si.c, div_2si.c, div_2ui.c: fixed double-rounding problem in
rounding to nearest when the rounded result in unbounded exponent
range is 2^(emin - 2).
tests/tmul_2exp.c: test x = 15/16 too. Now tmul_2exp no longer fails
(with the correction in div.c from r5515).
tests/tdiv.c correction: the underflow bug was in case when the
result had to be zero.
div.c: fixed underflow bug that occurs in rounding to nearest when
the rounded result in unbounded exponent range is 2^(emin - 2) and
inex > 0: one got a non-zero result instead of +/-0.
tests/tdiv.c: added a test that triggers a bug in mpfr_div in case of
underflow in rounding to nearest when the result must be non-zero.
div.c: added logging support.
tests/tmul_2exp.c: test mpfr_div_2ui too.
tests/tmul_2exp.c: test mpfr_div_2si too.
tests/tmul_2exp.c: updated underflow() test to trigger a double-rounding
bug in case of underflow.
tests/texp.c: updated comment (the double-rounding bug triggered by
underflow_up() is in mpfr_mul_2si).
tests/texp.c: updated underflow_up() test: added case exp(eps) ~= 1/2,
which fails due to a double-rounding problem in rescaling the result.
tests/texp.c: improved comments in underflow_up().
2008-08-11 Vincent Lefèvre <vincent@vinc17.net>
Merged vlefevre branch:
svn merge -c-5445 .
svn merge -r5436:HEAD .../mpfr/branches/vlefevre
* pow.c:
- Moved the general case from mpfr_pow() to a new internal function
mpfr_pow_general().
- In this function (from old code), avoid unnecessary overflow test
if the intermediate result is not an infinity (which was the case
of underflow with non-zero result, thus not an overflow).
- Fixed a double-rounding problem that occurred in this function in
some underflow cases when rescaling the result.
- Added log messages.
* mpfr-impl.h: added mpfr_pow_general prototype.
* pow_z.c:
- The underflow case of mpfr_pow_pos_z() in rounding to nearest,
which was incorrect, is now handled by calling mpfr_pow_general(),
which can scale the result thus decide whether the rounded result
should be 0 or nextabove(0). To avoid the exact cases of x^y with
y integer (not supported by mpfr_pow_general()), rounding is done
in precision 2 (this is also faster!).
- Fixed underflow-related bug (case exact result = 2^(emin-2), in
rounding to nearest).
- Added log messages.
* pow_ui.c:
- Swapped parameters x and y for consistency (-> y = x^n).
- Fixed the internal overflows and underflows (which could yield
spurious overflows/underflows and incorrect results) by using
mpfr_pow_z.
* tests/tpow_all.c:
- Test flags in test_others and cmpres; cmpres argument z1 can now
be a null pointer (if unknown pure FP value, thus not tested).
- Added a test of 2^(emin - i/4) with 0 <= i <= 12, that triggered
the bugs mentioned above (and now fixed).
[Added during the Subversion to Git conversion]
A merge commit could not be generated for Git.
Branch in Git: refs/deleted/r5506/heads/vlefevre
2008-08-11 Vincent Lefèvre <vincent@vinc17.net>
tests/tmul_2exp.c: added underflow tests.
Added logging support to mpfr_{mul,div}_2{si,ui}.
2008-08-08 Vincent Lefèvre <vincent@vinc17.net>
mpfr-impl.h: added a space for MPFR_LOG_MSG.
README.dev: corrected MPFR_LOG_MSG example.
mpfr.h: added a comment concerning ICC.
2008-08-07 Vincent Lefèvre <vincent@vinc17.net>
Final code clean-up based on icc warnings.
Further code clean-up (and consistency) based on icc warnings:
* Removed useless code.
* Avoid hiding variable declarations.
* Use #ifdef BOOL_MACRO instead of #if BOOL_MACRO.
* In MPFR_RNDRAW_GEN macro definition, variables declared locally now
start with an underscore to avoid possible conflits with parameters
(and modified macro calls that use these variables).
round_prec.c: avoid hiding variable declaration (detected by icc).
pow_si.c: fixed Ziv's iteration (code from r3305) by using MPFR_ZIV_NEXT
(problem detected by icc, because variable "loop" was never used).
mul_ui.c: removed variable that was set but never used (detected by icc,
but not by gcc, probably because of early optimization).
inp_str.c: fixed possible implementation-defined behavior (a value
from the unsigned char range -- from getc -- was stored in a char,
and if the char type is signed and the value cannot be represented
in a char, this is implementation-defined).
get_str.c: avoid hiding variable declaration (detected by icc).
div.c: avoid hiding variable declaration (detected by icc).
mpfr.h, mpfr-impl.h: avoid warnings with icc (at least icc 10.1).
README.dev: added a paragraph on the test of "boolean" macros.
2008-08-05 Vincent Lefèvre <vincent@vinc17.net>
configure.in: dist-lzma needs automake 1.10.1.
2008-08-04 Vincent Lefèvre <vincent@vinc17.net>
configure.in: "make dist" generates lzma-compressed tarball too.
2008-08-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[exp_2.c] fixed case where cancel is negative, added comments and improved
code when initial n is known to be 0
2008-08-01 Vincent Lefèvre <vincent@vinc17.net>
exp_2.c: MPFR_EXP -> MPFR_GET_EXP.
2008-08-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
[exp_2.c] fixed bug20080731
2008-07-31 Vincent Lefèvre <vincent@vinc17.net>
Added algorithms.out to svn:ignore property.
tests/texp.c: added testcase for new bug found in mpfr_exp_2.
exp.c, exp_2.c: fixed the overflow/underflow detection. The underflow_up
test in texp.c still fails for mpfr_exp_2 only, but this seems to be due
to a bug in this function (incorrect error bound?).
tests/texp.c: added underflow tests to underflow_up; currently fail due
to incorrect underflow detection in mpfr_exp (and if this detection is
disabled, mpfr_exp_3 behaves correctly, but not mpfr_exp_2).
2008-07-31 Philippe Théveny <philippe.theveny@laposte.net>
Fix typos, improve wording.
2008-07-31 Vincent Lefèvre <vincent@vinc17.net>
Added logging support to mpfr_exp_2 (exp_2.c).
tests/texp.c: updated comment concerning the bug fixed in r5469.
exp.c: updated comment about the exp3.c routine.
exp3.c: fixed internal underflow.
fma.c, fms.c: added a comment about apparently incorrect scaling.
Added logging support to mpfr_sqr and mpfr_sqrt.
2008-07-31 Philippe Théveny <philippe.theveny@laposte.net>
hypot.c: Fix comment.
BUGS: Add known bug for mpfr_hypot.
2008-07-30 Philippe Théveny <philippe.theveny@laposte.net>
algorithms.tex: Prove the correctness of the algorithm used for mpfr_hypot
when the difference of inputs' exponents is less then exp_max - 2.
hypot.c: Change algorithm according to its description in algorithms.tex
tests/thypot.c: Fix tests (some were present but didn't trigger any error).
2008-07-30 Vincent Lefèvre <vincent@vinc17.net>
tests/texp.c: completed a comment.
tests/texp.c: updated underflow_up test of log(2^(emin - 1)) + eps:
* In the old test (- log(2) < eps < 0 in GMP_RNDN), do not test
the flags, as this may be incorrect on some platforms (though
unlikely). Better tests will be provided later.
* Added test for case eps > 0, which triggers a bug in mpfr_exp_3
(underflow flag sometimes set while it shouldn't be set).
exp.c: completed a comment, describing how rigorous underflow/overflow
detection can be done.
exp.c: removed an incorrect comment (corresponds to exp_2.c and already
in exp_2.c).
2008-07-29 Vincent Lefèvre <vincent@vinc17.net>
exp.c: underflow/overflow detection is still a bit incorrect.
TODO: added "test underflow/overflow detection...".
exp.c: fixed underflow/overflow detection.
exp_2.c: GNU style.
mpfr-impl.h: make sure that mpfr_get_exp_t and mpfr_set_exp_t are
correctly defined.
2008-07-26 Vincent Lefèvre <vincent@vinc17.net>
tests/texp.c: updated comment of underflow_up.
exp_2.c: solved the assertion failure by detecting a zero due to a
cancellation and increasing the precision via Ziv's loop in such a
case.
exp_2.c: added another assertion, that is checked independently of
the value of MPFR_EXP_2_THRESHOLD (better for debugging).
exp_2.c: added an assertion (more explicit than a similar assertion
that would fail later) in mpfr_exp2_aux, caught by the underflow_up
test in texp.c for prec = 16 on a 64-bit Linux machine.
2008-07-25 Vincent Lefèvre <vincent@vinc17.net>
tests/texp.c: added a test that shows incorrect underflow detection
in mpfr_exp, with possible assertion failure.
tests/tpow_all.c: added test of mpfr_exp2 and mpfr_exp10.
TODO: update.
TODO: added "option to use a 32-bit exponent type on LP64 machines".
2008-07-23 Vincent Lefèvre <vincent@vinc17.net>
acinclude.m4: updated AC_PREREQ line due to the use of AC_PROG_SED.
2008-07-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added reminder
patch from Patrick to get __GMP_CC and __GMP_CFLAGS from gmp.h
(future undocumented feature for GMP 4.2.3) -> we need to check
those are the names chosen by GMP 4.2.3 when it will be out
2008-07-21 Vincent Lefèvre <vincent@vinc17.net>
pow.c: fixed incorrect rounding in the general case when the result
is negative and rnd = GMP_RNDD or GMP_RNDU (bug20080721 in tpow.c).
tests/tpow.c: completed test bug20080721.
pow.c: fixed the non-trivial cases with large integer y.
tests/tpow.c: added comment for bug20080721.
tests/tpow.c: found another bug in mpfr_pow with large integers.
tests/tpow_all.c: added a test that detects a bug in an underflow case.
tests/tpow_all.c: made the comparisons between the power functions
generic to be able to add other tests.
2008-07-20 Vincent Lefèvre <vincent@vinc17.net>
pow_z.c: use MPFR_IS_POS(x) instead of MPFR_SIGN(x) > 0.
pow_si.c: corrected a comment.
tests/tpow_z.c: fixed NaN^0 test.
Fixed a bug in pow_ui.c and pow_z.c: NaN^0 returned NaN instead of 1
(see documentation). Affected functions: mpfr_pow_ui, mpfr_pow_si and
mpfr_pow_z (but not mpfr_pow). Added new test file tests/tpow_all.c
to test all the MPFR power functions on simple and special values.
2008-07-19 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: forgot the case x^(±0).
pow_z.c: updated comments.
tests/tpow_z.c: test bug20080223() didn't check that the result wasn't
a NaN. Fixed.
tests/tsprintf.c: removed trailing whitespace.
2008-07-11 Vincent Lefèvre <vincent@vinc17.net>
BUGS: potential problem with integer division and pre-C99 compilers,
noted by Philippe.
2008-07-08 Philippe Théveny <philippe.theveny@laposte.net>
Fix typos
2008-06-30 Philippe Théveny <philippe.theveny@laposte.net>
Fix typo (gmp macro TMP_ALLOC instead of MPFR_TMP_ALLOC).
2008-06-27 Vincent Lefèvre <vincent@vinc17.net>
vasprintf.c: fixed comment from r5408.
2008-06-27 Philippe Théveny <philippe.theveny@laposte.net>
acinclude.m4: add a check defining va_copy macro when needed.
vasprintf.c: use TMP_ALLOC instead of variable-length array (C99).
tests/tfprintf.c tests/tsprintf.c: #define length of array instead of const int so as to avoid variable-length array (C99).
tests/tprintf.c: #define length of array instead of const int so as to avoid variable-length array (C99).
remove use of function dup (dependency with <unistd.h>).
2008-06-25 Vincent Lefèvre <vincent@vinc17.net>
README.dev: updated "To make a release" (mention various compilers).
2008-06-23 Vincent Lefèvre <vincent@vinc17.net>
configure.in: added comments about icc.
2008-06-22 Vincent Lefèvre <vincent@vinc17.net>
TODO: added "replace the *_THRESHOLD macros by global (TLS) variables
that can be changed at run time [...]".
2008-06-16 Vincent Lefèvre <vincent@vinc17.net>
INSTALL: updated GMP's URL (the old one no longer worked), using
http://www.gnu.org/software/gmp/ as suggested by Karl Berry (see
GNU policies).
2008-06-13 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: changed the license for the inclusion of the manual in Debian
(see <https://www.debian.org/vote/2006/vote_001).
2008-06-11 Vincent Lefèvre <vincent@vinc17.net>
AUTHORS: converted from ISO-8859-1 to UTF-8 (this is the standard
nowadays and this is the encoding declared on InriaGforge).
2008-06-11 Philippe Théveny <philippe.theveny@laposte.net>
Fix typo in mpfr_printf documentation.
2008-06-11 Vincent Lefèvre <vincent@vinc17.net>
vasprintf.c: removed a misleading and now useless comment.
vasprintf.c: improved a comment.
tsprintf.c: typo in a comment.
2008-06-11 Philippe Théveny <philippe.theveny@laposte.net>
Fix comparison between mpfr string and libc string.
2008-06-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added test for bug(?) found by Vincent with icc
2008-06-10 Philippe Théveny <philippe.theveny@laposte.net>
Change #include <stdio.h> to #include <cstdio> when compiled with a C++ compiler.
Assume that mpfr_rnd_t and wchar_t arguments in a variadic functions are converted to 'int' by C++ compilers.
2008-06-10 Vincent Lefèvre <vincent@vinc17.net>
mpfr-impl.h: generate an error (with a clear error message) with g++ and
--enable-logging since compilation fails (--enable-logging is mainly for
testing and is already incompatible with threading support anyway).
2008-06-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
the O(l^{1/2}) method to evaluate power series is due to
Paterson and Stockmeyer and not Brent/Kung
2008-06-09 Vincent Lefèvre <vincent@vinc17.net>
Clean-up and various changes to be able to build MPFR with g++.
But the following 3 tests currently fail with g++ 4.3.1:
FAIL: tprintf
FAIL: tsprintf
FAIL: tfprintf
This is an "Illegal instruction" error, so probably a bug in g++.
[Edit: acinclude.m4 now uses gl_SIZE_MAX, typically from size_max.m4,
but which is not installed on all machines; this will be added to the
MPFR repository in changesets 5680 and 5683.]
vasprintf.c: do not use pointer arithmetic on void *.
configure.in: added -Wpointer-arith to gcc options (this warning
is useful as pointer arithmetic on void * is a gcc extension and
doesn't work with g++).
README.dev: mentioned a libtool bug with recent versions of icc.
sum.c:
* Completed a comment about T ** and const T ** mismatch.
* Removed a useless and misleading const that makes icc complain.
2008-06-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed typos
2008-06-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
use DeclareMathOperator for erf and erfc
fixed typo, added argument reduction for atan (we should try it since I believe
atan is slow wrt exp, log, sin, cos for large precisions)
simplified error analysis of log1p (did not match the code), and improved the
code (in particular when 1+x is exact, directly call mpfr_log and avoid Ziv).
2008-06-06 Vincent Lefèvre <vincent@vinc17.net>
rec_sqrt.c: removed execution bit.
mpfr.texi: update about build problems and the FAQ.
mpfr.texi: added a comment about why the cross reference to GNU Libtool
doesn't work from MPFR's directory.
mpfr.texi: added Section 4.1 "Headers and Libraries" partly based on
GMP's. Note: in the generated mpfr.info file, the cross reference to
libtool does not work (though GMP's info manual has exactly the same
one and it works there). I couldn't figure out why.
mpfr.texi: make cross reference in HTML similar to texinfo's default one
in PDF.
2008-06-04 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: updated the month.
mpfrlint: check the LGPL license version.
mpfr.texi: updated paragraph on the license in "Introduction to MPFR".
mpfr.texi: updated GFDL version from 1.1 to 1.2 to match fdl.texi
(this should have been done in r4059).
mpfrlint: check GFDL versions.
mpfr.texi, update-version: in the MPFR manual, replaced two
http://www.mpfr.org/ by the URL corresponding to the version,
which can be updated by update-version.
mpfr.texi: completed paragraph on MPFR vs double-precision numbers.
mpfr.texi: replaced each @code{mpfr} by MPFR (for consistency).
2008-06-03 Vincent Lefèvre <vincent@vinc17.net>
mpfr.h: fixed a comment.
2008-05-23 Vincent Lefèvre <vincent@vinc17.net>
tests: added tprintf to svn:ignore property.
Added documentation about "'var' may be used uninitialized in this
function" warnings.
2008-05-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
Added comments about int i = i trick to avoid warning about uninitialized
variables. This has the advantage to generate no code, but works for gcc only.
2008-05-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
initialize bbcp and bbcp1 to -1 (should be invalid)
added MPFR_ASSERTN to check they are not -1 before reads
simplified a test: (rnd == RNDN) || (rnd != RNDZ) ==> rnd != RNDZ
got rid of false (?) compiler warnings for uninitialized values
-> we might want to revert this change if we find a better solution and/or
if the problem is fixed in gcc
2008-05-20 Vincent Lefèvre <vincent@vinc17.net>
Reverted changeset r5355. Better patch to avoid the warnings
"warning: label 'addoneulp_doit' defined but not used" in
MPFR_RNDRAW_GEN by adding the dummy code in the macro itself.
Avoid warnings "warning: label 'addoneulp_doit' defined but not used"
due to the use of MPFR_RNDRAW_GEN. Dummy source code is inserted, but
this is safe, clean (optimized away) and IMHO not too obtrusive.
2008-05-08 Vincent Lefèvre <vincent@vinc17.net>
acinclude.m4: locally add -I$srcdir to CPPFLAGS for the thread-safe test
(fixes bug #5556).
2008-04-10 Vincent Lefèvre <vincent@vinc17.net>
INSTALL: added a paragraph about -ffast-math / -fast compiler options.
2008-04-07 Vincent Lefèvre <vincent@vinc17.net>
tcmp.c: fixed some tests (if mpfr_cmp2 returns an incorrect result,
the bug may be some non-reproducible behavior, so don't compute it
a second time to say what the value was!) and clean-up.
2008-04-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed compiler warning
2008-04-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
some other changes suggested by Patrick Pelissier for 16-bit portability
a few patches suggested by Patrick Pelissier to ease porting to 16-bit
architectures: removed useless #include <time.h>, changed 1024 to 1024L,
int i to lng i
2008-03-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added item about frac_* functions
2008-03-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed typo
2008-03-11 Philippe Théveny <philippe.theveny@laposte.net>
tests/tfprintf.c: set output to stdout when invocked with one command-line
parameter.
tests/tprintf.c: add IO errors processing.
2008-03-10 Philippe Théveny <philippe.theveny@laposte.net>
tests/tprintf.c: add tests for mpfr_printf and mpfr_vprintf.
Makefile.am: add tprintf.c to check_PROGRAMS.
TODO: remove newly added functions
vasprintf.c: change type of some variables taking care of signed/unsigned
comparisons, improve conditional tests, improve buffer
allocation, improve comments.
tests/tfprintf.c: remove silly code.
acinclude.m4: add check for long long compiler support, define HAVE_LONG_LONG.
vasprintf.c: raise an error when it encounter an unsupported format in format
string.
tests/tfprintf.c: HAVE_SDTINT_H -> _MPFR_H_HAVE_INTMAX_T
vasprintf.c: fix rounding bit bug with %RNa.
tests/tsprintf.c: add tests for %RNa (rounding bit bug, tie case, trailing
zeros in fractional part.
vasprintf.c: fix bug in macro CONSUME_VA_ARG with a mp_limb_t or mp_limb_t array argument
vasprintf.c: clean code storing the number of character in a pointer and fix bug with a mp_limb_t or mp_limb_t array argument
tests/tfprintf.c: add tests for %n with all kinds of type, get rid of machine dependent limits of type (use +1/-1 instead)
vasprintf.c: fix bug of forgotten decimal point with %#.0Rf
tests/tsprintf.c: add test with %#Rf and an integer mpfr_t
li2.c: improve error estimation in Ziv loop.
algorithm.tex:improve proof of mpfr_li2 algorithm.
hypot.c: change shift amount for exponents so as to avoid overflow in Ziv loop.
algorithm.tex: improve proof for mpfr_hypot algorithm (unfinished).
2008-03-07 Vincent Lefèvre <vincent@vinc17.net>
tgeneric.c: avoid a warning with gcc 4.2+ about a test that is always
true (the style of the code is now a bit better too).
2008-02-29 Philippe Théveny <philippe.theveny@laposte.net>
add mpfr_hypot
fix wrong arguments (set in r5332)
add missing functions
cosmetic changes
2008-02-28 Philippe Théveny <philippe.theveny@laposte.net>
add mixed format tests (with different types and different sizes)
vasprintf.c: fix "%%" bug
tests/tsprintf.c: add a test setting "%%" bug off
cosmetic changes
use system number of bits in the significant of a double (instead of 53)
2008-02-27 Philippe Théveny <philippe.theveny@laposte.net>
add handle for the case exp(x) overflows but sinh(x) is representable
further code simplification
code simplification (same as in r5323)
code simplification.
add_d.c, div_d.c, sub_d.c, d_div.c, d_sub.c: restore flags in case of exception. This fixes the bug revealed by MPFR_SUSPICIOUS_OVERFLOW
tests/tadd_d.c, tests/tsub_d.c, tests/tdiv_d.c, tests/tmul_d.c, tests/td_sub.c, tests/td_div.c, test/tmul_d.c: add checks for exception flags and ternary value
mul_d.c: restore flags set by mpfr_mul. This fixes the bug revealed by MPFR_SUSPICIOUS_OVERFLOW
test/tmul_d.c: add checks for exception flags
2008-02-27 Vincent Lefèvre <vincent@vinc17.net>
README.dev: updated the section about new functions (added a paragraph
on exception handling).
2008-02-26 Philippe Théveny <philippe.theveny@laposte.net>
improve proof for euclidean distance algorithm (unfinished)
2008-02-26 Vincent Lefèvre <vincent@vinc17.net>
pow_z.c: rewrote an ambiguous comment.
pow_z.c: removed obsolete comments and updated a comment.
pow_z.c: the same variable was used with two different meanings.
Changed the type and the name of the one inside the Ziv loop
(unsigned is theoretically more correct due to the bitwise OR).
2008-02-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug reported by Carl Witty (on 32-bit computers):
sage: RR(1.99999999)^RR(-(2^30))
5.11264311088393e-323228495
sage: RR(1.999999999)^RR(-(2^30))
0.000000000000000
sage: RR(2.0)^RR(-(2^30))
2.38256490488795e-323228497
2008-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added bug reported by Carl Witty
2008-02-22 Philippe Théveny <philippe.theveny@laposte.net>
remove commented code
add worst cases for RNDZ and RNDU with inexact flag checking
2008-02-22 Vincent Lefèvre <vincent@vinc17.net>
hypot.c: added a FIXME comment.
algorithms.tex: one can have a better upper bound on \sqrt{x^2+y^2}-|x|
(added as a comment in case this can be useful).
algorithms.tex: use hyperref.
2008-02-21 Philippe Théveny <philippe.theveny@laposte.net>
add more details in mpfr_hypot description
cosmetic change: display "EXP" in small capitals
no more use of {\rm \EXP}, use macro \Exp everywhere
2008-02-20 Philippe Théveny <philippe.theveny@laposte.net>
add worst case test
add test with locale da_DK
actually trigger overflow on all architectures
2008-02-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added MPFR_SUSPICIOUS_OVERFLOW in nightly tests
2008-02-20 Vincent Lefèvre <vincent@vinc17.net>
hypot.c: fixed overflow flag problem in RNDD/RNDZ modes (testcase was
added in r5301, and another check in r5300).
tests/thypot.c: added check_overflow test (currently fails in 32 bits).
tests/tgeneric.c: added a test that detects suspicious overflows and
fails when the overflow flag is not set. This test is enabled only if
the MPFR_SUSPICIOUS_OVERFLOW environment variable is set, and shows a
bug in mpfr_hypot on 32-bit machines (i.e. when the current exponent
range is the maximum exponent range, so that mpfr_check_range() has
no effect).
2008-02-19 Philippe Théveny <philippe.theveny@laposte.net>
restore flag overflow dropped by MPFR_SAVE_EXPO
2008-02-18 Philippe Théveny <philippe.theveny@laposte.net>
use of (*__gmp_allocate_func)/(*__gmp_free_func) instead of
mpfr_allocate_func/mpfr_free_func;
the modification in r5281 doesn't work when mpfr is compiled with --gmp_build
option.
2008-02-18 Vincent Lefèvre <vincent@vinc17.net>
hypot.c: it's better to scale by (Ex + Ey) / 2.
README.dev: now, the ChangeLog file should be in UTF-8, like in other
software (not much difference in practice).
2008-02-18 Philippe Théveny <philippe.theveny@laposte.net>
improve code coverage
code simplification
take trailing zeros into account when separating thousands
2008-02-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed problem when x and y are very small
2008-02-18 Philippe Théveny <philippe.theveny@laposte.net>
hypot.c: set flags when returning
tests/thypot.c: change custom random tests to tgeneric ones
2008-02-15 Vincent Lefèvre <vincent@vinc17.net>
For the terminating null pointer of the functions mpfr_inits,
mpfr_inits2, mpfr_clears, always use the type mpfr_ptr (no longer
void *). Updated the description of these functions in the manual
(mpfr.texi). The reason is that the C standard does not guarantee
that (void *) 0 has the same representation as a null pointer to
a structure (and even the same size). In most C implementations,
the representations are the same, but one never knows (dynamical
checking is also always possible)...
The change has been done with: perl -pi -e \
's/(mpfr_(clear|init)s.*)\(void *\*\) *0\)/$1(mpfr_ptr) 0)/' **/*.c
under zsh.
2008-02-15 Philippe Théveny <philippe.theveny@laposte.net>
fix typo
vasprintf.c: fix buffer_sandwich (use for thousands separator)
tests/tsprintf.c: add tests with "da_DK" locale
add generic tests
cosmetic changes
fix incorrect function call
2008-02-14 Philippe Théveny <philippe.theveny@laposte.net>
fix "%P" case, add test for it.
2008-02-13 Philippe Théveny <philippe.theveny@laposte.net>
avoid style 'f' with large numbers
2008-02-13 Vincent Lefèvre <vincent@vinc17.net>
tests: updated svn:ignore property.
2008-02-12 Philippe Théveny <philippe.theveny@laposte.net>
use of mpfr_allocate_func/mpfr_free_func instead of malloc/free
remove unneeded free and mpfr_clear
add tests for mpfr_snprintf and mpfr_vsnprintf
2008-02-12 Vincent Lefèvre <vincent@vinc17.net>
README.dev: added a note about freeing the memory in the tests.
2008-02-12 Philippe Théveny <philippe.theveny@laposte.net>
move tests of mpfr_get_str function from tout_str.c to tget_str.c
initialize fmt[] size
tfprintf.c: fix comment.
tsprintf.c: fix comment and get rid of libc rand().
rename tprintf.c as tsprintf.c, because it does not deal with mpfr_printf.
add tests for mpfr_fprintf functions
remove errno setting in snprintf, it is already done in vasprintf
correct grammatical faults in comment
2008-02-08 Vincent Lefèvre <vincent@vinc17.net>
tests/tests.c: undo r5270.
tests/tests.c: fixed assertion failure introduced in r5265.
2008-02-08 Philippe Théveny <philippe.theveny@laposte.net>
remove exponent checking
mpfr-gmp.h: Cancel r5261 changes removing the overload due to added test.
set_uj.c: Don't call memset when len is zero.
improve assertion.
add support of thousands separator option (' flag, defined in Single UNIX Specification v2)
better string buffer management
2008-02-07 Vincent Lefèvre <vincent@vinc17.net>
In tests_default_random, allow emin and emax to be outside of the
current exponent range, so that underflow/overflow checks can be
done on 64-bit machines. If the resulting random number is outside
of the current range, the exponent range is extended, and restored
by the caller once the test has been done.
In tests/tacosh.c, changed TEST_RANDOM_EMIN and TEST_RANDOM_EMAX
to MPFR_EMAX_MAX for test_generic_huge, so that the intermediate
overflow case in mpfr_acosh is tested on 64-bit machines.
2008-02-07 Philippe Théveny <philippe.theveny@laposte.net>
fix comment.
In fact, GNU libc4 accept '%F', libc5, glibc 2.0, and glibc 2.1 don't, and glibc 2.2 accept it with C99 semantics.
2008-02-06 Vincent Lefèvre <vincent@vinc17.net>
mpfr.h: added a comment about the mpfr_rnd_t enum.
mpfr-impl.h: removed MPFR_CHECK* macros as they are not used.
2008-02-05 Philippe Théveny <philippe.theveny@laposte.net>
MPN_ZERO (dst, n) doesn't call memset when n==0, it prevents warning when compiled with gcc -D_FORTIFY_SOURCE
2008-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added suggestion from Keith Briggs
2008-02-04 Philippe Théveny <philippe.theveny@laposte.net>
vasprintf.c: add code for %n specifier with any type
tests/tprintf.c: add test for %n specifier
improve mention on format string restriction
mention restriction on type field in the format string.
check possible overflows in exponent part, improve comments.
ensure null-terminated string for (v)snprintf.
2008-02-01 Philippe Théveny <philippe.theveny@laposte.net>
improve mpfr_printf documentation
2008-02-01 Vincent Lefèvre <vincent@vinc17.net>
tests.c: fixed perror argument in data_check.
2008-02-01 Philippe Théveny <philippe.theveny@laposte.net>
improve error handling
check fscanf return value, manage error case
2008-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added parentheses to avoid ambiguity (suggested by Keith Briggs)
2008-02-01 Philippe Théveny <philippe.theveny@laposte.net>
add some "%s" format string to prevent format string attack
2008-01-31 Philippe Théveny <philippe.theveny@laposte.net>
fix typo
2008-01-30 Philippe Théveny <philippe.theveny@laposte.net>
homogeneous use of logical variable
2008-01-30 Vincent Lefèvre <vincent@vinc17.net>
rec_sqrt.c: use MPFR_GET_EXP instead of MPFR_EXP, and avoid the
bitwise AND on a signed integer.
Reformat.
Document how to produce PDF and HTML versions of the manual.
2008-01-30 Philippe Théveny <philippe.theveny@laposte.net>
change to values acceptable by 32-bits machines
fix wrong statement in MPFR_ASSERTD
2008-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added compilation options suggested by Debian:
http://alioth.debian.org/projects/hardening/
https://lists.debian.org/debian-devel/2007/12/msg00090.html
(except -Wl,zrelro which does not seem to work)
2008-01-29 Philippe Théveny <philippe.theveny@laposte.net>
So as to avoid conversion error, get rid of mpfr_set_d/mpf_set_d except in random_double().
Skip conversion error in random_double().
fix typo in comment
get rid of limitation on number of character by specifier
vasprintf.c: fix %Rg case
tests/tprintf.c: add %Re, %Rf, and %Rg tests
tests/tprintf.c: add random checking against libc
2008-01-28 Philippe Théveny <philippe.theveny@laposte.net>
remove (undocumented) integer conversion support for mpfr_t
set errno to EOVERFLOW when printf-like functions should return value exceeding INT_MAX
change internal name of printf-like functions under preprocessor conditionals, add explanation in comment.
2008-01-25 Vincent Lefèvre <vincent@vinc17.net>
TODO: added a possible class of tests.
2008-01-23 Vincent Lefèvre <vincent@vinc17.net>
tests.c: remove a blank line in an error message.
Test that the MPFR library version matches the mpfr.h version in any
test file (this should avoid some bug reports that don't mention the
real problem).
tversion.c: improved an error message.
acinclude.m4: fixed configure test for TLS support.
NEWS file update (configure test for TLS support).
Changes related to thread-local variables / TLS support.
* Moved the MPFR_THREAD_ATTR definition from mpfr-impl.h into a new
header file mpfr-thread.h, and updated Makefile.am accordingly.
* Removed the compiler check __MPFR_GNUC(3,3) || __MPFR_ICC(8,1,0)
as this test leaded to both false positives and false negatives
concerning TLS support. Assume that __thread should be used for
thread-local variables (except for the MS compiler).
* Added a configure test to acinclude.m4 (in MPFR_CONFIGS).
2008-01-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added item about timings for a new release
mbench program written by Patrick Pelissier to measure clock cycles of MPFR
(and other libraries) for small precision
2008-01-22 Vincent Lefèvre <vincent@vinc17.net>
NEWS: noted the changes concerning mpfr_strtofr (changesets 5146, 5147,
5148, 5149, 5167, 5172, 5173).
mpfr-gmp.h: small fix of a macro.
2008-01-21 Vincent Lefèvre <vincent@vinc17.net>
mpfr-gmp.h: for temporary allocations, use alloca() if size < 16384.
2008-01-19 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: inverse square root -> reciprocal square root.
2008-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added mpfr_rec_sqrt in mpfr.texi (forgot in last commit)
2008-01-18 Vincent Lefèvre <vincent@vinc17.net>
NEWS: added mpfr_rec_sqrt for MPFR 2.4.*.
2008-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed rec_sqrt (done)
2008-01-17 Philippe Théveny <philippe.theveny@laposte.net>
vasprintf.c: merge code for "%Ra" and "%Rb"
2008-01-16 Philippe Théveny <philippe.theveny@laposte.net>
cosmetic change: replace "enum _arg_type" by "enum arg_t"
vasprintf.c: fix %g case; merge %e, %f, %g code
tests/tprintf.c: add tests for %Rg
add MPFR_SAVE_EXPO macros
cosmetic changes: only one leading underscore for an identifier with file scope
add needed va_list argument in READ_INT macro
2008-01-16 Vincent Lefèvre <vincent@vinc17.net>
tests: added trec_sqrt to svn:ignore property.
mpfr-impl.h: when building MPFR with the GMP build directory,
use TMP_ALLOC(s) instead of TMP_SALLOC(s), as we don't know
whether allocations are small or big (see gmp-impl.h).
2008-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
moved from ASSERTD to ASSERTN an assertion which does not depend on MPFR
2008-01-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
this file might be useful to test mpfr_rec_sqrt...
rec_sqrt.c: complete rewrite, to allow to use directly the MPFR internal
representation as input (without shift), and to allow different
input and output precisions, without loss of efficiency
other files: added new function mpfr_rec_sqrt
2008-01-14 Vincent Lefèvre <vincent@vinc17.net>
rec_sqrt.c: deleted trailing whitespace.
mpfr-gmp.{c,h}: no longer use alloca() for the temporary allocations as
this can make MPFR crash in some high precisions, due to limited stack.
2008-01-14 Philippe Théveny <philippe.theveny@laposte.net>
add bug found by Paul Zimmermann
vasprintf.c: fix wrong computation of digit number with %Rf when 0 < op < 1
tests/tprintf.c: simpler 10^-n case
2008-01-14 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: typo.
2008-01-11 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: updated month.
mpfr.texi: added a warning concerning huge precisions.
2008-01-10 Philippe Théveny <philippe.theveny@laposte.net>
fix %f case
cosmetic changes
2008-01-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
small changes for acos/asin/atan/atan2 rounded outside their output range
2008-01-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added note about output of acos/asin/atan/atan2 which might be outside the
function domain
2008-01-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
new version with improved tables, use macros from mpfr-impl.h, removed tabs
2008-01-04 Vincent Lefèvre <vincent@vinc17.net>
Fixed return value of mpfr_strtofr in case of invalid data (it was -1,
but it should be 0 since it is a ternary value and the result is 0,
which is exact). Added test of the ternary value in this case.
mpfr.texi: better description of mpfr_strtofr.
NEWS update (new functions in the trunk).
Changes related to mpfr_strtofr.
* strtofr.c: for mpfr_strtofr, data corresponding to NaN can now have
an optional sign (since the documentation said that parsing followed
the standard C strtod function and this change makes invalid data
now valid, so that there should be no compatibility problems).
* tests/tstrtofr.c: changed the test for -42P17 in base 16 (this was
eventually regarded as a documentation bug); added tests.
* mpfr.texi: almost completely rewrote the specification of the
mpfr_strtofr function. Changes:
- the binary exponent is now accepted even without the 0b or 0x
prefix;
- data corresponding to NaN can now have an optional sign (this was
a bit ambiguous);
- many other ambiguities avoided.
2008-01-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
the function mpfr_mpn_rec_sqrt() provides a faithful approximation of the
inverse square root. Some improvements can still be made, but the interface
should not change, thus we can start writing the mpfr_rec_sqrt function that
calls it.
2008-01-02 Vincent Lefèvre <vincent@vinc17.net>
FAQ update.
2008-01-01 Vincent Lefèvre <vincent@vinc17.net>
tgamma.c: completed test in r5159 with another one that was failing
in the default exponent range.
delete trailing spaces.
2008-01-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug in case of underflow (wrong sign)
2008-01-01 Vincent Lefèvre <vincent@vinc17.net>
gen_inverse.h: fixed the bug reported by Kevin Rauch a few hours ago
(and that was detected by the generic tests and by mpfrlint after the
latest changes).
mpfrlint: incorrect use of mpfr_<flag>_p is also checked in .h files.
Copyright notice update: added 2008 with
perl -pi -e 's/2007 Free Software/2007, 2008 Free Software/' **/*(^/)
under zsh.
tgeneric.c: in the bug detection with flags set before the function
call, the erange flag was set, so that no checks were performed on
the return value. Fixed that by not setting the erange flag.
-> Now, 7 tests fail!
2007-12-31 Vincent Lefèvre <vincent@vinc17.net>
tstrtofr.c: added test of -42P17 with base = 0 and 16. This currently
fails with base = 16 (-42P17 is parsed as -0x42P17 instead of -42 with
the remaining characters "P17"), but we could alternatively regard the
mpfr_strtofr specification (in mpfr.texi) as incorrect.
2007-12-30 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: corrections in the specification of mpfr_strtofr (see FIXME).
strtofr.c: base arguments different from 0 and 2..36 have never been
accepted. So, instead of returning the confusing -1 (it's a ternary
value), let's add an assert for the moment. An alternative solution
is to return 0 and set the erange flag.
strtofr.c: minor change (in the style); a comment was ambiguous.
2007-12-29 Vincent Lefèvre <vincent@vinc17.net>
TODO update (tests: generic bad cases).
Added #if MPFR_VERSION >= MPFR_VERSION_NUM(2,4,0) conditionals to be
able to test MPFR 2.3.* with the (more complete) tests from the trunk.
README.dev: updated item 6 of "To make a release".
2007-12-28 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: updated month.
2007-12-27 Vincent Lefèvre <vincent@vinc17.net>
tests: check the exponent range, in particular at the end of each test.
texceptions.c: GNU coding style.
texceptions.c: restore the exponent range.
exp2.c: removed incorrect comment (the overflow test was OK due to the
mpfr_clear_flags above, but the new test is slightly better anyway).
2007-12-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added tuning parameters for 32-bit Core 2
(thanks to Patrick Pelissier and Emmanuel Thome)
2007-12-20 Vincent Lefèvre <vincent@vinc17.net>
tpow.c: enable testcase bug20071218.
2007-12-19 Vincent Lefèvre <vincent@vinc17.net>
BUGS: possible incorrect results due to internal underflow.
pow.c: detect all underflow cases (some of them were leading to
an infinite loop, see bug20071218 in tpow.c).
mpfr-impl.h: updated description of MPFR_CAN_ROUND.
round_p.c: in comment, "round to zero" -> "round toward zero".
tpow.c: formatting.
tpow.c: added testcase for another bug found by Kevin P. Rauch.
Execute tpow with an argument to enable it.
2007-12-19 Philippe Théveny <philippe.theveny@laposte.net>
vasprintf.c: add sprnt_fp_e for "%e" processing
tests/tprintf.c: change tests for decimal output (but need further tests)
add checks for zero
2007-12-18 Vincent Lefèvre <vincent@vinc17.net>
Merged the feature-block branch to the trunk:
* New MPFR_BLOCK* macros (see mpfr-impl.h) and mpfrlint check to test
exception flags in a more reliable way and detect possible problems
with mpfrlint.
* Improved the generic tests (tests/tgeneric.c): for the second
function call, sometimes set all the flags since risk of failures
are known when some flags are already set.
* Modified code to use these new MPFR_BLOCK* macros. This fixed bugs
related to exceptions (where flags are set before the call); in
particular, tcot and ty1 failed with the improved generic tests.
[Added during the Subversion to Git conversion]
A merge commit could not be generated for Git.
Branch in Git: refs/deleted/r5131/heads/feature-block
2007-12-18 Philippe Théveny <philippe.theveny@laposte.net>
printf.c: each mpfr_printf-like function return -1 and set erange flag in error case
vasprintf.c: change types in struct char_fp
vasprintf.c: add many size checking
simplify code, improve comments
2007-12-18 Vincent Lefèvre <vincent@vinc17.net>
Fixed bug in mpfr_pow_z: if x = y (same mpfr_t argument), the input
argument is negative and not a power of two, z is positive and odd,
an overflow or underflow occurs, and the temporary result res is
positive, then the result gets a wrong sign (positive instead of
negative). Testcase.
Fixed bug in mpfr_pow_ui (introduced in r3214): if x = y (same mpfr_t
argument), the input argument is negative, n is odd, an overflow or
underflow occurs, and the temporary result res is positive, then the
result gets a wrong sign (positive instead of negative). Testcase.
pow_ui.c: fixed an assertion.
BUGS: update concerning overflow/underflow exceptions.
2007-12-18 Philippe Théveny <philippe.theveny@laposte.net>
exponent continuity with one hexadecimal digit output
2007-12-17 Philippe Théveny <philippe.theveny@laposte.net>
#define CASE_INT_MAX_ARG to nil when HAVE_STDINT_H is not defined
vasprintf.c: add sprnt_fp_b for "%b" processing
tests/tprintf.c: add tests for binary output
fix count of characters in exponent part
simplify code, remove trailing spaces and improve comment
2007-12-17 Vincent Lefèvre <vincent@vinc17.net>
TODO: added note about the successive calls to strcat in vasprintf.c.
2007-12-17 Philippe Théveny <philippe.theveny@laposte.net>
add tests for 1 hexa digit output
2007-12-16 Vincent Lefèvre <vincent@vinc17.net>
tests/tpow.c: fixed indentation.
2007-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed typo
fixed bug reported by Kevin Rauch
2007-12-14 Philippe Théveny <philippe.theveny@laposte.net>
change display with just one hexadecimal digit
2007-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
simplified MPFR_FAST_COMPUTE_IF_SMALL_INPUT part (in case of overlap)
2007-12-14 Philippe Théveny <philippe.theveny@laposte.net>
fix wrong call
2007-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added comments, got rid of compiler warnings
added warning
2007-12-14 Vincent Lefèvre <vincent@vinc17.net>
sin_cos.c: improved changeset 5084; in particular, added a missing cast.
2007-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
sin_cos.c, tsin_cos.c: fixed bug occurring when arguments overlap and
MPFR_FAST_COMPUTE_IF_SMALL_INPUT fails
reuse.c: improved output in case of error
2007-12-14 Philippe Théveny <philippe.theveny@laposte.net>
improve one digit case, add comment
2007-12-14 Vincent Lefèvre <vincent@vinc17.net>
vasprintf.c: added a FIXME comment. Bug?
Minor changes concerning num_to_text. The ending \0 isn't needed.
2007-12-14 Philippe Théveny <philippe.theveny@laposte.net>
simplify error output code
add num_to_text array for hexadecimal digits
output errors to stdout
2007-12-13 Philippe Théveny <philippe.theveny@laposte.net>
vasprintf.c: group hexadecimal output processing in a new sprnt_fp_a function.
tests/tprintf.c: add tests for %a case
tests/tprintf.c: factorize error message output
2007-12-13 Vincent Lefèvre <vincent@vinc17.net>
get_d64.c: fixed comment.
vasprintf.c: added missing #include <string.h> (useful if MPFR is built
with the GMP build directory, as mpfr-gmp.h isn't used in this case).
2007-12-13 Philippe Théveny <philippe.theveny@laposte.net>
Fix typos.
Add handle for null size case in mpfr_snprintf
Add some comments and assertions.
#define's for nan and inf strings
short documentation of printf-like functions.
2007-12-12 Vincent Lefèvre <vincent@vinc17.net>
README.dev: added information about my tool "eet" to be able to see the
warnings more easily.
vasprintf.c: updated comment concerning the case nbchar > INT_MAX.
2007-11-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed default return value in mpfr_jn_k0
fixed underflow problem in mpfr_exp_3
tests/tset_str.c: added command-line argument for output base
jn.c: replaced double-precision LOG2 constant by binary string (more portable)
fixed underflow problem
experimental code to distinguish Core2 from AMD64
removed manual change to __gmpfr_emin outside the allowed range
added suggestion from Patrick Pelissier
2007-11-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
Fixed another bug reported by Kevin Rauch (__gmpfr_emin was set smaller
than the minimum allowed value, which produced an exponent wrap-around
and a wrong result in mpfr_mul). Not sure if all problems are solved,
nevertheless __gmpfr_emin is now in the allowed range.
2007-11-29 Vincent Lefèvre <vincent@vinc17.net>
Fixed indentation.
tests.c: in test4rm, initialize rndnext with an invalid value (meaning
that rndnext will really be initialized later), and added an assert to
check that this value isn't propagated to rnd.
tests.c: added a comment about rndnext in test4rm.
tests.c: added an assertion.
2007-11-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug reported by Kevin Rauch (wrong sign in case of underflow for
large negative x and large odd negative y)
2007-11-29 Philippe Théveny <philippe.theveny@laposte.net>
untabify and remove trailing spaces
fix padding error in sprnt_inf
factorization of special numbers output in sprnt_nan and sprnt_inf functions
fix comment about the size of format string buffer
replace memory management functions mpfr_default_* by __gmp_*_func
2007-11-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
updated Core 2 thresholds (obtained with gmp-4.2.2 and Gaudry's patch)
2007-11-29 Vincent Lefèvre <vincent@vinc17.net>
Typo in comment.
2007-11-29 Philippe Théveny <philippe.theveny@laposte.net>
fix typo pointed out in revision 5044
2007-11-28 Vincent Lefèvre <vincent@vinc17.net>
printf.c: more comments about snprintf.
printf.c: added a comment concerning a warning (a bug, IMHO).
vasprintf.c: added FIXME comment concerning the case nbchar > INT_MAX,
with a reference to POSIX.
2007-11-28 Philippe Théveny <philippe.theveny@laposte.net>
add explanations about buffer size
change __gmp_const into const
2007-11-28 Vincent Lefèvre <vincent@vinc17.net>
vasprintf.c: added an assert.
2007-11-28 Philippe Théveny <philippe.theveny@laposte.net>
fix output with space flag
add MPFR_ASSERTD to prevent buffer overflow
replace use of ptrdiff_t by size_t where possible
2007-11-27 Philippe Théveny <philippe.theveny@laposte.net>
factorisation of temp string alloc in buffer_pad function
cosmetic changes
compatibility of types between nbc fields and mp_exp_t
fix wrong size of buffer string exp_fmt
2007-11-27 Vincent Lefèvre <vincent@vinc17.net>
Added initial mpfrlint sh script to check possible problems in
the MPFR source.
2007-11-27 Philippe Théveny <philippe.theveny@laposte.net>
change 'g'/'G' to 'e'/'E' or 'f'/'F' according to C99 rules
2007-11-26 Philippe Théveny <philippe.theveny@laposte.net>
replace mpfr_default_(re)allocate by __gmp_(re)allocate for the returned string (freed by mpfr_free_str)
tprintf.c: replace __gmp_const by const
2007-11-26 Vincent Lefèvre <vincent@vinc17.net>
printf.c: added FIXME comment: snprintf is new in C99. It must be
checked with a configure test.
tests: updated svn:ignore property.
vasprintf.c: reformat.
MPFR_DECIMAL_POINT now needs to have type char (because of vasprintf.c).
tests/tprintf.c: changeset 4996 was incorrect. Fixed.
README.dev: Avoid variable names "l", "I" and "O".
README.dev: added a note about the locales.
2007-11-26 Philippe Théveny <philippe.theveny@laposte.net>
printf.c: fix use of pointer of string
vasprintf.c: add conditional compilation directives for wchar and wint_t
vasprintf.c: add padding for special values
vasprintf.c: fix output for value 1.0 and format "%Rf"
vasprintf.c: replace __gmp_const by const
2007-11-26 Vincent Lefèvre <vincent@vinc17.net>
acinclude.m4: check wchar.h header (see below).
vasprintf.c:
* No longer depend on toupper (which returns locale-dependent results)
to generate 'A'..'F' (see C standard).
* Removed #include <ctype.h> which was hiding a bug (see below).
* Added missing #include <wchar.h> if HAVE_WCHAR_H is defined. But
the compilation fails if <wchar.h> doesn't exist due to the use of
wchar_t and wint_t.
vasprintf.c: updated comments.
vasprintf.c:
* Removed #include <stdlib.h> now useless.
* Added FIXME comment.
* Replaced _MP_EXP_FORMAT_SPEC (reserved) by MPFR_EXP_FORMAT_SPEC.
vasprintf.c: added FIXME comments.
vasprintf.c: fixed a typo in a comment and improved another comment.
2007-11-24 Vincent Lefèvre <vincent@vinc17.net>
mpfr.h: moved function declarations out of "#ifdef _MPFR_H_HAVE_VA_LIST"
and/or "#ifdef _MPFR_H_HAVE_FILE" when this makes sense.
tests/tprintf.c: added missing "void" in function declarations.
Untabified and removed trailing spaces.
mpfr.texi: corrections (English usage and texinfo). Added corresponding
notes at the end of the README.dev file.
mpfr.texi: s/rounding to the nearest mode/rounding to nearest mode/
mpfr.texi consistency changes: "towards" -> "toward" (because this
is what the IEEE-754 standard uses, and we have mpfr_nexttoward).
mpfr.texi: English typography corrections (no space before ":").
vasprintf.c: the use of the abs function was incorrect as its argument
has type int, which may be smaller than an mp_exp_t. Fixed that and
replaced uceil_log10 by uceil_log10_exp_p2.
vasprintf.c: fixed uceil_log10 for x close to ULONG_MAX.
2007-11-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
got rid of math.h
2007-11-23 Vincent Lefèvre <vincent@vinc17.net>
tests/tprintf.c: include <stdarg.h>.
stdarg-related corrections, as HAVE_STDARG is not standard thus must not
be tested in mpfr.h!
tests/tprintf.c: enable the tests only if HAVE_STDARG is defined,
i.e. if the printf-like functions are defined.
tests/tprintf.c:
* Non-standard headers should be included after the standard headers
(when possible).
* The setlocale function is used only if <locale.h> has been included.
* Use tests_start_mpfr / tests_end_mpfr; this shows a bug:
tests_free(): attempt to free bad pointer 0x1801200
tests/tests.c: setlocale is used only if <locale.h> has been included.
out_str.c: remove other occurrence of <locale.h>.
2007-11-23 Philippe Théveny <philippe.theveny@laposte.net>
Makefile.am: add mpfr_printf-like functions
mpfr.h: add mpfr_printf-like functions
printf.c: printf, sprintf, snprintf, asprintf and 'v' variants
vasprintf.c: vasprintf functions used by its likes
mpfr.texi: add description for printf family functions
tests/Makefile.am: add test for printf
tests/tprintf.c: tests for printf-like functions
acinclude.m4: define HAVE_LOCALE_H
mpfr-impl.h: define MPFR_DECIMAL_POINT even if no locale.h
strtofr.c: remove locale.h inclusion (done by mpfr-impl.h )
tests/tests.c: use HAVE_LOCALE_H
2007-11-23 Vincent Lefèvre <vincent@vinc17.net>
tests/tisqrt.c: test the 32-bit __gmpfr_cuberoot bound cases (9 per
value) exhaustively (running tisqrt is still immediate on a recent
machine).
tests/tisqrt.c: test the 32-bit __gmpfr_isqrt bound cases exhaustively.
acinclude.m4: test the availability of <string.h>.
acinclude.m4: test the availability of <locale.h>.
acinclude.m4: updated comment concerning the checked functions.
acinclude.m4: added memmove to the checked functions (though this test
is currently useless, except for the corresponding information).
acinclude.m4: updated a comment concerning the function checking.
gmp_op.c: removed old "#include <stddef.h>" line (seems to be useless
now, and note that <stdio.h> is included by default in mpfr-impl.h).
tests/tj0.c: fixed test.
jn.c: added integer overflow checking.
tests/memory.c: fixed copyright notice.
2007-11-21 Vincent Lefèvre <vincent@vinc17.net>
tests/tzeta.c: completed test of mpfr_zeta bug fixed in r4920 (the value
of zeta(large negative) was also wrong in GMP_RNDU: -Inf instead of the
largest negative MPFR number).
2007-11-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
reverted back to rev. 4951 (otherwise we would have to free memory for all
exit calls)
2007-11-20 Philippe Théveny <philippe.theveny@laposte.net>
use of RANDS instead of __gmp_rands
tset_f.c add checking with random values
2007-11-19 Philippe Théveny <philippe.theveny@laposte.net>
tli2.c: fix wrong assertion in copyright motice
test.c: fixed seed for reproducible errors
trandom.c tpow_z.c tset_f.c: integration with GMP_CHECK_RANDOMIZE process
2007-11-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added missing call to tests_end_mpfr
got rid of mpfr_init_gmp_rand/MPFR_TEST_USE_RANDS and not-reentrant gmp
random functions (mpn_random*, mpz_random*, mpf_random*). Now all tests use
either RANDS (which is cleared by tests_rand_end called by tests_end_mpfr),
or the gmp_randstate_t mechanism.
2007-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added missing mpfr_clear and tests_end_mpfr (thanks Michael Abshoff)
fixed problem reported by valgrind (thanks to Michael Abshoff)
2007-11-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug in div_ui for x=0 and u<>0 (sign of result was not set)
2007-11-06 Philippe Théveny <philippe.theveny@laposte.net>
algorithms.tex: fix bibtex references for dilogarithm function
algorithms.bib: add references for dilogarithm function
2007-11-05 Vincent Lefèvre <vincent@vinc17.net>
mpfr-impl.h: removed trailing spaces.
2007-11-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added new macro MPFR_ALIAS
2007-11-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed unused label
2007-11-04 Vincent Lefèvre <vincent@vinc17.net>
pow_z.c: fixed bug that occurs when x is a power of 2 and the result
overflows (wrong sign); this bug has always been present (from r3215).
tpow.c, tpow_z.c: removed a printf that was left by mistake.
tpow_z.c: added testcase for the latest mpfr_pow bug (rev 4942),
which is in fact a bug in mpfr_pow_z.
tpow.c: added testcase for new bug found by Kevin P. Rauch; removed a
mpfr_dump that was left by mistake.
2007-11-03 Vincent Lefèvre <vincent@vinc17.net>
pow.c: removed FIXME comment.
2007-11-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed case x < 0, y large integer
2007-11-03 Vincent Lefèvre <vincent@vinc17.net>
pow.c: added FIXME comment.
tpow.c: added testcase for new bug found by Kevin P. Rauch. The problem
occurs on x^y with x negative and y an integer whose exponent is > 256
(so that mpfr_pow_z isn't used, and the generic code is used instead and
fails because x is negative).
2007-11-02 Vincent Lefèvre <vincent@vinc17.net>
Fixed several bugs in mpfr_pow (from rev 3592 and 4932); added testcase.
tpow.c: added an overflow test in reduced exponent range
(-> assertion failure in the current pow.c code).
mpfr-impl.h: added a comment concerning __gmpfr_one, __gmpfr_two and
__gmpfr_four.
Bug fix: in cmp_abs.c, changed MPFR_GET_EXP into MPFR_EXP to allow
exponents outside the current exponent range (needed for mpfr_pow).
2007-10-31 Vincent Lefèvre <vincent@vinc17.net>
Untabified and removed trailing spaces.
2007-10-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
pow.c, tpow.c: fixed bugs reported by Kevin Rauch
mpfr-impl.h: fixed typo
cosmetic changes
added missing \Li2
2007-10-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added more test cases for mpfr_li2
improved MPFR_FAST_COMPUTE_IF_SMALL_INPUT case for x > 0
fixed bug mentioned by Kevin Rauch: mpfr_lgamma was hanging for tiny input
(had to implement a complete loop in that case)
fixed bug reported by Kevin Rauch: wrong sign for jn(n even, large negative x)
removed item on mpfr_sinh_cosh (done)
added more info on item on efficiency of mpfr_sin
added comment about function/macro in custom interface
jn.c: improved choice of initial precision in Taylor series (takes into
account cancellation)
tests/tjn.c: now "tjn p n z" evaluates j(n,z) to precision p
2007-10-27 Vincent Lefèvre <vincent@vinc17.net>
factorial.c: added FIXME comment.
gamma.c: attempt to fix wrong fix in 4918 (the maximum exponent can
be > 2^30 on 64-bit machines). There may still be problems in huge
precisions.
2007-10-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added note about efficiency of special functions
corrected typo
fixed bug in zeta(large negative) reported by Kevin Rauch [wrong inexact flag]
fixed inefficiency reported by Kevin Rauch when x large negative (erfc -> 2)
2007-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed another bug found by Kevin Rauch: gamma(huge integer) failed on 64-bit
fixed bug found by Kevin Rauch (emin/emax not restored for x=1,2)
added test for reference values
reference values for li2
2007-10-26 Philippe Théveny <philippe.theveny@laposte.net>
algorithms.tex: description of dilogarithm algorithm
li2.c: conformity with description in algorithm.tex
2007-10-23 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: small change in the description of mpfr_subnormalize.
2007-10-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added more details in the description of subnormalize
2007-10-23 Vincent Lefèvre <vincent@vinc17.net>
subnormal.c: fixed the bugs when old_inex is INT_MIN or INT_MAX.
tsubnormal.c: added some tests showing bugs when old_inex is INT_MIN
or INT_MAX.
subnormal.c: corrected comment.
Changeset r4904 introduced an assertion failure, but the assertion
emax - emin >= PREC(x) wasn't necessary: the value of emax doesn't
matter, except when the exponent is increased due to the rounding.
So, we just document that if the result cannot be represented in the
current exponent range, the behavior is undefined (updated mpfr.texi
accordingly). Removed the assertion from subnormal.c and added a new
one to have an abort if such an undefined behavior occurs.
2007-10-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed 2 bugs reported by Kevin Rauch
2007-10-22 Vincent Lefèvre <vincent@vinc17.net>
subnormal.c: replaced incorrect comment.
tests: updated svn:ignore property.
2007-10-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added new references
2007-10-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added asymptotic expansions
2007-10-19 Philippe Théveny <philippe.theveny@laposte.net>
li2.c: add Ziv's loop in li2_series
tli2.c: add a function for fixed value checking
2007-10-17 Philippe Théveny <philippe.theveny@laposte.net>
li2.c: fix a typo and fix use of taylor series
tests/tli2.c: use default random function
2007-10-16 Philippe Théveny <philippe.theveny@laposte.net>
add dilogarithm function
2007-10-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added item in Efficiency section
added table of contents
removed last section (mpf/mpfr integration)
2007-10-15 Vincent Lefèvre <vincent@vinc17.net>
Fixed acosh(x) with x slightly larger than 1, using sqrt(2(x-1)) and
a complete error analysis.
tests/tacosh.c: added another test with x a bit larger than 1 and
prec(y) << prec(x).
2007-10-12 Vincent Lefèvre <vincent@vinc17.net>
acosh.c: added a comment about the fix I did in r4814.
2007-10-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added extra reference for slowness of mpfr_root
2007-10-09 Vincent Lefèvre <vincent@vinc17.net>
FAQ update (added Question 8).
mpfr.texi: another small change in Contributors section.
mpfr.texi: small change in Contributors section.
mpfr.texi: mention Fiable and AOC actions in the Contributors section.
2007-10-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added reference to ACM TOMS paper
updated other references, and Contributors section
fixed typo in sectioning
2007-10-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed mpfr_get_d1 from documented functions
removed old commented functions
renamed "Rounding Mode Related Functions" to "Rounding Related Functions"
put mpfr_can_round in "Rounding Related Functions" (now exported)
exchanged order of sections "Miscellaneous Functions" and "Rounding Related Functions"
added hint for mpfr_can_round to get ternary value
changed mpfr_can_round() call into MPFR_CAN_ROUND() call
2007-10-05 Vincent Lefèvre <vincent@vinc17.net>
Updated update-version to make patches easier to produce.
2007-10-04 Vincent Lefèvre <vincent@vinc17.net>
Fixed a bug (found by Robert Bajema) in mpfr_atan2, which can occur if
the underflow flag is set before the call and x > 0; added testcase.
2007-10-03 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: improved mpfr_set_exp description too.
mpfr.texi: improved mpfr_get_exp documentation.
mpfr.texi: mantissa -> significand (to use the terminology from IEEE 754
and ISO C99).
configure.in: better error message if libgmp is not found.
2007-10-02 Philippe Théveny <philippe.theveny@laposte.net>
fix some typos
2007-09-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added references
2007-09-28 Philippe Théveny <philippe.theveny@laposte.net>
merge fmod, remaider and remquo into a single file rem1.c.
merge code into a single internal function mpfr_rem1.
fix false statement in mpfr.texi: rop and op1 have the same sign for mpfr_fmod
but not for mpfr_remainder and mpfr_remquo.
2007-09-26 Vincent Lefèvre <vincent@vinc17.net>
tests/tfmod.c: added static.
2007-09-26 Philippe Théveny <philippe.theveny@laposte.net>
new fmod function
2007-09-22 Vincent Lefèvre <vincent@vinc17.net>
tests: updated svn:ignore property.
GNU coding style, reformatting, exit (-1) -> exit (1).
2007-09-21 Philippe Théveny <philippe.theveny@laposte.net>
new mpfr_sinh_cosh function
2007-09-19 Vincent Lefèvre <vincent@vinc17.net>
BUGS: removed __gmpfr_isqrt bug.
isqrt.c: quick fix of __gmpfr_cuberoot (a full proof is needed).
tests/tisqrt.c: added much more tests for __gmpfr_cuberoot.
tisqrt.c: improved tests. When doing
touch tests.c tisqrt.c
make tisqrt CFLAGS="-g -O2 -ffloat-store -DMPFR_FPU_PREC=_FPU_SINGLE"
./tisqrt
with gcc 4.2.1 on a Linux/x86 machine, on gets:
Error in __gmpfr_cuberoot (4251527999): got 1620 instead of 1619
tisqrt.c: added __gmpfr_cuberoot() tests.
isqrt.c: corrected the explanation.
isqrt.c: fixed __gmpfr_isqrt.
2007-09-18 Vincent Lefèvre <vincent@vinc17.net>
tests: updated svn:ignore property.
tests: added tisqrt.c (test file for __gmpfr_isqrt internal function).
BUGS: added __gmpfr_isqrt bug.
isqrt.c: fixed a cast and added a FIXME comment.
isqrt.c: GNU coding style.
sin.c: extend the exponent range.
sqr.c: set the global inexact flag.
sqrt.c: avoid the exponent range extension.
tsqr.c: added generic tests (shows that the inexact flag isn't set).
sqrt.c: extend exponent range (this also fixes the fact that the global
inexact flag wasn't set).
tsqrt.c: added generic tests (shows that the inexact flag isn't set,
which is a bug reported by Guillaume Revy).
2007-09-17 Philippe Théveny <philippe.theveny@laposte.net>
modf.c: take care of user exponent range (possible underflow/overflow)
2007-09-16 Vincent Lefèvre <vincent@vinc17.net>
tsin_cos.c: fixed the tiny() test.
sin_cos.c: fixed the overflow and cancellation problems by using
MPFR_FAST_COMPUTE_IF_SMALL_INPUT from the mpfr_sin and mpfr_cos
functions (I'll fix the test later).
tsin_cos.c: added test on tiny values.
2007-09-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
Put back previous patch, now avoids overflow, and added more explanations.
This is still not a definitive solution, but more efficient than 2.3.0
in the case x is small.
2007-09-15 Vincent Lefèvre <vincent@vinc17.net>
Efficiency regression wasn't fixed correctly -> commented out the code.
2007-09-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed efficiency regression pointed out by Andreas Enge
2007-09-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug in mpfr_sin_cos found by Philippe: z (to save the cosine) was not
allowed to be identical to the input x
2007-09-13 Philippe Théveny <philippe.theveny@laposte.net>
new function mpfr_modf and add restrictions on mpfr_sin_cos' variables
2007-09-11 Philippe Théveny <philippe.theveny@laposte.net>
add some simple test cases in tadd_d.c and friends
2007-09-10 Vincent Lefèvre <vincent@vinc17.net>
prepare: output a message saying that this script is obsolete.
2007-09-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added restrictions to mpfr_add_d and friends
2007-09-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed functions mpfr_add_d ... which are done
2007-09-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added Philippe Theveny
2007-09-07 Philippe Théveny <philippe.theveny@laposte.net>
new arithmetic functions with a double argument
2007-09-07 Vincent Lefèvre <vincent@vinc17.net>
tacosh.c: added generic tests for the overflow case.
acosh.c: reduce the precision for ln(2); smaller error bound.
tgeneric.c: undefine some macros at the end.
acosh.c: fixed overflow bug.
acosh.c: mentioned bug due to overflow in mpfr_mul.
tests/tacosh.c: added corresponding testcase (for 32-bit machines).
tacosh.c: use tests_default_random().
tests.c: improved tests_default_random().
2007-09-02 Vincent Lefèvre <vincent@vinc17.net>
Makefile.am: fixed get_patches rule.
Makefile.am: cd $(srcdir) before executing get_patches.sh (thanks to
Daniel Jacobowitz for noticing this); for more information, see the
note just before the get_patches.c rule.
2007-08-31 Vincent Lefèvre <vincent@vinc17.net>
acosh.c: added MPFR_UNLIKELY.
Added generic bad case tests.
algorithms.tex: deleted trailing spaces.
algorithms.tex: correction in section on mpfr_asinh: acosh -> asinh.
Fixed bug in mpfr_acosh for arguments slightly larger than 1;
updated algorithms.tex; fixed testcase.
tacosh.c: added testcase for bug in mpfr_acosh (assertion failure).
tasin.c: increased the number of generic tests.
Improved generic tests by limiting the exponent range of the random
numbers for some functions.
2007-08-30 Vincent Lefèvre <vincent@vinc17.net>
Generic tests: adjust the proportion of negative numbers returned
by the random function in order to get fewer NaN cases.
tgeneric.c: output a warning when too few normal cases are tested
(so that the random function can be improved...).
tests.c: function split (for future addition).
configure.in: updated copyright notice (for consistency).
Bug fix: added missing _MPFR_PROTO in mpfr-test.h.
tgeneric.c: updated description line.
2007-08-29 Vincent Lefèvre <vincent@vinc17.net>
Updated copyright notice (for an unknown reason, some files were missing
from the change done in r4350).
2007-08-28 Vincent Lefèvre <vincent@vinc17.net>
atan2.c: as we supposed some property, let's add an assertion (which
can be evaluated at compile time).
atan2.c: improved comment.
atan2.c: completed the underflow case.
atan2.c: fixed the underflow case except in GMP_RNDN with
2^(-emin-2) < |y/x| < 2^(-emin-1).
tatan.c: added small-value tests in the other rounding modes.
atan2.c: implemented the special case where x is positive and y/x is
computed exactly (solving the underflow problems in this case).
tatan.c: added a similar test, but with an exact division result.
tatan.c: fixed test.
README.dev: added a paragraph concerning Ziv loops.
tatan.c: updated comment.
tatan.c: extended the latest testcase to any platform (e.g. 64 bits).
tatan.c: added testcase from a bug reported by Christopher Creutzig.
2007-08-27 Vincent Lefèvre <vincent@vinc17.net>
Updated svn:ignore properties.
FAQ update:
* The question numbers are now hardcoded instead of being generated
with CSS rules.
* Added the list of questions at the top.
* CSS styles: a grey bar is displayed on the left of the target answer
(if the browser supports the ":target" pseudo-class from CSS3).
faq.xsl: added a comment.
FAQ update.
2007-08-22 Vincent Lefèvre <vincent@vinc17.net>
INSTALL: added another warning concerning the --with-gmp options.
For instance, under Linux, "cpp -I/usr/include -v < /dev/null" says:
ignoring duplicate directory "/usr/include"
as it is a non-system directory that duplicates a system directory
and does not modify the include search path as wanted.
2007-08-15 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: improved description of mpfr_setsign.
2007-08-14 Vincent Lefèvre <vincent@vinc17.net>
Added to NEWS: Thread-safe support with Microsoft Visual compiler.
mpfr-impl.h: if MPFR_USE_THREAD_SAFE is defined (--enable-thread-safe):
* Added support for MSC (thanks to Brian Gladman).
* Define MPFR_THREAD_ATTR even after #error to make the error more
visible (see comment in the source).
2007-08-13 Vincent Lefèvre <vincent@vinc17.net>
tstckintc.c: fixed bus error on Solaris (the address of Buffer was not
a multiple of 4).
NEWS: new functions mpfr_signbit, mpfr_setsign, mpfr_copysign.
Implemented changes suggested in
<https://sympa.inria.fr/sympa/arc/mpfr/2007-07/msg00123.html>.
* Made mpfr_copysign() like the corresponding function in IEEE 754
(was an internal function until now).
* Added mpfr_signbit() and mpfr_setsign().
* Documented these three functions.
* Updated TODO.
2007-08-11 Vincent Lefèvre <vincent@vinc17.net>
Fixed mpfr_inits and mpfr_clears calls in tests/tatan.c.
Added check_inits_clears Perl script to check that a cast is performed
for the last argument of mpfr_inits, mpfr_inits2 and mpfr_clears.
2007-08-10 Vincent Lefèvre <vincent@vinc17.net>
Updated version to 2.4.0-dev.
NEWS update.
ChangeLog update with "TZ=UTC svn log -v".
asinh.c: fixed assertion failure (see test 4 in tasinh.c, added
in r4740), that was due to an exception.
tasinh.c: fixed test.
tasinh.c: added worst case that yields an assertion failure.
2007-08-09 Vincent Lefèvre <vincent@vinc17.net>
Added data_check support to cbrt.
log.c: fixed assertion failure (see test x_near_one in tlog.c, added
in r4736), that was due to an exception.
pow.c: added MPFR_SMALL_INPUT_AFTER_SAVE_EXPO for the case where
|y * log(x)| is very small (I can't really test because this code
currently fails due to a bug in mpfr_log: see test x_near_one
added to tlog.c as changeset 4736; this bug is also present in
the 2.2 branch).
tlog.c: added a test leading to an assertion failure in mpfr_log.
tpow.c: added a test where x is close to 1.
Added empty file tests/data/exp10 to avoid an error with -dev versions.
Added a TODO concerning the description of mpfr_round_near_x.
Added empty files in tests/data to avoid errors with -dev versions.
mpfr_ui_pow fix: added a MPFR_SAVE_EXPO_UPDATE_FLAGS.
Added texp10.c (texp10 currently fails).
texp2.c: reformat and added some tests which were missing.
2007-08-08 Vincent Lefèvre <vincent@vinc17.net>
Added data_check calls to texpm1, tlog1p and tlog2.
tests/tests.c: in data_check(), mode 'Z', do not test GMP_RNDN if
the precision for the directed rounding modes is MPFR_PREC_MIN.
2007-08-04 Vincent Lefèvre <vincent@vinc17.net>
TODO: more on mpfr_sin (and mpfr_cos).
TODO: update concerning sin/cos/tan.
2007-08-03 Vincent Lefèvre <vincent@vinc17.net>
tests/tests.c: in data_check(), check the 4 rounding modes if rnd is 'Z'
(in order to test the worst cases).
Fixed coding style (for ansi2knr in particular).
2007-08-02 Vincent Lefèvre <vincent@vinc17.net>
Makefile.am: added a comment about "get_patches.c".
No longer set "CLEANFILES = get_patches.c" in Makefile.am so that a
"make clean" doesn't remove the get_patches.c file, as rebuilding it
needs a Unix shell (and some standard utilities). Anyway the update
of this file should be regarded as part of the patch process, then
this file is just like any other .c files. Note: "make dist" includes
this file in the archives, so that concerning the build, everything
is like before as long as no patches are applied.
2007-08-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added item about sNaN/qNaN
2007-07-31 Vincent Lefèvre <vincent@vinc17.net>
copysign.c: reformat, updated comment (but this function is still not
documented in mpfr.texi).
Updated version back to 2.3.0-dev since the 2.3 branch will be recreated
from the trunk (too many changes!).
tl2b.c: enable output even when the constants are correct.
Added get_patches.c to the svn:ignore property, as this file is
generated.
Replaced l2b cache by constants, as suggested by Patrick Pelissier,
to avoid efficiency problems with the stack interface and heavily
threaded applications.
* Added tests/tl2b.c to generate / check the constants.
* tests/Makefile.am: added tl2b to check_PROGRAMS.
* tests directory: added tl2b to the svn:ignore property.
* mpfr-impl.h: updated the __gmpfr_l2b declaration.
* free_cache.c: disabled free_l2b (since there's no longer a cache).
* get_str.c: added the code generated by tl2b; for the bootstrap, one
can just write:
const __mpfr_struct __gmpfr_l2b[BASE_MAX-1][2] = { { { 0 } } };
Removed the code (in ceil_mul) that computed these constants.
2007-07-30 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: updated the documentation of the mpfr_get_d function family.
Patch tracking: updated README.dev and TODO files.
Added support for tracking applied patches with new function
mpfr_get_patches().
mpfr.texi: updated the example concerning mpfr_get_version() vs
MPFR_VERSION_STRING ("Warning" instead of "Error", make sure that
the example fits on 80 columns in the info file).
mpfr.texi: updated description of mpfr_get_version().
mpfr.texi: updated description of mpfr_get_version().
2007-07-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added files that are not 100% covered by tests
2007-07-27 Vincent Lefèvre <vincent@vinc17.net>
coverage: added --disable-shared --enable-static to configure.
mpfr-impl.h: added more casts for g++.
Reformat.
Applied patch from Patrick to be able to build MPFR with g++.
2007-07-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added default thresholds for Core 2
2007-07-25 Vincent Lefèvre <vincent@vinc17.net>
No longer use MPFR_CHECK_ALL in tests. In '-dev' versions, assume
that the data files exist and return an error whenever a file cannot
be opened. In the other versions, return silently if the file cannot
be opened.
Moved mpfr-test.h into the tests directory.
2007-07-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed "efficiency bug" (argument reduction was broken)
2007-07-25 Vincent Lefèvre <vincent@vinc17.net>
tests.c: in data_check(), made whitespace skipping consistent and
check that the result value is immediately followed by a \n.
[tests.c] Fixed some types (the result of getc() is not necessarily
representable in a char).
tests.c: changes in the error messages (BTW, we decided to output
everything to stdout for consistency, even though messages for
assertion failure are written to stderr) and replaced an abort ()
by an exit (1).
Delete trailing spaces.
2007-07-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
jyn_asympt.c: new common file for asymptotic expansion in jn/yn
tests/tests.c: print precisions in case of failure
jn.c: now use jyn_asympt.c
yn.c: now implement asymptotic expansion (jyn_asympt.c)
fixed more wrong entries in Gonnet's test suite
2007-07-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
contribution of first neglected term to error was wrong
fixed wrong entry (not enough precision was used in Maple)
implemented asymptotic expansion for large argument in j0/j1/jn
2007-07-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
define MPFR_CHECK_ALL for nightly tests
Added code to check mpfr against Gonnet's tables when the environment variable
MPFR_CHECK_ALL is defined (some table entries were checked by MuPAD)
added comment
test data files mpfr mpfr_y0 and mpfr_y1, ***not*** checked with MuPAD
added auxiliary MuPAD functions
improved Ziv's strategy: add half of DIGITS each time
test data file for mpfr_tanh, checked by MuPAD
test data file for mpfr_tan, checked with MuPAD (except 3 indicated entries)
test data file for mpfr_sqrt, checked with MuPAD
test data file for mpfr_sinh, checked by MuPAD (except indicated lines)
test data file for mpfr_sin, checked by MuPAD (except tiny inputs indicated
in file)
test data file for x^(11/4), checked with MuPAD
finally, I was able to check it with MuPAD
test data file for 2^x, checked with MuPAD
test data file for Pi*x, checked with MuPAD
test data file for mpfr_log, checked with MuPAD
test data files for mpfr_j0, mpfr_j1, mpfr_lgamma, mpfr_log10,
***not*** tested with MuPAD (not Dom::Interval interface)
test data file for 1/x, i.e., mpfr_ui_div(1,x), checked with MuPAD
test data file for mpfr_gamma, ***not*** checked by MuPAD
test data file for mpfr_exp, checked with MuPAD
test data files for erf and erfc (not checked by MuPAD, since Dom::Interval
does not have an interface for those functions in MuPAD 3.2.0)
test data file for mpfr_cosh, checked with MuPAD
test data file for mpfr_cos, checked by MuPAD
test data file for mpfr_atanh, checked with MuPAD
test data file for atan, checked with MuPAD
test file for mpfr_asinh, checked with MuPAD
data file for mpfr_asin, checked with MuPAD using CheckData.mu
data file for mpfr_acosh, checked with MuPAD using CheckData.mu
improved output
MuPAD file to check a data file
2007-07-20 Vincent Lefèvre <vincent@vinc17.net>
Renamed mpfr_l2b as __gmpfr_l2b for consistency.
2007-07-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
patch from Brian Gladman to build mpfr.dll
added copyright information about Gonnet's package
modified data_check() to allow comment lines starting with #
new (experimental) mechanism to check data files (see example in tacos.c)
new directory for test data
added test for inexact flag (bug fixed in r4630)
2007-07-18 Vincent Lefèvre <vincent@vinc17.net>
erfc.c, atan2.c: added missing "MPFR_SAVE_EXPO_FREE (expo);" before
"return mpfr_underflow (...);".
erfc.c: replaced a goto by an else.
2007-07-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
now deal with underflow in y/x (remains to deal with overflow)
now can specify output base when argc > 1
MPFR_EQUAL -> mpfr_equal_p
fixed problem with erfc() near underflow region
atan2.c: quick-and-dirty fix for atan2(y,1)
tests/tatan.c: fix tests from Christopher [x and y were interchanged]
added test from Ch. Creutzig
apply patch suggested in bug #3604
2007-07-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
previous bug fix for tiny negative inputs in mpfr_lgamma was incorrect:
result was NaN, but this was not detected by the tests since mpfr_cmp (y, NaN)
is always true!
2007-07-17 Vincent Lefèvre <vincent@vinc17.net>
Added comments and fixed an indentation bug.
2007-07-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
in reconstruction after computation of cos(x/2^k) for reduced argument,
it may be that cos(x) is zero to the working precision. Then restart Ziv's
algorithm with a larger precision.
2007-07-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
lngamma.c: fix for small inputs
tlgamma.c: added more tests from Kaveh Ghazi
sin_cos.c: 2nd arg of 1st mpfr_can_round call was wrong
ttan.c: fixed wrong reference value
added comment about sinpi, etc.
2007-07-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added new test, and re-enabled test that was too slow
2007-07-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed MPFR_CHECK_TINY, added MPFR_CHECK_MAX
2007-07-10 Vincent Lefèvre <vincent@vinc17.net>
terf.c: added testcase for bug reported by Christopher Creutzig.
2007-07-09 Vincent Lefèvre <vincent@vinc17.net>
Removed a #include that was probably added by mistake in r2590.
<stdio.h> and <limits.h> are now included unconditionally in mpfr-impl.h
(removed their inclusion from the C files for consistency).
2007-07-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
ternary flag was wrong in case s=1 or -1 and rounding up/nearest
updated algorithms.tex with new additive argument reduction for sin/cos/tan
2007-07-03 Vincent Lefèvre <vincent@vinc17.net>
lngamma.c: reformat and replaced mpfr_cmp(...) == 0 by mpfr_equal_p.
2007-07-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed stdlib to stdio for NULL (see README.dev)
fixed bug in tlgamma and added test (need to implement Ziv's strategy in
tiny case)
added missing include
2007-07-03 Vincent Lefèvre <vincent@vinc17.net>
Fixed the bug reported by David Billinghurst to the MPFR mailing-list
on 2007-07-03 (memory leaks under some conditions):
* moved the free_l2b() function from tests/tests.c to free_cache.c;
* mpfr_free_cache() (from free_cache.c) now calls free_l2b();
* as a consequence, no longer call free_l2b() in tests_end_mpfr();
* documented the behavior in mpfr.texi (under mpfr_free_cache).
tj0.c: added testcase from Sisyphus (assertion failed).
README.dev: explain how to test the library interface compatibility.
2007-07-02 Vincent Lefèvre <vincent@vinc17.net>
README.dev: mentions patch-libtool and how to apply it.
Added patch-libtool (patch for aclocal.m4 and configure that comes from
<https://lists.gnu.org/archive/html/bug-libtool/2007-07/msg00007.html>
or gmane.comp.gnu.libtool.bugs:5776).
NEWS: mention that the shared library is now enabled by default on 2.3.
README.dev: updated item 2 of "To make a release".
Reformat.
Updated version to 2.4.0-dev.
ChangeLog update.
NEWS: update.
2007-07-01 Vincent Lefèvre <vincent@vinc17.net>
Makefile.am: updated comment concerning -version-info.
Added mpfr_fms based on mpfr_fma.
tfma.c: added a space.
tfma.c: typo.
Reformat.
fma.c: minor changes for consistency with the future fms.
Completed the implementation of mpfr_fma (except in some corner cases
where overflows/underflows and huge precisions are involved at the
same time). Added underflow tests. Removed item from the BUGS file
(the remaining problems more or less correspond to the first item).
Untabified.
tfma.c: added overflow test to test_underflow.
fma.c: implemented the main cases where x * y underflows.
tests/tfma.c: fixed overflow tests and added underflow tests.
2007-06-30 Vincent Lefèvre <vincent@vinc17.net>
NEWS: update.
2007-06-29 Vincent Lefèvre <vincent@vinc17.net>
BUGS: updated item on mpfr_fma.
fma.c: completed the cases where x*y/4 needs to be used, except the very
particular cases where an underflow occurs, that remain to be done.
tfma.c: fixed a printf.
fma.c: added an assertion.
tfma.c: fixed overflow tests.
tfma.c: check NaN in test_overflow2.
fma.c: updated a comment.
tfma.c: added more overflow tests (needed to distinguish the cases
where z/4 underflows or not -- see fma.c).
tfma.c: added tests (-> assertion failed because mpfr_fma implementation
isn't complete).
2007-06-28 Vincent Lefèvre <vincent@vinc17.net>
acos.c: disabled change from r3145 ("Optimize mpfr_acos by choosing
a better initial precision.") that was buggy.
BUGS: removed mpfr_acos bug.
BUGS: updated item on the mpfr_acos bug.
BUGS: updated item on the mpfr_acos test (the bug wasn't visible on
32-bit machines due to an integer overflow, but the result should
have been correct anyway).
acos.c: fixed integer overflows; to avoid undefined behavior, I had
to add an assertion that is not always satisfied (the code needs to
be rewritten to take tiny arguments into account).
BUGS: update (mpfr_cot has just been fixed).
cot.c: implemented the case |x| = 2^emin.
tests/tcot.c: added tests for this case, in 3 exponent ranges
(as this is an overflow limit).
Fixed bug in div.c: rnd_mode could be modified (MPFR_INVERT_RND), but
the original value was assumed in case of underflow or overflow.
tdiv.c: added a test showing another bug in mpfr_div.
cot.c: use MPFR_SAVE_EXPO_UPDATE_FLAGS, but the case +/- 2^emin could
still be buggy with the current code; added a MPFR_ASSERTN (0) until
it is implemented.
BUGS: updated item on mpfr_cot.
2007-06-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed several problems with huge arguments in periodic functions
mpfr_sin: complete rewrite, using mpfr_remainder for argument reduction
mpfr_sin_cos: ditto
2007-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed stupid bug (subtraction of unsigned longs)
cos.c: implemented argument reduction by 2Pi
tcos.c/tgeneric.c: reduce large exponent used when MPFR_CHECK_MAX is defined
2007-06-22 Vincent Lefèvre <vincent@vinc17.net>
BUGS: added bugs.
coth.c, sech.c: a rounding mode was incorrect.
tests/tcoth.c: added underflowed_cothinf test.
tests/tsech.c: added overflowed_sech0 test.
* gen_inverse.h: ACTION_TINY must be called after MPFR_SAVE_EXPO_MARK
(this is necessary for some functions). Moved MPFR_SAVE_EXPO_FREE
after the "end:" label.
* coth.c, csc.c, csch.c: as a consequence, MPFR_SAVE_EXPO_UPDATE_FLAGS
had to be added before "goto end;".
* sec.c: a rounding mode was incorrect.
* tests/tsec.c: added overflowed_sec0 test.
2007-06-21 Vincent Lefèvre <vincent@vinc17.net>
sin_cos.c: fixed a bug for x = 0 in reduced exponent range.
tests/tsin_cos.c: added overflowed_sin_cos0 test.
BUGS: Some functions do not use MPFR_SAVE_EXPO_* macros, thus do not
behave correctly in a reduced exponent range.
factorial.c: a rounding mode was incorrect.
tests/tfactorial.c: added overflowed_fac0 test.
exp2.c: use MPFR_SMALL_INPUT_AFTER_SAVE_EXPO instead of
MPFR_FAST_COMPUTE_IF_SMALL_INPUT since 1 (__gmpfr_one) isn't
necessarily representable.
tests/texp2.c: added overflowed_exp2_0 test.
exp.c: fixed problems in reduced exponent range.
tests/texp.c: added overflowed_exp0 test.
exp.c bug fix: a rounding mode was incorrect.
tcos.c: fixed error message in overflowed_cos0 test.
tcos.c: removed an obsolete comment from the overflowed_cos0 test.
tcos.c: improved overflowed_cos0 test.
get_str.c: use MPFR_SAVE_EXPO.
tests/tget_str.c: enabled the test with a reduced exponent range.
tget_str.c: added a test (disabled by default) with emax = 0.
Corrected mpfr_inits, mpfr_inits2 and mpfr_clears calls with NULL
argument (-> (void *) 0).
tget_str.c: reformatted/corrected a function.
Tests: when restoring the exponent range, save emin/emax first instead
of using MPFR_EMIN_MIN/MPFR_EMAX_MAX (which have no longer corresponded
to the default exponent range since quite a long time).
BUGS: update.
2007-06-20 Vincent Lefèvre <vincent@vinc17.net>
Untabified and removed trailing spaces.
Bug fix: preprocessor # must be in the first column.
remquo.c bug fix: preprocessor # must be in the first column.
tcos.c: fixed and improved the overflowed_cos0 test.
cos.c bug fix: a rounding mode was incorrect.
cos.c: use MPFR_SMALL_INPUT_AFTER_SAVE_EXPO instead of
MPFR_FAST_COMPUTE_IF_SMALL_INPUT.
cos.c: untabified.
tcos.c: added tests for x very small and emax = 0 (some of them
currently fail).
Added a comment concerning the MPFR_SMALL_INPUT_AFTER_SAVE_EXPO macro.
Added MPFR_SMALL_INPUT_AFTER_SAVE_EXPO macro; updated expm1.c to use
this variant (and moved MPFR_SAVE_EXPO_MARK after the test ex < 0).
2007-06-19 Vincent Lefèvre <vincent@vinc17.net>
Documented log(-0).
Added a few tests of log functions.
2007-06-18 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: updated Section "Floating-Point Values on Special Numbers".
2007-06-12 Vincent Lefèvre <vincent@vinc17.net>
TODO: allow generic tests to run with a restricted exponent range.
expm1.c: fixed bug for x = -max_value due to an intermediate overflow
(flags were incorrect); at the same time, potential problems due to a
restricted exponent range are also fixed.
tgeneric.c: check the function on large arguments (±maximum_value)
when the MPFR_CHECK_MAX environment variable is defined.
2007-06-11 Vincent Lefèvre <vincent@vinc17.net>
tests/tlgamma.c: re-enabled sign checking.
2007-06-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed problem with mpfr_lgamma for tiny negative input (and fixed use of
generic test)
2007-06-05 Vincent Lefèvre <vincent@vinc17.net>
[mpfr.texi] Small change in new Section "Floating-Point Values on
Special Numbers" (suggested by Paul).
2007-06-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug for tiny negative input (and added corresponding test)
2007-06-05 Vincent Lefèvre <vincent@vinc17.net>
algorithms.tex: Mulder -> Mulders.
2007-06-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added test for "Witty's bug" on 64-bit machines
2007-06-04 Vincent Lefèvre <vincent@vinc17.net>
div.c: GNU coding style.
2007-06-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
tdiv.c: added missing mpfr_clear's, and spaces before function calls
div.c: fixed bug found by Carl Witty, and added more comments
2007-06-04 Vincent Lefèvre <vincent@vinc17.net>
tdiv.c: oops... the result should be 1.
tdiv.c: added test from Carl Witty's bug report on 2007-06-03.
2007-06-01 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: updated Section "Floating-Point Values on Special Numbers".
mpfr.texi: updated Section "Floating-Point Values on Special Numbers".
mpfr.texi: updated month.
mpfr.texi: added @: after "resp." (when it was missing).
2007-05-31 Vincent Lefèvre <vincent@vinc17.net>
Started a new section "Floating-Point Values on Special Numbers".
mpfr.texi: inf -> Inf for consistency.
mpfr.texi @deftypefun correction: void * -> {void *} (for the PDF).
mpfr.texi: consistency changes in section titles; made titles unique.
set_d64.c: replaced an "if" by a "#if" to avoid a gcc warning.
get_d64.c: use BITS_PER_MP_LIMB instead of GMP_BITS_PER_LIMB (which
does not seem to exist).
set_d64.c: use BITS_PER_MP_LIMB instead of mp_bits_per_limb.
get_d64.c, set_d64.c: improved code to avoid some warnings.
Untabified get_d64.c and set_d64.c.
get_d64.c: added missing #include.
BUGS: update.
mpfr-impl.h: improved error message when thread safe is not supported.
2007-05-30 Vincent Lefèvre <vincent@vinc17.net>
INSTALL: say that relative paths in configure options are not supported
(autoconf doesn't seem to have support for them).
Documented the new behavior of mpfr_sgn (in fact, it was already partly
required by the tsgn.c tests!) and added new mpfr_sgn tests.
TODO: added an item about the behavior of mpfr_sgn on NaN.
tgeneric.c: no longer check the MPFR_CHECK_TINY environment variable
as all the bugs related to tiny arguments have been fixed.
mpfr.texi: corrections following the remarks by Nathalie Revol.
2007-05-29 Vincent Lefèvre <vincent@vinc17.net>
yn.c: untabify.
2007-05-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fix for small inputs in y1
2007-05-29 Vincent Lefèvre <vincent@vinc17.net>
Defined new macros SIGN and SAME_SIGN in mpfr-impl.h to canonicalize
the ternary value and to compare such values. Use SAME_SIGN in erf.c
and lngamma.c.
2007-05-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed problem of tiny arguments for y0
lngamma.c: fixed problem of tiny inputs in lngamma (still remains lgamma
to deal with)
erf.c: small correction (inexact flags might have been inexact :-)
fixed tiny input problem with csch, j0, j1
added special code for tiny inputs
2007-05-29 Vincent Lefèvre <vincent@vinc17.net>
tgeneric_ui.c: no longer check the MPFR_CHECK_TINY environment variable.
erf.c: removed workaround to mpfr_div_ui bug, as the bug is now fixed.
div_ui.c:
* Cleaned up the use of the sh variable (there was a useless sh = 0,
so I'm not sure that there isn't a bug...).
* Added underflow check.
Added check of tiny arguments to tgeneric_ui.c (if MPFR_CHECK_TINY is
defined, like in tgeneric.c); mpfr_div_ui currently fails due to the
lack of underflow checking.
2007-05-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
README.dev: fixed typo
erf.c: implemented special case for tiny x, and partially get rid of double
usage
implemented
2007-05-28 Vincent Lefèvre <vincent@vinc17.net>
MPFR_RET (mpfr_check_range (...)) -> return mpfr_check_range (...)
as mpfr_check_range already handles the inexact flag.
Reformatting (removed trailing spaces, untabified).
2007-05-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed problem of tiny input
fixed problem of tiny input for coth (and new fix again for csc, which
takes into account the sign of the input)
fixed problem of tiny inputs in mpfr_sec and mpfr_csc,
by adding a SPECIAL_TINY macro in gen_inverse.h
the test for the tiny input case was too optimistic: fixed and added test.
fixed case of tiny input
fixed problem for tiny arguments
added MPFR_FAST_COMPUTE_IF_SMALL_INPUT call
changed 1st-order Taylor term from x to v to avoid confusion with the
argument x of the function f(x), and fixed some typos
fixed direction of rounding for MPFR_FAST_COMPUTE_IF_SMALL_INPUT
(was wrong for x < 0)
fixed typo
added call to MPFR_FAST_COMPUTE_IF_SMALL_INPUT in exp2
re-enabled MPFR_CHECK_TINY
improved documentation of mpfr_set/get_decimal64 functions
fixed problem in configure.in (_Decimal64 was tested too early)
2007-05-28 Vincent Lefèvre <vincent@vinc17.net>
tests/tests.c: fixed two bugs concerning the timeout (including an
old one: we need to call getrlimit to initialize rlim_max).
2007-05-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
new syntax for timeouts
fixed typo
2007-05-28 Vincent Lefèvre <vincent@vinc17.net>
Added mkinstalldirs to svn:ignore property.
Changed --with-tests-timeout into --enable-tests-timeout as documented
in the autoconf manual (--with-* are for external packages only). When
this is enabled, environment variable MPFR_TESTS_TIMEOUT allows to
override the default timeout (use the value 0 to disable timeouts).
Updated NEWS file.
mpfr.texi: small improvement.
Fixed a bug in the mpfr_cmp_ui macro occurring on NaN and the constant 0
by specifying the behavior of mpfr_sgn on NaN.
mpfr.texi: typography corrections concerning "i.e.".
mpfr.texi: consistency changes.
mpfr.texi: more details in Section "Exceptions".
tgeneric.c: check the function on tiny arguments (±2^(emin-1)) when
the MPFR_CHECK_TINY environment variable is defined.
Typo.
Avoid integer overflow in MPFR_FAST_COMPUTE_IF_SMALL_INPUT.
2007-05-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
completed implementation of Vincent's algorithm for mpfr_remquo
all tests now pass again
2007-05-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
new version of mpfr_remainder, using Vincent's algorithm
(still remains to deal with special arguments, and make mpfr_remquo call it)
2007-05-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added note about fms
fixed typo
fixed problem for x integer and rounding to nearest
workaround for bug when x is very small (check_tiny in tsin)
2007-05-22 Vincent Lefèvre <vincent@vinc17.net>
Updated BUGS (again).
Updated BUGS and TODO (mpfr_lgamma has been implemented, but see BUGS,
and gamma(-integer) with integer >= 1 is defined as NaN).
tsin.c: check sin on +/- 2^(emin-1) (test by Christopher Creutzig).
tgamma.c: added test of gamma on some integral values (from Christopher
Creutzig); this test is enabled only when an argument is provided.
fma.c: improved comments and simplified the code.
fma.c: implemented exponent range expansion and the main part when the
multiplication overflows. The following remains to do:
* when the multiplication overflows: some corner cases;
* when the multiplication underflows: everything.
2007-05-21 Vincent Lefèvre <vincent@vinc17.net>
tlgamma.c: I re-enable the generic tests of mpfr_lgamma now, to make
sure that it is fixed before the 2.3.0 release candidate.
tfma.c: added an overflow test (currently fails).
tfma.c: whitespace change.
tfma.c: added tests on special and exact values.
2007-05-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed error analysis in mpfr_lngamma
added mpfr_inp_raw/mpfr_out_raw in TODO
2007-05-16 Vincent Lefèvre <vincent@vinc17.net>
TODO: fixed mpfr_fms formula to match the one on Itanium and PowerPC.
2007-05-07 Vincent Lefèvre <vincent@vinc17.net>
algorithms.tex: improved the description of mpfr_remquo.
2007-05-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improved description of remainder and remquo
2007-05-06 Vincent Lefèvre <vincent@vinc17.net>
My latest change was not completely correct...
Updated description of algorithm for mpfr_remainder.
2007-05-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added description of algorithm for mpfr_remainder
2007-05-04 Vincent Lefèvre <vincent@vinc17.net>
remquo.c: suggest to use mpz_powm.
remquo.c: added a comment (idea to compute the remainder much more
efficiently in the case x much larger than y).
2007-05-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added assert and ideas for native implementation
put back test (disabled for test)
fixed problem when rem and x are the same variable
2007-05-04 Vincent Lefèvre <vincent@vinc17.net>
tremquo.c: added a test that leads to a segmentation fault.
tremquo.c: fixed tests (= -> ==).
2007-05-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed two issues found by Kaveh Ghazi:
* remainder was wrong for |x/y| < 1
* remainder had wrong sign when zero
more details of error analysis
2007-05-03 Vincent Lefèvre <vincent@vinc17.net>
Updated svn:ignore property.
Updated svn:ignore property.
2007-05-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed precision for command-line usage
2007-05-03 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: added mpfr_lgamma.
2007-05-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added code to use tremquo with command-line arguments (tremquo x y)
2007-05-02 Vincent Lefèvre <vincent@vinc17.net>
configure.in: improved comment.
configure.in: added a comment on the AC_ARG_ENABLE(decimal-float...)
part. The addition of this code was the cause of the test_CFLAGS problem
(see r4425 log), but this code is still wrong.
2007-05-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
modified test (2147483648 is not representable as 32-bit long in C90)
2007-05-02 Vincent Lefèvre <vincent@vinc17.net>
Removed unused variables.
get_str.c:
* Removed useless prototype declaration (function no longer defined).
* Fixed initializer.
configure.in: moved the definition of test_CFLAGS upward (it was
always set to "set", either because of things added to configure.in
or because of new autoconf).
mpfr.h: added mpfr_lgamma prototype.
2007-05-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
argument quo of remquo is now a pointer to long instead of int
added new functions in NEWS
changed order of arguments: now mpfr_remquo (r, q, x, y, rnd).
2007-05-02 Vincent Lefèvre <vincent@vinc17.net>
remquo.c: fixed variable name for MPFR_LOG_FUNC.
2007-05-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added mpfr_remquo and mpfr_remainder
2007-04-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed error analysis (error was over-estimated)
2007-04-26 Vincent Lefèvre <vincent@vinc17.net>
lngamma.c: a bit more details in the error analysis for z0 < 1.
lngamma.c: a bit more details in the error analysis for z0 < 1.
2007-04-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
u was used for two different meanings in the error analysis for z0 < 1
2007-04-25 Vincent Lefèvre <vincent@vinc17.net>
Updated svn:ignore property.
Added preliminary support for mpfr_lngamma and tests.
TODO: add support for negative numbers with small exponent.
Re-enable the generic tests when this is done.
lngamma.c: There was an assertion failed, probably because the error
was too large; fixed that by restarting with a larger precision.
lngamma.c: fixed -2k-1 <= x <= -2k test.
tests/tlngamma.c: added a test showing a bug in lngamma (due to the
use of mpfr_get_si even when the number doesn't fit in a long).
2007-04-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug for negative even index in mpfr_jn (wrong sign)
2007-04-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added warning
added Bit Twiddling Hacks
2007-04-05 Vincent Lefèvre <vincent@vinc17.net>
MPFR manual: added a brief description of mpfr_t (this may be needed
to write correct code) and mpfr_ptr (used by mpfr_sum).
2007-04-02 Vincent Lefèvre <vincent@vinc17.net>
Changed mpfr_{jn,yn}_si (mpfr_t res, mpfr_t x, long n, ...) into
mpfr_{jn,yn} (mpfr_t res, long n, mpfr_t x, ...), as discussed by
mail; fixed a typo in mpfr.texi in mpfr_{y0,y1,yn} description.
2007-03-31 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added url of GSL manual
fixed misunderstanding about definition of Bessel functions
removed Bessel functions J_n and Y_n
added Bessel functions of second kind (y0, y1, yn_si)
now test_generic calls respectively j0 and j1, not zeta!
2007-03-30 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: INF -> Inf for consistency.
mpfr.texi: PI -> Pi for consistency.
2007-03-29 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: -0 -> @minus{}0.
mpfr.texi: fixed bug introduced in rev 4377, which made TeX fail.
Added tj0, tj1 and tjn to svn:ignore property of "tests" directory.
2007-03-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
mpfr_jn -> mpfr_jn_si
2007-03-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
now check underflow for large n in mpfr_jn_si
added more tests
added more tests (large values of n)
fixed another stupid bug
mpfr_jn -> mpfr_jn_si, with 'int' argument changed to 'long'
fixed bug in mpfr_jn_si (forgot to increase working precision)
2007-03-23 Vincent Lefèvre <vincent@vinc17.net>
README.dev: added a warning about the meaning of the output "inexact"
value in the function logging code.
Added log support for mpfr_add and mpfr_sub.
2007-03-23 Laurent Fousse <laurent@komite.net>
Correction: added missing $b_n$.
2007-03-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added Bessel functions of first kind: j0, j1, jn
2007-03-19 Vincent Lefèvre <vincent@vinc17.net>
MPFR manual: improved description of mpfr_get_str.
2007-03-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed typos in comments
2007-03-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
documented restriction to n in mpfr_get_str
2007-03-13 Vincent Lefèvre <vincent@vinc17.net>
Updated INSTALL based on AIX/PowerPC tests and results from Julie Kurpa
and information on <http://www.ess.uci.edu/esmf/FAQ.html#gcc-errors>.
2007-03-03 Vincent Lefèvre <vincent@vinc17.net>
README.dev: updated "To make a release" section.
2007-03-02 Vincent Lefèvre <vincent@vinc17.net>
Made modified paragraph on mpfr_get_str more correct from a logical
point of view.
2007-03-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
modified paragraph on mpfr_get_str (size of allocated string)
2007-02-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added tentative implementation of fmod
2007-02-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added suggestion about remquo
2007-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added comment
added C99 rationale for remquo
fixed error in generic error for the logarithm, and propagated new bound
in algorithms.tex and source files
2007-02-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added new item
2007-02-15 Vincent Lefèvre <vincent@vinc17.net>
Added update-patchv script to update some files before a patch is built
(script from 2.2 branch).
2007-02-14 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: updated paragraph on the underflow before/after rounding.
2007-02-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added reference
2007-02-12 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: added Exceptions section.
mpfr.texi: updated month.
Note that the mpfr.info file is now installed in the share subdirectory.
2007-02-10 Vincent Lefèvre <vincent@vinc17.net>
tests/tpow.c: removed comment since there are other <limits.h> macros
in the file (and this is an old bug: the first one was introduced in
rev 2783).
2007-02-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added missing include
2007-02-09 Vincent Lefèvre <vincent@vinc17.net>
Fixed an integer overflow in pow_si.c (detected with -ftrapv) and
added a corresponding testcase in tests/tpow.c.
pow_si.c: another comment about the overflow detection.
pow_si.c: added the proof of overflow checking.
mpfr-impl.h: added a comment about the exponent limits for MPFR numbers.
2007-02-08 Vincent Lefèvre <vincent@vinc17.net>
Reimplemented mpfr_set_si_2exp and mpfr_set_ui_2exp, and mpfr_set_si
and mpfr_set_ui using the 2exp versions with e = 0. This fixes a bug
in corner cases (emin >= 4 and some other constraints) in mpfr_set_si
and mpfr_set_ui that incorrectly lead to an underflow flag set, and
fixes mpfr_set_si_2exp and mpfr_set_ui_2exp in case of overflow or
underflow (replacing the r4346 fix). Added corresponding testcases.
2007-02-07 Vincent Lefèvre <vincent@vinc17.net>
Added "Contributed by the Arenaire and Cacao projects, INRIA." to the
copyright notices and removed a few old things.
2007-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added missing macro (thanks to Izhar Wallach <izharw@keddem.com>)
2007-01-20 Vincent Lefèvre <vincent@vinc17.net>
Fixed mpfr_set_si_2exp in case of overflow or underflow.
2007-01-19 Vincent Lefèvre <vincent@vinc17.net>
pow_si.c: fixed the overflow detection for x power of 2 and n negative.
tests/tget_f.c: fixed a test that had an integer overflow (detected
with -ftrapv).
pow_si.c: Before fixing the bug corresponding to the testcase added in
rev 4342, let's fix another one that can be detected with -ftrapv when
n = LONG_MIN (since -n is not representable in this case).
With wrapping, we always got the correct result because mp_exp_t is
currently at most a long *and* because of side effects!
tests/tpow.c: added a test which fails (undetected integer overflow).
tests/tpow.c: new test was wrong; fixed.
tests/tpow.c: corrected tests and added another test.
tests/tpow.c: added tests.
pow_si.c: added an assertion.
2007-01-18 Vincent Lefèvre <vincent@vinc17.net>
TODO: merged both requests for mpfr_sinh_cosh.
2007-01-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added documentation for mpfr_dim (was missing)
added item
2007-01-17 Vincent Lefèvre <vincent@vinc17.net>
Replaced some computations using the type double by computations using
MPFR, for mpfr_get_str, allowing it to work with an x86 processor set
up in single-precision mode.
2007-01-16 Vincent Lefèvre <vincent@vinc17.net>
Updated comment concerning LONG_MIN / 1.
2007-01-15 Vincent Lefèvre <vincent@vinc17.net>
README.dev: updated "To make a release" section.
2007-01-10 Vincent Lefèvre <vincent@vinc17.net>
Removed mpzroot.c and rootrem.c from the repository.
Removed log_b2.h (has never been used) from the repository and from
libmpfr_la_SOURCES in Makefile.am.
FAQ.html: Added details to MPF-related Q&A's.
Copyright notice update: added 2007.
* tests/tests.c: under Linux/x86, the FPU precision can be set before
doing the tests (see MPFR_FPU_PREC), so that MPFR can be tested under
various FP environments (2 tests currently fail with _FPU_SINGLE).
* README.dev: updated "To make a release" section.
* BUGS: mentioned the above bug.
2007-01-08 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi -> January 2007.
2007-01-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added support from LIP, and different INRIA project-teams
2007-01-03 Vincent Lefèvre <vincent@vinc17.net>
Minor change.
2006-12-29 Vincent Lefèvre <vincent@vinc17.net>
TODO: macros/functions to get/set the sign of a MPFR number.
2006-12-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
remove new rootrem implementation (unclear copyright status)
2006-12-19 Vincent Lefèvre <vincent@vinc17.net>
Replaced mpfr_mul_2exp and mpfr_div_2exp by mpfr_mul_2ui and
mpfr_div_2ui respectively (when this makes sense, of course).
2006-12-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
mpfr_div_2exp -> mpfr_div_2ui
improved efficiency of zeta_ui(s) for 3^(-s) < 1/2*ulp(1)
2006-12-18 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: update concerning MPFR_USE_EXTENSION.
2006-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added copyright header
added item
2006-12-15 Vincent Lefèvre <vincent@vinc17.net>
Implemented MPFR_USE_EXTENSION support.
2006-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improved efficiency for zeta(m) in precision p when m is large
but still smaller than p, for example m=1024 and p=2048 gives a
speedup of about 23 (thanks to Jim White for reporting the problem)
2006-12-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added MPFR_ZIV_INIT stuff
2006-12-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed typo
2006-12-05 Vincent Lefèvre <vincent@vinc17.net>
TODO: to be added: MPFR_USE_EXTENSION macro.
2006-11-29 Vincent Lefèvre <vincent@vinc17.net>
README.dev: update.
INSTALL: update of the "Notes on Windows 32" section.
2006-11-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added comment about last change
fixed warning on 64-bit machines
2006-11-26 Vincent Lefèvre <vincent@vinc17.net>
tests/tpow.c: added worst cases.
tests/troot.c: two more worst cases.
2006-11-25 Vincent Lefèvre <vincent@vinc17.net>
tests/troot.c: added a worst case.
BUGS: removed obsolete "compiler bugs" section.
2006-11-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added worst case
2006-11-25 Vincent Lefèvre <vincent@vinc17.net>
Partially rewrote the INSTALL file.
2006-11-24 Vincent Lefèvre <vincent@vinc17.net>
Makefile.am: fixed libtool's -version-info flag (and comment).
configure.in: check for gmp.h a bit earlier.
2006-11-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added --with-tests-timeout=60 for nightly tests
test timeout is now a configure option (e.g. --with-tests-timeout=60)
replaced set_d by set_str_binary (more portable)
2006-11-23 Vincent Lefèvre <vincent@vinc17.net>
INSTALL: several additions.
2006-11-22 Vincent Lefèvre <vincent@vinc17.net>
INSTALL: small update.
FAQ update (added a CSS counter).
update-faq: added a workaround for the libxslt bug 377440.
TODO: update concerning the patches information.
2006-11-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
set GMP_CHECK_RANDOMIZE to get random tests
2006-11-21 Vincent Lefèvre <vincent@vinc17.net>
Updated README file.
2006-11-20 Vincent Lefèvre <vincent@vinc17.net>
README.dev: mention the version suffix.
Updated version to 2.3.0-dev.
Added version suffix support (useful for dev and rc versions).
Rewrote nightly-test in sh and fixed a security hole.
2006-11-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added cpu time limit of 60 seconds in tests
2006-11-20 Vincent Lefèvre <vincent@vinc17.net>
TODO: update.
2006-11-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added an argument to give the branch (use trunk or branches/2.2 for example)
2006-11-20 Vincent Lefèvre <vincent@vinc17.net>
tests/tgamma.c: restore emin and emax to their default values.
2006-11-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug in overflow test
fixed bug in mpfr_gamma for exact result
added two configure options
simplified test :-)
2006-11-20 Vincent Lefèvre <vincent@vinc17.net>
configure.in: unset GMP_CFLAGS and GMP_CC in case the user has set such
environment variables for another use.
tests/texp2.c: fixed a problem with a value that is not necessarily
representable (on platforms without long long).
BUGS: removed item on mpfr_eint (now fixed).
Untabify.
2006-11-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
replaced double by mpfr_t (problem on 64-bit machines)
added more tests
script for nightly tests
fixed bug in pow (isodd -> assertion failed)
fixed problem in erfc for large input
reduced tests that took too much time
2006-11-19 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: updated description of mpfr_eint, as the whole input domain
is now supported.
Untabify.
mpfr-impl.h: added a comment about MPFR_WARNING.
2006-11-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug in erfc (forgot to compare result of cmp_si)
fixed infinite loop in eint (test for use of asympt was not tight enough)
added asymptotic expansion for mpfr_eint (don't need MPFR_WARNING any more)
2006-11-18 Vincent Lefèvre <vincent@vinc17.net>
Added a mpfr_erfc test that shows a bug and updated BUGS file.
2006-11-17 Vincent Lefèvre <vincent@vinc17.net>
configure.in: Added a comment concerning GMP version checking.
configure.in: Before testing GMP header and library versions, set
LD_RUN_PATH locally if a --with-gmp* option is used, so that the
right version of the GMP library is used. There is no need to do
something similar for "make check" as libtool does the job.
Updated mpfr_erfc documentation (now supported in whole domain).
BUGS: removed mpfr_pow_z bug.
2006-11-17 Vincent Lefèvre <vincent@vinc17.net>
Merged the new generic tests.
[Added during the Subversion to Git conversion]
A merge commit could not be generated for Git.
Branch in Git: refs/deleted/r4290/heads/new-generic-tests
2006-11-17 Vincent Lefèvre <vincent@vinc17.net>
Partially fixed a bug in mpfr_pow_si (overflow/underflow detection for
n < 0).
tests/tpow_z.c: various corrections.
Partially fixed another bug in mpfr_pow_z (overflow/underflow detection
for z < 0) and added corresponding testcases.
Fixed a bug in mpfr_pow_z concerning the underflow flag and added the
corresponding testcase (but the case z < 0 is still buggy concerning
the flags).
2006-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
implemented asymptotic formula for erfc (fixed both slowness for large
arguments, and call to MPFR_WARNING with return value NaN for huge arguments)
added new test
2006-11-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed problem for large negative input
2006-11-14 Vincent Lefèvre <vincent@vinc17.net>
TODO: slight change in the proposed mpfr_lgamma prototype (arg order).
2006-11-13 Vincent Lefèvre <vincent@vinc17.net>
About mpfr_lngamma/mpfr_lgamma: added mpfr_lgamma to TODO and updated
mpfr_lngamma description in mpfr.texi.
BUGS: update.
tests/terf.c: added a test that yields a segfault (execute "terf 1").
2006-11-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
moved the [gs]et_decimal64 functions after the [gs]et_ld functions
2006-11-10 Vincent Lefèvre <vincent@vinc17.net>
mpfr.texi: changed @code{--enable-decimal-float} into @samp{...}
for consistency with the other configure options.
mpfr.texi: updated the note concerning mpfr_eint and mpfr_erfc.
2006-11-10 Vincent Lefèvre <vincent@vinc17.net>
Added warnings support.
* configure.in: added --enable-warnings configure option.
* mpfr-impl.h: defined MPFR_WARNING(W) macro.
* eint.c, erfc.c: use MPFR_WARNING instead of fprintf.
* tests/Makefile.am (new-generic-tests branch): run the tests with
MPFR_QUIET=1 to avoid output of useless warnings, as some tests
(with large arguments) can generate such warnings, which are all
expected.
[[Split portion of a mixed commit.]]
2006-11-10 Vincent Lefèvre <vincent@vinc17.net>
Added tget_set_d64 to svn:ignore property of "tests" directory.
TODO: "add a configure test for --enable-logging..."
More information for --enable-logging configure option.
Fixed test of logging support.
Removed --with-irix64 configure option and "case $OS_TYPE" code from
configure.in; see
https://sympa.inria.fr/sympa/arc/mpfr/2006-11/msg00009.html
for the reasons.
2006-11-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added more checks with native format
added detection of decimal format in configure (DPD or BID)
2006-11-09 Vincent Lefèvre <vincent@vinc17.net>
strtofr.c: removed a useless cast (ISO C99 standard 6.2.5#3) and updated
a comment as isdigit is no longer used.
strtofr.c fix: no longer use isdigit, as MPFR requires non-localized
digits.
2006-11-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
modified to work on 64-bit machines too
2006-11-09 Vincent Lefèvre <vincent@vinc17.net>
get_d64.c: fixed problems related to signed/unsigned values.
strtofr.c: fixed a bug that could occur on platforms with signed chars,
when the user provides a string with negative characters (e.g. accented
characters, in practice).
2006-11-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
complete rewrite of mpfr_set_decimal64 and mpfr_get_decimal64: now use
internal string <-> _Decimal64 conversion functions, which perform native
conversion from/to BID or DPD
2006-11-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added mpfr_set_decimal64 and mpfr_get_decimal64
2006-11-08 Vincent Lefèvre <vincent@vinc17.net>
mpfr-impl.h: fixed a compile error if _Decimal64 is unknown.
2006-11-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added new configure option --enable-decimal-float to build mpfr_set_decimal64
and mpfr_get_decimal64 (checks _Decimal64, and _GMP_IEEE_FLOATS is defined)
2006-11-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added --enable-decimal-float in configure, and corresponding macro
WANT_DECIMAL_FLOATS
2006-11-07 Vincent Lefèvre <vincent@vinc17.net>
tests/tversion.c: improved error message and added gmp.h/libgmp test.
Fixed a small bug in tests/tversion.c (should never occur anyway).
2006-11-06 Vincent Lefèvre <vincent@vinc17.net>
logging.c: clean-up.
2006-11-05 Vincent Lefèvre <vincent@vinc17.net>
README.dev: updated things to do before a release.
2006-11-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added new (preliminary) conversions functions to/from decimal64
changed header file: stdlib.h -> stdio.h
2006-11-03 Vincent Lefèvre <vincent@vinc17.net>
Fixed a bug related to signed/unsigned types.
tgamma.c: avoid useless mpfr_get_d.
tpow.c: replaced a mpfr_cmp_d by a mpfr_cmp_str1.
lngamma.c: added a comment.
tlngamma.c: avoid useless mpfr_get_d.
2006-10-27 Vincent Lefèvre <vincent@vinc17.net>
eint.c: better overflow checking; fix: all allocated memory now freed.
eint.c: forgot 2 mpfr_clear's.
eint.c fix: and changed the #if into if.
eint.c fix: replaced BITS_PER_MP_LIMB by sizeof(mp_exp_t) * CHAR_BIT.
The current implementation of mpfr_erfc cannot compute the result for
large inputs. Return NaN with the erange flag set instead of aborting.
Documented this behavior in mpfr.texi.
2006-10-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improved bound for x with BITS_PER_MP_LIMB=32
added bound for BITS_PER_MP_LIMB=64
2006-10-27 Vincent Lefèvre <vincent@vinc17.net>
The current implementation of mpfr_eint cannot compute the result for
large inputs. Return NaN with the erange flag set instead of aborting.
Documented this behavior in mpfr.texi.
tzeta.c patch 4166 should have been committed to the trunk. Fixing...
2006-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added tests for overflows or underflows
2006-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed problem for large negative s (return +Inf or -Inf)
[[Split portion of a mixed commit.]]
2006-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed dummy error in last commit
2006-10-26 Vincent Lefèvre <vincent@vinc17.net>
In latest change, replaced exit(1) by abort().
2006-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added test for eint()
added error message when input is too large in eint(), waiting for asymptotic
expansion
2006-10-26 Vincent Lefèvre <vincent@vinc17.net>
Untabified and added a FIXME.
2006-10-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed overflow/underflow problems in csch and sech
fixed problem for huge argument in coth
2006-10-25 Vincent Lefèvre <vincent@vinc17.net>
FAQ-related updates:
* faq.xsl: Include styles from http://www.mpfr.org/styles/visual.css
by using a system entity (but GNOME libxslt bug 345147 is still
present in Debian, so don't use /*<![CDATA[*/ and /*]]>*/ yet).
* update-faq: add /*<![CDATA[*/ and /*]]>*/ after calling xsltproc.
* FAQ.html: update from the MPFR web site: various changes, including:
+ added id attributes on dt elements (FAQ items) to allow anchors;
+ updated FAQ for undefined references.
INSTALL: mention the MPFR FAQ.
2006-10-23 Vincent Lefèvre <vincent@vinc17.net>
Added a comment about a warning (this confused a user).
2006-10-11 Vincent Lefèvre <vincent@vinc17.net>
TODO: added an item about version information.
2006-10-05 Vincent Lefèvre <vincent@vinc17.net>
TODO: updated item.
2006-10-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added item
2006-10-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed wrong emax in example for mpfr_subnormalize
2006-09-07 Vincent Lefèvre <vincent@vinc17.net>
MPFR manual: say that errno may be set to non-zero.
2006-08-31 Vincent Lefèvre <vincent@vinc17.net>
tests/tests.c: typo.
2006-08-28 Vincent Lefèvre <vincent@vinc17.net>
Fixed texp2 overflow tests on 64-bit machines.
tests/reuse.c: avoid a warning; code reformatted (GNU style).
2006-08-23 Vincent Lefèvre <vincent@vinc17.net>
BUGS: minor update.
2006-08-21 Vincent Lefèvre <vincent@vinc17.net>
BUGS: updated "known bugs" section.
Fixed an exponent/flags-related bug in lngamma.c.
Updated svn:ignore property.
2006-08-20 Vincent Lefèvre <vincent@vinc17.net>
Fixed several problems in pow.c concerning underflows, overflows and
flags (including the inexact flag, which could be incorrectly set in
case of NaN), and added some testcases. Problems in pow_z.c have not
been fixed yet.
Partial fix: The inexact flag was not always set in some functions.
In particular, it is now set by mpfr_check_range (if t is not zero)
since mpfr_check_range usually comes just after MPFR_SAVE_EXPO_FREE
(which restores the previous flags).
2006-08-19 Vincent Lefèvre <vincent@vinc17.net>
Added an assertion for mpfr_exp2 and a test.
2006-08-16 Vincent Lefèvre <vincent@vinc17.net>
Optimized mpfr_expm1 for large (in absolute value) negative values in
order to avoid the TMD (the result is very close to -1). Without this
patch, mpfr_expm1 could take dozens of MBs and the new generic tests
for texpm1 could take several hours instead of less than 1 second.
Fixed a bug in expm1 for very small negative arguments (and perhaps
some very small positive arguments too); this bug is similar to the
one in log1p that was recently found and fixed. It was detected by
the new generic tests (not committed yet), therefore no testcases
are provided. Note: the mpfr_expm1 function is still buggy (freezes
on -0.10E18, prec 2 -> prec 13); this is a different bug.
In mpfr_exp2, the overflow flag was not set if mpfr_exp2 overflowed
with x < emax. Added testcase.
2006-08-15 Vincent Lefèvre <vincent@vinc17.net>
The latest mpfr_exp2 fix contained a bug. Partially rewrote mpfr_exp2
to fix this bug and another one (and added a corresponding testcase:
exp2(10000000000.5), which was freezing).
Better fix for exp2 exponent range bug.
Fixed bug in mpfr_exp2 when the argument is an integer and emin > 1.
Added a testcase to texp2.
2006-08-14 Vincent Lefèvre <vincent@vinc17.net>
Added tget_ld_2exp to svn:ignore property of "tests" directory
(should have been done in rev 4028).
Fixed bug in log1p for small negative values of x and added testcase.
Code style correction for ansi2knr.
2006-07-25 Vincent Lefèvre <vincent@vinc17.net>
INSTALL: more information.
INSTALL: added a note about include/library paths.
2006-07-21 Vincent Lefèvre <vincent@vinc17.net>
INSTALL: added information about setup after the library installation.
2006-07-20 Vincent Lefèvre <vincent@vinc17.net>
Improved linker flag settings on darwin.
2006-07-18 Vincent Lefèvre <vincent@vinc17.net>
configure.in: fixed a linking problem on darwin.
2006-07-16 Vincent Lefèvre <vincent@vinc17.net>
One needs automake 1.6; autoreconf fails with automake 1.4. Adding
the 1.6 automake option will make the error message less obfuscated,
but unfortunately, one won't have the necessary automake version
automatically called, even if it is installed.
2006-07-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added item
fixed wrong comment (thanks Keith Briggs)
new mpn_rootrem is still not in gmp-4.2
2006-06-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
replaced <= by =
2006-06-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed <= into =
comments from Keith Briggs
2006-06-09 Vincent Lefèvre <vincent@vinc17.net>
algorithms.tex: corrected several English mistakes and typography.
2006-06-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed typo
replaced error() by \error()
2006-06-09 Vincent Lefèvre <vincent@vinc17.net>
algorithms.tex: another fixed notation for roundings.
2006-06-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added section on Notations
fixed notations for roundings
2006-06-09 Vincent Lefèvre <vincent@vinc17.net>
algorithms.tex: changed the page style to plain (for page numbers).
2006-06-07 Vincent Lefèvre <vincent@vinc17.net>
FAQ update.
2006-05-29 Vincent Lefèvre <vincent@vinc17.net>
Define HAVE_ATTRIBUTE_MODE if supported; useful for s390, but incomplete
and will fail on platforms with gcc and CHAR_BIT != 8.
2006-05-19 Vincent Lefèvre <vincent@vinc17.net>
Add compiler flags (CPPFLAGS, LDFLAGS) in a consistent order.
2006-05-18 Vincent Lefèvre <vincent@vinc17.net>
MPFR manual consistency: Custom interface -> Custom Interface.
2006-05-17 Vincent Lefèvre <vincent@vinc17.net>
TODO: added a note about the change 4049 in div.c.
2006-04-18 Vincent Lefèvre <vincent@vinc17.net>
Removed the #ifndef __hpux from mul.c (after a test on a HP-UX machine,
I got no failures, even with the old mpfr-longlong.h).
README.dev: added a point on mpfr-longlong.h in "To make a release".
Updated mpfr-longlong.h from the GMP 4.2 longlong.h file.
mpfr.texi: removed dot from a section title.
2006-04-11 Vincent Lefèvre <vincent@vinc17.net>
FAQ update.
2006-04-06 Vincent Lefèvre <vincent@vinc17.net>
div.c: removed the bad use of MPFR_LIMB_ZERO.
In get_f.c, updated the case precy + sh > precx: this one was correct,
but added a comment, assertions and simplified a MPN_ZERO.
2006-04-05 Vincent Lefèvre <vincent@vinc17.net>
tget_f.c: test that there is no lost of accuracy when converting
a mpfr_t number into a mpf_t number (test with various precisions
and exponents).
The fix of get_f.c was wrong. This should be now OK for the case
precy + sh <= precx.
Fixed bug in mpfr_get_f (reported by Yury Lukach) and added test.
2006-03-31 Vincent Lefèvre <vincent@vinc17.net>
Updated FDL to version 1.2.
Updated FSF address.
Fixed FSF address.
2006-03-30 Vincent Lefèvre <vincent@vinc17.net>
Another FAQ update (taking GMP 4.2 into account).
FAQ update.
2006-03-24 Vincent Lefèvre <vincent@vinc17.net>
Removed all code related to mpn_sub_nc (no longer used).
div.c: fixed a bug and no longer use mpn_sub_nc.
Some clean-up in div.c; do not steal GMP's namespace (could lead to
clashes if future GMP versions define the corresponding macros).
Build shared libraries by default.
2006-03-23 Vincent Lefèvre <vincent@vinc17.net>
random2.c: minor change suggested by Patrick.
configure.in: typography consistency.
Mention --enable-thread-safe and --enable-shared in the INSTALL file
since users may need them and could be confused otherwise (just seen
that). Untabified the file.
2006-03-16 Vincent Lefèvre <vincent@vinc17.net>
TODO: new exception "division by zero" / "pole".
README.dev: added "Do not use C99-only features, such as...".
2006-03-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
replaced 6th empty argument of MPFR_FAST_COMPUTE_IF_SMALL_INPUT by {}
2006-03-14 Vincent Lefèvre <vincent@vinc17.net>
In random2.c, replaced NULL by 0 (more general) and removed the
now unnecessary #include <stdio.h>.
2006-03-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added missing include file
2006-03-14 Vincent Lefèvre <vincent@vinc17.net>
Tests: added new worst case for x^(3/2).
2006-03-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added reference to INRIA report for Zeta
added another reference
added reference
2006-02-28 Vincent Lefèvre <vincent@vinc17.net>
More details concerning mpfr_eq.
2006-02-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed "but does not make much sense"
added contribution from Damien
new test file for mpfr_get_ld_2exp
2006-02-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added mpfr_get_ld_2exp (contributed by Damien Stehle)
2006-02-20 Vincent Lefèvre <vincent@vinc17.net>
Updated mpfr_random2 user documentation.
Fixed bug in mpfr_random2 when size == 0 and added testcase.
trandom.c: reformat.
trandom.c: use calloc instead of malloc and check return value.
mpfr_random2_raw -> static.
2006-02-17 Vincent Lefèvre <vincent@vinc17.net>
Added mpfr_remainder to TODO.
2006-02-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed wrong url
2006-02-15 Vincent Lefèvre <vincent@vinc17.net>
Fixed various spelling mistakes, typos... in algorithms.tex.
In algorithms.tex, \em -> \emph.
Typography corrections in algorithms.tex.
In algorithms.tex, added a missing blackslash.
In algorithms.tex, removed \date (was incorrectly used) and added the
web site as a footnote.
2006-02-13 Vincent Lefèvre <vincent@vinc17.net>
Code reformatted. C99 comment replaced by traditional comment.
2006-02-13 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
* Added comments on all random number generator functions ;
* Inlined the mpn_random2 code in mpfr_random2, to avoid the use of the
same internal randstate ; added a mpfr_random2_raw (not exported at the
time) to allow specification of a randstate ;
* Checked normalization of the result of random2 in trandom.c
2006-01-31 Vincent Lefèvre <vincent@vinc17.net>
Changed a part of the documentation of mpfr_get_d_2exp, introduced in
rev 4008, to specify a behavior very similar to the ISO C standard.
2006-01-31 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed documentation bug
2006-01-19 Vincent Lefèvre <vincent@vinc17.net>
Reverted comments on <float.h> (that were added in r3976).
Replaced -0.0 by a new macro DBL_NEG_ZERO. With MSVC, the negative zero
no longer depends on the non-standard _chgsign function, as
static double double_zero = 0.0;
# define DBL_NEG_ZERO (-double_zero)
has been reported to work.
2006-01-17 Vincent Lefèvre <vincent@vinc17.net>
Added comments.
2006-01-13 Vincent Lefèvre <vincent@vinc17.net>
Type clean-up.
The problem with the conversion was not completely fixed... Now OK.
Fixed conversion with a non-representable value.
Untabify.
2006-01-12 Vincent Lefèvre <vincent@vinc17.net>
More reliable tests for mpfr_set_f (x, y, GMP_RNDN) for
y = 2^emax and y = 2^(emax-1).
Use mpfr_get_emax() instead of obsolete __mpfr_emax.
More reliable test for mpfr_set_f (x, y, GMP_RNDN) for y=2^ULONG_MAX.
Untabified.
Fixed a bug related to exponent range.
Replaced obsolete __mpfr_emax by __gmpfr_emax.
2006-01-11 Vincent Lefèvre <vincent@vinc17.net>
Removed add_one_ulp.c and sub_one_ulp.c (no longer used).
2006-01-10 Vincent Lefèvre <vincent@vinc17.net>
MPFR manual: changes from Paul concerning the ulps.
In the manual, replaced "exact rounding" by "correct rounding",
and added a sentence on the consequence of correct rounding (as
suggested by Paul).
2006-01-05 Vincent Lefèvre <vincent@vinc17.net>
Added ', Inc.' when missing after 'Free Software Foundation'.
README.dev: Added a note about copyright notices.
Updated the copyright notices according to the new GNU rules on:
https://www.gnu.org/prep/maintain/maintain.html#Copyright-Notices
i.e. added 2006 to every MPFR file.
Note: the copyright notices (currently 336) should match the regexp
Copyright.* 2006 Free Software
so that it will be easier to update them for the next year...
2006-01-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added suggestion from K. Briggs
2006-01-01 Vincent Lefèvre <vincent@vinc17.net>
Updated copyright line (we are now in 2006!).
2006-01-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
use mpfr_overflow
2005-12-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug in mpfr_set_f for huge argument
2005-12-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
bug fix in mpfr_get_f
2005-12-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
updated comment for float.h (_chgsign)
fixed bug found by Vincent (worst-case)
patch for Visual C (does not compile -0.0 properly)
patch for Visual C (-0.0)
2005-12-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed typo
2005-12-16 Vincent Lefèvre <vincent@vinc17.net>
Better definition for mpf_set_prec_raw (so that the value is kept).
2005-12-08 Vincent Lefèvre <vincent@vinc17.net>
Updated a comment.
Added test cases for a bug introduced on 2005-01-29 in sin.c rev 3248.
README.dev: remember to test MPFR on the worst cases.
2005-11-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added lemma + reference
2005-11-25 Vincent Lefèvre <vincent@vinc17.net>
Removed mpfr_div bug from BUGS (as it has been fixed).
Added consistency tests for mpfr_div (e.g. to test small-size divisors).
2005-11-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed efficiency bug for small divisor (division had same cost than for
divisor of the same size than the result)
2005-11-23 Vincent Lefèvre <vincent@vinc17.net>
Updated FAQ.
faq.xsl: add copyright information to the downloaded FAQ.
Added information about the patches to the INSTALL file.
BUGS: Noted the slow division when the precision of the divisor
is small compared to the precision of the target.
2005-11-21 Vincent Lefèvre <vincent@vinc17.net>
Fixed a bug preventing the compilation of MPFR with GMP 4.1.90
(non-public development version) without the build directory.
Fixed memory leak in mpfr_mpn_rootrem().
2005-11-09 Vincent Lefèvre <vincent@vinc17.net>
Added a note about running the trunk tests in a branch.
Make trunk tests work with MPFR 2.2 (branch), by testing the version.
Removed .cvsignore file (useless after the switch to Subversion).
Added a MPFR_UNLIKELY.
In mpfr_round_near_x, use the new MPFR_RNDRAW_GEN with a correct middle
handler instead of MPFR_RNDRAW_EVEN so that the correction of the wrong
rounding is no longer necessary (BTW, the wrong rounding could have lead
to problems in case of intermediate underflow/overflow -- not checked).
mpfr_round_near_x test completed.
Added a test for mpfr_cbrt, from the following failure with MPFR 2.2
and gcc 4.0.2 under Linux/m68k:
Seed GMP_CHECK_RANDOMIZE=1131612275 (include this in bug reports)
results differ for x=1.1000e-2 prec=5 rnd_mode=GMP_RNDN
got 1.1000e-1
expected 1.0111e-1
approx 0.101110001001100E0
FAIL: tcbrt
2005-11-04 Vincent Lefèvre <vincent@vinc17.net>
Improved note r3493 concerning mpfr_set_d/ld.
More information in the "Reporting Bugs" section.
Added a comment about the macros MPFR_RNDRAW* and the labels.
Moved definitions of struct __gmpfr_cache_s and mpfr_cache_t, and
declarations of mpfr_init_cache, mpfr_clear_cache and mpfr_cache
from mpfr.h to mpfr-impl.h as they are internal (not documented).
2005-11-03 Vincent Lefèvre <vincent@vinc17.net>
Eliminated the case inex == 0.
Started to write code to test mpfr_round_near_x.
Typos & English usage.
Fixed typos.
2005-11-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added hint on forbidden variable name
added "tune" item for new releases
done make tune for amd64 with gmp-4.1.4
2005-11-02 Vincent Lefèvre <vincent@vinc17.net>
Merged the changes from branch vlefevre:
* mpfr-impl.h: Added MPFR_RNDRAW_GEN based on MPFR_RNDRAW and
MPFR_RNDRAW_EVEN codes, but taking an additional argument: a
handler executed in rounding to nearest mode when the value
is the middle of two consecutive numbers in dest precision.
MPFR_RNDRAW and MPFR_RNDRAW_EVEN are now defined by a "call"
to MPFR_RNDRAW_GEN.
* cache.c: Clean-up and use MPFR_RNDRAW_GEN instead of
MPFR_RNDRAW_EVEN to avoid an unnecessary correction in the
halfway case.
* hypot.c: Fixed mpfr_hypot when the rounding mode is to nearest,
x is "much larger" than y, and x is the middle of two consecutive
numbers in the target precision.
* tests/thypot.c: Added the corresponding testcase.
[Added during the Subversion to Git conversion]
A merge commit could not be generated for Git.
Branch in Git: refs/deleted/r3930/heads/vlefevre
2005-11-02 Vincent Lefèvre <vincent@vinc17.net>
Updated svn:ignore property.
2005-11-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed remaining problems
declared variables as mp_prec_t instead of int
use MPFR_MPZ_SIZEINBASE2 instead of mpz_sizeinbase
2005-11-02 Vincent Lefèvre <vincent@vinc17.net>
Reverted the latest change to constant.c: removed MPFR_THREAD_ATTR as
these constants can be shared. Removed MPFR_THREAD_ATTR from mpfr-impl.h
too (this should have been the right correction for rev 3838 concerning
the type mismatch). Thanks to Patrick for noticing this.
2005-10-31 Vincent Lefèvre <vincent@vinc17.net>
Added an MPFR_UNLIKELY (suggested by Patrick) and an MPFR_ASSERTN.
2005-10-31 Paul Zimmermann <Paul.Zimmermann@inria.fr>
factored calls to gmp_alloc
removed unused variables
improved atan (now can cut series before 2^m)
revised error analysis and code of tanh
2005-10-31 Vincent Lefèvre <vincent@vinc17.net>
Reformat (GNU coding style).
Fixed MPFR_INT_CEIL_LOG2 (in mpfr-impl.h) and __gmpfr_int_ceil_log2
(in int_ceil_log2.c) when the argument is a power of 2, and added a
test (new test file tests/tinternals.c). This made a bug appear in
div_ui.c and mul_ui.c; fixed that too.
Added a test that fails after fixing MPFR_INT_CEIL_LOG2.
2005-10-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improved exp_3 (binary-splitting algorithm)
2005-10-30 Vincent Lefèvre <vincent@vinc17.net>
Fixed padding-bit test.
3 corrections in cos.c concerning maxi:
* corrected a comment;
* failed if sizeof(int) <= sizeof(long) / 2;
* now take possible padding bits into account.
2005-10-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
patched root.c to use rootrem.c with gmp-4.1.90
added comment in exp3.c
added more initial guard bits in agm
now tune Mulders short square (not yet used)
improved mpfr_cos
2005-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
updated code for gmp-dev
2005-10-26 Vincent Lefèvre <vincent@vinc17.net>
Removed .cvsignore file (useless after the switch to Subversion).
2005-10-25 Vincent Lefèvre <vincent@vinc17.net>
More portable update-version script (use perl instead of sed).
2005-10-24 Vincent Lefèvre <vincent@vinc17.net>
First revision after the switch to Subversion:
* Removed fixperm as it is now useless.
* Updated README and README.dev files.
Update.
2005-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
documented algorithm used in mpfr_agm and fixed code accordingly
2005-10-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added efficiency item
now mpzroot/rootrem compile without gmp internal headers
2005-10-07 Vincent Lefèvre <vincent@vinc17.net>
Disabled new rootrem/mpz_root as compilation fails (headers can't
be found).
Temporary optimization (patch from Patrick Pelissier).
2005-10-06 Vincent Lefèvre <vincent@vinc17.net>
One of the tests was using the fabs function, but -lm isn't given when
generating the executable, making the linking fail under HP-UX. Fixed
by not using this fabs function.
2005-10-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
small improvement in sign detection
improved mpfr_root, using the new mpn_rootrem code written with Torbjo"rn
2005-09-29 Vincent Lefèvre <vincent@vinc17.net>
Update.
Fixed bug in mpfr_set_ui macro when parameters are expressions
with side effects.
2005-09-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed missing accent
2005-09-28 Vincent Lefèvre <vincent@vinc17.net>
Small optimization.
Test the sign of 0.
2005-09-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed infinite loop for lngamma(2)
2005-09-28 Vincent Lefèvre <vincent@vinc17.net>
Updated libmpfr_la_LDFLAGS (note: it shouldn't be incremented again
before the 2.3.0 release).
2005-09-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
new function: Zeta with integer argument
2005-09-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
new function mpfr_zeta_ui for integer argument
2005-09-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added brief description of algorithm for mpfr_zeta
2005-09-18 Vincent Lefèvre <vincent@vinc17.net>
Mentioned problems with the Tru64 make and other minor changes.
2005-09-17 Vincent Lefèvre <vincent@vinc17.net>
Fixed the GMP linking test: replaced __gmp_version, which corresponds
to a variable, by __gmpz_init (suggested by the GMP documentation),
which corresponds to a function, as the auto tools assume the symbol
corresponds to a function. It was failing with the AIX linker.
2005-09-16 Vincent Lefèvre <vincent@vinc17.net>
Untabify.
Update.
Untabify.
2005-09-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added missing documentation for mpfr_get_f and mpfr_pow_z
2005-09-16 Vincent Lefèvre <vincent@vinc17.net>
Fixed typos found by Tomonori Kouya.
2005-09-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed stupid bug (coth was computing 1/tan instead of 1/tanh)
2005-09-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed overflow problem for large precision
added log(precz) in initial precision
2005-09-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug in exp(-eps) for rounding toward zero (test was also wrong...)
2005-09-13 Vincent Lefèvre <vincent@vinc17.net>
Updated "To make a release".
Minor update.
Added missing MPFR_THREAD_ATTR.
2005-09-11 Vincent Lefèvre <vincent@vinc17.net>
Avoid a conflict with GMP.
Reverted to previous mparam_h.in and mul.c, and applied Patrick's
patch instead.
Update.
Added #include <string.h> for memmove (see ISO C99 standard).
Minor change.
Fixed uninitialized variable (with gcc -std=c99).
Fixed a #ifdef (when --enable-assert isn't used).
Update.
Changed the MPFR_ASSERTD into a MPFR_ASSERTN for MPFR_INT_CEIL_LOG2
since the assertion cannot be guaranteed for every C implementation.
2005-09-10 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix spelling mistake.
Add new note about MPFR_TMP_DECL
2005-09-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
reduced default of MPFR_MUL_THRESHOLD by 1, since now MPFR_MUL_THRESHOLD+1
is considered in mul.c
2005-09-09 Vincent Lefèvre <vincent@vinc17.net>
Fixed another LaTeX error.
Update.
Updated "To make a release".
Use (mpz_t *) 0 instead of NULL (this is not less clear and this
works with the native SunOS 4 C compiler).
2005-09-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
avoid . in mpf_set_str (locale-sensitive)
cleanup of gamma and lngamma
2005-09-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
MUL_THRESHOLD -> MUL_THRESHOLD+1 (to allow MUL_THRESHOLD=0, needed for
tuneup.c)
fixed LaTeX error
2005-09-08 Vincent Lefèvre <vincent@vinc17.net>
Fix.
Update.
Added fixperm script to fix the file permissions broken by CVS.
Update.
2005-09-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added one item
2005-09-08 Vincent Lefèvre <vincent@vinc17.net>
Update.
Fix: readded dependencies.
2005-09-06 Vincent Lefèvre <vincent@vinc17.net>
More detailed error message.
Change for ansi2knr.
Code clean-up (again).
Use GMP's allocate functions instead of C's. Code clean-up.
Reformat.
2005-09-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
missing set_emin
added missing call to MPFR_TEST_USE_RANDS() [3 blocks non-freed]
2005-09-06 Vincent Lefèvre <vincent@vinc17.net>
Fixed a bug (detected after mpfr_set_str_binary has been fixed)
in tests/tsub.c introduced in 1.6 (2001-10-19).
mpfr_set_str_binary was buggy and inefficient. Let's use mpfr_strtofr.
Replaced unsigned long bit-fields (GCC extension) by insigned int
bit-fields.
2005-09-05 Vincent Lefèvre <vincent@vinc17.net>
MPN_COPY now calls memcpy only if dst != src (otherwise this is an
undefined behavior), and if WANT_ASSERT is defined, it checks that
there is no overlap.
2005-09-02 Vincent Lefèvre <vincent@vinc17.net>
Avoid MIPSpro / IRIX64 (incorrect) optimizations for DOUBLE_ISNAN.
More portable DOUBLE_ISNAN (useful for MIPSpro under IRIX64).
2005-09-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improved trade-off between fac_ui and gamma when argument is integer
2005-09-02 Vincent Lefèvre <vincent@vinc17.net>
Reformat.
2005-09-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed remaining problem in gamma
removed LogGamma from TODO
2005-09-02 Vincent Lefèvre <vincent@vinc17.net>
Do not put expressions with side effects in MPFR_ASSERTN.
2005-09-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
now uses lngamma code for x < 1 too
added new tests from Kenneth Wilder
added another test
removed useless prototype
2005-08-31 Vincent Lefèvre <vincent@vinc17.net>
Fixed memory leak (missing MPFR_TMP_FREE in a particular case).
Fixed the code formatting.
Updated Point 6 of "To make a release".
Fixed memory leak (missing MPFR_TMP_FREE in a particular case).
2005-08-31 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added lngamma
added new test (emax)
now random tests also use x >= 1
added SAVE_EXPO stuff
new function lngamma
now uses lngamma code for x > 1
added lngamma
2005-08-31 Vincent Lefèvre <vincent@vinc17.net>
Updated version to 2.3.0.
Fix for the following problem: #error is not sufficient with cc
on IRIX64, and autoconf 2.59 doesn't cope with that.
2005-08-30 Vincent Lefèvre <vincent@vinc17.net>
Added .cvsignore files.
Unobfuscated 2 assertions.
Fixed indentation and some comments.
Recommitted the patch (without discarding previous modifications).
Reverted to the previous version, as the patch discarded previous
modifications.
2005-08-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added two new tests
patch from Patrick to solve efficiency problem when one operand is sparse
(e.g. from ui_pow_ui)
2005-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
check for overflow/underflow in pow and gamma
2005-08-24 Vincent Lefèvre <vincent@vinc17.net>
When WANT_ASSERT >= 2: the corresponding messages are now output
to stderr instead of stdout.
Update.
Improved C compliance when mp_limb_t and uintmax_t have the same size
(concerning >> BITS_PER_MP_LIMB); some other small improvements.
No longer assume that a mp_limb_t fits in an unsigned long (this
is not true under IRIX, where a mp_limb_t has 64 bits and a long
has 32 bits by default). In round_p.c, error messages are output
to stderr instead of stdout.
2005-08-23 Vincent Lefèvre <vincent@vinc17.net>
Update.
This was wrong. Let's do it even more like the 2.1 branch.
Update.
Patch 1.25 didn't work under OSF1 with cc. Let's do it like
the 2.1 branch (it now does work under OSF1 with cc).
2005-08-21 Vincent Lefèvre <vincent@vinc17.net>
Better locale support (for the decimal point in string conversions
and input/output).
2005-08-18 Vincent Lefèvre <vincent@vinc17.net>
Update.
Misc changes (spelling, typography...).
Removed trailing spaces (better for future patches, as such spaces
are sometimes stripped).
Converted tabs to spaces with expand.
Updated copyright line.
Support C implementations giving an incorrect value for the precision
of long double or where long doubles are implemented with FP expansions
(like under Mac OS X), as in the 2.1 branch.
Updated mpfr_get_ld: removed useless and non-portable hacks, fixed
bugs, and slightly changed the behavior for the x87 extended format
(we shouldn't return long double's with more precision than really
supported, e.g. on FreeBSD and NetBSD).
Added an assertion.
2005-08-17 Vincent Lefèvre <vincent@vinc17.net>
Reformatted (GNU style).
2005-08-17 Patrick Pélissier <patrick.pelissier@gmail.com>
Improve the warning message by adding the lines:
"we cannot run a program linked with GMP (if you cannot
see the version numbers above)."
2005-08-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added pointer for gamma
fixed comments (code did not change)
added formula for gamma function
fixed last test (expected result was wrong)
fixed bug for tiny input
added test case
2005-08-12 Patrick Pélissier <patrick.pelissier@gmail.com>
Reintroduce the computing of the dependencies.
2005-08-11 Vincent Lefèvre <vincent@vinc17.net>
Added MPFR_DOUBLE_SPEC (not used yet, except for warning messages).
2005-08-10 Vincent Lefèvre <vincent@vinc17.net>
Completed the documentation of mpfr_strtofr (concerning the exponent).
Removed double spaces in mpfr_strtofr description (this matters
for the info format).
Added a temporary test for non-IEEE-754 double's.
2005-08-09 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix bug for pre-ansi compiler.
Remove redundant entries.
2005-08-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug in mpfr_sin (possible wrong inexact flag for rounding to nearest)
added items in NEWS and TODO
2005-08-05 Patrick Pélissier <patrick.pelissier@gmail.com>
Update information
Rename mpfr_stack to mpfr_custom_
2005-08-03 Vincent Lefèvre <vincent@vinc17.net>
Added/updated copyright information.
2005-08-03 Vincent Lefèvre <vincent@vinc17.net>
Update.
[[Split portion of a mixed commit.]]
2005-08-02 Patrick Pélissier <patrick.pelissier@gmail.com>
Remove "Stack Interface" from TODO.
2005-08-01 Patrick Pélissier <patrick.pelissier@gmail.com>
Add test file for mpfr_subnormalize
Add documentation for MPFR stack interface
Add a new test to avoid potential problems if mp_limb_t != long.
2005-08-01 Vincent Lefèvre <vincent@vinc17.net>
Update.
2005-07-26 Patrick Pélissier <patrick.pelissier@gmail.com>
Add first version of MPFR stack interface.
Need to check if everything is ok, specially the test.
Fix and clean up logging for GCC 4.0.x
Clean up code.
Improve logging:
+ The file is not created if there is nothing to log.
+ Add new ENVIRONMENT variables: MPFR_LOG_ALL and MPFR_LOG_STAT.
Add experimental code (Disabled).
Fix comment
Add a new regression test (to fix).
2005-07-22 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix bug for high values of input (assertion failed)
because erf(x) ~ 1, so 1-erf(x) ~ 0, and we can't
get the EXP of tmp.
2005-07-18 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix bug (AC_INIT version wasn't updated).
Display a note about libtool version before quitting.
Clean up.
Add comment.
Add a new test: check if the charset has consecutive values.
2005-07-12 Vincent Lefèvre <vincent@vinc17.net>
Updated documentation of mpfr_strtofr.
2005-07-12 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix an overflow bug (use of int instead of unsigned long).
Optimize code (5% faster).
2005-07-11 Vincent Lefèvre <vincent@vinc17.net>
Fixed locale bug. Function strncasecmp is no longer used.
2005-07-09 Vincent Lefèvre <vincent@vinc17.net>
In the tests, set the locale to the current one. This allows to test
MPFR under various locales, showing a bug in the parse_string function
due to the use of the strncasecmp function ('i' and 'I' don't match
with LC_ALL="tr_TR.ISO8859-9").
2005-07-07 Patrick Pélissier <patrick.pelissier@gmail.com>
Improve displayed warning if GMP versions differ.
2005-07-06 Patrick Pélissier <patrick.pelissier@gmail.com>
Add a solution for a problem.
2005-07-05 Vincent Lefèvre <vincent@vinc17.net>
Added in-place tests for atan(+/-0).
2005-07-05 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix bug of signed 0.
Optimize code. (20% for 53 bits).
Improve test for signed 0.
2005-06-28 Patrick Pélissier <patrick.pelissier@gmail.com>
Simplify a condition which was always true.
(p is always negative).
Add assertion.
Simplify code for final step (when i== n0):
since we do n0-i=0 steps, atan(Ak/2^k) ~= Ak/2^k.
So we could speed up the final computation (9% faster).
Optimize: when computing arctan(p/2^r) simplify
p/2^r if p is even.
Clean up and remove tabi table. It was useless.
2005-06-22 Patrick Pélissier <patrick.pelissier@gmail.com>
Clean up configure and acinclude:
+ Remove useless test in MPFR_CONFIGS (Check for valid NAN).
Its result is not use by MPFR.
+ Remove useless macros (AC_CHECK_OS, AC_CHECK_MACH and AC_MY_HEADERS).
+ Move detection of math/rint,round,floor,ceil to MPFR_CONFIGS.
2005-06-20 Vincent Lefèvre <vincent@vinc17.net>
GNU coding style.
2005-06-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improved m=0 case when b is a power of 2
2005-06-15 Patrick Pélissier <patrick.pelissier@gmail.com>
Replace mpfr_div_2ui call by SET_EXP/GET_EXP
since it can't overflow.
Speed up a few (from 10822 to 10600).
Update
2005-06-14 Patrick Pélissier <patrick.pelissier@gmail.com>
Replace check for a power of 2 for the high limb by a check
for "high bit limb" for the high limb.
Fix bug in mul_ui (always alloc buffer instead of trying to reuse it).
Add new test (failed).
Add Fast case for u==1
Add Fast case for u a power of 2 (Call mul/div_2si).
Fix bug (use of GCC specific attribute).
2005-06-13 Patrick Pélissier <patrick.pelissier@gmail.com>
Rechnage the meaning of root for k=0.
Fix bug with x<0 and k even
Add special case for k==0
Add test for special case k==0
2005-06-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added assertion
2005-06-13 Patrick Pélissier <patrick.pelissier@gmail.com>
Improve efficiency of initial call to mpfr_cache.
Add new check (+INF -INF --> NAN).
2005-06-10 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix bug of NAN and INF.
Fix bug in documentation (mpfr_sum wasn't exactly what is described).
Improve test.
Change internal names.
Clean up.
Fix bug: check if mpfr_log returns 0.
2005-06-08 Patrick Pélissier <patrick.pelissier@gmail.com>
Replace MPFR_EXP to MPFR_GET_EXP
Use GROUP function
Use MPFR_MPZ_SIZEINBASE2
Factorize the mpfr_mul_2exp chain.
Replace int to mp_prec_t for precision...
Fix warning due to comparison of unsigned and signed integers.
Fix warnings due to comparison between signed and unsigned.
Reinclude string.h for strtofr.
2005-06-08 Vincent Lefèvre <vincent@vinc17.net>
Fixed bug introduced with the new internal format on 2003-10-27.
Updated comments.
2005-06-08 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix introduced bug due to missing NULL.
Fix introduced bug (NULL not defined).
Clean up use of stdio.h:
it is now included by mpfr-impl iff DEBUG is defined or WANT_ASSERT is
defined.
Fix warnings.
Clean up code.
Improve checking if WANT_ASSERT >= 2
2005-06-07 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix wrong assertion.
Improve test by adding special cases.
MPFR_GET_EXP was wrongly defined and does nothing due to recursive
macro (mpfr_get_exp is also defined to be a fast macro). Fix this
by removing the macro call in MPFR_GET_EXP in case of ASSERT >= 1.
2 tests failed now!
Clean up and improve check.
Handle case n==0 and n==1 as special cases.
Simplify test to use tgeneric.
Add note about Worst Case of const_catalan up to 100,000,000
Use GROUP functions.
Improve coverage.
Fix bug in MPFR_GROUP_REPREC_3.
2005-06-06 Patrick Pélissier <patrick.pelissier@gmail.com>
Improve coverage
Improve coverage test
Remove mpfr_sub_one_ulp from MPFR library.
Keep the C file until we are sure it not needed anymore.
Improve coverage.
Remove mpfr_add_one_ulp from MPFR library.
The function is still in the CVS.
Add experimental code (disabled).
For 5000 bits, gamma(12.5) takes 4s instead of 18s.
But it changes the error analysis...
Reduce use of intermediary variables.
Improve comment of previous change.
Use FastCompute if x is positive and big, ie it uses
Zeta(x)=1+1/2^X+O(1/3^x)
2005-06-03 Patrick Pélissier <patrick.pelissier@gmail.com>
Add new and faster trivial case for y <= 1 and n <= 1
2005-06-02 Patrick Pélissier <patrick.pelissier@gmail.com>
Forget those two. Update from FSF site.
Finish updating files.
Change the address of the FSF.
Optimize it a few by avoiding calling fac_ui for each iteration
of the main loop.
Reduce # of vars inside the main loop.
Use GROUP function.
Improve overflow problems (Use of int instead of mp_prec_t).
Improve efficiency by removing 2 variables (Loop uses only 4 vars).
Use GROUP.
Add support for MPFR_GROUP functions.
Add attribute const and noreturn for function (via macros).
Add new macros GROUP_INIT_6 and GROUP_REPREC_6 for zeta and gamma.
2005-06-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added missing functions from gnumeric
2005-06-02 Patrick Pélissier <patrick.pelissier@gmail.com>
Update stack-interface.
Remove round_near_x item.
Add new functions to implement.
Reformat file.
Fix input precision of mp_prec_t.
May be outside 'int' range. So it uses 'long' instead and
a proper check.
2005-05-25 Vincent Lefèvre <vincent@vinc17.net>
Added coding recommendations concerning C++ compilers.
2005-05-23 Patrick Pélissier <patrick.pelissier@gmail.com>
Final version of MPFR_GROUP macros.
Improve coverage test.
2005-05-20 Patrick Pélissier <patrick.pelissier@gmail.com>
Remove variable t which wasn't used!
2005-05-18 Patrick Pélissier <patrick.pelissier@gmail.com>
Replace TMP_ALLOC by MPFR_TMP_ALLOC
Replace TMP_DECL by MPFR_TMP_DECL
Replace TMP_MARK by MPFR_TMP_MARK
Replace TMP_FREE by MPFR_TMP_FREE
Add support for GMP's TMP_SALLOC.
New way of handling exact value.
Fix bug of wrong rounding and wrong ternary value if the power
is exact, but at an upper precision than the working precision.
Now it computes the power exactly if it detects it is exact.
Precise that 1 is not the only value.
2005-05-18 Vincent Lefèvre <vincent@vinc17.net>
an 1 -> a 1.
2005-05-18 Patrick Pélissier <patrick.pelissier@gmail.com>
Add a note about special case 1
Add assertions
Remove useless function is_odd_even.
Fix bug: returning 1 didn't take the rounding mode into account.
Simplify dependencies of mpfr_pow.
Fix bug of overflow
Fix bug of wrong ternary value in case of overflow
Add test cases.
Fix bug of overflow.
Fix bug of ternary value in case of overflow.
Clean up previous patch.
Fix bug of overflow.
Fix bug of ternary value in case of overflow.
Still some bugs...
2005-05-17 Patrick Pélissier <patrick.pelissier@gmail.com>
Rewrite the way of handling overflow.
Fix bug due to overflow.
Fix bug due to wrong ternary value.
Typo.
Fix bug of overflow.
Still a problem if exp(x) is near the limit of EMAX_MAX.
Add new macro MPFR_SAVE_DECL_UPDATE_FLAGS
Improve way of handling overflow (still not perfect but far better).
Improve coverage test.
Improve coverage test.
2005-05-17 Vincent Lefèvre <vincent@vinc17.net>
hypot(±oo, NaN) now returns +oo, as in ISO C99 (wasn't documented).
2005-05-17 Patrick Pélissier <patrick.pelissier@gmail.com>
Improve coverage test.
Remove useless test.
Improve coverage test.
Improve coverage
Improve coverage test.
Add CFLAGS -g.
Clean up
Improve coverage tests.
Improve coverage test.
Special a condition by the simplified one.
Improve coverage test (Forget to test tiny functions).
Typo
Add 'coverage' script.
Add 'static'
Reformating code.
Fix potential (?) overflow for very large precision.
Various tiny optimizations
Improve the initial estimation of the needed precision.
Extract constants (__gmpfr_one, two and four) from log.c to constant.c
Fix bug in MPFR_SET_ONE.
Remove a space.
2005-05-16 Vincent Lefèvre <vincent@vinc17.net>
Typography + spelling.
Note that mpfr_out_str has slightly changed.
2005-05-16 Patrick Pélissier <patrick.pelissier@gmail.com>
asin, atan, atanh are not slow anymore for small input.
Remove it in the TODO.
2005-05-14 Vincent Lefèvre <vincent@vinc17.net>
Fixed a bug due to a typo on a variable name. It produced a
segmentation fault in the tests on Linux/ppc (uninitialized data were
read), not always reproducible when stepping with gdb.
2005-05-13 Patrick Pélissier <patrick.pelissier@gmail.com>
Add support for MPFR_FAST_COMPUTE_IS_SMALL_INPUT
Add support for FAST_COMPUTE_IS_SMALL_INPUT.
Add round_near_x support for small arguments.
Add new internal function mpfr_round_near_x.
2005-05-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added missing documentation for mpfr_hypot
2005-05-13 Patrick Pélissier <patrick.pelissier@gmail.com>
Add a \n for all error strings.
Fix copyright date.
Fix some problems when you define mpfr_prec_t to be an unsigned short.
Now all tests passed when mpfr_prec_t is defined to be an unsigned short
on a 32 bit CPU!
2005-05-12 Vincent Lefèvre <vincent@vinc17.net>
Detect/avoid potential integer overflows.
2005-05-12 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix typos.
2005-05-11 Patrick Pélissier <patrick.pelissier@gmail.com>
Same patch for exp_3.
Fix bug when exp(x) is near the limit of an overflow or an
underflow (mpfr_exp_2 didn't allow an overflow/underflow in its
internal loop).
Add corresponding test case. exp_3 may need similar patchs.
2005-05-11 Vincent Lefèvre <vincent@vinc17.net>
Update (with reformatting so that the logs are readable on 80 columns).
2005-05-11 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix bug due to wrong assertion.
2005-05-10 Patrick Pélissier <patrick.pelissier@gmail.com>
1. Change the prototype of mpfr_can_round to use const.
2. Change the prototype of mpfr_round_raw_2 (remove first argument since it is
useless).
3. Change round_raw_generic to use preprocessor if rather than compiler
to detect if flag == 1 or 0
4. mpfr_round_raw_xxx use const attribute too.
5. Remove mpfr_round_raw_3 since it is unused by MPFR.
6. Add first prototype of MPFR_FAST_COMPUTE_IF_SMALL.
Update.
Fix a bug in the product of 2limbs per 2 limbs.
Add new regression test.
Fix problem with mingw: if the configure detects MS-Windows, it skips the
tests which try to link against GMP within the configure, hoping the Makefile
works. The main problem is that we need libtool inside the configure to link
against GMP.
2005-05-09 Patrick Pélissier <patrick.pelissier@gmail.com>
Improve random tests.
2005-05-04 Patrick Pélissier <patrick.pelissier@gmail.com>
Replace initial estimation of K0 from sqrt (p/2)
to sqrt(p/16). It seems to be 30% faster for 5000 bits, and 5% faster
for 50 bits.
2005-05-04 Vincent Lefèvre <vincent@vinc17.net>
Reformatted the code.
2005-05-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed dummy init2 followed by set_prec
2005-05-04 Vincent Lefèvre <vincent@vinc17.net>
Added LIA-2 functions to implement.
2005-05-04 Patrick Pélissier <patrick.pelissier@gmail.com>
Add functions mpfr_sech, mpfr_coth and mpfr_csch.
init2 alloc what is needed, not 2 (more efficient).
2005-05-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improved const_euler and eint
removed dependency from input precision in several functions
fixed two bugs in pow (detection of exact cases)
2005-05-04 Patrick Pélissier <patrick.pelissier@gmail.com>
Update to reflect the current state.
2005-05-03 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix computing of `sup` to reflect what is described in algorithms.tex.
Tiny optimization of mpfr_atan.
On opteron with p=53, from 9231 / 18049.89 / 81758 to 9004 / 17522.76 / 78601.
2005-05-03 Vincent Lefèvre <vincent@vinc17.net>
Fixed a problem in test_small (already done in the 2.1 branch)
when long double = double.
2005-05-03 Patrick Pélissier <patrick.pelissier@gmail.com>
Improve detection again (use callback).
Improve previous change.
Add detection of function round, rint, ceil, floor and nearbyint at configure
time so that spe206 which defines itself as C99 compliant can build the
trint test.
Update (Move bugs to potential).
2005-05-03 Vincent Lefèvre <vincent@vinc17.net>
Fixed the mpfr_hypot bug, and re-enabled the test_large_small test.
2005-05-02 Vincent Lefèvre <vincent@vinc17.net>
Update.
Mention the mpfr_hypot bug.
Added a test showing a bug, enabled when TEST_LARGE_SMALL is defined
(to avoid a freeze with make check).
2005-05-02 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix bug.
Remove useless function f.
Fix a bug: the test to detect EVEN_rounding was wrong.
Update example of use of mpfr_subnormalize.
mpfr_cmp_str checks for NAN.
Add macro mpfr_cmp0 in mpfr-test.
Undo previous change for tgeneric.
troot uses tgeneric_ui instead.
2005-05-01 Patrick Pélissier <patrick.pelissier@gmail.com>
Add new functions in reuse test.
2005-04-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added efficiency item
added mpfr_eint
2005-04-29 Patrick Pélissier <patrick.pelissier@gmail.com>
Add something to do :)
2005-04-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added comment about efficiency of atan
2005-04-29 Vincent Lefèvre <vincent@vinc17.net>
The FAQ is now distributed with MPFR. Use update-faq to update it
from the MPFR web site.
2005-04-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
commented out argument reduction analysis for arctan (was wrong)
2005-04-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
wrong commit, put revision 1.37 back
wrong commit, put back revision 1.47
added error analysis for Geoff's argument reduction for arctan
2005-04-27 Vincent Lefèvre <vincent@vinc17.net>
Added a note about mpfr_set_d and mpfr_set_ld.
Define MPFR_VERSION_STRING using the update-version script
(works with any compiler).
2005-04-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added internal interface
added suggestion from Geoff
added MPFR_VERSION_STRING
2005-04-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added new item
improved expm1/log1p for small argument
improved to taken account of case |x| small (reported by Keith Briggs)
2005-04-25 Vincent Lefèvre <vincent@vinc17.net>
Added a missing "-" and replaced a few "-" by @minus{}.
Added a note for mpfr_cmp functions.
2005-04-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug with tiny number
2005-04-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed done item
2005-04-22 Patrick Pélissier <patrick.pelissier@gmail.com>
Add a macro for mpfr_const_catalan for internal use.
Fix typos.
2005-04-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed Root, updated eint*
added sec, csc, cot
proposal for exponential integral definition
added mpfr_root, removed from TODO
added mpfr_root
2005-04-21 Vincent Lefèvre <vincent@vinc17.net>
Update.
Added the ability to change the control word when compiling tset_ld
with -DWITH_FPU_CONTROL=1 and executing tset_ld with an argument
(not used in the automatical tests yet).
Added test_small (the same as in the 2.1 branch).
Updated a comment and reformatted the code.
2005-04-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added explanation
2005-04-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
adjusted initial guard digits for const_catalan to avoid failure for prec<=10^4
updated documentation and improved tests for mpfr_const_catalan
removed Catalan's constant (done)
added Catalan's constant
added efficiency items suggested by Geoff Bailey
fixed minor problem (wrong rounding mode for x=0, y<0), thanks Geoff Bailey
2005-04-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added one efficiency item
completely rewritten algorithm and error analysis for acosh
(did not match those in acosh.c)
algorithm and error bound did not match those of algorithm.tex!!!
added missing functions for Magma
changed semantics of mpfr_get_str for ndigits=0
2005-04-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added one item (efficiency)
2005-04-14 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix atan2 to fit C99 semantic.
Fix typos.
Add TODO.
Add documentation for mpfr_subnormalize.
Fix bugs.
2005-04-13 Patrick Pélissier <patrick.pelissier@gmail.com>
Apply Guillaume's patch about mpfr_div_ui.
Fix a bug in tsi_op (forget to clean memory).
Add function mpfr_subnormalize (To Test!!!!!)
Add TODO.
Fix wrong comment.
2005-04-07 Patrick Pélissier <patrick.pelissier@gmail.com>
Reenable tests.
Add documentation about mpfr_atan2.
Improve test suite by adding new random values.
Add random tests (tgeneric + random2).
2005-04-05 Vincent Lefèvre <vincent@vinc17.net>
Test with -ansi when making a release.
Typo.
2005-04-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
replaced // comments by /* ... */
2005-04-04 Patrick Pélissier <patrick.pelissier@gmail.com>
Add note about mpfr_neg
Add function mpfr_atan2
2005-03-31 Patrick Pélissier <patrick.pelissier@gmail.com>
Change to add future function mpfr_sqrhigh_n.
Add documentation for mpfr_erfc.
Add items.
Add function mpfr_erfc.
Add a note about auto-checking correctness of MPFR.
2005-03-30 Vincent Lefèvre <vincent@vinc17.net>
Added a testcase (the one added to the 2.1 branch).
2005-03-30 Patrick Pélissier <patrick.pelissier@gmail.com>
Use random2 instead of random.
2005-03-30 Vincent Lefèvre <vincent@vinc17.net>
Weaker conditions for return 0 in mpfr_round_p.
2005-03-30 Patrick Pélissier <patrick.pelissier@gmail.com>
Add generic test for functions which looks
inexact = MPFR_TOTO (rop, op, INTEGER, RND);
Add ceil(log2(size)) bits to initial precision to avoid
committing in error for huge operands.
2005-03-30 Vincent Lefèvre <vincent@vinc17.net>
Added a test (corresp. to the one added on 2005-03-25 in tpow_z.c).
2005-03-29 Vincent Lefèvre <vincent@vinc17.net>
Reformatted code (GNU style, untabify...).
2005-03-29 Patrick Pélissier <patrick.pelissier@gmail.com>
Tiny update.
Add group functions macros.
Replace test ('p <= i') by assertion ('p > i).
2005-03-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug in pow_ui (and pow_z): missing factor 2 in error bound
fixed bug in gamma of negative integer
2005-03-25 Patrick Pélissier <patrick.pelissier@gmail.com>
Add info.
Add new internal function for debugging reasons.
Forget to free x and y
Add failed regression test.
Improved version.
Undo previous change (I was wrong).
Add new regression test.
2005-03-24 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix wrong extimated precision.
It is log2(n+2) ulps so that log2(log2(n+2)) bits!
Add checking.
2005-03-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added new test
2005-03-23 Patrick Pélissier <patrick.pelissier@gmail.com>
Remove an signed integer trap overflow (GCC 4 + '-ftrapv').
Don't use Mulder at n+1 for MPFR_MUL_THRESHOLD+1
Reduce the threshold for AMD64.
2005-03-22 Patrick Pélissier <patrick.pelissier@gmail.com>
Initial version of Short Division.
Fix bug on HP-UX.
longlong's umul_ppmm seems to be buggy on such a system.
Don't use it under HP-UX.
2005-03-21 Patrick Pélissier <patrick.pelissier@gmail.com>
Add case where bn == 1 and bn == 2 by using longlong.h.
Modify tuneup to start with prec=2*BITS_PER_MP_LIMB+1
Fix bug in computing the estimated precision when you switch from N limbs to N+1 limbs.
Add regression tests.
2005-03-19 Vincent Lefèvre <vincent@vinc17.net>
Typo.
2005-03-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added one efficiency item
2005-03-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added two property-tests
2005-03-17 Vincent Lefèvre <vincent@vinc17.net>
Fixed a bug for mpfr_atanh(x) with 1 < |x| < 2 (found by Matt Reddick).
2005-03-14 Patrick Pélissier <patrick.pelissier@gmail.com>
Update
Improve test: compare between mpfr_round_p and mpfr_can_round.
Replace mpfr_can_round (..., GMP_RNDN, GMP_RNDZ, ...) to fast replacement
mpfr_round_p.
Remove a FIXME.
Add new internal function mpfr_round_p which is a fast replacement
to mpfr_can_round (x, y, GMP_RNDN, GMP_RNDZ, ...)
Improve an error message.
2005-03-10 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix bug: tmp may have changed in mulhigh code.
Restore it before calling mpn_mul.
2005-03-09 Patrick Pélissier <patrick.pelissier@gmail.com>
Better defaults threshold.
Handle case where Prec(a) ~ estimated prec of mulhigh.
Add one extra limb, and still uses mulhigh.
Fix bug: compute Mulder Threshold from n/2+1 instead of (n+1)/2
Forget ';;' in switch.
Add '-v' for tuneup.
Add assertion.
Improve checking
Add test. Short Mulder product failed for this.
Improve full assertion mode (Check mpfr_mul).
2005-03-08 Patrick Pélissier <patrick.pelissier@gmail.com>
Move GLIBC detection from mpfr-impl to logging.c
Add log info.
Improve default threshold.
Add Mulder Short product for mpfr_mul.
Update algorithm.tex to describe the estimated error.
Add an assert.
Cosmetic change.
Update default values.
Clean up macro namespace.
Cosmetics change.
2005-03-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
new function mpfr_get_f
2005-03-08 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix bug in case of reuse of variable (a,b,a) with Exp(b)=Exp(a)+Prec(b).
Move copy of mantissa after test.
2005-03-07 Patrick Pélissier <patrick.pelissier@gmail.com>
Add tune for mpfr_mulhigh
Add --with-mulhigh-size option at configure time.
2005-03-04 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix bug due to wrong estimation of (get_d (x) / LOG2).
TODO: Rexamine the algorithm of mpfr_exp_2!
Transform DEBUG message to LOG message.
Improve it.
Tune mpfr_exp_2 now!
2005-03-03 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix bugs.
Update it.
New code for mpfr_mul.
2005-03-02 Patrick Pélissier <patrick.pelissier@gmail.com>
Add new default threshold for different CPU.
Update for tune.
Fix bug in estimated error (See previous ChangeLog).
2005-02-24 Patrick Pélissier <patrick.pelissier@gmail.com>
Add tune program for MPFR.
Do make tune instead of make.
BUT you need to have configure MPFR with --with-gmp-build=...
(It uses internal libspeed.la of GMP).
Tuning is slow...
Add note.
2005-02-22 Patrick Pélissier <patrick.pelissier@gmail.com>
Tiny optimization
Update
Add logging.
Reduce InterObject dependency by moving mul_si, div_si and si_div
to the unique function they used.
Improve mul_ui by inlining the rounding.
2005-02-21 Patrick Pélissier <patrick.pelissier@gmail.com>
Improve test to 1.
2005-02-21 Vincent Lefèvre <vincent@vinc17.net>
Updated copyright lines.
Code reindented / reformatted.
Fixed a bug for u == 0 and x == +0 introduced in ui_sub.c 1.23,
when 0 was taken into account as a special case: the sign of the
result 0 was incorrect. -> Consider the case u == 0 first.
2005-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added generic tests in tpow
2005-02-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug (variable used twice for different things)
more changes for interface with NTL
2005-02-18 Patrick Pélissier <patrick.pelissier@gmail.com>
Likely a test.
Update
2005-02-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added interface for NTL
2005-02-16 Vincent Lefèvre <vincent@vinc17.net>
Update.
Suppress some spaces.
2005-02-16 Patrick Pélissier <patrick.pelissier@gmail.com>
Reenable underflow tests.
Update
2005-02-16 Vincent Lefèvre <vincent@vinc17.net>
Removed texinfo.tex, as it can be installed by autoreconf -i.
2005-02-16 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix LOADLIBES so that it works (it doesn't due to libtool change). But it
still needs to have s static version of MPFR.
2005-02-16 Vincent Lefèvre <vincent@vinc17.net>
autoreconf -> autoreconf -i
2005-02-16 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix wrong integer types.
2005-02-16 Vincent Lefèvre <vincent@vinc17.net>
Spelling mistakes & reformatted code.
2005-02-15 Vincent Lefèvre <vincent@vinc17.net>
Reformatted code.
2005-02-15 Patrick Pélissier <patrick.pelissier@gmail.com>
Improve initial prec.
Remove code.
Add special case if t=1.
mpfr_set doesn't produce an EVEN inexact flag.
Fix this.
USe of mpfr_nexttozero.
Fix bug: use x instead of xf in LOG.
Log input and output of functions.
Fix bug of overflow in tan.
Use of MPFR_LOG_FUNC.
Do not print final log message if there was no call.
Add ZivLoop for sign
2005-02-14 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix bug: during the display of a logged var, logging is turn off.
Add MPFR_LOG_FUNC
Use mpfr_cos as testing example.
Add ZivLoop controller for constantes.
Augment exponent range in the cache.
Remove it in const_pi.
Add generic ZivLoop controller.
2005-02-14 Laurent Fousse <laurent@komite.net>
Document mpfr_sum returned int value.
2005-02-14 Patrick Pélissier <patrick.pelissier@gmail.com>
Clean up code.
Add generic ZivLoop controller.
2005-02-14 Laurent Fousse <laurent@komite.net>
Consider return value's precision for rounding in mpfr_sum.
2005-02-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed garbage
2005-02-14 Patrick Pélissier <patrick.pelissier@gmail.com>
Clean up
Add ZivLoop
Remove malloc/free.
Use of MPFR_INT_CEIL_LOG2
Add ZivLoop controller.
Clean up code.
Fix bug with Exponent range.
Add ZivLoop controller.
Cleanup code.
2005-02-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
further efficiency improvement (avoid mpz_init/mpz_clear)
2005-02-14 Patrick Pélissier <patrick.pelissier@gmail.com>
Add ZivLoop controller.
Clean up code.
Optimize it by removing the # of used vars.
Add ZivLoop controller.
2005-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
new faster algorithm for log(2)
2005-02-11 Patrick Pélissier <patrick.pelissier@gmail.com>
Remove detection of C++ and Fortran due to libtool.
----
Note (VL, 2010-02-08): this removal by an always false test was working
with libtool 1.5.26, but doesn't work with libtool 2.2 to 2.2.6b (used
by the MPFR 2.4.{0,1,2} tarballs).
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=568520
Clean up configure (simpler).
Still a bug with CXXCPP to solve.
Clean up const_log2 code.
2005-02-10 Patrick Pélissier <patrick.pelissier@gmail.com>
Add log for other functions.
Add ZivLoop too.
Cleanup exp3.
2005-02-09 Patrick Pélissier <patrick.pelissier@gmail.com>
Update for ICC (disable shared since it doesn't work).
The previous fixs don't work. New one which works but is VERY ugly.
Fix again to avoid fail on laurent5...
Set CXXCPP to "g++ -E" to avoid detection (which may fail on some systems).
Reduce the tested compiler for C++ and Fortran to the minimum.
Update GMP detection to be much more libtool compatible.
As a consequence some tests using AC_RUN_IFELSE may fail due to ugly things
like LD_LIBRARY_PATH no set or wrong selection of libgmp.
So they just produce a warning, not a fatal error.
TODO: Check if we can avoid those problems...
2005-02-08 Patrick Pélissier <patrick.pelissier@gmail.com>
Remove automake and libtool files.
Use `automake --add-missing --copy -i` to generate them.
Add support for ansi2knr
Add support for Shared Library in MPFR (both Unix and Windows) by using libtool.
Improve configure (remove unused macros, make dist produce .zip and .bz2)
Update update-version to modify configure.in too.
Update NEWS.
2005-02-04 Vincent Lefèvre <vincent@vinc17.net>
Update.
2005-02-04 Patrick Pélissier <patrick.pelissier@gmail.com>
Add forgotten functions to reuse test.
Improve reuse tests (Include 1, -1, 1/2, 2, PI and PI/2 now).
Fix bug of atan(-1) (wrong sign).
2005-02-03 Patrick Pélissier <patrick.pelissier@gmail.com>
Remove unused option --disable-cache.
Add option "thread-safe" to configure.
Limited to use with GCC and ICC (using extension __thread).
Add description of added functions.
mpfr.h doesn't export anymore any globals.
It doesn't define MPFR_FLAGS too.
Change user interface for mpfr_const_pi, mpfr_const_log2 and
mpfr_const_euler. No more access to the cache itself.
Create dummy functions which call the cache, and rename old
functions to "_internal".
Internally, it doesn't change at all (You still call directly
the cache instead of the dummy function which calls the cache).
Add functions mpfr_set_overflow, mpfr_set_underflow, mpfr_set_erangeflag,
mpfr_set_inexflag, mpfr_set_nanflag
Rename internal functions mpfr_set_overflow in mpfr_overflow and
mpfr_set_underflow in mpfr_underflow so that we can add new functions
mpfr_set_underflow and mpfr_set_overflow (which set the global flags).
Add support for logging.
Add support for ZivLoop.
Improve efficiency if prec(op) >> prec(rop), and rop ~= 0
Fix wrong place for MPFR_LOG_BEGIN.
Rename MPFR_LOG_BADCASE in MPFR_LOG_ZIV
Reduce the size of some lines (more than 80 chars).
2005-02-02 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix again. My previous fix was incorrect.
Fix wrong order of include system files.
(printf.h is not available everywhere).
2005-02-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
inexact flag was inexact :-)
2005-02-02 Patrick Pélissier <patrick.pelissier@gmail.com>
Move mpfr_nexttozero and mpfr_nexttoinf from static to mpfr-impl.
Use them in sub1 and sin.
Add forgotten logging file.
Add description of new macros in README.dev
Add support for ZivLoop controller and logging.
Add experimental logging feature.
Add ZivLoop controller.
Forget that mpf doesn't have mpf_free_str.
Fix this.
Fix bug of sub1 if dest=src2 and src1 >> src2
=> Fix problem of mpfr_sin
2005-02-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added two tests
2005-02-01 Patrick Pélissier <patrick.pelissier@gmail.com>
Now MPFR tries to get GMP's CC and CFLAGS from its build directory.
Add AC_COPYRIGHT
Clean up AC_ARG_ENABLE handling
Add `--enable-logging` option.
2005-01-31 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added item
2005-01-31 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix a wrong assertion when double == long double.
Add loop counter
Check if the result is 0 (Due to new algorithm, it may be 0)
and in that case, increase a lot the precision.
2005-01-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed algorithm for mpfr_sin (to get inexact flag)
2005-01-29 Vincent Lefèvre <vincent@vinc17.net>
Fixed a sign bug in mpfr_exp (found by Mark J Watkins).
2005-01-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
solved efficiency problem in mpfr_sin_sign for x near Pi
2005-01-28 Vincent Lefèvre <vincent@vinc17.net>
Removed tests/tdump.c (was no longer used and mpfr_dump is already
tested in toutimpl.c).
Updated copyright line.
2005-01-28 Patrick Pélissier <patrick.pelissier@gmail.com>
Clean up code (due to mix with Paul changes).
Improve inexact code since sin & cos can't be exact if x != 0
2005-01-28 Vincent Lefèvre <vincent@vinc17.net>
Removed a useless test in macro MPFR_UNSIGNED_MINUS_MODULO.
2005-01-28 Patrick Pélissier <patrick.pelissier@gmail.com>
Much faster worst case (ie result near 0 or 1).
2005-01-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
speed-up special case where approximation is 1 or -1
2005-01-28 Vincent Lefèvre <vincent@vinc17.net>
Updated comments about the rounding modes.
2005-01-28 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix bug and optimize code.
FIx a warning (Wrong proto between declaration and implementation :
forget some const).
2005-01-28 Vincent Lefèvre <vincent@vinc17.net>
Updated copyright line.
Updated copyright lines.
2005-01-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed efficiency problem in case of cos(Pi)
2005-01-28 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix bug if dest==src.
Transform some MPFR_ASSERTN to MPFR_ASSERTD.
2005-01-27 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix a buffer overflow.
New version of mpfr_set_ld and mpfr_get_ld for IEEE Extended Little Endian.
(Due to problem on x86 with extended precision).
2005-01-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
partially fixed memory leak
test for huge cancellation was misplaced
fixed memory leak
fixed inefficiency problem for x near from Pi
casts to allow compilation with g++
added missing cast
added missing casts
2005-01-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug (overlap in mpn_divrem)
2005-01-24 Vincent Lefèvre <vincent@vinc17.net>
Removed tests/Makefile.in from CVS.
2005-01-24 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix bug reported by Eric Buchlin by using new function
mpfr_pow_z.
Add new function mpfr_pow_z and its test file.
Fix overflows problems.
Clean up overflow handling.
Maybe some bugs remain...
2005-01-24 Vincent Lefèvre <vincent@vinc17.net>
Update.
2005-01-24 Patrick Pélissier <patrick.pelissier@gmail.com>
Add an explicit reference to mpfr_dump so that
you can use this function inside the tests with GDB, even if
you don't use it in the tests.
2005-01-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added check before mpz_get_si() call
2005-01-24 Vincent Lefèvre <vincent@vinc17.net>
Update.
Corrections on the typography.
Corrected English usage.
Typos.
2005-01-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added LOADLIBES=...
2005-01-21 Vincent Lefèvre <vincent@vinc17.net>
Updated Copyright line.
2005-01-20 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix again this previous patch!
2005-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed problems in get_str for huge exponent
2005-01-20 Patrick Pélissier <patrick.pelissier@gmail.com>
Update longlong from GMP 4.1.4 (problem with opteron).
2005-01-18 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix bug in case n==0 or n==1 (Reported and fixed by Laurent Fousse).
2005-01-14 Patrick Pélissier <patrick.pelissier@gmail.com>
Add comments
Fix bug in my patch (Need tests).
Optimize mpfr_atan_aux by removing all power of 2 in the sum to
reduce the size of the multiplication, normalize the input to extract
as many zeros as possible and add a special case if the input is 1
(after normalisation). But it doesn't optimize too much...
I need to invertigate a few more too understand what is still costly.
It seems that mpz_mul is the most called function.
Improve and fix tanh for big floats.
Fix bug in some corner case (Just hope it doesn't add new bugs).
It should be much faster in these cases too.
Remove warning
Tiny update
Fix bug (Forget a debug line).
2005-01-13 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix overflow bug
Optimize code
Fix bug in mpn_sub_nc in case the compiler optimize too much.
2005-01-12 Patrick Pélissier <patrick.pelissier@gmail.com>
Add forgotten 2005 copyright line.
Fix problem of `mpn_sub_nc' which may or may not be defined in libgmp.a
(Add a test in the configure and a new macro MPFR_HAVE_MPN_SUB_NC)
Add MPFR_LOG2_BIT_PER_MP_LIMB macro
Massive optimization of mpfr_atan (20x faster than 2.1.0 at 53 bits!)
Minor optimization of mpfr_acos
2005-01-11 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix typo
Reduce size of code
Optimize a few too.
Forget 2005 !
Improve and fix detection of NAN and GCC bug.
2005-01-04 Patrick Pélissier <patrick.pelissier@gmail.com>
new version (completely rewritten) by Paul Zimmermann.
Fix forgotten '2005' Line.
Fix wrong inexact value (regression).
FIXME: It seems that adding MPFR_GET_EXP (xp) bits is too much
(since previously it always add 0, but the results were quite
always exact - this bug was only discovered under rare case).
2005-01-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added item (mpfr_printf)
2005-01-04 Patrick Pélissier <patrick.pelissier@gmail.com>
Optimize mpfr_exp2 by inlining some code, and by avoiding using
mpz_sizeinbase.
Remove unused code.
Remove _MPFR_PROTO for static functions.
Other cosmetic change.
Remove _MPFR_PROTO for static functions.
Remove unused code.
Optimize mpfr_get_d.
Add a new configuration to check before releasing MPFR.
Fix problem of tab with ncurses.
Likely some tests
Fix bug if not gmp-impl.h (mpn_sub_nc is internal).
Move MPFR_SET_EXP after checking the exponent range.
Minor change in the way to return the ternary value.
2005-01-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed tab[] into *tab (and removed 'tab' in mpfr.h)
2004-12-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
new version (completely rewritten)
improved coverage (and fixed bug)
2004-12-21 Patrick Pélissier <patrick.pelissier@gmail.com>
Fixed errors reported by Nelson H. F. Beebe
(forget to include sys/fpu.h if defined and math.h if std=c99).
2004-12-20 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix wrong integer type and a test.
Add some assertion.
Unlikely one test.
Fix wrong integer type
Reindent the code.
2004-12-17 Patrick Pélissier <patrick.pelissier@gmail.com>
Optimize mpfr_tan
Optimize the computing of the sign of sinus if GET_EXP(x) < 0
Optimize mpfr_cos.
From 3363 / 21663.99 / 79727 to 3139 / 18920.58 / 69624 (opteron).
Fix precision used to test long double.
Now it is sizeof(long_double)*CHAR_BIT instead of fixed 113.
FIx wrong integer types
Add an assertion.
Likely / Unlikely some code.
Fix problem with long double with ICC (Wrong x86 processor flag).
2004-12-16 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix wrong integer types.
Fix bug.
Optimize mpfr_acos by choosing a better initial precision.
Optimize mpfr_asin by improving the choice of the initial precision.
Optimize mpfr_atan.
2004-12-15 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix problem with GCC 4.0 20041212.
Remove thread attribute until I found a good way to use it.
Test
Add 'const' attribute to table.
Remove unused file.
New way of detecting GMP libraray, which should be more portable.
2004-12-14 Patrick Pélissier <patrick.pelissier@gmail.com>
Remove useless assembly code.
Add "MPFR_USE_NO_MACRO" user macro: it allows the user to link
directly with MPFR functions rather than using Macros to access
them. It doesn't define MPFR variable inside mpfr.h too.
Fix set.c and cmp.c in consequences.
Fix mpf2mpfr.h to use mpfr_get_default_rounding_mode () if needed.
2004-12-13 Patrick Pélissier <patrick.pelissier@gmail.com>
Improved prototype.
Fix bug of overflow (I hope).
Update mpfr_set_q overflow problem.
Fix wrong integer types.
2004-12-10 Patrick Pélissier <patrick.pelissier@gmail.com>
Optimize by increasing with BITS_PER_MP_LIMB instead of log2(prec)
Clean up code (Fix integer types + rewrite some code).
Optimize the code by reducing the number of used variables inside the loop.
Replace mpfr_neg to MPFR_CHANGE_SIGN.
Cosmetic changes.
Clean the code.
Avoid mixing integer types.
Fix bug of overflow if Pi is in the range but not Pi/2.
Clean up the code (Removing useless variables and avoid mixing wrong integer types).
Optimize the code by improving memory allocation scheme and by incrementating by
BITS_PER_MP_LIMB in case of an error instead of MPFR_INT_CEIL_LOG2 (prec).
Fix an overflow bug for X=+/-1 (If PI is inside the exponent range, but not PI/2).
2004-12-09 Patrick Pélissier <patrick.pelissier@gmail.com>
Simplify MPFR_SIGN by removing unnecessary ( ).
Add support for new attribute sentinel in incoming GCC 4.0
Optimize initial precision in case of EXP(x) < 0.
Optimize mpfr_set4.
Inline rounding in mpfr_set4 and mpfr_cache
mpfr_set4 doesn't return MPFR_EVEN_INEX (It was undocumented before).
Fix problems with tests (Avoid mixing MPFR_EVEN_INEX and 1).
Add MPFR_RNDRAW_EVEN for rounding with MPFR_EVEN_INEX inexact support
2004-12-08 Patrick Pélissier <patrick.pelissier@gmail.com>
Optimize mpfr_mul by inlining and rewriting the rounding.
It seems that GCC option `-frename-registers` for mpfr_mul / Athlon XP
improves its performance (But it decreases it on Pentium4)...
2004-12-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
first try to implement Mulders' algorithm
2004-11-29 Patrick Pélissier <patrick.pelissier@gmail.com>
Update TODO.
2004-11-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added new tests for corner cases
added algo for pi
2004-11-25 Patrick Pélissier <patrick.pelissier@gmail.com>
Change initial term if exp(a)<0.
Simplify the inner loop.
Change initial precision if EXP(op) < 0.
2004-11-23 Patrick Pélissier <patrick.pelissier@gmail.com>
Optimize code and rewrite the rounding part.
FIXME: It seems that the previous rounding code was buggy. Still I am not sure.
Improve tests.
2004-11-19 Patrick Pélissier <patrick.pelissier@gmail.com>
Improve the initial value of prec: 10% improvement (?) on average.
Improve coverage test.
Fix bug for mpfr_ui_pow_ui (Wrong inexact flag).
Improve coverage tests.
Fix typos in INSTALL.
Sort README.dev, and add a new section about How to write a MPFR function.
Add a link to README.dev in mpfr-impl.h.
Fix a bug on some compilators:
First MPFR_SAVE_EXPO_DECL, then TMP_DECL.
2004-11-18 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix an overflow bug.
Fix bug with inexact flag.
FIXME: Maybe still a bug with inexact flag if overflow in mpfr_mul_2exp ?
Remove mpfr_save_emin_emax and mpfr_restore_emin_emax
from MPFR library since they are useless.
Forget to remove rndraw.c test.
Replace use of mpfr_save_emin_emax () / mpfr_restore_emin_emax()
by MPFR_SAVE_EXPO macros (DECL, MARK and FREE) which are faster
and thread safe.
Enable fast computing.
2004-11-18 Vincent Lefèvre <vincent@vinc17.net>
Fix: GMP -> MPFR Copying Conditions (noted by Patrick).
2004-11-18 Patrick Pélissier <patrick.pelissier@gmail.com>
Reorder the file and put sections to make it cleaner and more readable.
Reduce number of used variables.
Optimize code and clean it.
2004-11-18 Vincent Lefèvre <vincent@vinc17.net>
In HTML, suppress the non-existing link to GMP.
2004-11-18 Patrick Pélissier <patrick.pelissier@gmail.com>
Add a prototype of own TMP_ALLOC. Don't know if it is a good idea.
To enable it, just build MPFR with MPFR_USE_OWN_TMP_ALLOC.
2004-11-17 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix bug with TMP_MARK.
2004-11-16 Patrick Pélissier <patrick.pelissier@gmail.com>
Optimize the code:
+ Special case for n == 2
+ The first squaring is done using the original input.
Add new assertion to check.
Likely / Unlikely some tests.
2004-11-15 Patrick Pélissier <patrick.pelissier@gmail.com>
Add unused code (Still needs a proof).
Add macro version for small functions:
mpfr_get_prec, mpfr_get_exp, mpfr_get_default_rounding_mode,
mpfr_get_default_prec and mpfr_set_ui
Refix another bug (The same).
Fix a bug (Use __gmpfr_ceil_log2 instead of MPFR_INT_CEIL_LOG2).
2004-11-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added algorithm for mpfr_sqrt
improved algorithm for mpfr_div
use MPFR_SET_EXP/MPFR_GET_EXP instead of MPFR_EXP(r)++
2004-11-12 Vincent Lefèvre <vincent@vinc17.net>
Bug fix: delayed all the initializations after the singular test.
2004-11-11 Vincent Lefèvre <vincent@vinc17.net>
Untabified the source.
The test MPFR_GET_EXP(u) != MPFR_EMAX_MAX is no longer necessary
since we decided to lower MPFR_EMAX_MAX to avoid such tests.
2004-11-10 Patrick Pélissier <patrick.pelissier@gmail.com>
Remove use of CNST_LIMB and TMP_ALLOC_LIMB which are GMP internal.
Add MPFR_LIMB_ZERO.
2004-11-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
new simpler and faster code
2004-11-10 Patrick Pélissier <patrick.pelissier@gmail.com>
Replace __gmpfr_ceil_log2 by MPFR_INT_CEIL_LOG2 when possible.
Add __extension__ to avoid warning useless in GCC.
2004-11-03 Vincent Lefèvre <vincent@vinc17.net>
Update.
2004-11-03 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix wrong Visual C++ code.
2004-11-02 Vincent Lefèvre <vincent@vinc17.net>
Code checking for GMP library wasn't working (always returning "yes"?).
2004-10-27 Vincent Lefèvre <vincent@vinc17.net>
Updated copyright line.
Added a bug and updated copyright line.
Update.
Removed the definitions of DBL_POS_INF/DBL_NEG_INF/DBL_NAN for
Visual C++ as they were incorrect. Modified DOUBLE_ISINF(x) so
that infinities are no longer used (this should fix a part of
the problem for Visual C++). If IEEE 754 is not supported, one
should probably use the standard INFINITY macro instead of
(1.0/0.0), since (1.0/0.0) is specific to IEEE 754.
Applied patch by Steve M. Robbins for non-IRIX MIPS systems
(originally for MPFR 2.0.3).
2004-10-26 Vincent Lefèvre <vincent@vinc17.net>
Reformatted the code.
Replaced mpfr_set_emin/emax by set_emin/emax in tests to check
the return value; defined set_emin/emax in "tests/tests.c".
Fix: added missing #include <string.h> in "tests/tests.c".
Removed variable names in prototypes in "mpfr-test.h".
2004-10-22 Vincent Lefèvre <vincent@vinc17.net>
Reformatted the code -> GNU style.
Update.
2004-10-22 Patrick Pélissier <patrick.pelissier@gmail.com>
Declaration of "tests_rand_start" and "tests_rand_end" with the same storage class specifier
in tests.c (static missing line 65 and 109).
2004-10-21 Vincent Lefèvre <vincent@vinc17.net>
Bug fixed: cast to unsigned char instead of int for isspace (no,
these are not "psycho" systems, just systems with signed chars).
Untabified the source.
2004-10-20 Patrick Pélissier <patrick.pelissier@gmail.com>
Improve ICC CFLAGS by removins meaningless warnings.
Remove some warnings on some "psycho" systems.
Update the chapter "Make a release".
Fix bug when you build MPFR outside source directory.
Add function src_fopen to open a file in the source directory, which
may be different from the current directory.
Fix a typo.
2004-10-19 Vincent Lefèvre <vincent@vinc17.net>
Another correction (English).
Minor correction.
2004-10-19 Patrick Pélissier <patrick.pelissier@gmail.com>
Update NEWS to reflect the change in mpfr_set_str.
Update mpfr_set_str to be much more like strtofr.
Update the documentation to reflect the changes.
2004-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed contributors section
2004-10-19 Patrick Pélissier <patrick.pelissier@gmail.com>
Add a line about binary compatibility.
2004-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed "contributors" section
changed rights (remove executable permission)
2004-10-18 Vincent Lefèvre <vincent@vinc17.net>
Misc corrections:
+ spelling mistakes
+ consistency: in direction @var{rnd} -> in the direction @var{rnd}
+ @code{NULL} pointer -> null pointer (as in the C standard)
+ in the example for mpfr_inits2 / mpfr_clears: NULL -> (void *) 0
as NULL isn't necessarily a pointer.
2004-10-18 Patrick Pélissier <patrick.pelissier@gmail.com>
Update
Change "unsigned int" to "int" for base in proto of strtofr.
Change set_str to use strtofr (Fix a bug too).
Limit base to 36 in strtofr (since get_str is limited to 36).
Update documentation to reflect the changes.
mpfr_get_d1 is moved to section internal in the documentation.
Update the tests.
Hard code NAN, +INF and -INF values for MVC.
Fix problem on systems where "/dev/null" doesn't exist.
2004-10-16 Vincent Lefèvre <vincent@vinc17.net>
Misc corrections.
2004-10-15 Vincent Lefèvre <vincent@vinc17.net>
Updated the section "To make a release".
Updated the version on the trunk.
Update.
Update for 2.1.0.
2004-10-13 Vincent Lefèvre <vincent@vinc17.net>
Added a comment about autoreconf and a bug in Debian (now fixed).
2004-10-12 Patrick Pélissier <patrick.pelissier@gmail.com>
Add a note about Windows 64.
2004-10-11 Patrick Pélissier <patrick.pelissier@gmail.com>
Update documentation.
Improve Windows installation.
Add a line about "near" and "far".
2004-10-07 Patrick Pélissier <patrick.pelissier@gmail.com>
Add support for ".lib" since it seems to work.
Display GMP version inside the configure.
2004-10-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added one new test
2004-10-04 Vincent Lefèvre <vincent@vinc17.net>
Added worst cases.
2004-10-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added new tests (worst-case)
2004-10-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added new worst-cases (directed rounding)
added new function to implement (dilog)
2004-09-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug in get_str_aux when one extra digit
2004-09-30 Vincent Lefèvre <vincent@vinc17.net>
Added functions mpfr_rint_round, mpfr_rint_trunc, mpfr_rint_ceil,
mpfr_rint_floor.
2004-09-30 Patrick Pélissier <patrick.pelissier@gmail.com>
Add new test (One failed).
2004-09-30 Vincent Lefèvre <vincent@vinc17.net>
The cast to uintmax_t wasn't really useful, so I removed it.
Added a comment.
The real fix for sizeof(intmax_t) == sizeof(mp_limb_t).
2004-09-30 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix a bug if sizeof(intmax_t) == sizeof(mp_limb_t)
2004-09-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added worst-case
2004-09-29 Patrick Pélissier <patrick.pelissier@gmail.com>
cmp(x,y) if x=NAN or y=NAN returns 0 and erange flag.
Update documentation and NEWS to reflect new functions
and functionality.
Improve assertion.
Add mpfr_clear_erangeflag and mpfr_erangeflag_p.
Add test for theses two functions.
mpfr_get_[s/u][i/j] have a deterministic behavior in case of OVERFLOW.
(Return the MINIMUM or the MAXIMUM in the current type, and set
ERANGE_flag).
Add mpfr_uintmax_p and mpfr_intmax_p.
Update INSTALL about C++
Update TODO and VERSION.
Move mpfr_inits from mpfr-impl to mpfr.h.
Add doc too.
2004-09-28 Patrick Pélissier <patrick.pelissier@gmail.com>
Reindent the sources (again).
Fix how to detect overflow so that it can be build with GCC -ftrapv
option without any bugs (In the previous code, the overflow was
detected afterwards, whereas, now, it is detected before).
Fix also another real problem of overflow (Addition of two signed integers).
Rename this variable again.
Replace variable 'near' to 'the_real_near' since MSVC incorrectly
recognize "far" and "near" as obsolete keywords (100% incorrect, and
clearly MSVC fault but it doesn't cost many things to change the name).
2004-09-27 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix typo in the documentation about get_ functions.
Retab the sources.
2004-09-27 Vincent Lefèvre <vincent@vinc17.net>
Added mpfr_get_uj and mpfr_get_sj in the changes 2.0.3 -> 2.1.0.
Added an item about the future MPFR_FLAGS_ERANGE flag.
New functions mpfr_get_sj and mpfr_get_uj, with tests.
2004-09-27 Patrick Pélissier <patrick.pelissier@gmail.com>
Remove MPFR_NEED_LONGLONG_H macro.
2004-09-26 Vincent Lefèvre <vincent@vinc17.net>
Added a cast to avoid an integer overflow.
2004-09-24 Vincent Lefèvre <vincent@vinc17.net>
Fixed integer overflow.
Fixed bugs (like those in mpfr_get_ui).
The standard autoreconf script should now be used instead of prepare.
2004-09-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
forgot to check for 0
now use mpfr_rint()
2004-09-24 Patrick Pélissier <patrick.pelissier@gmail.com>
Update doc of mpfr_get_str (Minimum space is 7).
2004-09-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed double-rounding bug in get_ui
2004-09-23 Patrick Pélissier <patrick.pelissier@gmail.com>
Prevent from multiple inclusion.
mpf_init inits to 0 rather than NAN.
Fix some tiny problems.
2004-09-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added item on rounding to odd
2004-09-21 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix a bug in FreeBsd 5.20 / Alpha / Gcc 3.3.3.
Not a MPFR bug, but add some code to avoid it.
Reference: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=72024
Add a new test and clarify a comment.
Update Assertion for pow2.
2004-09-20 Patrick Pélissier <patrick.pelissier@gmail.com>
Update NEWS.
Update TODO due to new function mpfr_strtofr
Add ICC detection && support.
Remove some potential warnings in the test files.
Add mpfr_strtofr function.
Add mpfr_strtofr test file.
Add mpfr_strtofr documentation.
Improve GMP.h vs libgmp.a version checking.
2004-09-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added one entry (new function 1/sqrt(x))
2004-09-17 Patrick Pélissier <patrick.pelissier@gmail.com>
Use LIBS instead of LDADD for libraries (GMP).
Min GMP version is 4.1.0 now.
2004-09-16 Patrick Pélissier <patrick.pelissier@gmail.com>
Add a check if both gmp.h and libgmp.a have the same version.
Fix a typo.
2004-09-15 Patrick Pélissier <patrick.pelissier@gmail.com>
Add a forgotten regression test "1.2.3"
2004-09-15 Vincent Lefèvre <vincent@vinc17.net>
Update from the autotools-dev Debian package.
Update.
2004-09-14 Patrick Pélissier <patrick.pelissier@gmail.com>
Add 2 new macros for handling correctly overflow.
2004-09-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug (several '.' allowed in mantissa)
2004-09-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added notes for Windows
2004-09-02 Patrick Pélissier <patrick.pelissier@gmail.com>
Add a line about Dynamic Version of MPFR.
2004-09-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added warnings about init functions (mpf wrt mpfr)
2004-08-31 Patrick Pélissier <patrick.pelissier@gmail.com>
Update documentations.
Rename mpz_set_fr to mpfr_get_z.
Provide a conditionnal macro for mpz_set_fr.
Add doc for mpfr_sqr.
Fix month.
2004-08-26 Patrick Pélissier <patrick.pelissier@gmail.com>
Add a new test to check overflow.
2004-08-24 Patrick Pélissier <patrick.pelissier@gmail.com>
Try to retype correctly the functions (replace int by the correct type).
Still some works to do.
2004-08-23 Patrick Pélissier <patrick.pelissier@gmail.com>
Add description of what does MPFR_INT_CEIL_LOG2.
Move __gmpfr_isqrt and __gmpfr_cuberoot to another file.
Clean up the code of mpfr_exp_2: remove DEBUG condition to use TRACE, ASSERT and DUMP.
Use MPFR_INT_CEIL_LOG2 instead of __gmpfr_ceil_log2.
Improve a comment.
Add MPFR_INT_CEIL_LOG2 macro and __gmpfr_int_ceil_log2 function
(don't use function but macro).
Fix 2 typos.
2004-08-19 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix a bug on 64-bits introduced due to huger MPFR_EMAX_MAX.
Add new functions: mpfr_get_emin_min, mpfr_get_emax_max, mpfr_get_emin_max and
mpfr_get_emax_min.
Add documentation and explanation about potential portability problem when
you mpfr_set_emin and mpfr_set_emax.
2004-07-28 Vincent Lefèvre <vincent@vinc17.net>
Added mpfr-longlong.h to libmpfr_a_SOURCES so that it is distributed
with make dist.
Added mpfr-gmp.h to libmpfr_a_SOURCES so that it is distributed
with make dist.
2004-07-26 Patrick Pélissier <patrick.pelissier@gmail.com>
Add a new section.
2004-07-20 Patrick Pélissier <patrick.pelissier@gmail.com>
Add function mpfr_sqr (TODO: Make doc)
2004-07-19 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix an unsigned/signed comparison.
Improve the emulation of mpn_sqr_n and fix some typos.
2004-07-16 Patrick Pélissier <patrick.pelissier@gmail.com>
Remove unused item "rnd_mode" in cache struct.
Renamme mpfr_version to mpfr_get_version to be more GMP compatible.
Add macro mpfr_version.
Likely some tests.
2004-07-15 Patrick Pélissier <patrick.pelissier@gmail.com>
Add a speciliation for set_si for GCC.
2004-07-09 Patrick Pélissier <patrick.pelissier@gmail.com>
Try to optimize a few agm by rewriting a few the loop.
Likely / Unlikely some tests using gcov.
2004-07-06 Patrick Pélissier <patrick.pelissier@gmail.com>
Remove some unused code.
Add MPFR_LMIB_PER_DOUBLE
Add MPFR_DUMP
Add MPFR_TRACE
Likely some tests.
Used static precision for the array of limb for double.
Likely some tests / Other minor optimisations.
Minor modifications.
Unlikely a test so that it is faster when you call theses functions
with the same dest and source which is the common case in MPFR.
Likely a test to optimize when dest and src are the same
(which is very likely inside MPFR).
Likely a test (since cache should always work fine).
2004-06-28 Patrick Pélissier <patrick.pelissier@gmail.com>
Add some likely, and use a static table instead of a dynamic one.
2004-06-16 Patrick Pélissier <patrick.pelissier@gmail.com>
Unlikely some tests.
2004-06-10 Patrick Pélissier <patrick.pelissier@gmail.com>
Likely / Unlikely the code.
Respace some macro.
Retab some lines.
Optimize a bit.
Fix an overflow bug.
2004-06-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug in mpfr_exp_3 (wrong assert)
2004-05-27 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix typos.
Update doc.
2004-05-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed problem for x near from Pi/2 (the internal precision should take
into account the cancellation)
2004-05-18 Patrick Pélissier <patrick.pelissier@gmail.com>
Improve tests for sin.
2004-05-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
mpfr_sin_sign() should use at least MPFR_GET_EXP() bits
2004-05-17 Patrick Pélissier <patrick.pelissier@gmail.com>
Remove an item.
2004-05-12 Patrick Pélissier <patrick.pelissier@gmail.com>
Add a potential test (Too slow).
Simplify the code.
2004-05-11 Patrick Pélissier <patrick.pelissier@gmail.com>
Remove a C++ comment.
2004-05-10 Patrick Pélissier <patrick.pelissier@gmail.com>
Remove a forgotten "assertd" which isn't useful anymore.
2004-05-07 Patrick Pélissier <patrick.pelissier@gmail.com>
Optimize cos.
2004-05-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improved initial value of working precision (did not take into account
2K lost bits for large arguments)
2004-05-06 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix overflow and add corresponding tests.
Fix a bug in a formula.
Optimize it a bit.
Fix overflow problems.
Fix overflow bug.
2004-05-05 Patrick Pélissier <patrick.pelissier@gmail.com>
Remove the double vars. (Use fixed instead).
Add a note about tanh.
Fix a bug in cas of overflow in tanh.
Optimize a few by reducing the # of used vars.
Fix critical bugs due to different kind of overflow in cosh.
Add MPFR_TMP_INIT_ABS macro.
Optimize cosh a few by removing an unused intermedary var.
Fix a critical bug in case of overflow.
2004-05-04 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix a critical bug in cos in case you have set the float range for the exponents.
Optimize a few cos.
Optimize the way of computing initial precision.
Add a test to check an overflow in const_pi (called by log in case of emulation of the float type).
Move to ASSERT mode some code.
Push/Pop emin/emax so that an overflow can't occur in mpfr_set_z(x,pi,r)
Add test too.
Add some UNLIKELY to the while.
Add some UNLIKELY to the tests.
Fix an overflow bug in add1sp.
2004-04-29 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix a typo in AC_MY_LIBS.
2004-04-28 Patrick Pélissier <patrick.pelissier@gmail.com>
Add mpfr_cmp as a real function, not only a macro.
Add mpfr_set and mpfr_abs as real functions.
2004-04-27 Patrick Pélissier <patrick.pelissier@gmail.com>
When using GCC, optimize certain common comparisons.
2004-04-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added one item
2004-04-27 Patrick Pélissier <patrick.pelissier@gmail.com>
Minor Optimizations.
Fix a bug (Use nextbeloz instead of sub_one_ulp).
2004-04-21 Patrick Pélissier <patrick.pelissier@gmail.com>
Add option in configure: --disable-cache
to disable the use of the cache for the const.
Fix a typo.
Add preliminary generic code to handle cached const.
Move const_pi, const_log2 to use this generic cache,
which fix bugs of the previous implementation.
const_euler is now cached too.
Fix a bug (If x = Nan, the new new precision wasn't set).
Fix a typo bug.
2004-04-20 Patrick Pélissier <patrick.pelissier@gmail.com>
Add new test about the cache: new bug to fix.
Add forgotten file for mpfr_zero_p.
Add mpfr_zero_p.
Add macros for mpfr_inf_p, mpfr_nan_p and mpfr_zero_p.
Add macro for mpfr_sgn.
Update doc.
Add new tests.
Fix a bug in a proto.
Fix a bug when both op are < 0 (It seems it was my fault).
Add a test to check it.
2004-04-09 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix a bug (Remove useless function).
2004-04-08 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix another bug (Maybe the last?).
Fix a tiny bug.
Update memory allocations scheme without gmp-impl.h.
Now the semantic of the memory allocation scheme is the same
with and without gmp-impl, as it should be.
2004-04-07 Patrick Pélissier <patrick.pelissier@gmail.com>
For add/sub_type functions where type is a type without signed zeros,
specify the expected result when both operands are 0.
Modify a few the allocation scheme without gmp-impl.h
Add pseudo-constants __MPFR_EXP_NAN, __MPFR_EXP_ZERO and __MPFR_EXP_INF
for future (?) inlining of some functions.
2004-04-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed problem when overflow in destination exponent happens
2004-04-07 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix a bug in case a mpz_t == 0 (mpz_sizeinbase(0Z,2)==0 and MPFR_PREC_MIN=2).
Fix a bug in case of pow(2E1000000,-10);
2004-04-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed problem (cmpabs doesn't work for x=0)
2004-03-26 Patrick Pélissier <patrick.pelissier@gmail.com>
Change from MP_LIMB_T_ONE to MPFR_LIMB_ONE and/or MPFR_LIMB_MASK.
Improve comments.
Fix a bug.
Move detecting macros (__MPFR_GCC, __MPFR_STDC, __MPFR_GLIBC and __MPFR_GMP) from mpfr to mpfr-impl
2004-03-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed blank
2004-03-22 Vincent Lefèvre <vincent@vinc17.net>
Test write access to CVS.
2004-03-18 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix a bug in a string.
2004-03-17 Patrick Pélissier <patrick.pelissier@gmail.com>
Add documentation of 'j' functions.
Fix (?) definition of MPFR_PREC_MAX.
Change the order of the tests.
Rename mpfr_exp3 in mpfr_exp_3.
Update THRESHOLD for mpfr_exp.
Add MPFR_EXP_THRESHOLD.
2004-03-16 Patrick Pélissier <patrick.pelissier@gmail.com>
Add new option "--with-gmp-build="
Update INSTALL
Fix a bug (Forget to cast to mp_exp_t).
Update comment
Add mpz_set_fr function and its test.
2004-03-15 Patrick Pélissier <patrick.pelissier@gmail.com>
Add new functions:
mpfr_set_sj_2exp, mpfr_set_sj
mpfr_set_uj_2exp, mpfr_set_uj
Fix a compiler bug (limb !=0 instead of limb).
Fix a cast problem on some systems (sizeof(mp_limb_t) > sizeof(unsigned long)).
2004-03-12 Patrick Pélissier <patrick.pelissier@gmail.com>
Remove use of abort (They can create core dump on some systems).
Fix bug of inexact flag for acos(0).
Update.
2004-03-11 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix bug about forgotten MPFR_INVERT_RND.
Add test too.
Add doc about HAVE_STDINT_H
2004-03-10 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix doc about MPFR_DECL_INIT.
Fix the declaration of 'MPFR_DECL_INIT'
Add 'MPFR_DECL_INIT' macro.
Rename NEAREST_AWAY in GMP_RNDNA.
Add the description of mpfr_set_ui_2exp and mpfr_set_si_2exp.
2004-03-09 Patrick Pélissier <patrick.pelissier@gmail.com>
Add mpfr_set_si_2exp and mpfr_set_ui_2exp and their tests.
Add doc about mpfr_cmp_f function
Add mpfr_cmp_f and its test.
Add mpfr_cmp_ld and its test
Add doc of 2 macros.
Add mpfr_cmp_ui and mpfr_cmp_si as real functions
(The macros are still defined and used).
Add mpfr_add_si, mpfr_sub_si, mpfr_si_sub, mpfr_mul_si, mpfr_div_si and
mpfr_si_div.
Add the corresponding test.
Add `mpfr_cmp_q` and `mpfr_cmp_z`.
Clean up configure
Add ASSERT for NAN.
2004-02-27 Patrick Pélissier <patrick.pelissier@gmail.com>
Add documentation for MPFR_VERSION
2004-02-26 Patrick Pélissier <patrick.pelissier@gmail.com>
Optimize a few mpfr_mul.
Add Laurent Fousse in the AUTHORS file.
2004-02-26 Vincent Lefèvre <vincent@vinc17.net>
Fixed a bug in check2b and added a test; add1.c coverage is now
complete.
2004-02-25 Vincent Lefèvre <vincent@vinc17.net>
Improved coverage.
Improved coverage.
Bugs fixed in a test function -> improved coverage.
2004-02-25 Patrick Pélissier <patrick.pelissier@gmail.com>
Optimize mpfr_round_raw_?
Simplify the code.
2004-02-24 Vincent Lefèvre <vincent@vinc17.net>
Avoid integer overflow.
Ported code clean-up to trunk.
2004-02-24 Patrick Pélissier <patrick.pelissier@gmail.com>
Remove some warnings.
MPFR can be compiled (but not checked!) with a C++ compiler.
Improve test coverage.
2004-02-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
further simplification of the code (replaced one in-place shift and copy
by out-of-place shift or copy)
2004-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
use GMP_RND_MAX instead of hard-coded constant
simplified the code of div.c and improved coverage
2004-02-23 Patrick Pélissier <patrick.pelissier@gmail.com>
Rename 'longlong.h' in 'mpfr-longlong.h' so that when MPFR is built
within GMP it uses GMP's 'longlong.h' rather than MPFR's copy.
2004-02-23 Vincent Lefèvre <vincent@vinc17.net>
Update.
2004-02-23 Patrick Pélissier <patrick.pelissier@gmail.com>
Add mpfr_free_cache (2).
Add mpfr_free_cache.
Add mpfr_free_str function.
Remove a warning.
Reorder the declarations of the functions.
Remove duplicate declarations.
Remove mpfr_factorial.
2004-02-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
patch from Guillaume Hanrot
2004-02-23 Patrick Pélissier <patrick.pelissier@gmail.com>
Improve coverage tests.
Fix 2 underflow bugs.
Update comment
Improve comments.
Add a comment.
2004-02-22 Vincent Lefèvre <vincent@vinc17.net>
Added tests.
2004-02-20 Laurent Fousse <laurent@komite.net>
Changed mpfr_sum to use unsigned long instead of unsigned int. More tests.
2004-02-20 Patrick Pélissier <patrick.pelissier@gmail.com>
mpfr_neg (b, b, r) for b=NAN didn't set NAN flag.
mpfr_sgn is no longer a macro.
2004-02-19 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix bug with exact rationnal arguments (0.5+3/2 freezes).
2004-02-18 Vincent Lefèvre <vincent@vinc17.net>
Update from the autotools-dev Debian package (2004-01-05).
Fixed a bug in mpfr_set_f for 0 (wrong sign) and added the test.
2004-02-18 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix bug if you build MPFR with ASSERT.
2004-02-17 Patrick Pélissier <patrick.pelissier@gmail.com>
Reduce the number of used variables.
2004-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improved again documentation
simplified rounding
improved documentation of *inexp
2004-02-17 Patrick Pélissier <patrick.pelissier@gmail.com>
Simplify the random code.
Optimize it a few.
Add 2004 in copyright line.
Add a section which describes the needed macros for building MPFR.
2004-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added comment about probability of normalized product
2004-02-17 Vincent Lefèvre <vincent@vinc17.net>
Added a note about the ternary value, important in practice.
2004-02-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed 2 bugs and added test
added comment about return value
2004-02-17 Patrick Pélissier <patrick.pelissier@gmail.com>
Try so support GMP as a Shared Library.
2004-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improved error message
2004-02-16 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix the computing of the error for mpq_add and mpq_sub.
2004-02-16 Vincent Lefèvre <vincent@vinc17.net>
Added more tests (improved tadd1.c coverage).
2004-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added cancellation test for add_q
2004-02-16 Vincent Lefèvre <vincent@vinc17.net>
Added tests (improved tadd1.c coverage).
2004-02-16 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix bug of add_q and sub_q with special values (NAN, INF and ZERO).
2004-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
deal with overflow/underflow in mpfr_div
added hard-coded tests
2004-02-16 Vincent Lefèvre <vincent@vinc17.net>
When the precisions are the same, test both mpfr_add1sp and mpfr_add1.
Added overflow check.
2004-02-16 Patrick Pélissier <patrick.pelissier@gmail.com>
Optimize add1sp, sub1sp and div.
Improve coverage test for sub1sp.
2004-02-16 Vincent Lefèvre <vincent@vinc17.net>
Removed unused label.
Really reverted to rev. 1.54 + kept optimization + commented out
is_odd_even.
2004-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
take into account possible out-of-range exponent
revert to rev 1.54 code for case x infinite
(was less efficient but simpler)
fixed bug with in-place computation
2004-02-16 Vincent Lefèvre <vincent@vinc17.net>
Code clean-up and fix to avoid warnings.
2004-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed back to C99 standard for special values of x^y
added test for *function* mpfr_round
check return value of fopen
2004-02-16 Vincent Lefèvre <vincent@vinc17.net>
Removed the no longer used label "fin" and fixed the indentation.
Fix: MPFR_NOT_ZERO -> MPFR_NOTZERO.
Commented out the now useless "double uo, vo;".
2004-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improved coverage tests
2004-02-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
new coverage tests
improved coverage test
2004-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improved coverage test
improved test coverage
improved test coverage
improved test coverage
2004-02-13 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix a bug in taddsp (Forget to check if random does not generate zero).
2004-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improved editing style
improved test coverage
partly rewritten, and improved test coverage
2004-02-13 Vincent Lefèvre <vincent@vinc17.net>
Added tests for mpfr_mul_2si and mpfr_div_2si + corrections.
Replaced mpfr_mul_2exp and mpfr_div_2exp by mpfr_mul_2ui and
mpfr_div_2ui as the 2exp form is obsolete.
2004-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed warnings
2004-02-13 Patrick Pélissier <patrick.pelissier@gmail.com>
Add test for mpfr_cmpabs
Add test for mpfr_fits_
Add test for internal dumping functions.
Improve coverage test for exceptions / set / check.
2004-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improved coverage
removed Kevin, added missing accent
improved coverage test
2004-02-12 Patrick Pélissier <patrick.pelissier@gmail.com>
Rewrite (simplify) mpfr_dump.
Change its proto.
Fix mpf_dump macro in mpf2mpfr.
Remove MPFR_ASSERTN(0) and add MPFR_ASSERTD(last condition) instead.
2004-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improved coverage
improved coverage
improved cov. test
improved cov. test
improved coverage test
improved coverage test
improved test coverage
2004-02-12 Patrick Pélissier <patrick.pelissier@gmail.com>
Improve coverage of const_pi and const_log2 (Test for prec > 20000).
2004-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed tiny bugs for corner cases
improved test coverage
2004-02-12 Patrick Pélissier <patrick.pelissier@gmail.com>
+ Add mpfr_add1sp which provides addition when all the operands have the same precision.
+ Add new test files for mpfr_copysign and mpfr_min and mpfr_max.
+ Add test for mpfr_exp10 in tests/texp.c
+ Improve coverage of div_2ui.c and mul_2ui.c
+ Add a forgotten ASSERT in mpfr_sqrt
2004-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improved test coverage
replaced mpfr_get_d1 by mpfr_get_si
improved coverage test
added new coverage test
2004-02-12 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix some mistakes.
Add a description of the gcov tool.
2004-02-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
now 100% of coverage of sub1.c
new test file for mpfr_dim
2004-02-06 Patrick Pélissier <patrick.pelissier@gmail.com>
Replace AS_HELP_STRING to AC_HELP_STRING (obsolete)
Add forgotten copyright 2004 line.
Add a small documentation about mpfr_sum.
Added mpfr_sum function.
+ Better support of non IEEE doubles.
+ You can compile MPFR without gmp internal files (ie gmp-impl.h, gmp-mparam.h, and config.h). You only need gmp.h and libgmp.a. But you can still compile with GMP internal files (configure detects them).
2004-02-06 Vincent Lefèvre <vincent@vinc17.net>
Update.
Updated MPFR URL.
Added the changes from version 2.0.1 to version 2.0.2.
Added: "3) Update the NEWS file.".
2004-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug in get_str (case pow2, rnd=up or down)
2004-01-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed problem (s1 = s-1 inexact)
fixed problem in gamma/factorial
added new tests for agm and hypot (+ fixed bugs)
2004-01-29 Patrick Pélissier <patrick.pelissier@gmail.com>
Add GMP_RND_MAX so that a for loop of the rounding modes looks like:
for(int r = 0 ; r < GMP_RND_MAX ; r++)
2004-01-28 Patrick Pélissier <patrick.pelissier@gmail.com>
Better supports of non IEEE-754 floats (don't use anymore ieee_double_extract if _GMP_IEEE is not set).
2004-01-28 Vincent Lefèvre <vincent@vinc17.net>
Added comments and a temporary fix.
2004-01-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bugs in atan cbrt erf
added new hard-coded tests
2004-01-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed argument reduction in sin(Pi*s/2) [delegated to mpfr_sin]
print inputs of test2 in binary form
commented out test for 0.8 (input is not exactly representable)
2004-01-26 Patrick Pélissier <patrick.pelissier@gmail.com>
+ Internal functions of zeta are now declared as static.
+ Add new tests which fail.
2004-01-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added several hard-coded tests (and fixed bugs found)
2004-01-20 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix tiny bug of Concept Index / Rounding Modes.
Update minor things.
2004-01-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
minor change in contributions
added Patrick in the main contributors
2004-01-20 Vincent Lefèvre <vincent@vinc17.net>
Fixed spelling mistake.
2004-01-20 Patrick Pélissier <patrick.pelissier@gmail.com>
Reorder the documentation.
2004-01-19 Kevin Ryde <user42@zip.com.au>
# Add a remark to mpf_strto.
# Drop my thought about addmul instead of fma. The latter takes a
# separate destination and is hence not the same as what mpn and mpz
# addmul do.
2004-01-19 Patrick Pélissier <patrick.pelissier@gmail.com>
Update tests to remove the use of double when possible.
Reenable the cmp between inexact flags.
Add mpfr_get_default_rounding_mode.
Add the tests for mpfr_get/set_default_rounding_mode.
Fix mpfr_set_default_rounding_mode.
2004-01-19 Vincent Lefèvre <vincent@vinc17.net>
_mpfr_ceil -> mpfr_ceil_double + check for overflow.
Moved the mpfr_mpn_exp function to a new file "mpn_exp.c" as it is
used by both "get_str.c" and "set_str.c".
2004-01-16 Patrick Pélissier <patrick.pelissier@gmail.com>
Update it to remove the use of float/double.
2004-01-15 Patrick Pélissier <patrick.pelissier@gmail.com>
Add a new check in tget_str.c.
Add new macros.
Readd stdio.h in case of DEBUG mode.
Optimize a few sub1sp by removing the normalisation in case of exact rounding and by removing the calcul of the rounding mode in case of exact rounding.
2004-01-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed problem in case m=0 and b=2^k (lost bits from 1st digit were not taken
into account)
mpn_exp -> mpfr_mpn_exp
2004-01-15 Vincent Lefèvre <vincent@vinc17.net>
Removed gammaPiAGMformula.c (old version, no longer used).
2004-01-14 Vincent Lefèvre <vincent@vinc17.net>
Changed some error messages into assertions.
Removed some useless #include's.
2004-01-14 Patrick Pélissier <patrick.pelissier@gmail.com>
Continue to port tests so that they don't use double.
2004-01-09 Patrick Pélissier <patrick.pelissier@gmail.com>
Update the tests to reduce the use of floats.
Remove unused files mpfi.c and mpfi.h
Update test.
Don't use floats anymore.
Add RND_RAND
Add SIGN_RAND
+ Simplify the singular code.
+ Fix potential type errors. (Used mpfr_prec_t instead of mpfr_uexp_t).
2004-01-08 Patrick Pélissier <patrick.pelissier@gmail.com>
+ Add a new test file for checking functions mpfr_add/sub/mul/div_q/z (from gmp_op.c).
+ Fix bugs of mpfr_add/sub/mul/div_q/z.
2004-01-07 Vincent Lefèvre <vincent@vinc17.net>
-0 -> @minus{}0.
Specifications for mpfr_min and mpfr_max.
Updated MPFR_INTPREC_MAX definition, as mpfr_prec_t has changed.
2004-01-07 Patrick Pélissier <patrick.pelissier@gmail.com>
Add a new test between sub1 and sub1sp.
Fix copyright line.
2004-01-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed wrong sign of inexact flag
2004-01-07 Vincent Lefèvre <vincent@vinc17.net>
Added casts to size_t so that integers representing a size get
this type as soon as possible.
2004-01-07 Patrick Pélissier <patrick.pelissier@gmail.com>
Use MPFR_ASSERTN(0) instead of abort.
Fix the definition of MPFR_PREC_MAX
2004-01-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added new test to check bug repair
fixed bug (wrong inexact flag) for rounding to nearest when sh=0 and
first trailing limbs coincide
2004-01-07 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix copyright lines (2004).
Fix bug of sub1sp.c on sparck.
Add new tests for sub1sp.
Reenable sub1sp for mpfr_add / mpfr_sub.
Change output format of mpfr_print_mant_binary.
2004-01-07 Vincent Lefèvre <vincent@vinc17.net>
Clarified comment.
2004-01-06 Vincent Lefèvre <vincent@vinc17.net>
Updated copyright line.
Added mpfr_version function and test.
The mpfr_print_rnd_mode return type is const char *, not char *.
2004-01-06 Patrick Pélissier <patrick.pelissier@gmail.com>
Update the copyright line of the source files to 2004.
Add the tests to check if 0 for signed class with unsigned 0 is set to 0+.
2004-01-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
specified sign of zero in mpfr_set_*
removed test using denorms
2003-12-22 Patrick Pélissier <patrick.pelissier@gmail.com>
Disable sub1sp in add.c and in sub.c since it provides some bugs on spark (Log/acos/asin and atan tests failed but not tsub or tsub1sp).
Change comment.
+ Rearrange the code to be more "compatible" with broken systems.
+ Preprocessing checks are done in init2.c since GMP constants can't be used in preprocessing #if.
Use MPFR_UNSIGNED_MINUS_MODULO when needed.
Explicit support for K&R C since ansi2knr can't be used.
2003-12-20 Kevin Ryde <user42@zip.com.au>
(tests_rand_start): Use gmp_randinit_default not the
RANDS macro, to cope with new non-seeding MT setup by RANDS.
2003-12-19 Patrick Pélissier <patrick.pelissier@gmail.com>
Support of MPFR_PREC_FORMAT.
Fix a bug in case mp_prec_t = unsigned short.
2003-12-19 Vincent Lefèvre <vincent@vinc17.net>
Update due to a change in mpfr.h.
2003-12-19 Patrick Pélissier <patrick.pelissier@gmail.com>
+ Modify Version to 2.1.0.
+ Add MPFR_VERSION_MAJOR, MPFR_VERSION_MINOR and MPFR_VERSION_PATCHLEVEL in mpfr.h
+ Add MPFR_VERSION_NUM and MPFR_VERSION to check Mpfr version.
Remove one warning in mpf_compat.h
Create a new macro: MPFR_RET_NEVER_GO_HERE
Modify ui_sub/div to use it to make Insure++ happy.
2003-12-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
updated mpfr_root entry
2003-12-19 Vincent Lefèvre <vincent@vinc17.net>
Added update-version script to update the MPFR version.
2003-12-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed one item, added one
2003-12-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed unused target "tests"
removed AC_DEFINE(hpux) [not used any more]
2003-12-15 Kevin Ryde <user42@zip.com.au>
(EXTRA_DIST): Add round_raw_generic.c.
2003-12-15 Patrick Pélissier <patrick.pelissier@gmail.com>
+ Optimize a few div.c
+ Remove some warnings in asin.c, atan.c.
+ Include limits.h before gmp-impl.h in mpfr-impl.h
+ mpfr-tests.h doesn't include anumore standard include files.
+ Test files include only standard includes and mpfr-tests.h.
+ Add some forgotten mpfr_clear in mpf[r]_compat.
+ Remove some warnings in the tests.
2003-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed unused arguments
removed AC_DEFINE(__STDC__) for OSF
removed MISCFLAGS (not used any more)
2003-12-14 Kevin Ryde <user42@zip.com.au>
Quote AC_DEFUN names, for automake 1.8.
2003-12-10 Patrick Pélissier <patrick.pelissier@gmail.com>
+ Add a new test in case of underflow.
+ Fix bug in case of underflow for sub1 / sub1sp (mpfr_powerof2 could be called with invalid numbers).
2003-12-09 Patrick Pélissier <patrick.pelissier@gmail.com>
+ Fixed bugs of mpfr_print_mant_binary on 64 bits CPU (1L instead of 1).
+ Fixed bugs of mpfr_sub1sp on 64-bits CPU (mp_limb_t instead of int).
+ Add function mpfr_print_mantissa_binary, for debugging reason.
+ Rename MPFR_ALLOC_SIZE in MPFR_MALLOC_SIZE.
+ Add conditionnal -DSMALL directive in mpfr-impl.h.
+ Add new function: sub1sp.
Subtraction in case of all the ops have the same prec.
+ Add its test (tsub1sp).
+ Modify a few the tests to avoid comparing mpfr results with double, for portability reason.
2003-12-05 Vincent Lefèvre <vincent@vinc17.net>
Added mpfr_exp10 function.
2003-12-01 Patrick Pélissier <patrick.pelissier@gmail.com>
Port all the IEEE dependent remaining functions so that it uses a generic way to compute the result if it detects that the double is not in IEEE format ( _GMP_IEEE_FLOATS == 0).
MPFR now should work well on non-IEEE machines.
2003-12-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added suggestion for 2 new functions
added entry (portability)
2003-11-25 Patrick Pélissier <patrick.pelissier@gmail.com>
Optimize a few add1.c/sub1.c by using MPFR_LIKELY / MPFR_UNLIKELY.
2003-11-21 Patrick Pélissier <patrick.pelissier@gmail.com>
Remove some warnings and potential errors (Comparison between signed and unsigned).
+ Add new internal function: mpfr_check.
+ Add the corresponding test file.
+ Translate mpfr_set_d to mpfr_set_str / mpfr_set_ui in the tests for portability reasons.
2003-11-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
use integers instead of double's
2003-11-21 Vincent Lefèvre <vincent@vinc17.net>
Notes about not using mpfr_set_d in the tests.
2003-11-19 Patrick Pélissier <patrick.pelissier@gmail.com>
Optimization of mpfr_mul.
Tiny optimization of mpfr_pow (The case y=0 has been put inside the MPFR_ARE_SINGULAR block).
Tiny optimisation of mpfr_set_ui.
2003-11-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug in case exact result
added new tests
2003-11-18 Patrick Pélissier <patrick.pelissier@gmail.com>
Optimize round_raw_generic by reducing the number of redundant tests.
2003-11-17 Patrick Pélissier <patrick.pelissier@gmail.com>
* Optimize a few div.c and mul.c.
* Reorder the tests.
* Remove mpfr_round_raw_generic and create 4 new functions which replace it, for efficiency reasons.
* Add round_raw_generic.c which is the generic file to create the 4 new functions.
* Add new MACRO: MPFR_RNDUTEST_OR_RNDDNOTTEST which is a faster way to check if (rnd_mode==GMP_RNDU && test) || (rnd_mode==GMP_RNDD && !test).
* Add new MACRO: MPFR_UNSIGNED_MINUS_MODULO.
* Optimize mpfr_can_round_raw.
* Some new defines in mpfr.h to increase compatibility with MPFR v2.0.1 and above.
2003-11-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug in pow_si (exact result, case z = x)
added test to check bug fix (bug was in mpfr_pow)
added new test to check for bug fix (output precision > input precisions)
just improved editing style
fixed bug for output precision > max(input precisions)
2003-11-14 Vincent Lefèvre <vincent@vinc17.net>
Ported the gcc-3.3 bug detection patch to the trunk.
2003-11-07 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix a stupid bug (diff_exp is not equal to the difference of prec)
2003-11-07 Vincent Lefèvre <vincent@vinc17.net>
Initialize the exp field.
2003-11-07 Patrick Pélissier <patrick.pelissier@gmail.com>
Some minor optimizations.
Optimization of mul.c / sub1.c.
Some clean up in the header files.
2003-11-05 Patrick Pélissier <patrick.pelissier@gmail.com>
Fix some bugs (Use MPFR_ASSERT(1) instead of MPFR_ASSERT(0))
Optimize swap.c and copysign.c.
Optimize mpfr_prec_round.
Optimize mpfr_set (Case of both src & dest have the same precision).
Start optimizing mpfr_sub1.
Add a real function for mpfr_sgn (not a call to mpfr_cmp_ui_2exp).
Add a test for mpfr_sgn.
Change the proto of mpfr_add1 and mpfr_sub1 by removing the last arg.
Simplify the logic of the sign in mpfr_sub1.
Tiny speed up for cmp/set/sqrt.
mpfr-impl auto include all the needed local header files (gmp, gmp-impl, mpfr).
2003-11-04 Vincent Lefèvre <vincent@vinc17.net>
Merged the mpfr-2-0-2-branch pow_ui.c changes to the trunk.
The check_inf test wasn't called. Added 2 missing mpfr_clear and \n.
2003-11-04 Patrick Pélissier <patrick.pelissier@gmail.com>
+ Remove MPFR_CLEAR_NAN and MPFR_CLEAR_INF. Only use MPFR_CLEAR_FLAGS.
MPFR_SET_INF, MPFR_SET_ZERO and MPFR_SET_ZERO must clear the flags before setting them.
+ Add a new test in tacosh.c : check Inf / Nan flags.
+ Use MPFR_IS_SINGULAR in all the remaining files.
+ Fix the use of MPFR_CLEAR_FLAGS.
+ mpfr-impl.h auto include gmp.h, gmp-impl.h, mpfr.h and limits.h.
+ Rename _PROTO to _MPFR_PROTO, and remove _GMP_PROTO.
+ Add MPFR_INT_SIGN macro.
+ Encapsulate a few more the sign.
2003-10-30 Vincent Lefèvre <vincent@vinc17.net>
MPFR_RET_NAN -> MPFR_RET(0).
2003-10-28 Patrick Pélissier <patrick.pelissier@gmail.com>
Use of MPFR_UNLIKELY and MPFR_IS_SINGULAR for fast detection of special values (Nan, Inf or Zero).
Start to encapsulate the sign to be independent of the representation (Must be 1 or -1).
2003-10-27 Patrick Pélissier <patrick.pelissier@gmail.com>
Change the internal format of MPFR: ZERO, INF and NAN have special values of exp.
Rename MPFR_ESIZE in MPFR_LIMB_SIZE.
Rename MPFR_ABSZISE in MPFR_ALLOC_SIZE.
Rename MPFR_INIT in MPFR_TMP_INIT (INIT1 too).
"mpfr.h" includes <gmp.h> if GMP isn't detected.
Change the way of detecting stdio.h (To check).
Use mpfr namespace for new definitions in "mpfr.h".
2003-10-27 Vincent Lefèvre <vincent@vinc17.net>
Another fix, for acosh(-INF).
Fixed exit status.
2003-10-21 Vincent Lefèvre <vincent@vinc17.net>
Merged the mpfr-2-0-2-branch changes to the trunk.
2003-10-20 Vincent Lefèvre <vincent@vinc17.net>
Merged the mpfr-2-0-2-branch changes to the trunk.
2003-10-17 Vincent Lefèvre <vincent@vinc17.net>
Merged the mpfr-2-0-2-branch changes to the trunk.
2003-10-16 Vincent Lefèvre <vincent@vinc17.net>
Update.
Updated version on trunk.
Update.
Fixed several bugs.
Added XDEBUG support (like in set_d.c).
2003-10-15 Vincent Lefèvre <vincent@vinc17.net>
Replaced all non-ASCII characters by an equivalent 7-bit sequence
to support unpatched texinfo.tex files.
2003-10-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed #define DEBUG (turned on accidentally)
2003-10-15 Vincent Lefèvre <vincent@vinc17.net>
Bug on the ternary value was fixed by Paul Zimmermann on 2003-10-14.
2003-10-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added preamble about ternary flag for special functions
now uses #include "tgeneric.c" everywhere
(and modified test_generic to check also the inexact flag)
check_nan() is back
removed old unused code
fixed tests for x=0
removed composition tests (were already in-between #if 0 ... #endif)
replaced mpfr_can_round (approx, err, rnd1, GMP_RNDN, prec)
by mpfr_can_round (approx, err, rnd1, GMP_RNDZ, prec + 1)
which in addition guarantees a correct inexact flag
added new items (version number, rounding modes)
added comment about --enable-alloca=debug
2003-10-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added section "Problems due to compiler bugs"
change in can_round calls to get correct inexact flag for rounding to nearest
2003-10-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug in mpfr_pow found by Ming J. Tsai (overflow)
2003-10-08 Vincent Lefèvre <vincent@vinc17.net>
Removed useless inclusion of standard headers and some #ifdef DEBUG
code. Partial reindentation.
Added a #include <stddef.h> because size_t is used.
2003-10-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
reduced test time
reduced test time
reduced test time
2003-10-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed comment of mpfr_round_raw_generic
replaced ABSSIZE by ESIZE (ABSSIZE is the allocated size, and should be
used only in functions init, set_prec, round_prec)
fixed bug in allocation for in-place operation
inexact flag should now be correct for directed rounding
fixed a bug for mpfr_atan(-Inf) [gave +Pi/2 instead of -Pi/2]
added test for atan(-Inf)
use macros to avoid possible problem with float input
new proposal for mpfr_can_round
mpfr_mul_2exp/mpfr_div_2exp are not obsolete
2003-10-05 Vincent Lefèvre <vincent@vinc17.net>
Clearer mpfr_eq documentation (thanks to Kevin Ryde for the remark).
2003-10-03 Vincent Lefèvre <vincent@vinc17.net>
MPFR_ASSERTN rewritten to avoid "statement with no effect" warnings
with gcc when the assertion is always true.
Optimization (thanks to Patrick Pelissier), as the allocated size
may be larger than the size used by the significant bits.
Updated installation notes.
Infinities are now accepted in mpfr_cmpabs. Updated its definition
in the source (no longer sign(abs(b) - abs(c))).
2003-10-02 Vincent Lefèvre <vincent@vinc17.net>
Use @url{} for URLs.
As suggested by PZ:
o documentation of mpfr_fits_* functions moved to the section
on conversions;
o grouped some mpfr_pow special cases;
o explanation concerning the meaning of rnd in mpfr_frac.
Updated documentation. In particular, mpfr_set_str_raw renamed
as mpfr_set_str_binary. This function and mpfr_print_binary are
now internal functions. mpfr_print_binary no longer prints the
non-significant 0 bits. Updated the source to match the manual.
mpfr_print_binary has been completely rewritten (now directly
prints to stdout, without using an intermediate string). In
mpfr_set_str_binary, replaced atol by strtol + error checking.
2003-10-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added paragraph on support/grants
added help for mpfr_erf
2003-10-02 Vincent Lefèvre <vincent@vinc17.net>
Make node titles match section titles, and updated menus and xrefs.
Added a line break after @samp{uninstall}.
2003-10-01 Vincent Lefèvre <vincent@vinc17.net>
Corrections in the MPFR manual (PZ & VL). Functions mpfr_const_pi,
mpfr_const_log2 and mpfr_zeta now return a ternary value. Updated
TODO file.
2003-09-30 Vincent Lefèvre <vincent@vinc17.net>
Added a bug related to the ternary value and worst cases.
Added exponent range support.
Corrections up to Section 5.6 (PZ & VL).
Re-added the assert on the exponent, but replacing MPFR_EMIN_MIN by
MP_EXP_T_MIN (this makes more sense): an assertion failed would mean
that the exponent is not representable (an undefined behavior in the
ISO C standard). If need be, we could choose to return MP_EXP_T_MIN
in such a case, or perhaps MP_EXP_T_MAX to signal an error. The
mantissa would still be meaningful.
2003-09-30 Patrick Pélissier <patrick.pelissier@gmail.com>
Update TODO & mpfr_set_prec.
2003-09-29 Vincent Lefèvre <vincent@vinc17.net>
Corrections up to Section 4.
Added authors Kevin Ryde and Patrick Pelissier.
Removed "known problems" that are no longer problems.
2003-09-26 Vincent Lefèvre <vincent@vinc17.net>
Removed bugs related to the tests and to the exponents
as they no longer occur. Updated some potentials bugs.
2003-09-25 Vincent Lefèvre <vincent@vinc17.net>
Removed mpfr_inits, mpfr_inits2, mpfr_clears from the documentation.
Moved their prototypes to mpfr-impl.h (internal functions until
decided otherwise).
2003-09-25 Patrick Pélissier <patrick.pelissier@gmail.com>
Modify 'r' arg of GENERIC from int to long (min 32 bits).
2003-09-25 Vincent Lefèvre <vincent@vinc17.net>
8-bit ISO-8859-1 characters + consistent spelling.
Update.
Changed the remaining stderr to stdout.
2003-09-24 Vincent Lefèvre <vincent@vinc17.net>
Changed some stderr to stdout.
Added documentation for mpfr_greater_p, mpfr_greaterequal_p,
mpfr_less_p, mpfr_lessequal_p, mpfr_lessgreater_p, mpfr_equal_p
and mpfr_unordered_p.
Added tests for mpfr_greater_p, mpfr_greaterequal_p, mpfr_less_p,
mpfr_lessequal_p, mpfr_lessgreater_p, mpfr_equal_p, mpfr_unordered_p.
Added a few more tests (involving mpfr_nexttoward). The tests for
the mpfr_nextabove, mpfr_nextbelow and mpfr_nexttoward functions
should now be sufficient.
Added generic tests for mpfr_nextabove and mpfr_nextbelow.
Fixed a bug in next.c related to assertion checks.
Accept (case-insensitive) NaN and Inf in input for bases <= 16 for
backward compatibility in these bases (for bases > 16, we cannot
guaranty backward compatibility with the current wanted behavior).
Added tests.
2003-09-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added one item from Kevin
2003-09-24 Vincent Lefèvre <vincent@vinc17.net>
Added support for some top-bit-set characters in the .texi source.
Added information on special values for mpfr_pow.
2003-09-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added MAKEINFOFLAGS = --enable-encoding to get 8-bit characters in mpfr.info
used ISO-8859-1 in AUTHORS
and @`e, @"o in mpfr.texi (waiting for code for ISO-8859-1 compatibility)
2003-09-24 Kevin Ryde <user42@zip.com.au>
(MPFR_C_LONG_DOUBLE_FORMAT): Remove conftest* temporary
files.
2003-09-24 Vincent Lefèvre <vincent@vinc17.net>
Fixed comparisons (cases @NaN@ and @Inf@).
2003-09-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
two updates
2003-09-22 Vincent Lefèvre <vincent@vinc17.net>
Updated mpfr_pow description.
2003-09-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed __gmp_const into const in *.c
[Torbjo"rn: Please use __gmp_const just in user header files, plain C const in other files.]
2003-09-22 Vincent Lefèvre <vincent@vinc17.net>
Removed
- allow the ISO C "P" exponent separator for base 16 in input functions
(already done).
2003-09-22 Vincent Lefèvre <vincent@vinc17.net>
Implemented the following:
- use (LDBL_MAX/2)+(LDBL_MAX/4*LDBL_EPSILON) instead of loop in tset_ld
to get largest power of 2 that fits in a long double
Added some MPFR_ASSERTN and improved a comment.
Avoid string literals longer than 509 characters (ISO C89 limit).
(test_set_underflow, test_set_overflow): Cleaner fix (for pre-C99
compilers).
2003-09-22 Kevin Ryde <user42@zip.com.au>
(test_set_underflow, test_set_overflow): Use
"static" on "r" to allow non-constant initializers.
2003-09-21 Kevin Ryde <user42@zip.com.au>
(Converting Floats): In mpfr_get_d_2exp, the rounding mode
is given, it doesn't use the default mode.
(Assigning Floats): In mpfr_set_str and mpfr_set_str_raw,
show "const" not "__gmp_const".
(Simultaneous Float Init & Assign): In mpfr_init_set_str, ditto.
(Rounding Modes): Add blank line around @itemize.
(Miscellaneous Float Functions): In mpfr_urandomb and
mpfr_random, use @math and @le.
2003-09-20 Kevin Ryde <user42@zip.com.au>
(Assigning Floats): In mpfr_set_*, remove remarks about
long being rounded (this should be clear already), about rounding of
decimal double constants like 0.1 (too basic to appear here),
(Converting Floats): In mpfr_get_d_2exp, remove remark about exp
exceeding IEEE exponent range (should be clear already).
2003-09-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
updated items: removed conversion from/to float (obsolete)
got rid of <math.h> dependency in mpfr_zeta
mpfr_round_prec is now obsolete
new function mpfr_prec_round replaces it
2003-09-18 Vincent Lefèvre <vincent@vinc17.net>
Fix for C implementations with 16-bit int.
2003-09-18 Patrick Pélissier <patrick.pelissier@gmail.com>
Optimization of macros MPFR_IS_INF, MPFR_IS_NAN and MPFR_IS_FP
2003-09-18 Vincent Lefèvre <vincent@vinc17.net>
Removed a comment that should have been removed in revision 1.8.
2003-09-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
No longer perform the pre-check for exactness when first division step was
actually a complete division. This introduced way too much overhead.
replaced test stream==0 by stream==NULL
2003-09-15 Vincent Lefèvre <vincent@vinc17.net>
Fixed a bug in mpfr_can_round_raw and added other mpfr_can_round
tests.
Added a test to tests/tcan_round.c and assertions to round_prec.c.
2003-09-14 Vincent Lefèvre <vincent@vinc17.net>
Fixed mpfr_set_overflow, added tests for mpfr_set_underflow
and mpfr_set_overflow, and reverted exp.c.
2003-09-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
overflow with round to zero was incorrect
2003-09-11 Vincent Lefèvre <vincent@vinc17.net>
New functions mpfr_inits, mpfr_inits2 and mpfr_clears to initialize or
free several floating-point numbers (written by Patrick Pélissier).
2003-09-09 Vincent Lefèvre <vincent@vinc17.net>
Replaced malloc/free by __gmp_allocate_func/__gmp_free_func in
mpfr_zeta_pos. zeta.c still uses math (libm) functions -> TODO:
remove this dependence.
Added a test that makes MPFR crash (coming from the mpfr_zeta crash).
Case that crashes MPFR (coming from test_generic) -> function test1.
Ended up by simplifying mpfr_ui_pow to fix it completely (with a
call to mpfr_pow, in a way similar to other ui functions). There
isn't significant differences with the old code anyway, and the
case integer^integer wasn't optimized like in mpfr_pow.
The test tui_pow now passes, but the test tzeta now fails!
Code clean-up and reindented. Replaced a 8 by CHAR_BIT,
as CHAR_BIT isn't necessarily equal to 8. The bug seems
to occur on all machines.
2003-09-08 Vincent Lefèvre <vincent@vinc17.net>
Added a test to reproduce a bug (to be fixed later) on all 64-bit
machines.
Added a cast (useful under Linux/alpha).
2003-09-01 Vincent Lefèvre <vincent@vinc17.net>
Changes (Patrick Pelissier's suggestions):
_ mpfr_print_rnd_mode now has __gmp_const char * return type;
_ some corrections in mpfr.texi, documentencoding set.
2003-08-30 Kevin Ryde <user42@zip.com.au>
#Corrections to initial checkin.
(EXTRA_libfrtests_a_SOURCES): Add amd64.asm.
New file.
Correction to:
(MPFR_CONFIGS): Add amd64-*-* to x86 test objects.
(tests_machine_prec_long_double): Add amd64 to the
comments.
(MPFR_CONFIGS): Add amd64-*-* to x86 test objects.
(check_set_get): Improve error messages.
(ld_trace): New function.
(ldbl_max_struct): Use octal character constants, since hex
is an ANSI-ism.
2003-08-07 Vincent Lefèvre <vincent@vinc17.net>
Avoid a potential overflow.
2003-08-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed pb found by Damien Fisher
2003-07-24 Vincent Lefèvre <vincent@vinc17.net>
If the exponent of the number is meaningless (src = NaN, inf or 0),
0 is stored in expptr (behavior similar to the ISO C frexp function).
2003-07-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added one item
2003-07-19 Kevin Ryde <user42@zip.com.au>
(check_PROGRAMS): Add tget_d_2exp.c.
New file, partly derived from tget_d.c.
(mpfr_get_d_2exp): Ensure 0.5 <= abs(ret) < 1.0 is respected
when rounding away from zero.
(d_trace): New function.
(Converting Floats): mpfr_get_d_2exp stores to a long.
(mpfr_get_d_2exp): Store exp in a long, same as
mpz_get_d_2exp and mpf_get_d_2exp.
2003-07-15 Vincent Lefèvre <vincent@vinc17.net>
Updated comment.
2003-07-08 Vincent Lefèvre <vincent@vinc17.net>
Correction in a comment (patch by Torbjorn).
2003-07-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
can_round returns 0 for NaN/Inf
fixed Uninitialized memory read in mpfr_can_round
(when b is NaN or Inf)
2003-06-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed array bound write (need 6+1 characters in s1 to represent -@inf@ + \0)
2003-06-28 Kevin Ryde <user42@zip.com.au>
Add "const" to IEEE byte sequence data.
(tests_rand_end): Remove explicit __gmp_rands
clearing, it's what RANDS_CLEAR does already.
2003-06-26 Kevin Ryde <user42@zip.com.au>
# Clarify nan/inf bits under efficiency.
# Add mpfr_get_d3 ieee portability.
# Add mpfr_random not wanted in mpf integration.
2003-06-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
moved macros for [L]DBL_MANT_DIG in mpfr-impl.h
2003-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed several problems noticed by Kevin
changed test for 2^1024, using LDBL_MAX_EXP
2003-06-25 Kevin Ryde <user42@zip.com.au>
# Add efficiency of separate flag bit operations.
2003-06-24 Kevin Ryde <user42@zip.com.au>
Remove file, no longer used.
(libmpfr_a_SOURCES): Remove mpfr-math.h.
(MPFR_DBL_INFP, MPFR_DBL_INFM, MPFR_DBL_NAN): Make private
definitions based on IEEE byte sequences, in particular avoid HUGE_VAL
from mpfr-math.h since that's not infinity on hppa1.1-hp-hpux10.
Remove includes of mpfr-math.h, math.h and stddef.h.
(check_inf_nan): New test.
(MPFR_C_LONG_DOUBLE_FORMAT): Use octal char constants,
'\xHH' is an ANSI-ism.
2003-06-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
check 2^1024 only when sizeof(long double) > sizeof(double)
correction to previous patch
correction to previous patch: problem was that x and u can be 0,
then MPFR_PREC() undefined
2003-06-24 Kevin Ryde <user42@zip.com.au>
(tests_start_mpfr): Make stdout and stderr unbuffered.
(check_inexact): For pz, use at least MPFR_PREC_MIN
since this is required by mpfr_set_prec.
# Correction to:
# (check_inexact): For pz, use at least MPFR_PREC_MIN
# since this is required by mpfr_set_prec.
(check_inexact): For pz, use at least MPFR_PREC_MIN
since this is required by mpfr_set_prec.
2003-06-23 Kevin Ryde <user42@zip.com.au>
Remove mingw portability of random/rand48, no longer used.
Remove __setfpucw, no longer used.
Remove mpfr_integer_p, done.
Remove gmp rand functions in test programs, done.
Remove MPFR_CHECK_RANDOMIZE, done (as GMP_CHECK_RANDOMIZE).
2003-06-21 Vincent Lefèvre <vincent@vinc17.net>
mpfr_random is deprecated.
2003-06-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed since mpfr_random now can return 0
2003-06-20 Vincent Lefèvre <vincent@vinc17.net>
The distribution should now be uniform (mpfr_random implemented
by calling mpfr_urandomb).
Take the current exponent range into account in mpfr_urandomb
(which now returns an int).
Bug fix.
2003-06-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
moved _gmp_rands_initialized stuff from tests_end_mpfr() to tests_rand_end()
reduced default number of tests
improved style
reduced default number of tests
improved style
2003-06-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug in mpfr_exp2_aux2 (spe175.testdrive.hp.com)
improved style
added more information in case of failure
removed randseed() stuff [obsolete now we use the GMP mechanism]
added memory test mechanism
added new test from Parks
fixed allocation problem (forgot to clear)
2003-06-19 Vincent Lefèvre <vincent@vinc17.net>
Removed drand48/lrand48/srand48 prototypes.
2003-06-18 Kevin Ryde <user42@zip.com.au>
Don't use mpz_get_d1, since a 53-bit double is not
enough when long is 64-bits.
Don't use mpz_get_d1, since a 53-bit double is not
enough when long is 64-bits.
2003-06-13 Kevin Ryde <user42@zip.com.au>
Use autoconf recommended style for time.h with
sys/time.h.
(MPFR_CONFIGS): Require AC_HEADER_TIME, add
AC_CHECK_HEADERS of sys/time.h.
(MPFR_CONFIGS): Add AC_CHECK_FUNCS of gettimeofday.
2003-06-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
moved disabled test to "special" code
added reference to Higham
improved error analysis on erf
improved indentation
2003-06-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added support for random see
(when env. variable GMP_CHECK_RANDOMIZE set)
2003-06-12 Vincent Lefèvre <vincent@vinc17.net>
Replaced misc random functions by GMP ones.
Added function randlimb().
Fixed a few bugs concerning special values, code simplified.
2003-06-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added error function
2003-06-11 Vincent Lefèvre <vincent@vinc17.net>
Make x positive + some minor changes.
New version written by Torbjorn Granlund.
2003-06-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
updated formular for erf
added url for Abramowitz & Stegun
2003-06-10 Vincent Lefèvre <vincent@vinc17.net>
Added a comment concerning NO_MATH_DEFS.
2003-06-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
made test faster
reduced test time
reduced time of test
reduced time
2003-06-09 Kevin Ryde <user42@zip.com.au>
Patch by Torbjorn: use puts not putchar, to avoid GNUPro compiler bug.
2003-06-08 Kevin Ryde <user42@zip.com.au>
Disable "8093416094703476*2^(-1075)" because mips64
SGI cc doesn't seem to like the value (a denorm).
Include <stddef.h> before <math.h>, to avoid problems with
gcc 3.2 on hppa2.0w-hp-hpux11.11.
(random): Remove prototype, since it conflicts with
stdlib.h on osf4.
2003-05-28 Vincent Lefèvre <vincent@vinc17.net>
Added prototypes of non-standard functions that weren't always defined.
MPFR_EXP_CHECK is now defined when WANT_ASSERT is defined.
2003-05-26 Vincent Lefèvre <vincent@vinc17.net>
The special case s = 1 is taken into account (the previous code
seemed to work, but perhaps not for rigorous reasons).
Added test for case s = 1.
(mpfr_round_prec): Bug fixed (case zero wasn't taken into account)
and 'assertion failed' avoided.
Update related to MPFR_GET_EXP and MPFR_SET_EXP.
MPFR_GET_EXP (r) -> exp.
Function mpfr_swap rewritten using memcpy.
Updates/optimizations related to MPFR_GET_EXP and MPFR_SET_EXP.
Updates/optimizations related to MPFR_GET_EXP and MPFR_SET_EXP.
2003-05-23 Vincent Lefèvre <vincent@vinc17.net>
Code clean-up. Assertion failed avoided.
2003-05-22 Vincent Lefèvre <vincent@vinc17.net>
Update.
Macros MPFR_EXP_INVALID (invalid exponent value) and MPFR_EXP_CHECK
added. Code update to use MPFR_GET_EXP and MPFR_SET_EXP instead of
MPFR_EXP to allow more bug detection related to special values.
Macros MPFR_SET_NAN, MPFR_SET_INF, MPFR_SET_ZERO and MPFR_INIT set
the exponent of the number to MPFR_EXP_INVALID if MPFR_EXP_CHECK
is defined. Compile with -DMPFR_EXP_CHECK and make check to see
the potential problems; currently, 40 of 76 tests fail.
2003-05-21 Vincent Lefèvre <vincent@vinc17.net>
#include "gmp-impl.h" added.
MPFR_ASSERTD: use MPFR_ASSERTN instead of ASSERT_ALWAYS so that
it can be used as an expression.
New macros MPFR_GET_EXP and MPFR_SET_EXP (they should almost
completely replace MPFR_EXP).
2003-05-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added test 'special'
fixed bug when n_bits larger than size*BITS_PER_MP_LIMB
2003-05-18 Vincent Lefèvre <vincent@vinc17.net>
Bugs fixed (special cases).
2003-05-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed dummy test tdump
compatibility with mpf is done
updated mpfr_cmp_d
added mpfr_cmp_d in mpf2mpfr.h and mpfr.texi
2003-05-13 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Added cmp_d.c, tcmp_d.c.
Added cmp_d/tcmp_d.
2003-04-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
moved test for NaN/Inf
added Riemann Zeta function (contribution from Jean-Luc Re'my)
2003-04-08 Kevin Ryde <user42@zip.com.au>
Move macros down below @copying.
Add @: after various abbreviations.
2003-04-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed pb with count_leading_zeros (n=0)
added test for bug found by Franky Backeljauw
fixed bug found by Franky
2003-03-28 Vincent Lefèvre <vincent@vinc17.net>
Added some asserts.
2003-03-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed pb found by Will Galway <galway@pims.math.ca> (continued)
2003-03-28 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Patches from W. Galway.
2003-03-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed reference to Plouffe/Bailey/Borwein formula
2003-03-27 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Credits for the pi formula modified.
2003-03-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed back "unsigned char *" to "char *"
2003-03-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
char * -> const unsigned char * for mpfr_set_str, mpfr_set_str_raw,
and mpfr_init_set_str
2003-03-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed unused variable
2003-03-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed documentation bug in mpfr_log2 (exact results)
changed new test in 'check4' style
2003-03-17 Vincent Lefèvre <vincent@vinc17.net>
Update concerning underflow problems.
2003-03-17 Kevin Ryde <user42@zip.com.au>
(main): Comment out underflows(), until it works.
Comment out an assert tickled for an f with exponent
near MPFR_EMIN_MIN.
2003-03-16 Kevin Ryde <user42@zip.com.au>
(LONGDOUBLE_NAN_ACTION): New version for IEEE quad big
endian, fixing HP cc.
(WANT_LONGDOUBLE_VOLATILE): New define for when LONGDOUBLE_VOLATILE is
wanted.
(WANT_GMPFR_LONGDOUBLE_VOLATILE): New define for when
__gmpfr_longdouble_volatile is wanted.
Use WANT_GMPFR_LONGDOUBLE_VOLATILE.
(MPFR_C_LONG_DOUBLE_FORMAT): Add IEEE quad big endian,
check long double exists before testing.
2003-03-14 Vincent Lefèvre <vincent@vinc17.net>
Added underflow test showing a bug in mpfr_pow.
2003-03-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug for x=1
2003-03-14 Vincent Lefèvre <vincent@vinc17.net>
This wasn't a compiler bug; mpfr_pow is really buggy.
Added some asserts to show that.
The infinite loop concerning 1^0.5 was probably due to a bug in the
compiler [cc (GCC) 3.2.3 20030309 (Debian prerelease)]: adding some
printf's changes the values of the variables and the correct result
is returned.
2003-03-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed sign problem in particular_cases()
declared mpfr_ui_pow_is_exact as static
gnu-style
2003-03-13 Vincent Lefèvre <vincent@vinc17.net>
Removed some useless and inaccurate tests on NaN, infinities, zeros
(as the behavior of mpfr_pow on such particular cases has changed);
similar tests were added to "tests/tpow.c".
Test of mpfr_pow: particular cases. Bugs.
2003-03-12 Vincent Lefèvre <vincent@vinc17.net>
Special cases for mpfr_pow().
2003-03-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
when stream=NULL, use stdout (as indicated in the documentation)
2003-03-03 Vincent Lefèvre <vincent@vinc17.net>
mpfr_sin_sign -> static.
Useless declaration removed.
Special cases for mpfr_pow: like Section F.9.4.4 of the
ISO C99 standard.
Prototype fixed.
2003-02-27 Vincent Lefèvre <vincent@vinc17.net>
mpfr_set_str now accepts a binary exponent for base 16
(as defined by the ISO C99 standard).
Comment concerning the installation of MPFR: done.
New recommendation to install MPFR.
2003-02-24 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Replaced NaN, Inf by @NaN@, @Inf@ [for bases > 24].
2003-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added one test
2003-02-21 Vincent Lefèvre <vincent@vinc17.net>
Fixed cast (though unnecessary).
2003-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added one test
2003-02-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added mpf_compat, mpfr_compat
test files for mpf-mpfr compatibility
added mpfr_init_set_str
added "const" to char* arg. of mpfr_init_set_str
added macros for new mpfr functions
changed some old macros
mpfr_isinteger -> mpfr_integer_p
document new functions (fits_*, get_ui, get_si, get_d_2exp)
added integer_p that was not documented
mpfr_isinteger -> mpfr_integer_p
new functions: mpfr_fits_*, mpfr_get_ui, mpfr_get_si, mpfr_get_d_2exp
added mpfr_get_d_2exp
new functions mpfr_fits_* and mpfr_get_ui/si
new functions mpfr_fits_* and mpfr_get_[us]i
2003-01-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
check for +/-0.0 after variable set to NaN
2003-01-25 Vincent Lefèvre <vincent@vinc17.net>
Suppressed the underscores of AC_CHECK_LIBM in comments, otherwise
aclocal 1.4-p6 includes libtool code in aclocal.m4 and this leads
to compilation problems.
2003-01-25 Kevin Ryde <user42@zip.com.au>
(_MPFR_H_HAVE_FILE): Copy FILE define tests from gmp.h, adds
Borland, Microsoft and Apple MPW.
(libmpfr_a_SOURCES): Add volatile.c.
New file.
(Isnan_ld): New function based on LONGDOUBLE_NAN_ACTION, use it
instead of LONGDOUBLE_ISNAN.
(LONGDOUBLE_ISNAN): Remove.
(LONGDOUBLE_ISNAN): Remove this, use LONGDOUBLE_NAN_ACTION instead.
(LONGDOUBLE_NAN_ACTION): New macro.
2003-01-24 Kevin Ryde <user42@zip.com.au>
Allow "e" exponent in base<=10 not <10. Restrict "E"
exponent to base<=10 too, since digits are not case sensitive.
2003-01-24 Vincent Lefèvre <vincent@vinc17.net>
Prototypes: use static. Some code reformatting.
The sign wasn't set when the result was zero.
2003-01-24 Kevin Ryde <user42@zip.com.au>
Reject "", "+" and "-", also fixing an attempt to allocate a 0 length
block in these cases.
Clear NAN and INF flags when setting result to zero.
2003-01-24 Vincent Lefèvre <vincent@vinc17.net>
Fixed prototypes (use static...).
Missing #include.
2003-01-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
workaround for gcc bug on m68040-unknown-netbsd1.4.1
added cast to double
2003-01-23 Kevin Ryde <user42@zip.com.au>
Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests,
not "double" nans and infs.
2003-01-22 Kevin Ryde <user42@zip.com.au>
Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests,
not "double" nans and infs.
Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests,
not "double" nans and infs.
Use tests_start_mpfr / tests_end_mpfr.
Use tests_start_mpfr / tests_end_mpfr.
Use tests_start_mpfr / tests_end_mpfr.
(check_large): Use __gmp_free_func to free mpfr_get_str result.
Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests,
not "double" nans and infs. Use tests_start_mpfr / tests_end_mpfr.
Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests,
not "double" nans and infs.
Remove tests involving "double" nans and infs, covered by check_nan.
Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests,
not "double" nans and infs.
2003-01-18 Kevin Ryde <user42@zip.com.au>
Move log_b2.h from include_HEADERS to libmpfr_a_SOURCES, it doesn't
want to be installed.
Correction to memory leak fix, need "result" for final rounding.
2003-01-17 Kevin Ryde <user42@zip.com.au>
Fix two memory leaks.
(LDADD): Add $(MPFR_LIBM).
Remove -lm setups, now handled by MPFR_CHECK_LIBM.
(MPFR_CHECK_LIBM): New macro.
(MPFR_CONFIGS): Use it.
2003-01-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added copyright notices and license statements
now use __gmpfr_floor_log2 instead of floor/log to get rid of math.h
removed unused function dagm(), and get rid of math.h
added tests for NaN, Inf's
2003-01-17 Vincent Lefèvre <vincent@vinc17.net>
Re-added $OBJEXT, using AC_REQUIRE([AC_OBJEXT]) for old autoconf.
2003-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
put back math.h
added back math.h (for sqrt)
added log_b2.h in include_HEADERS
added tsin_cos
added #ifdef HAVE_DENORMS for denormalized test
removed math.h
added year 2003 in copyright line
removed math.h
added 2003, removed math.h
added 2003
removed math.h
added year 2003
removed math.h
patch for compiler bug on hppa2.0w-hp-hpux11.11
2003-01-16 Vincent Lefèvre <vincent@vinc17.net>
Macro LONGDOUBLE_ISNAN wasn't defined.
2003-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
now always define Isnan
moved LONGDOUBLE_ISNAN to mpfr-test.h
removed check from isnan
replaced isnan() by Isnan()
2003-01-16 Vincent Lefèvre <vincent@vinc17.net>
AC_PREREQ(2.50) added (useful when both autoconf 2.13 and autoconf
2.50 are installed, with a wrapper to select the required version).
Comment in mpfr_test_init: s/preprocessor/compiler/.
2003-01-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed pb in mpfr_test_init with the compiler optimizing too much
(this happened on Alpha with -O1 or higher)
2003-01-15 Vincent Lefèvre <vincent@vinc17.net>
Standard prototype only. Particular cases added.
2003-01-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
moved common prototype for mpn_exp in mpfr-impl.h
removed spurious ; after MPFR_ESIZE
added prototype for mpn_exp
removed items done
new tests from Alain Delplanque
new version using mpn_set_str
[written by Alain Delplanque, edited by Paul Zimmermann]
2003-01-15 Vincent Lefèvre <vincent@vinc17.net>
Replace $OBJEXT by o (as $OBJEXT isn't defined everywhere).
A ` must be quoted to avoid an error with Autoconf 2.13.
Use type mp_prec_t for precisions.
Source re-indented.
Several bugs fixed concerning the particular cases.
<stdio.h> and <stdlib.h> not included by default.
int mpfr_gamma _PROTO ... removed (was useless).
2003-01-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
get rid of ceil() call, that requires -lm
2003-01-14 Kevin Ryde <user42@zip.com.au>
Force LDBL_MANT_DIG on IEEE extended, to avoid problems with
some i386 gcc.
Avoid problems with bad LDBL_MAX and LDBL_MANT_DIG on some i386 gcc.
(MPFR_C_LONG_DOUBLE_FORMAT): New macro.
(MPFR_CONFIGS): Use it.
2003-01-11 Vincent Lefèvre <vincent@vinc17.net>
Required casts added (and switch from uint to ulong);
in particular, useful on Alpha.
2003-01-10 Kevin Ryde <user42@zip.com.au>
# Add a copyright year.
Tolerate empty argv[1], which can arise from ancient bash executing
the libtool shared library wrapper script.
Tolerate empty argv[1], which can arise from ancient bash executing
the libtool shared library wrapper script.
Avoid unnecessary extra power of 2 squaring, so as not to provoke an
overflow exception when result is in range.
2003-01-10 Vincent Lefèvre <vincent@vinc17.net>
Extended precision detection fixed.
2003-01-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed possible overflow when EXP=1024
rewritten to avoid overflows
added one test
2003-01-08 Kevin Ryde <user42@zip.com.au>
# Add a copyright year.
#Add a copyright year.
(mpn_exp): Don't store -1 in a uint then return it as a long.
Fixes systems such as alpha where sizeof(uint)!=sizeof(long).
(AC_CHECK_HEADERS): Remove fpu_control.h, no longer required.
Use tests_machine_prec_long_double.
Use LDBL_MAX for largest value and to find largest power of 2.
(__setfpucw, _FPU_EXTENDED, etc): Remove these setups.
(tests_machine_prec_double, tests_machine_prec_long_double,
x86_fstcw, x86_fldcw): Add prototypes.
(tests_machine_prec_double, tests_machine_prec_long_double): New functions.
(mpfr_test_init): Replace __setfpucw with tests_machine_prec_double.
(MPFR_CONFIGS): Add tests/x86.asm support.
(X86_PATTERN): New define, supporting acinclude.m4.
Add x86.asm support.
New file.
2003-01-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed pb for underflow and rounding to nearest
added macro LONGDOUBLE_ISNAN
use LONGDOUBLE_ISNAN in set_ld instead of cast to double and DOUBLE_ISNAN
(did raise exception under freebsd)
2003-01-07 Vincent Lefèvre <vincent@vinc17.net>
Added assertions that can be resolved at compile time: the exponents
must be representable in a long int (IMHO, this limitation should be
avoided in a clean way).
2003-01-06 Kevin Ryde <user42@zip.com.au>
Remove mpfr_get_ld, done.
Remove mpfr_set_machine_rnd_mode, done.
2003-01-06 Vincent Lefèvre <vincent@vinc17.net>
Bug fix: __mpfr_emax -> __gmpfr_emax.
2003-01-06 Kevin Ryde <user42@zip.com.au>
Use separate function calls to second strncasecmp and strncmp
for consistency and to avoid gcc warnings.
2003-01-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed infinite loop for 2^integer
2003-01-06 Vincent Lefèvre <vincent@vinc17.net>
Use digit_value_in_base for the part after the '.'.
Static function digit_value_in_base is now compatible with any locale.
2003-01-03 Kevin Ryde <user42@zip.com.au>
(<sys/fpu.h>) [__mips]: Move from mpfr-test.h to tests/tests.c,
and conditionalize with HAVE_SYS_FPU_H.
(AC_CHECK_HEADERS): Add sys/fpu.h.
(HAVE_DENORMS) [__mips]: Remove this, let the configure test decide.
Use separate function calls to strncasecmp and strncmp, rather than
?: on function pointers, since the latter demands declarations not
present on SunOS. Both forms are optimized the same by gcc.
2003-01-03 Vincent Lefèvre <vincent@vinc17.net>
Added some potential bugs (mpfr_exp2 is known to have such a bug).
2003-01-02 Kevin Ryde <user42@zip.com.au>
Add gmp-impl.h for __gmp_free_func.
2002-12-16 Vincent Lefèvre <vincent@vinc17.net>
Suppress some #define and fix symbol names (makes code cleaner):
perl -pi -e 's/__mpfr_flags/__gmpfr_flags/g' **/*.{c,h}
perl -pi -e 's/__mpfr_emin/__gmpfr_emin/g' **/*.{c,h}
perl -pi -e 's/__mpfr_emax/__gmpfr_emax/g' **/*.{c,h}
perl -pi -e 's/__mpfr_default_fp_bit_precision/__gmpfr_default_fp_bit_precision/g' **/*.{c,h}
perl -pi -e 's/__gmp_default_rounding_mode/__gmpfr_default_rounding_mode/g' **/*.{c,h}
perl -pi -e 's/__mpfr_const_log2_prec/__gmpfr_const_log2_prec/g' **/*.{c,h}
perl -pi -e 's/__mpfr_const_pi_prec/__gmpfr_const_pi_prec/g' **/*.{c,h}
perl -pi -e 's/_mpfr_ceil_log2/__gmpfr_ceil_log2/g' **/*.{c,h}
perl -pi -e 's/_mpfr_floor_log2/__gmpfr_floor_log2/g' **/*.{c,h}
perl -pi -e 's/_mpfr_ceil_exp2/__gmpfr_ceil_exp2/g' **/*.{c,h}
perl -pi -e 's/_mpfr_isqrt/__gmpfr_isqrt/g' **/*.{c,h}
perl -pi -e 's/_mpfr_cuberoot/__gmpfr_cuberoot/g' **/*.{c,h}
perl -pi -e 's/^#define __gmpfr_.*\n//' *.h
2002-12-13 Vincent Lefèvre <vincent@vinc17.net>
Update.
IEEE 754 / IEEE P754 -> IEEE 754-1985.
Correction.
Added a note about the signed zero.
Assertion re-added.
Update for new version of automake/autoconf.
depcomp script added for new version of automake.
2002-12-12 Kevin Ryde <user42@zip.com.au>
Don't -D define PACKAGE_VERSION etc, to avoid conflict with gmp config.h.
2002-12-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added paragraph about accuracy
rewritten unclear paragraph about precision
added one item
use MPN_NORMALIZE_NOT_ZERO instead of loop
2002-12-11 Vincent Lefèvre <vincent@vinc17.net>
Added #include "mpfr.h" (needed by mpfr-test.h as it uses
mp_rnd_t in one of the prototypes).
2002-12-10 Vincent Lefèvre <vincent@vinc17.net>
Patch by Torbjorn Granlund <tege@swox.com>: Don't use TMP_ allocation
mechanism for fixed size objects. Resulting streamlining. Misc
addressing changes to work around GNUPro bugs.
Patch by VL: Some other changes in mpfr_set_d.
2002-12-07 Vincent Lefèvre <vincent@vinc17.net>
(mpfr_const_euler_S, mpfr_const_euler_R)
Make declaration match prototype (patch by Torbjorn Granlund).
2002-12-04 Vincent Lefèvre <vincent@vinc17.net>
Update from ftp://ftp.gnu.org/pub/gnu/config/
2002-12-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
Use @ifnottex/@end iffnotex instead of @ifinfo/@end ifinfo
2002-12-02 Vincent Lefèvre <vincent@vinc17.net>
Fix rnd_mode.c (again).
2002-12-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
put redefinitions of external symbols just before prototypes
updated
added new known bugs
2002-11-29 Kevin Ryde <user42@zip.com.au>
Add notes on mpf_t maintaining actual size for efficiency.
Remove mpfr_set_machine_rnd_mode task.
Tweak some math formatting for tex.
(mpfr_set_machine_rnd_mode): Move prototype to mpfr-test.h.
(libfrtests_a_SOURCES): Add rnd_mode.c.
(libmpfr_a_SOURCES): Remove rnd_mode.c.
Remove file, moved to tests directory.
New file, moved from top-level directory.
(Rounding Modes): Remove mpfr_set_machine_rnd_mode.
Use GNU style code layout.
Use GNU style code layout.
2002-11-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
redefined external symbols in the __gmpfr namespace
2002-11-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added one fprintf in case of error
2002-11-25 Vincent Lefèvre <vincent@vinc17.net>
mpfr_set_machine_rnd_mode fixed to compile on some architectures
(e.g. ARM). Now returns an int.
Bug fixed.
2002-11-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed all tests that compare to libm
changed to distinguish mpfr failures from libm failures
added 3 tests that make libm fail under HP-PA
2002-11-23 Vincent Lefèvre <vincent@vinc17.net>
Update.
2002-11-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
forgot to remove debug statement
fixed bug (infinite loop) for exact powers
2002-11-21 Kevin Ryde <user42@zip.com.au>
More on tuned thresholds, more on config.h etc, new section on mpf/mpfr
integration.
2002-11-20 Vincent Lefèvre <vincent@vinc17.net>
Code clean-up.
2002-11-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed some problems found by insure
forgotten fclose() call
fixed array bound write
2002-11-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed non-ansi features
added explicit cast
2002-10-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added mpfr_cbrt
2002-10-20 Vincent Lefèvre <vincent@vinc17.net>
Update.
2002-10-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug with wrong sign detection
2002-10-19 Vincent Lefèvre <vincent@vinc17.net>
Some fixes to avoid overflows.
2002-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug for large arguments
improved code for rounding to nearest
fixed bug for EXP(x) > EMAX/2
modified description of hypot and cbrt
2002-10-18 Vincent Lefèvre <vincent@vinc17.net>
Update.
Added test showing bug in sign detection.
Added newline.
Bug in mpfr_hypot.
Added test that makes mpfr_hypot fail.
Precision Nt: int -> mp_prec_t.
Added some tests.
main () -> main (void).
2002-10-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added tcbrt.c, test file for mpfr_cbrt
fixed overflow problem
completely rewritten using mpz_root
added cbrt
2002-10-17 Vincent Lefèvre <vincent@vinc17.net>
C9X -> ISO/IEC 9899:1999 (ISO C99).
Cases NaN and -0.0 taken into account.
2002-10-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added check for +0 and -0
added one test (2^1024)
fixed bug when overflow for double type
added mpfr_set_ld and mpfr_get_ld
2002-10-16 Vincent Lefèvre <vincent@vinc17.net>
Fix for -0.0.
2002-10-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
constants for mpfr_get_str and mpfr_set_str
2002-10-16 Vincent Lefèvre <vincent@vinc17.net>
Obsolete comment removed.
Removed log_b2.h as it doesn't seem to be necessary.
2002-10-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added prototype for mpfr_get_ld
added mpfr_get_ld and tests for set_ld/get_ld
added cast to long double
2002-10-16 Vincent Lefèvre <vincent@vinc17.net>
Update (tset_ld).
Test removed as the minimal precision for a long double is something
like 10 decimal digits. Anyway, there are implementations for which
long double = double = IEEE double precision.
DBL_MANT_DIG and LDBL_MANT_DIG are normally defined by <float.h>.
2002-10-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added mpfr_set_ld and test file
2002-10-13 Vincent Lefèvre <vincent@vinc17.net>
Bug in mpfr_sin (and perhaps other functions): error analysis.
Bug fixed (found by Dmitrii Baksheyev): atan(1) cannot be exact.
2002-10-08 Kevin Ryde <user42@zip.com.au>
Remove mpfr_get_str using mpn_get_str (done).
Remove no grepping for __setfpucw, done (near enough).
New thread-safety section, add const_pi and const_log2 caching.
New portability section, add mingw random and _mpfr_ceil_log2 IEEE-ism.
(AC_MY_LIBS): Show the filename in the error message.
2002-10-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
mpfr_get_default_prec was missing (thanks to F. Morain)
2002-09-30 Vincent Lefèvre <vincent@vinc17.net>
Removed get_str.c bug, as the mpfr_get_str function has
completely been rewritten.
2002-09-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed wrong inexact flag for a - b where a and b are of different signs
and EXP(a) < EXP(b)
added test for inexact flag (bug found by Andreas Enge)
2002-09-23 Kevin Ryde <user42@zip.com.au>
(mpfr_init, mpfr_init2, mpfr_set_prec): Make void return, these always
succeed.
2002-09-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed various tiny problems
added more tests for mpfr_urandomb, and for small precision
fixed bugs in mpfr_random2 (wrong exponent, invalid numbers)
added checks for mpfr_random2
cmp_abs -> cmpabs (for compatibility with mpz)
2002-09-21 Kevin Ryde <user42@zip.com.au>
(Converting Floats): Don't refer to the internal _mp_free_func with
mpfr_get_str.
(Special Functions, Internals): Make these into nodes.
2002-09-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
now accept uppercase letters too
added test for uppercase letters
2002-09-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
now mpfr_agm returns an int (inexact flag)
2002-09-13 Vincent Lefèvre <vincent@vinc17.net>
Some more information.
2002-09-12 Vincent Lefèvre <vincent@vinc17.net>
On HP-UX, use the +allowunsats switch for ld, otherwise ld complains
that some GMP symbols are unsatisfied.
2002-09-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug in reflection formula for x<1
2002-08-23 Vincent Lefèvre <vincent@vinc17.net>
MPFR now needs GMP 4.1 or higher.
2002-08-22 Kevin Ryde <user42@zip.com.au>
(__mpfr_nan): Clarify comments about HP C and alpha.
(_MPFR_NAN_BYTES, _MPFR_INFP_BYTES, _MPFR_INFM_BYTES):
Use HAVE_DOUBLE_IEEE_LITTLE_ENDIAN etc to select endianness, not a big
block of #ifdefs.
2002-08-12 Vincent Lefèvre <vincent@vinc17.net>
strcasecmp.c -> strcasecmp.c & strncasecmp.c
2002-08-07 Kevin Ryde <user42@zip.com.au>
Use $(top_builddir) consistently with libmpfr.a, for the benefit of
srcdir!=builddir.
2002-08-02 Vincent Lefèvre <vincent@vinc17.net>
Don't touch user specified flags (CFLAGS). [patch by Kevin Ryde]
2002-07-30 Vincent Lefèvre <vincent@vinc17.net>
Better check for strcasecmp and strncasecmp. Bug fixed.
2002-07-28 Vincent Lefèvre <vincent@vinc17.net>
Functions mpfr_greater_p, mpfr_greaterequal_p, mpfr_less_p,
mpfr_lessequal_p, mpfr_lessgreater_p, mpfr_equal_p, mpfr_unordered_p.
Use AUTOMAKE_OPTIONS = gnu [suggested by Kevin Ryde]
check target -> TESTS = $(check_PROGRAMS) [suggested by Kevin Ryde]
strcasecmp and strncasecmp -> mpfr_strcasecmp and mpfr_strncasecmp
if they are provided by MPFR.
TMP_MARK missing (patch by Kevin Ryde).
2002-07-26 Vincent Lefèvre <vincent@vinc17.net>
Update.
Update (mainly concerning CVS use).
Prototype of mpfr_setmax and mpfr_setmin changed (exponent given).
In mpfr_exp for x ~= 0, add_one_ulp and sub_one_ulp are no longer
used (sub_one_ulp was incorrect). These cases should now be faster.
Small fix in mpfr_nextabove, mpfr_nextbelow and mpfr_nexttoward.
New internal functions mpfr_setmin and mpfr_setmax.
New functions mpfr_nextabove, mpfr_nextbelow, mpfr_nexttoward.
Small fix in mpfr_sub_one_ulp.
2002-07-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improved the computation of g = ceil((e-1)/log_2(beta)), using two tables
2002-07-25 Vincent Lefèvre <vincent@vinc17.net>
Function mpfr_check_range now propagates the inexact ternary value.
Function mpfr_restore_emin_emax OR's the saved flags with the current
flags, as this is more useful in general.
Macro MPFR_RESTORE_RET removed (no longer useful).
2002-07-24 Vincent Lefèvre <vincent@vinc17.net>
Change concerning an assertion, due to GMP limitation.
2002-07-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
gnu indentation
reduce range of tests (did take too much time)
added plenty of new cases, now covers all lines of get_str.c
updated documentation of mpfr_get_str
completely new version, written by Alain Delplanque and Paul Zimmermann.
It now directly uses mpn_get_str, with subquadratic complexity.
About 3 times faster than previous version in most cases.
2002-07-24 Vincent Lefèvre <vincent@vinc17.net>
Bug fixed: unsigned int variables changed to int to avoid operations
with mixed signed/unsigned variables and unwanted casts.
Function mpfr_frac and tests added.
Bug fixed (0 was forgotten).
Optimization: mpfr_trunc no longer used!
mpfr_isinteger extended to non-fp numbers and to zero.
Simpler test.
2002-07-23 Vincent Lefèvre <vincent@vinc17.net>
Re-adding mul.c with fixed permissions.
Temporarily removing mul.c in order to try to fix its permissions.
Function mpfr_check_range improved in the underflow case.
2002-07-22 Vincent Lefèvre <vincent@vinc17.net>
Update.
2002-07-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
now dump in base 2
forgot one free() call
2002-07-22 Vincent Lefèvre <vincent@vinc17.net>
mpfr_pow bug removed.
Reindentation.
pow.c: bug fixed (in the call to mpfr_can_round).
tpow.c: mpfr_clear added.
Modified the two tests to make the bug appear.
2002-07-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added two tests
2002-07-19 Vincent Lefèvre <vincent@vinc17.net>
Updated note concerning rcs2log.
Line mpfr_get_exp / mpfr_set_exp removed.
2002-07-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added function check_large
2002-07-15 Vincent Lefèvre <vincent@vinc17.net>
Update from ftp://ftp.gnu.org/pub/gnu/config/
2002-07-14 Vincent Lefèvre <vincent@vinc17.net>
Add __sparc__ (patch by Nix <nix@esperi.demon.co.uk>).
Note about randomized tests.
2002-07-04 Vincent Lefèvre <vincent@vinc17.net>
Bug concerning the rounding of pow().
mpfr_pow() didn't work when the exponent was a negative integer.
mpfr_get_z_exp() didn't work when the MPFR number was negative.
New functions mpfr_get_exp and mpfr_set_exp.
2002-06-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed duplicated entry (thread-safe)
added new items
added special cases
added one reference (nocite)
added one reference
fixed bug in return value
new additions
added pointer to mpfr_inp_str in mpfr_set_str
2002-06-26 Vincent Lefèvre <vincent@vinc17.net>
Update.
MP_LIMB_T_HIGHBIT -> MPFR_LIMB_HIGHBIT.
MPFR is now compatible with GMP 4.1.
2002-06-15 Vincent Lefèvre <vincent@vinc17.net>
Added: make MPFR thread-safe.
2002-06-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug found by Gerardo Ballabio
added one test (bug in mpfr-2.0.1 found by Gerardo Ballabio)
2002-06-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added mpfr_modf
2002-06-12 Vincent Lefèvre <vincent@vinc17.net>
Added modf (to implement).
2002-06-08 Vincent Lefèvre <vincent@vinc17.net>
check: Apply a hack to the parameter order to make sparc gcc 2.95.2
happy (patch by Kevin Ryde) + static added.
Patch by Kevin Ryde.
Suppress tests if sqrt is not affected by mpfr_set_machine_rnd_mode
(patch by Kevin Ryde).
Update.
fdl.texi added.
Patch by Kevin Ryde (and Vincent Lefevre).
mpfr.texi: Change license to FDL, use @copying per texinfo 4.2.
Use @dircategory, @direntry, @documentdescription.
Move @contents to start of file.
(VERSION, UPDATED): New variables.
(m, GMPtimes, times): New macros.
(Float Arithmetic): Fix html output. Reported by Richard Dawe.
(GNU Free Documentation License): New appendix.
2002-06-06 Vincent Lefèvre <vincent@vinc17.net>
Use gmp-impl.h to get MPFR_HAVE_FESETROUND (reported by Kevin Ryde).
2002-06-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
patch for mpfr.texi
patch from Richard Dawe <richdawe@bigfoot.com> to generate HTML
added mpfr_gamma in libmpfr
2002-06-05 Vincent Lefèvre <vincent@vinc17.net>
Check for isnan.
2002-05-29 Vincent Lefèvre <vincent@vinc17.net>
Bug fixed (possible integer overflow).
Bug fixed (possible integer overflow).
Bug fixed (possible integer overflow).
Note added for mpfr_check_range. Bug fixed.
Sign wasn't set (reported by Dmitrii Baksheyev).
Types fixed and code clean-up.
Types fixed and code clean-up.
2002-05-27 Vincent Lefèvre <vincent@vinc17.net>
Patch by Kevin Ryde for memory leak checking + misc declaration fixes.
Code moved from mpfr-test.h to tests.c.
2002-05-14 Vincent Lefèvre <vincent@vinc17.net>
Ternary flag for mpfr_agm.
Copyright line updated.
2002-05-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
ternary flag for mpfr_agm?
update wrt mpfr_set_machine_rnd_mode
added mathematical description of arithmetico-geometric mean
2002-05-08 Vincent Lefèvre <vincent@vinc17.net>
The problem on a G4 PowerPC was a bug in gcc; this is now tested
in configure (float-conversion bug) and -ffloat-store is used if
need be.
2002-05-06 Vincent Lefèvre <vincent@vinc17.net>
Problem on the G4 PowerPC.
2002-04-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed problem (infinite loop) in mpfr_pow for exact powers
fixed errors found by Sylvain Pion
2002-04-27 Vincent Lefèvre <vincent@vinc17.net>
not relevant -> undefined.
Some changes concerning the internals and zeros
(including remarks by Kevin Ryde).
2002-04-25 Vincent Lefèvre <vincent@vinc17.net>
Check if HUGE_VAL is supported.
Changes in mpfr_set_str.
2002-04-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
update
mpfr_set_str doesn't require any more a final '\0'
and return the number of characters read
modified tests for special values
2002-04-24 Vincent Lefèvre <vincent@vinc17.net>
Description updated.
mpfr_cmp_abs no longer an internal function and described in mpfr.texi.
In mpfr.texi, a @var{} was forgotten.
mpfr_cmp_abs can now be called on zero numbers.
Structures are used to get correct alignment.
2002-04-23 Vincent Lefèvre <vincent@vinc17.net>
_MPFR_INF*_BYTES fix. On alpha, use a "double" for the bytes,
to avoid a mis-conversion on alpha gcc 3.0.2. (Kevin Ryde)
Underflow semantics changed (not tested).
Code simplified due to change in the maximum exponent range.
2002-04-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
modifs from Andreas
2002-04-22 Vincent Lefèvre <vincent@vinc17.net>
Union -> array + cast because of the HP compiler.
2002-04-20 Vincent Lefèvre <vincent@vinc17.net>
Avoid constant floating expression, as this doesn't give the correct
result with gcc on some Alpha machines. (patch by Paul Zimmermann)
2002-04-19 Vincent Lefèvre <vincent@vinc17.net>
RAND_MAX defined if not already defined (as it should be).
Include config.h, for the benefit of test programs not using
gmp-impl.h (Kevin Ryde).
2002-04-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added tests in mpfr_test_init for denorms and extended precision
mpfr_init and mpfr_init2 now return an int
2002-04-19 Vincent Lefèvre <vincent@vinc17.net>
Exponent range saved/restored. Returns NaN when the numerator
or the denominator is too large for MPFR.
Added some assertions (any unsigned long must be representable
in a mp_limb_t).
SAFE_ABS changed so that it can be used for any unsigned type.
2002-04-18 Vincent Lefèvre <vincent@vinc17.net>
Added code to prevent possible integer overflow when the input number
is very large.
New values for exponent range.
2002-04-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
call get_d with rounding mode in check2, to avoid problems near +Inf
2147483647 -> INT_MAX
improved ulp() to deal with infinities
and fixed tadd/check2 to deal with infinities
2002-04-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improved documentation of mpfr_set_precset_prec.
2002-04-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed documentation of cosh/sinh/tanh
2002-04-16 Vincent Lefèvre <vincent@vinc17.net>
mpfr_cmp_ui_2exp and mpfr_cmp_si_2exp rewritten.
Prototype changed.
Use AC_CANONICAL_HOST and $host instead of $OS_TYPE and $MACHTYPE
(patch suggested by Kevin Ryde).
Added files from ftp.gnu.org for automake and AC_CANONICAL_HOST.
2002-04-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
replaced 2.2e-307 by DBL_MIN
2002-04-15 Vincent Lefèvre <vincent@vinc17.net>
Typo: Gnu -> GNU.
Update for future 2.0.2.
Update for mpfr 2.0.1.
Back to version 2.0.1, updated documentation.
Post-release commit.
Update for mpfr 2.0.1.
mpfr_cmp_ui_2exp and mpfr_cmp_si_2exp can no longer be called with a NaN.
Misc bugs fixed.
2002-04-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added main changes in version 2.0.1
2002-04-15 Vincent Lefèvre <vincent@vinc17.net>
Update for "make dist".
COPYING -> COPYING.LIB and GPL re-added.
Update.
Removed switches -g -O2 as already done by configure.
2002-04-14 Vincent Lefèvre <vincent@vinc17.net>
Update.
Removed useless @iftex...
Update.
When q = 0, +0 is returned.
2002-04-13 Vincent Lefèvre <vincent@vinc17.net>
Update for the next pre-release.
Support for NaN and Inf (case insensitive) in mpfr_set_str. Tests.
Bug fixed.
Update for the next pre-release.
Misc changes. Use of AC_CACHE_CHECK.
2002-04-12 Vincent Lefèvre <vincent@vinc17.net>
Code clean-up.
Update for the next pre-release.
New tests.
mpfr_get_d* fixed.
Types fixed in const_log2.c (this fixes the tconst_log2 crash).
Added a note about the native SunOS 4 C compiler.
2002-04-11 Vincent Lefèvre <vincent@vinc17.net>
Type fixed.
mpfr_set_d bug fixed, but other bugs still remain...
NULL was undeclared on some architectures (reported by Torbjorn Granlund).
#include ordering changed for Windows + Cygwin 32.
LDFLAGS changed on HP-UX.
Update for the next pre-release.
Subnormal test in different rounding modes + fix.
Function MPFR_CONFIGS.
Tests added.
get_d.c partly rewritten (Paul Zimmermann).
#include ordering fixed.
Check for gcc float-conversion bug.
2002-04-10 Vincent Lefèvre <vincent@vinc17.net>
Added comment for mpfr_round_raw_generic (about using 1-bit precision).
Update (thanks to Nathalie Revol).
Update for the next pre-release.
HAVE_FESETROUND renamed to MPFR_HAVE_FESETROUND to avoid possible
name conflict.
Added missing headers in libmpfr_a_SOURCES.
2002-04-09 Vincent Lefèvre <vincent@vinc17.net>
Update for the next pre-release.
Possible tconst_log2 crash under Solaris.
Under OSF, use option -ffloat-store only when the compiler is gcc.
include_HEADERS should contain only mpfr.h and mpf2mpfr.h.
Added code to support fesetround under Solaris.
"In case of problem" update.
Old URL removed.
Renaming: DIR -> GMPINSTALL, GMPDIR -> GMPBUILD. Bug on IRIX updated.
Removed note about stack-alloc.h.
Check for fenv.h -> check for fesetround.
Added note concerning patch submission.
2002-04-08 Vincent Lefèvre <vincent@vinc17.net>
Note about overflows. Functions mpfr_{div,mul}_{si,ui} described.
2002-04-07 Vincent Lefèvre <vincent@vinc17.net>
Update for the next (and last?) pre-release.
Stricter test for HAVE_INFS.
Update.
Added note about IRIX.
Update for the next pre-release.
mpfr_get_d -> mpfr_get_d1 and mpfr_get_d2 -> mpfr_get_d.
2002-04-06 Vincent Lefèvre <vincent@vinc17.net>
Update for the next pre-release.
Update.
2002-04-05 Vincent Lefèvre <vincent@vinc17.net>
New file from Paul.
COPYING.LIB removed.
COPYING.LIB -> COPYING.
README.dev added.
2002-04-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
put back label removed by error
removed _FPU_RC_NEAREST ... for x86 (not used any more, now use fenv.h)
removed nested TMP_MARK's (problems when configuring gmp with --disable-alloca)
fixed pb with two markers (with --disable-alloca)
2002-04-05 Vincent Lefèvre <vincent@vinc17.net>
Removed (not used).
2002-04-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
use AC_CHECK_HEADERS to check for fenv.h
and AC_CHECK_FUNCS to check for lrand48
2002-04-04 Vincent Lefèvre <vincent@vinc17.net>
Added "VERSION" and "prepare" descriptions.
2002-04-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bugs found by Nathalie
2002-04-04 Vincent Lefèvre <vincent@vinc17.net>
Update for the next pre-release.
Removed check for extended precision, as no longer used.
2002-04-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added check for denormalized numbers
added new functions to implement
2002-04-03 Vincent Lefèvre <vincent@vinc17.net>
Update for the next pre-release.
-ffloat-store is a gcc option.
Added 4th argument to AC_TRY_RUN.
Re-fix.
2002-04-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added check for fpu_control.h
added missing cast to double
2002-04-02 Vincent Lefèvre <vincent@vinc17.net>
[ ] used around error message.
Update.
Check BITS_PER_MP_LIMB and BYTES_PER_MP_LIMB.
sqrtrem.c removed.
New ChangeLog file (generated by rcs2log).
Suppress PACKAGE and VERSION definitions for the compiler.
2002-04-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
old file
2002-03-31 Paul Zimmermann <Paul.Zimmermann@inria.fr>
more "internal" changes suggested by Vincent
added suggestions from Kevin in "internals"
2002-03-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added test for denorms
on a 32-bit machine, denormalized numbers with high 32 bits to 0
were flushed to zero
2002-03-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
sign of sin(-1) was not set
added check for asin(-1)
added one test
previous fix was completely wrong
fixed pb in cmp_si when i = -2^31 (then beware that -1 * i < 0 !!!)
added check for underflow
2002-03-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
- use mpfr_test_init to initialize hardware floats
- use #ifdef HAVE_INFS when using DBL_NAN, ...
- fixed some problems with wrongly converted f-p values (esp. under IRIX)
use AC_TRY_CPP instead of AC_TRY_RUN for fenv.h
(otherwise fails on Itanium)
added function mpfr_test_init to initialize full IEEE behaviour
put back simple algorithm that computes x*y exactly and then
directly calls mpfr_add, to avoid wrong inexact flags
added 2002 in copyright line
fixed problem on x86 (set precision to double to avoid double rounding)
added check for valid 1/0, denormalized, and extended precision
2002-03-26 Vincent Lefèvre <vincent@vinc17.net>
New-style comment removed.
2002-03-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added a description of the mpfr_t type in "Internals"
2002-03-26 Vincent Lefèvre <vincent@vinc17.net>
#include <unistd.h> removed. Redefined macros ABS removed.
Patch by Kevin Ryde + misc fixes.
2002-03-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
replaced getpid() by time(NULL)
MPFR_SIZE and sign were incorrectly set [thanks Kevin]
added check_nan (from Kevin)
fixed bug for sqrt(-0) found by Kevin [NaN flag not cleared]
2002-03-22 Vincent Lefèvre <vincent@vinc17.net>
Error message now copes with extended precision.
2002-03-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added test in configure for checking rand48 functions (HAVE_RAND48)
and fenv.h (HAVE_FENV)
added mpfr_set_machine_rnd_mode (if fenv.h exists)
replaced TEST by HAVE_FENV
2002-03-22 Vincent Lefèvre <vincent@vinc17.net>
Missing #include.
MPFR_RETNAN shouldn't be used as no value is returned.
Regarde 0 as positive rather than negative (though it's better not to use it).
Memory leak (patch by Kevin Ryde).
2002-03-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
replaced rand/lrand48, drand48, srand/srand48 by macros
LONG_RAND, DBL_RAND, SEED_RAND
and time(NULL) by getpid()
added macros LONG_RAND, DBL_RAND, SEED_RAND
added VERSION and mpfr-math.h for "make dist"
2002-03-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
new functions
now use macros DBL_NAN, DBL_POS_INF, DBL_NEG_INF,
and functions mpfr_set_nan, mpfr_set_inf
defined macros for 0/0, 1/0, -1/0
added new functions mpfr_set_nan and mpfr_set_inf
2002-03-19 Vincent Lefèvre <vincent@vinc17.net>
File VERSION added. Contains the next version (currently 2.0.1).
configure.in updated accordingly.
Macros MPFR_DBL_NAN, MPFR_DBL_INFP and MPFR_DBL_INFM.
2002-03-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
MP_LIMB_T_HIGHBIT -> ULONG_HIGHBIT
moved code under #ifdef
moved code under #ifdef TEST
remove variable sizer (not used)
Library GPL -> Lesser GPL
updated
2002-03-17 Vincent Lefèvre <vincent@vinc17.net>
Some changes in the types.
2002-03-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed Nt variable to signed
2002-03-17 Vincent Lefèvre <vincent@vinc17.net>
Bugs fixed.
2002-03-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added back mpfr_sin_cos
new version (adapted from sin.c)
added tests for tan(3*Pi/4) and tan(7*Pi/4)
fixed bug for tan(3*Pi/4) [wrong sign]
added test for log(10^n)
fixed infinite loop problem for log(10^n)
2002-03-13 Vincent Lefèvre <vincent@vinc17.net>
Fix (patch by Kevin Ryde).
Do not read the exponent if it has no meaning.
2002-03-12 Vincent Lefèvre <vincent@vinc17.net>
mpfr_random update (patch by Kevin Ryde).
2 more known bugs.
mpfr_a{cos,sin,tan} documentation at a better place.
Some mpfr_clear added (patch by Kevin Ryde).
2002-03-11 Vincent Lefèvre <vincent@vinc17.net>
mpfr_get_d3 partially rewritten (to follow the new specifications).
tget_d.c updated because of changes in get_d.c.
Return a null pointer if rnd_mode is an invalid rounding mode.
2002-03-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
set sign before calling mpfr_check_range
stupid typo in previous commit
removed expx (not used)
fixed typo (ai [potentially unsigned] replaced by i)
2002-03-11 Vincent Lefèvre <vincent@vinc17.net>
New mpfr_get_d, mpfr_get_d2, mpfr_get_d3.
2002-03-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added return
2002-03-11 Vincent Lefèvre <vincent@vinc17.net>
set_d.c split into get_d.c and set_d.c
2002-03-11 David Daney <david.daney@inria.fr>
add cbrt in fonctionnality
2002-03-11 Vincent Lefèvre <vincent@vinc17.net>
Bug removed.
#include changes.
2002-03-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed problem when te=ti=1 (i.e. t=0) found by Kevin Ryde
simplified test4()
2002-03-06 Vincent Lefèvre <vincent@vinc17.net>
Update.
Update.
Patch by Kevin Ryde concerning nodes/menus.
2002-03-05 Vincent Lefèvre <vincent@vinc17.net>
Casts fixed.
2002-03-04 Vincent Lefèvre <vincent@vinc17.net>
File renaming.
Copyright line changed.
2002-03-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
updated
changed name of mpz_set_fr to mpfr_get_z_exp
2002-02-28 Vincent Lefèvre <vincent@vinc17.net>
Removed some <math.h> dependencies.
Fixed.
mpfr_get_d rewritten (still needs to be fixed when the result is a subnormal).
2002-02-27 Vincent Lefèvre <vincent@vinc17.net>
mpfr_get_d2 tested.
Update.
New tests.
Additional flags for gcc + minor changes.
Minor update.
2002-02-25 Vincent Lefèvre <vincent@vinc17.net>
mpfr_get_d2 prototype changed (mp_exp_t instead of long).
__mpfr_scale2 fixes: checks for integer overflows, signed zeros, exact
rounding for subnormals in the rounding to the nearest mode (problems
due to multiple roundings avoided).
mpfr_get_d2: signed zeros taken into account. This function still needs
to be rewritten (because of multiple roundings).
2002-02-21 Vincent Lefèvre <vincent@vinc17.net>
_mpfr_ceil_log2, _mpfr_floor_log2, _mpfr_ceil_exp2 in separate files.
2002-02-19 Vincent Lefèvre <vincent@vinc17.net>
Fixes, code clean-up and some asserts against integer overflows.
Code need to be checked.
2002-02-14 Vincent Lefèvre <vincent@vinc17.net>
mpfr_{div,mul}_2exp -> mpfr_{div,mul}_2ui.
Partial code clean-up and some asserts against integer overflows (2).
2002-02-13 Vincent Lefèvre <vincent@vinc17.net>
Partial code clean-up and some asserts against integer overflows.
MP_EXP_T_MAX and MP_EXP_T_MIN defined.
Macros IS_POW2 and NOT_POW2.
2002-02-12 Vincent Lefèvre <vincent@vinc17.net>
Use mpfr_save_emin_emax and MPFR_RESTORE_RET.
Update due to changes in mpfr_get_str.
mpfr_get_str: the returned exponent for 0 is 0 (like in frexp()).
mpz_set_fr.c: comment added.
out_str.c: minor changes.
Update.
Bug fixed and other changes.
NULL -> null pointer and other small changes.
mpfr_get_str: null pointer returned in case of error, NaN taken into account.
2002-02-11 Vincent Lefèvre <vincent@vinc17.net>
mpfr_set_str partially rewritten to cope with integer overflows.
The rounding code hasn't been fixed yet.
2002-02-08 Vincent Lefèvre <vincent@vinc17.net>
Typo.
mpfr_set_str: base must be between 2 and 36.
2002-02-06 David Daney <david.daney@inria.fr>
change the return values
Change the test return values
2002-02-06 Vincent Lefèvre <vincent@vinc17.net>
Some optimizations.
2002-02-04 Vincent Lefèvre <vincent@vinc17.net>
Misc bug fixes and code clean-up.
Misc bug fixes and code clean-up.
2002-02-03 Vincent Lefèvre <vincent@vinc17.net>
For the value 0, return __mpfr_emin instead of 0.
2002-02-01 Vincent Lefèvre <vincent@vinc17.net>
Misc bug fixes and code clean-up.
2002-02-01 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Patch.
2002-01-30 Vincent Lefèvre <vincent@vinc17.net>
Bux fixed.
mpfr_set_z rewritten.
Update concerning mpfr_round_prec, mpfr_rint, mpfr_ceil, mpfr_floor,
mpfr_round and mpfr_trunc.
Tests added (mpfr_trunc, mpfr_floor, mpfr_ceil, mpfr_round).
mpfr_rint, mpfr_trunc, mpfr_floor, mpfr_ceil, mpfr_round rewritten.
2002-01-25 Vincent Lefèvre <vincent@vinc17.net>
mpfr_round -> mpfr_round_prec.
Code reformatted.
2002-01-23 Vincent Lefèvre <vincent@vinc17.net>
MAX, MIN, ABS macros undefined before being redefined.
Fix in ABS macro.
2002-01-22 Vincent Lefèvre <vincent@vinc17.net>
Example with high bit set.
Fix (Kevin Ryde).
MPFR_PREC_MAX redefined.
MPFR_INTPREC_MAX defined (internal maximum precision).
Some integer overflow detection.
2002-01-21 Vincent Lefèvre <vincent@vinc17.net>
Set sign of sqrt(0).
Support for exponent range.
can_round type changed: char -> int.
Case sqrt(0) improved.
Bug fixes:
* return 1 -> MPFR_RET_NAN
* a MPFR_CLEAR_INF was missing.
2002-01-20 Vincent Lefèvre <vincent@vinc17.net>
New macro MPFR_RESTORE_RET.
2002-01-18 Vincent Lefèvre <vincent@vinc17.net>
Code clean-up (goto suppressed).
Cases 0 * 0 + 0.
Nt: int -> mp_prec_t
<> changed back to "".
2002-01-18 David Daney <david.daney@inria.fr>
change "" -> <> in headers
Change indentation + replace "" -> <> in header
2002-01-17 Vincent Lefèvre <vincent@vinc17.net>
Particular cases rewritten.
Test "__hpux", not "hpux". Mask off mrand48 return value to 31 bits
to work around sloppy mpfr #include practices. (Torbjorn Granlund)
#include fixes (Torbjorn Granlund).
2002-01-16 Vincent Lefèvre <vincent@vinc17.net>
Comments were incorrect.
2002-01-15 Vincent Lefèvre <vincent@vinc17.net>
Note concerning mpfr_trunc, mpfr_floor and mpfr_ceil.
2002-01-14 Vincent Lefèvre <vincent@vinc17.net>
Special cases.
2002-01-12 Vincent Lefèvre <vincent@vinc17.net>
Patches by Kevin Ryde for K&R compilers
and other fixes in prototypes.
2002-01-10 Vincent Lefèvre <vincent@vinc17.net>
Test check_min added.
Test check_max added.
Spelling: "canceled"
2002-01-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
GMP_PROTO change was already done by Vincent
prepare change PROTO -> GMP_PROTO
2002-01-04 Vincent Lefèvre <vincent@vinc17.net>
The precision can no longer be 1.
__GMP_PROTO defined if not already defined.
Optimization: mpfr_cmp2 now accepts any combination of real arguments
and computes the sign of |b| - |c| (in addition to the number of
cancelled bits); mpfr_add, mpfr_sub, mpfr_sub1, mpfr_agm and some
tests updated to take this change into account.
2001-12-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added check for sin(3*Pi/2)
fixed bug for sin(3*Pi/2)
2001-12-19 Vincent Lefèvre <vincent@vinc17.net>
Global NaN flag set when result is NaN.
2001-12-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
forgot to clear nan flag for Inf
changed description of mpfr_cmp to correspond to the implementation:
NaNs are not allowed
fixed mpfr_cmp2 : there was a bug noticed by Nicolas Magaud and Didier
Bondyfalat for inputs:
100 011 111
100 010 110
where it gave 8 instead of 5.
2001-12-19 Vincent Lefèvre <vincent@vinc17.net>
Better comments.
2001-12-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added "PI and the AGM"
2001-12-06 Vincent Lefèvre <vincent@vinc17.net>
Files renamed (log in base 2 and 10).
Files renamed (constants).
File aclocal.m4 removed, as generated by aclocal (called by prepare).
Files log_base_*.c renamed.
Functions (constants) renamed.
Files configure, Makefile.in, tests/Makefile.in removed.
Use the `prepare' script to generate them.
Removed 2 bugs.
Initial release.
2001-12-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added arc-tangent (from Mathieu)
added paragraph on asin and acos from Mathieu Dutour
added tacos
in check5, test NaNs before calling mpfr_cmp
added acos
added acos.c
added acos (from Mathieu Dutour)
use now new sqrtrem from gmp-4.0
improved test (avoid mpfr_get_d)
removed isnan prototype
added stdlib.h for exit
2001-11-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
test NaN before Inf
changed precision to 2 for test
2001-11-30 Vincent Lefèvre <vincent@vinc17.net>
Cast added.
2001-11-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added a new test (worst case)
nouvelle version de Mathieu Dutour,
corrigeant certains bugs avec les pires cas de Vincent
2001-11-30 Vincent Lefèvre <vincent@vinc17.net>
#include order changed.
Misc fixes.
Unused variables.
2001-11-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
start tests with precision 2 instead of 1
start from precision 2
big rewrite to fix problems when the estimate base exponent is too small
fixed detection of exact cases (in particular 0)
now use MPFR_PREC_MIN
exptol is now of type mp_exp_t
rewritten part with Taylor series
changed MPFR_PREC_MIN to 2
updated wrt MPFR_PREC_MIN/MPFR_PREC_MAX
case x=0 was forgotten
now use MPFR_PREC_MIN
added comment
2001-11-30 Vincent Lefèvre <vincent@vinc17.net>
mpfr_set_z rewritten to support overflows/underflows and ternary value.
0 -> set to +0.
Better sign comparison.
2001-11-29 Vincent Lefèvre <vincent@vinc17.net>
Use MPFR_SET_POS.
Bug fixed concerning integer overflows.
2001-11-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added comment
fixed bug for small precision, where r can be >= 1
2001-11-29 Vincent Lefèvre <vincent@vinc17.net>
Functions mpfr_{mul,div}_2{si,ui} added.
Functions mpfr_{mul,div}_2exp still exist for backward compatibility;
they are obsolete and should not be used any longer.
2001-11-28 Vincent Lefèvre <vincent@vinc17.net>
Particular cases (NaN and signed zeros).
Init variables to NaN instead of 0.
Possible integer overflow fixed.
Particular cases fixed.
2001-11-25 Vincent Lefèvre <vincent@vinc17.net>
Overflow support.
K&R -> ISO C prototype.
mpfr_div_2exp rewritten.
mpfr_mul_2exp rewritten.
Overflow support.
Casts to size_t added (safer and could be required in the future).
2001-11-23 Vincent Lefèvre <vincent@vinc17.net>
Minor change.
mpfr_mul partially rewritten:
* Integer overflows almost completely avoided.
* Now supports signed zeros and overflows.
Not tested yet.
2001-11-22 Vincent Lefèvre <vincent@vinc17.net>
mpfr_can_round_raw: integer overflows checked and code duplication avoided.
More bugs.
mpfr_can_round and mpfr_can_round_raw: prototypes changed.
2001-11-21 Vincent Lefèvre <vincent@vinc17.net>
Bug fixed.
mpfr_add_one_ulp and mpfr_sub_one_ulp changed.
Added MPFR_PREC_MIN and MPFR_PREC_MAX.
Error test -> assert.
mp_prec_t -> mp_size_t.
2001-11-20 Vincent Lefèvre <vincent@vinc17.net>
Test added.
mpfr_round rewritten.
mpfr_round_raw_generic: NULL changed to 0 as not necessarily defined.
Added macro MPFR_SET_ABSSIZE.
mpfr_round: Check for overflow.
2001-11-17 Vincent Lefèvre <vincent@vinc17.net>
Some type changes.
2001-11-16 Vincent Lefèvre <vincent@vinc17.net>
Integer overflows checked.
MPFR_ASSERTN instead of fprintf + exit.
GMP assert mechanism: macros changed until GMP is fixed.
2001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
version -> 2002
removed executable flag
mpfr_print_raw -> mpfr_print_binary
split from init.c
2001-11-16 David Daney <david.daney@inria.fr>
remove math.h
remve math.h
2001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added one test
2001-11-16 David Daney <david.daney@inria.fr>
remove math.h
2001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
init -> init + init2.
2001-11-16 David Daney <david.daney@inria.fr>
remove math.h
2001-11-16 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Ajoute retours chariots dans div.c, etc.
if () remplace par if ( ==0) ou if ( != 0)
2001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed K&R function headers
2001-11-16 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Beuh ?
return -> MPFR_RET, patch d'un leak dans inp_str.c
2001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed to use GMP assert mechanism
2001-11-16 David Daney <david.daney@inria.fr>
remove stdio.h math.h
2001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
assert -> MPFR_ASSERT
2001-11-16 David Daney <david.daney@inria.fr>
remove stdio math .h
remove stdio.h math.h
2001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
ASSERT_ALWAYS -> MPFR_ASSERTN
added COPYING.LIB
replaced by GPL
2001-11-16 David Daney <david.daney@inria.fr>
remove limits.h
2001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed Library GPL to Lesser GPL
GNU Lesser General Public License, version 2.1
2001-11-16 David Daney <david.daney@inria.fr>
remove limits.h math.h
2001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
now treats all *.h
2001-11-16 David Daney <david.daney@inria.fr>
remove the proto, remove math.h
2001-11-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed DEBUG's
removed old patch for GMP 2.xx
GNU MP -> MPFR
added year 2001 in copyright line
added year 2001 in copyright line
added year 2001 in copyright line
removed #if __STDC__
now two separate files cos.c and sin.c
added year 2001 in copyright line
updated
old version, removed
added isinf and isnum (split from isnan)
new files (split from isnan.c)
removed prototype already in mpfr.h
translated french comments to english
added mpfr_sub
added static to local functions
1 -> MP_LIMB_T_ONE
1 -> BITS_PER_MP_LIMB
added static to local functions
removed prototype already in mpfr.h
removed mpfr_exp2_si (not used)
added static to local functions
translated french comments to english
translated french comments to english
removed prototype already in mpfr.h
initialized inexact to 0
used TMP_ALLOC
translated french comments to english
simplified test
moved inf_p and number_p to different files
added static to local functions
explained threshold
removed prototypes already in mpfr.h
does not include stdio.h any more
added stdio.h
1 -> BITS_PER_MP_LIMB
1 << (BITS_PER_MP_LIMB - 1) -> MP_LIMB_T_HIGHBIT
removed french comment
added static to local functions
removed prototype already in mpfr.h
1 -> BITS_PER_MP_LIMB
translated french comments to english
added static to local functions
1 -> BITS_PER_MP_LIMB
1 -> BITS_PER_MP_LIMB
translated french comments to english
1 -> BITS_PER_MP_LIMB
added static to local functions
removed proto already in mpfr.h
1 -> MP_LIMB_T_ONE
added stdio.h
2001-11-15 Vincent Lefèvre <vincent@vinc17.net>
add.c -> add.c & add1.c
sub.c -> sub.c & sub1.c + some changes.
2001-11-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
iff the results are exact -> iff the result is exact
2001-11-10 Vincent Lefèvre <vincent@vinc17.net>
GNU coding style. K&R function headers removed.
MP_LIMB_T_ONE defined.
mp_size_unsigned_t defined.
Important bugs fixed (in particular when int has fewer than 32 bits).
Still unavoidable possible bugs due to the fact that mp_size_t is signed.
2001-11-09 David Daney <david.daney@inria.fr>
add tests file for gamma
add gamma function an other version
add gamma function
2001-11-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
mis a` jour valeur de retour de mpfr_tan
2001-11-09 Vincent Lefèvre <vincent@vinc17.net>
Some -'s missing in floating-point.
2001-11-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
modifs suite aux remarques de Nathalie
2001-11-08 David Daney <david.daney@inria.fr>
remove some name of variables
2001-11-08 Vincent Lefèvre <vincent@vinc17.net>
cmp2.c: Integer overflows checked.
Update.
Fix.
2001-11-08 David Daney <david.daney@inria.fr>
suppress variable name in dim min max
export isinteger in the file isinteger.c
exporte pow_si from pow2.c to pow_si.c
rename pow2.c in pow.c (source for mpfr_pow)
add ui_pow_ui.c (initially in pow.c)
add pow_ui.c file (initially in pow.c)
2001-11-08 Vincent Lefèvre <vincent@vinc17.net>
mpfr_cmp2: return type changed to mp_prec_t.
2001-11-08 David Daney <david.daney@inria.fr>
add function test4 for 3 input test + fma tests
2001-11-08 Vincent Lefèvre <vincent@vinc17.net>
Macros added.
MP_LIMB_T_MAX instead of (mp_limb_t) -1 (a little nicer...).
2001-11-06 Vincent Lefèvre <vincent@vinc17.net>
Code clean-up.
2001-11-05 Vincent Lefèvre <vincent@vinc17.net>
Prototypes for K&R C.
mpfr_round_raw_generic prototype fixed.
2001-11-01 David Daney <david.daney@inria.fr>
clear xp for Nan Inf or 0 are returned
clear variable if an error is return
clear x for Nan inf 0 return
clear x for Nan Inf 0 return
clear te
2001-11-01 Vincent Lefèvre <vincent@vinc17.net>
Added prototype.
Bug fixed.
2001-11-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed MLK's
fixed MLK's in mpfr_isinteger
fixed MLK's
fixed missing mpfr_clear's
added missing mpfr_clear
added clear's in bug_ddefour
added mpfr_clear's
fixed MLK's
2001-10-31 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed MLK for Inf or Nan
fixed MLK in check_case_2
2001-10-31 David Daney <david.daney@inria.fr>
rename factorial -> fac_ui
2001-10-30 Fabrice Rouillier <Fabrice.Rouillier@inria.fr>
Change mpfr_<op>_mpz to mpfr_<op>_z
Change mpfr_<op>_mpq to mpfr_<op>_q
where <op> is mul,div,add,sub
2001-10-30 David Daney <david.daney@inria.fr>
correct factorial -> fac_ui in comments
rename tfactorial -> fac_ui
rename factorial -> fac_ui
2001-10-27 Vincent Lefèvre <vincent@vinc17.net>
Bug fixed.
2001-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
drand -> drand48
put MAX_PREC back to 100
added test for inexact flag
use MPFR_RET_NAN and MPFR_RET
removed MPFR_DEBUG_LEVEL definition
mpfr_set_q and mpfr_abs now return an int
mpfr_pow_ui and mpfr_ui_pow_ui now implement exact rounding
updated the documentation of the mpfr_*pow* functions
removed some internal functions
implemented exact rounding (but no ternary flag)
2001-10-26 David Daney <david.daney@inria.fr>
add some flags
mixed version between DD and Pau => (gestion des flag inexacte dirige)
rien
2001-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
MAX_PREC included
implemented inexact flag
2001-10-26 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Clearing high part of rem2.
2001-10-26 Fabrice Rouillier <Fabrice.Rouillier@inria.fr>
adds gmp_op.c
2001-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
mpfr_set_q now returns an int
added test for inexact flag
2001-10-26 Fabrice Rouillier <Fabrice.Rouillier@inria.fr>
Adds the file gmp_op.c containing the implementations of operations between
mpfr and mpz/mpq data
2001-10-26 David Daney <david.daney@inria.fr>
err <0 => is now tester
2001-10-26 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Patch for bits shifted out when the high word of the quotient is nonzero.
Induced error on inexact flag (and hence on rounding in some cases).
2001-10-26 David Daney <david.daney@inria.fr>
add copysign.c
2001-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added one test
2001-10-26 David Daney <david.daney@inria.fr>
simplify dim
add exact flag
err => long int
2001-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added one test
cosmetic changes
can_round return 0 for b=0
2001-10-26 David Daney <david.daney@inria.fr>
add thypot
add coopysign
add copysign
correct mp_prec_t err => long int
correst mp_prec_t err => long int
2001-10-26 Fabrice Rouillier <Fabrice.Rouillier@inria.fr>
Add multiplication/division/addition/subtraction by mpz and mpq
2001-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added two tests
fixed bug in generic tests (one more bit is needed to get an exact result)
fixed pb with exact results not detected (ck was < 0)
2001-10-26 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Rien.
Patch for the computation of the u_lo + r part of the remainder when u_lo = 0.
2001-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added test for inexact flag
fixed pbs with inexact flag
now mpfr_div and mpfr_ui_div return an int
implemented ternary flag in mpfr_ui_div
removed unnecessary CLEAR_FLAGS
used MPFR_RET_NAN
reduced number of tests
removed unnecessary CLEAR_FLAGS
improved mpfr_compare
fixed wrong function name for mpfr_log2
rewritten to implement ternary inexact flag
fixed generic test (pb with double rounding)
increased MAX_PREC
2001-10-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Changed the type of err from mp_prec_t (unsigned) to int.
Added tests for inexact flag.
Patch for even rounding.
2001-10-25 David Daney <david.daney@inria.fr>
rien
rien
2001-10-25 Vincent Lefèvre <vincent@vinc17.net>
Warning avoided.
2001-10-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added tfma
slong -> t
nouvelew version (without loop)
2001-10-25 David Daney <david.daney@inria.fr>
rien
rien
change
2001-10-25 Vincent Lefèvre <vincent@vinc17.net>
Bug fixed.
2001-10-25 David Daney <david.daney@inria.fr>
correct bugs with reuse
test for log2 log10 pow
2001-10-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
La division nouvelle est arrivee.
2001-10-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
ajoute' nouveau test
2001-10-25 Vincent Lefèvre <vincent@vinc17.net>
Bug fixed.
2001-10-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
round_raw, round_raw2 -> round_raw_generic. Macros to simulate previous
behaviour. Even rounding returns +- MPFR_EVEN_INEX.
2001-10-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed pb with mpfr_log10(a, a) with a=-Inf
added two tests
added one test
2001-10-25 David Daney <david.daney@inria.fr>
add log2 and log10
correction for reuse
coorection for reuse
2001-10-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
test file for testing exceptions
2001-10-25 Vincent Lefèvre <vincent@vinc17.net>
mpfr_add1 completely rewritten. Overflows are checked.
The ternary value should now be supported (but it hasn't been tested yet).
2001-10-25 David Daney <david.daney@inria.fr>
new version
2001-10-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added one test
add possibility to define a random function (default is mpfr_random)
to get random variables in specific ranges
now use tgeneric.c
added texceptions
documented exception mechanism (with Vincent Lefe`vre)
changed stupid test (was computing only 200!)
implemented inexact flag
1999 -> 2001
check overflow
added two tests
implemented overflow/underflow
2001-10-25 David Daney <david.daney@inria.fr>
correct atanh(INF)=INF exact
correct test inf for atanh
2001-10-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added warning for mpfr_set_d
2001-10-25 David Daney <david.daney@inria.fr>
correct bug in tests file (test of atanh for + or - Inf)
2001-10-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added tadd_ui (forgotten?)
added special test
fixed bug in rounding part when rounding towards 0 (infinite loop due to bn<an)
added one special test
2001-10-24 David Daney <david.daney@inria.fr>
correct the Nan case
add the function mpfr_dim
add function mpfr_min and mpfr_max
correct these tesats files
correct some bugs
2001-10-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added EXTRA_DIST= tgeneric.c
2001-10-24 David Daney <david.daney@inria.fr>
remove tfma
add tfma
acosh revue et corrige...+beau
2001-10-23 David Daney <david.daney@inria.fr>
add mpfr_log10
add log_base_10
add tlog_base_10
add test file for log_base_10 function
correct a bug in mpfr_log10 section
add help of log10 + fma
correct particular cases
improve the clear flags
correction dans l'entete
2001-10-21 Vincent Lefèvre <vincent@vinc17.net>
Some changes to avoid warnings.
Bug fixed (char -> int).
2001-10-19 Vincent Lefèvre <vincent@vinc17.net>
Update.
Bugs fixed concerning the "inexact" ternary value.
2001-10-19 David Daney <david.daney@inria.fr>
suppress thypot tgeneric
suppress sample
2001-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
void -> int as return value for mpfr_add_ui
added ternary flag
void -> int for mpfr_add and mpfr_add_ui
2001-10-19 David Daney <david.daney@inria.fr>
add test for hypot
add some test
add some functions
add some proto
add test file for pow
add the help for pow and pow_si
add the function pow and pow_si
2001-10-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added two tests for 0-c and c-0 with prec(c) > prec(a)
2001-10-19 Vincent Lefèvre <vincent@vinc17.net>
Removed #include <stdio.h>, "return 0;" replaced by "MPFR_RET(0);".
mpfr_add1 and mpfr_sub1 prototypes moved to mpfr-impl.h (to detect clashes).
Bug fix concerning the inexact ternary value in mpfr_sub.
mpfr_add now returns an int (inexact ternary value unsupported if true add).
Update.
Underflow/overflow check.
Documentation updated.
Comment added.
MPFR_RET(0) replaced by MPFR_RET_NAN.
Macro MPFR_RET_NAN.
2001-10-18 Vincent Lefèvre <vincent@vinc17.net>
Code clean-up in mpfr_round_raw (well... IMHO).
2001-10-18 David Daney <david.daney@inria.fr>
take in account of CHAR_BIT in ui_pow
2001-10-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
cast to mp_limb_t was missing
2001-10-18 Vincent Lefèvre <vincent@vinc17.net>
BITS_PER_CHAR replaced by the standard CHAR_BIT.
2001-10-18 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
*** empty log message ***
2001-10-18 David Daney <david.daney@inria.fr>
add test of ui_pow
add the help of ui_pow
add the function pow(unsign long int, mpfr_t)
2001-10-18 Vincent Lefèvre <vincent@vinc17.net>
Improved configure.in.
configure generated by Autoconf 2.52.
2001-10-18 David Daney <david.daney@inria.fr>
ajout du flag inexact
2001-10-18 Vincent Lefèvre <vincent@vinc17.net>
fixed and improved check for gmp.h/gmp-impl.h/config.h/gmp-mparam.h/longlong.h
and corresponding error message
2001-10-18 David Daney <david.daney@inria.fr>
add the help on log2
add the test file of the log2 (log in base 2)
ajout de log2 (log en base 2)
correst tanh(0)
2001-10-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added two more tests
wrong sign passed to mpfr_can_round (mp_limb_t may be unsigned)
2001-10-18 David Daney <david.daney@inria.fr>
correct a bug for sinh(Inf)
2001-10-17 David Daney <david.daney@inria.fr>
correct syntax of tanh.c
correct an error
correct few things
little patch for cosh
add the test function of expm1
add the test of the function log1p
add the function expm1
add the function log1p
add to mpfr.texi log1p and expm1
actualisation de exp2.c
actualisation de exp2
2001-10-17 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
New tests in tdiv.c.
New division in div.c, old one renamed in mpfr_div2. Remains to implement
exact/inexact flag. Should not be *that* hard.
2001-10-16 David Daney <david.daney@inria.fr>
ajout de functions pow, fma, hypot etc etc
2001-10-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added fma.c
added prototypes for mpfr_fma and mpfr_hypot
small changes for inexact flag
added some cases for Inf
implement (partly) inexact flag
2001-10-16 David Daney <david.daney@inria.fr>
ajout hypot
ajout de fma
2001-10-16 Vincent Lefèvre <vincent@vinc17.net>
Comment: // --> /* ... */
2001-10-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
generic test file
added cast to (void*) for new functions returning an int
added test for inexact flag
now use tgeneric.c
added more tests
now use tgeneric.c
fixed test of return values for infinities: foo(+/-Inf) is *exact*
now also try with negative numbers
implement ternary inexact flag
implement inexact flag
return type is now int for mpfr_mul_2exp and mpfr_div_2exp
return type is now int for more functions
sign was not set
rewritten completely mpfr_can_round_raw
documented mpfr_set4
return non-zero if malloc failed
cosmetic changes
implement ternary inexact flag
avoid one variable
2001-10-12 David Daney <david.daney@inria.fr>
correction d'erreurs sur les notations + correction de la regle 9
2001-10-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed MPFR_ASSERT
documented MPFR_ASSERTN and MPFR_ASSERTD
added test for mpfr_init_set_f prototype
added test for inexact flag
corrected a wrong test
cosmetic change
added tsub_ui (did exist but forgotten in Makefile) and tset (new file)
test file for mpfr_set, initial version
void -> int as return value for several functions
and explained the ternary return value
implemented inexact flag
void -> int as return value for new functions implementing inexact flag
implemented inexact flag in mpfr_set_d
implemented inexact flag in mpfr_round
completely rewritten
computation of inexact flag now directly uses mpfr_round_raw
added 'if' in MPFR_ASSERT to avoid compiler warning
put initial value in variables which may be used without being initialized
updated things done, added Rounding section
2001-10-11 David Daney <david.daney@inria.fr>
ajout de log1p et expm1
2001-10-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
reduced number of random tests (took too much time)
added random tests for inexact flag
implemented inexact flag
added random tests for inexact flag
2001-10-11 David Daney <david.daney@inria.fr>
ajout du log generic et de fma
2001-10-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
inexact flag was wrong in some cases
added random tests for inexact flag
reduced number of loops per precision from 100 to 10
(test was too long)
improved check for gmp-impl.h/config.h/gmp-mparam.h/longlong.h
and corresponding error message
stack-alloc.h no longer needed (will be included in gmp-impl.h)
stack-alloc.h is no longer needed (will be included in gmp-impl.h)
2001-10-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added proof of rules
fixed buggy test
2001-10-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug for b + d where b=2^900+2^500+2^110, d=2^900-2^500-2^110
2001-10-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug in mpfr_set_d on 64-bit machines
2001-09-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed a few problems in mpfr_set_d for sizer < MPFR_LIMBS_PER_DOUBLE
added paper of Brent and McMillan
does not call compare_exp2_exp3 when argc=4
added one item
now mpfr_set_prec returns 1 instead of producing an error in case prec=0
2001-09-27 David Daney <david.daney@inria.fr>
New version with new generic function + / * etc
2001-09-20 Vincent Lefèvre <vincent@vinc17.net>
BUGS updated.
2001-09-13 Vincent Lefèvre <vincent@vinc17.net>
Prototype changes.
<strings.h> -> <string.h> (ISO C).
#include added.
#include added/removed.
GCC option -Wno-implicit removed and prototype added to mpfr-impl.h
2001-09-12 Vincent Lefèvre <vincent@vinc17.net>
INCLUDES in Makefile.am: -I$(top_srcdir) and @INCLUDES@ swapped.
This defines the following precedence for the tests:
1) MPFR directories
2) User-defined directory
3) GMP include directory
This allows the user to override the GMP longlong.h file with the
gcc-3 one, by using: INCLUDES="-I.../include" ./configure ...
#include order fixed.
Tests added (in particular, inex value).
Bug fixed.
2001-09-11 Vincent Lefèvre <vincent@vinc17.net>
MPFR_RET: definition changed to avoid warning.
Inexact ternary value for mpfr_set4, mpfr_set_ui and mpfr_set_si.
Macro SAFE_ABS.
Inexact ternary value and flag for mpfr_set_underflow, mpfr_set_overflow
and mpfr_check_range.
Macro MPFR_RET added. Ternary value for mpfr_set4.
New flags.
2001-09-10 Vincent Lefèvre <vincent@vinc17.net>
Parameter added to mpfr_round_raw: pointer to inexact ternary value.
2001-09-10 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Zqwiuyt
Zorgs.
Gleurbs.
Patch grotesque.
Patch for the case SIZE(r) < MPFR_LIMBS_PER_DOUBLE.
2001-09-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
test file for mpfr_tan
fixed a few typos
added mpfr_tan
added ttan
added the tangent
added tan.c
tangent function
2001-09-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed mpfr_sin and mpfr_cos (now separate implementations)
removed sin_cos
added sine and cosine
removed sin_cos, added sin and cos
removed mpfr_sin_cos
removed sin_cos, added sin and cos
removed tsin_cos, added tsin and tcos
test files for mpfr_cos and mpfr_sin
new implementation of mpfr_sin, using mpfr_cos
new (faster) implementation of mpfr_cos
2001-09-06 Vincent Lefèvre <vincent@vinc17.net>
Fix: flags set in mpfr_set_{under,over}flow().
Cases where the result is 0 fixed.
Integer overflow checked in mpfr_sub.
In add.c: use mpfr_cmp_abs instead of mpfr_cmp3; x - x fixed for GMP_RNDD.
Compare the absolute values of two nonzero FP numbers.
2001-09-05 Vincent Lefèvre <vincent@vinc17.net>
mpfr_cmp3 changed and integer overflows checked.
2001-09-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added efficiency item
2001-09-03 Vincent Lefèvre <vincent@vinc17.net>
Cases [+-]0 + [+-]0 fixed (depending on the rounding mode).
2001-08-29 Vincent Lefèvre <vincent@vinc17.net>
Optimization + overflow support.
Case +0 + -0 fixed.
2001-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added one test
another test from Norbert
another fix (final copy when xsize > ysize was wrong)
2001-08-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added several tests for case (1b)
another fix (previous one was incomplete)
added one more test (from Norbert)
2001-08-28 Vincent Lefèvre <vincent@vinc17.net>
Bug fixed.
Bug fixed and update to check the exponents.
2001-08-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added test for 53 <= xprec, yprec <= 128
added multiple tests for 53 <= xprec, yprec <= 128
was completely wrong for ysize > xsize
added faster formula in exp(-8*n) for Euler's constant
2001-08-25 Vincent Lefèvre <vincent@vinc17.net>
Assertion support with debug level.
Some support for exponent change and exceptions.
2001-08-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added constant ALPHA (for mpfr_const_euler)
added euler/teuler
added teuler
added euler.c
fixed pb with c2 = c2old << dif with dif negative
fixed bug for (2^53+4) - 1
added new test from Norbert Mueller
fixed pb: sh becomes "negative"
included Euler's constant
bibtex file for algorithms.tex
test file for mpfr_const_euler
computation of Euler's constant 0.577...
added missing prototype
mpfr_const_euler returns an int
added mpfr_const_euler
2001-08-22 Vincent Lefèvre <vincent@vinc17.net>
Tests added.
Bugs fixed (particular cases).
"mant(c) != 1/2" test was broken.
check fixed. Check added: 2^53 + 1 --> 2^53.
Update.
2001-08-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added one test
fixed stupid bug when dif < 0
2001-08-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added mpfr_asin
added missing cast
test file for mpfr_asin
arc-sine, contributed by Mathieu Dutour
added mpfr_asin
new name for file tarctan.c
renamed to tatan.c
renamed tarctan.c into tatan.c
added tasin.c
renamed arctan.c to atan.c
added asin.c
new name for file arctan.c
moved to atan.c
low significant bit is in ap[0] and not in ap[an-1] !!!
2001-08-13 Vincent Lefèvre <vincent@vinc17.net>
Cleaner MPFR_SET_SAME_SIGN.
Macros MPFR_SET_SAME_SIGN, MPFR_INIT and MPFR_INIT1 changed to expressions.
2001-08-10 Vincent Lefèvre <vincent@vinc17.net>
Bugs fixed (wrong types).
Macros mpfr_init_set_* changed to expressions.
Makefile.in update.
2001-07-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
edited wrt GNU style
fixed stupid bug: ceil(a/b) isn't (a+b-1)/a but simply a/b for a negative!
fixed array bound write (bn < an + cancel1 + 1)
macros MPFR_NOTZERO and MPFR_ISZERO did not work properly with 64-bit words
2001-06-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug for output base 2^k
added one test
added a section for the exponential
fixed bug when dividend is 0
2001-06-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
moved TMP_FREE
added 2 things
2001-06-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added mpfr.info to files to remove for "make distclean"
2001-06-23 Vincent Lefèvre <vincent@vinc17.net>
Non-existent C source references removed.
Macros MPFR_INIT and MPFR_INIT1 fixed.
2001-06-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
nested double TMP_DECL's
2001-06-14 David Daney <david.daney@inria.fr>
A few patches.
2001-06-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added mpfr_sin and mpfr_cos
corrected in the documentation some exact values
2001-06-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed 2 tabs
added change explaining the LGPL with non-free programs
2001-05-31 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Patch for the case b = 0 or c = 0.
2001-05-23 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Added DDefour's bug.
2001-05-22 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Patch in the case MPFR_PREC(b) > MPFR_PREC(a)+cancel.
2001-05-10 Vincent Lefèvre <vincent@vinc17.net>
fixed bug in mpfr.texi
2001-05-10 David Daney <david.daney@inria.fr>
correction du bug donne par vincent + ajout des aides des fonctions hyperbolic
2001-05-09 David Daney <david.daney@inria.fr>
*** empty log message ***
2001-04-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
log(0) now returns 0 (exact infinity)
2001-04-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed pbs with NaN/Inf
fixed new bug found by Nathalie Revol (case when add_one_ulp produces a carry)
added new bug found by Nathalie Revol
fixed bug for 1.0000... - 0.000001 for rounding up or nearest
2001-04-17 Nathalie Revol <Nathalie.Revol@inria.fr>
Case where argument < 0 included, NR 17-04-2001
2001-04-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added new (special) tests
test file for mpfr_sub
added tsub
2001-04-06 David Daney <david.daney@inria.fr>
change old exp2 (conflict with 2^x) to exp_2
2001-04-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
0 -> GMP_RNDN
check apart the case c=0 (otherwise some low significant limbs may be
non zero, which may produce a wrong result)
mpfr_exp2 -> mpfr_exp_2
mpfr_exp2 -> mpfr_exp_2
2001-04-05 David Daney <david.daney@inria.fr>
reactualise .h
change header
change reuse to suppress factorial
suppress of timing in makefile
add the old exp2 function and file renamed by exp_2
change makefile for new functions
change make file test for hyperbolic function exp2 and factorial
add new test file for hyperbolic function
add test file for new function
add function
new file function
new function file
2001-04-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
new version with cmp2.c
fixed pb with inexact flag when 'int' and 'mp_limb_t' has different sizes
2001-04-05 David Daney <david.daney@inria.fr>
fixed bug for mpfr_cmp_ui (Inf, 0)
fixed bug for mpfr_set_ui (x, 0) [was giving -0]
2001-04-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added algorithm for mpfr_cmp2
added cmp2.c
fixed bug when diff_exp >= BITS_PER_MP_LIMB
added new test for worst cases: 1 - 1/2^i and (1 + 1/2^i) - 1/2^i
changed return value of mpfr_cmp2
new file for mpfr_cmp2
moved mpfr_cmp2 to separate file cmp2.c
added several tests, and a routine that generates worst cases
two changes suggested by Kevin Ryde
2001-04-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
new version from new Makefile.am
2001-03-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added new test
fixed new bug in mpfr_cmp2 found by Fabrice
2001-03-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added new test
fixed bug found by Nathalie Revol
2001-03-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added 2 items
added test for mpfr_cmp_ui (-0, 0)
now prints -0 for -0
2001-03-19 Nathalie Revol <Nathalie.Revol@inria.fr>
Comparison between 0- and 0 now returns 0, NR 19-03-2001
2001-03-16 Vincent Lefèvre <vincent@vinc17.net>
added cast to avoid a warning
2001-03-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added tests for inexact return value
tiny bug in inexact value determination
mpfr_mul now returns an int
2001-03-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
description of algorithms
reorganized
2001-03-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added few things
added arc-tangent
added tarctan
added test to mpfr_arctan
added header
test file for mpfr_arctan
removed math.h
arctangent function (contributed by Mathieu Dutour, done slight changes)
added Mathieu Dutour in contributors
added mpfr_arctan
added one test
fixed bug in mpfr_can_round_raw, when err > bn*BITS_PER_MP_LIMB
now tset_str <number> <prec> is possible
2001-03-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug for Infinity (was testing zero before)
2001-03-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
replaced (mp_limb_t) 4294967295 by CNST_LIMB(0xFFFFFFFF)
2001-02-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
forgot to declare q in mpfr_get_d2 when BITS_PER_MP_LIMB=64
2001-02-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed fprintf() when unexpected end of string
added undef's to avoid warnings at compilation
2001-02-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed mpfr_set_machine_rnd_mode
2001-02-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed "int main(..)" to two lines
now initialize str_is_null correctly
added more tests
don't change MPFR_SIZE when allocated size is enough
updated specification of mpfr_sgn
changed definition of mpfr_sgn to get rid of MPFR_NOTZERO
size of freed block by __gmp_free_func was wrong
added tisnan and tget_d
fixed bug for Inf (recognized as an ordinary number)
new test file
2001-02-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
check overflow in _mpfr_ceil_exp2
2001-02-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added prototype for Ulp
changed _d to _p, added mpfr_number_p
changed MPN_COPY into MPN_COPY_INCR/MPN_COPY_DECR in mpfr_round_raw
added tests for one of arguments NULL
moved mpfr_sgn to mpfr.h (defined in manual)
use MPZ_REALLOC
added const to 2nd argument of mpfr_set_str
added set_ui.c
added cast to "unsigned long" for ai = ABS(i)
moved mpfr_set_ui to separate file
now when str==NULL return a block which is exactly strlen(str)+1 bytes long
fixed problems with old K&R compilers (_PROTO missing)
2001-02-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added more items
2001-01-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed ulp computation
2001-01-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed behaviour for "tlog N": prints only differences with increasing ulps
fixed pb in mpfr_get_d2 for 64-bit machines: in q + res/MP_BASE_AS_DOUBLE,
q seems first to be cast into a double, which gives more than one ulp of
error
2001-01-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added guard to prevent multiple inclusion
fixed bug in mpfr_cmp2 (found on the IA64)
2001-01-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added tests for 0 in mpfr_set_str_raw
fixed bug for +0000E0
incorporated changes from Kevin/Torbjorn for GMP 3.2
truncate the last uk (when the precision is not a power of 2)
_mp_allocate_func -> _gmp_allocate_func
_mp_reallocate_func -> _gmp_reallocate_func
__gmp_default_fp_bit_precision -> __mpfr_default_fp_bit_precision
_mp_xxx_func -> _gmp_xxx_func
removed mpfr_srandom
sprintf -> fprintf
_mp_free_func -> _gmp_free_func
_mp_reallocate_func -> __gmp_reallocate_func
added paragraph on NaN and infinities, docu on mpfr_nan_d and mpfr_inf_d
removed mpfr_srandom
some renamings
removed srandom
__gmp_default_fp_bit_precision -> __mpfr_default_fp_bit_precision
added protocols for mpfr_get_default_prec, mpfr_nan_d and mpfr_inf_d
removed superfluous TMP_FREE(marker)
_mp_xxx_func -> _gmp_xxx_func
_mp_free_func -> _gmp_free_func
functions to check for NaN and infinities
added isnan.c, removed srandom.h
added two items from Kevin
add 2 items
0.4 -> 1.0
2001-01-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added one test for large operands
fixed bug in _mpfr_ceil_exp2 (underflow when exp < -1022)
2000-12-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
remove what was done
added mpfr-test.h
added Vincent
1.1 -> 2001
cast for _mpfr_floor_log2 was on the wrong side
added one test
simplified _mpfr_floor_log2
code was wrong for infinity
only editing
added special() cases
removed #if 0 (on Alpha with cc the enclosed code was still used
since the # was not in the first column)
changes for version 1.1
added one test (exp2 vs exp3)
changed c from mp_limb_t into unsigned long in mpfr_exp2_aux2
(otherwise bugs on IRIX -n32)
added one test
fixed wrong combination of conditions for Infinity
added mpfr-test.h for MIPS
2000-12-22 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Modified macro calls
2000-12-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added cast (int) to random() to avoid warning on Solaris
added <string.h>
tiny change at the end of main routine (suggested by Guillaume)
added one test
added two more tests
fixed bug when c does not overlap with a, b is negative and GMP_RNDN
moved prototypes for mpfr_set4 and mpfr_cmp3 to mpfr.h
fixed bug in mpfr_cmp2 when d=0 and lots of bits match
updated for version 1.1
2000-12-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
test file for power functions
test file for in-place operations
unsigned char (or int) -> mp_rnd_t
unsigned char -> mp_rnd_t
unsigned int -> mp_rnd_t
k2r -> ansi style
removed #include <math.h> by defining auxiliary functions
fixed several tiny remaining bugs with NaN/Inf
updated description of mpfr_cmp* and mpfr_sin_cos
added MPFR_SIGN
added MPFR_CLEAR_NAN
MPFR_RESET_INF -> MPFR_CLEAR_INF
moved MPFR_SIGN to mpfr.h
added prototypes for log2/isqrt/cuberoot functions
added reuse, tcmp2, teq, tpow, trandom, ttrunc
removed isnan(), ...
removed gmp-impl.h, isnan(), ...
removed gmp-impl, isnan(), ...
removed cputime stuff
k&r -> ansi style
removed isnan() decl.
MINNORM -> mpfr-test.h
ulp -> mpfr-test.h
removed isnan() declaration
now use MINNORM and MAXNORM
max, min -> macros
added new tests
added MINNORM, MAXNORM, MIN, MAX, ABS
2000-12-20 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
A few basic patches.
Added support for PPC/Linux
Patch for wrong prototype.
Added prototypes for all test files.
2000-12-18 Vincent Lefèvre <vincent@vinc17.net>
Warnings suppressed on Alpha/OSF1.
2000-12-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added mpfr-test.h
back to 1.3
auxiliary test files
moved to main directory
auxiliary test functions
changed name of mpfr struct fields: _mp_d -> _mpfr_d
(to detect conflicts with mpf)
fixed a few problems in non-STDC headers
moved definitions of mpfr-impl.h to mpfr-test.h and created a real mpfr-impl.h
2000-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed tzeta
explained how to enter NaN/Inf with mpfr_set_str_raw
removed zeta.c
added 'to do' for NaN/Inf flags
clear NaN/Inf flags of result
improved indentation
adapted to NaN/Inf
nothing (only better indenting)
adapted to NaN/Inf
removed warnings
adapted to NaN/Inf
removed warnings
clear NaN/Inf flags in normal case
adapted to NaN/Inf
added prototype for mpfr_srandom
now uses directly mpn_random, to avoid all problems with include files
added 4 tests
_mp_d -> MPFR_MANT
added error message when memory allocation fails
added error message when memory allocation fails
_mp_d -> MPFR_MANT
0 -> NULL
added error message if memory allocation fails
_mp_d -> PTR
_mp_prec -> MPFR_PREC
_mp_d -> MPFR_MANT
added mpfr_swap
removed MPFR_SET_IS_FP (not used)
2000-12-15 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
A few patches.
2000-12-15 Vincent Lefèvre <vincent@vinc17.net>
MPFR_CHANGE_SIGN modified to avoid a possible side effect.
2000-12-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
warning: x is a MPF not a MPFR!
2000-12-15 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Modification of the order of includes in random.c
2000-12-15 Vincent Lefèvre <vincent@vinc17.net>
Added some warning flags for GCC.
2000-12-15 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Header file for srandom()
Patches for compiler warnings.
Yet another patch for include files.
Permutation of includes to avoid warnings due to careless multiple definition
of ULONG_MAX.
2000-12-14 Vincent Lefèvre <vincent@vinc17.net>
Bug fixed concerning the flags.
Bugs fixed (in case char is signed and accented characters are given).
Include "urandom.h". Old code removed.
Take into account Inf, Nans ; clear the flags of the return variable
in most function calls.
Use urandom().
Take into account Inf, Nans ; clear the flags of the return variable
in most function calls.
2000-12-14 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Yet another random patch.
Replaced random by rand.
2000-12-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed pb with mp_ptr vs mp_srcptr
2000-12-13 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Take into account Inf, Nans ; clear the flags of the return variable
in most function calls. Tests updated accordingly
Take into account Inf, Nans ; clear the flags of the return variable
in most function calls.
2000-12-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
check that we can round the cosine too
2000-12-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed TIMING stuff
ensures prec_x >= 0
we need m >= 2 in mpfr_exp2_aux2
forgot TMP_MARK(marker)
forgot TMP_MARK(marker) or free'd in wrong order
forgot TMP_MARK(marker)
fixed mpf_reldiff, mpf_urandomb and mpf_t
added stack-alloc.h when --disable-alloca
2000-12-11 Vincent Lefèvre <vincent@vinc17.net>
out_str.c: <string.h> included
set_d.c: (0./0.) instead of sqrt(-1) for NaN (doesn't need <math.h>)
set_d.c: () added for macros Infp and Infm
2000-12-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
shortened string in mpfr_set_str_raw which was greater than precision
replaced isnan/isinf/math.h (not portable, for example isinf does not exist
on Sparc) by new macros from mpfr.h
added an error message when the mantissa is larger than the precision
(in mpfr_set_str_raw)
added macros to recognize doubles that are NaNs and infinities
(isinf is not portable and requires math.h)
in case the destination precision is less than that of the operands,
and the 1st iteration fails, increase directly the precision to the maximum
of that of the operands, otherwise divisions by 1.0 may need lots of
iterations
added 'return' after dealing with infinities
added wish from JC Fauge`re
2000-12-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
mpfr_init/mpfr_init2 initialize to 0 (compatibility with mpf)
fixed bug in mpfr_cmp2 when return value is k*BITS_PER_MP_LIMB-1
added new test for mpfr_cmp2
now ABSSIZE uses only 29 bits
2000-12-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added some explanations how to free the memory space allocated by mpfr_get_str
fixed one bug found by N. Mueller (MPFR_ABSSIZE(u) was used instead of usize)
added one more test from N. Mueller
2000-12-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
cleaned calls to mpfr_extract
added new line
added error message when _mp_allocate_func returns 0
added header for mpfr_extract
- documented what function does
- cleaned code
- added header about license...
replaced log(2.0) by LOG2 [first step in getting rid of math.h]
added extern "C" { ... } for inclusion in C++
removed old KARATSUBA threshold for gmp 2.0.2
fixed bug in mpfr_cmp3 (when b=0, s not taken into account)
added swap/tswap
test file for new function mpfr_swap
added new function mpfr_swap
changed copyright to Free Software Foundation
added possible bug in mpfr_get_str
now all is in mpfr.h
return value was wrong for input non-zero (should return 1 = inexact)
fixed/improved doc. of mpfr_sin_cos and mpfr_urandomb
removed macro for mpfr_init_set_str_raw
added prototype for mpfr_sin_cos
sign of result was not correctly (re)set
added test to check sign of square root
2000-11-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
gained a factor of 2 in most cases (replaced initial constant factor=2
for additional bits for cos(x) by log(n))
added tsin_cos
fixed potential problem in mpfr_sub1 (k=0 and kc<0)
test file for sin/cos
2000-11-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
forgot cast to int before comparison between imax (can be negative) and an
returned value was one too small in case d=1
added new test from N. Mueller
added return for case of infinities
added macro MPFR_RESET_INF
don't forget to reset infinity flag if set!
fixed bug in mpfr_cmp2: wrong limb considered after cp[cn--] when
cp[cn] was not 111...111
fixed bug when imax>an
2000-11-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added macro MPFR_IS_ZERO
2000-11-21 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Infinis, premiere tentative (tests)
Infinis, premiere tentative.
2000-11-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added one remark from GH
removed mpfr_cmp2
2000-11-13 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Added support for Inf. Modified zeta.
2000-10-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
protection of macros done
shell-script to replace xxx by yyy in all source files
protected macros: xxx -> MPFR_xxx
protected all macros: xxx -> MPFR_xxx
2000-10-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fichier d'include pour mpfi.c
interval arithmetic level (1st version)
added two suggestions from Ben Hinkle
2000-10-19 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Bof.
Suppression de vieilleries.
1 << 31 -> ((unsigned int)1) << 31.
Correction de prototypes faux dans le cas ou on n'est pas -D__STDC__.
2000-10-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
malloc -> *_mp_allocate_func or TMP_ALLOC
mpfr_t -> mpfr_ptr or mpfr_srcptr
2000-09-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed -> all is in texp.c
added comparison between exp2 and exp3
take also the target precision into account for the guard bits
new faster version with O(n^(1/3)*M(n)) algorithm
adjusted exp2-exp3 threshold for new faster version of mpfr_exp2
added mpz_set_fr.c
added tdump
fixed pb for op=0 (added \0 at the end of string)
use strlen to determine memory to free
test file for mpfr_dump
removed karasqrt.c, added sqrtrem.c
kara_sqrtrem -> mpn_sqrtrem_new
now replaced by new code in sqrtrem.c
now uses new code mpn_sqrtrem_new
new version of fast MPN square root
(should be integrated in a future release of GNU MP)
2000-09-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added another example from N. Mueller
fixed another ABW bug
fixed two Array Bound Writes
fixed one Array Bound Read (to_nearest, bp=cp and k>=cn)
added 2 new tests from Norbert Mueller
2000-09-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added new test
fixed Array Bound Write
2000-09-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added some words about the inclusion of mpfr.h
we need to better protect macros
removed MPFR_OBJECTS (does not work)
added $(MPFR_OBJECTS) in libmpfr_a_LIBADD
added $(MPFR_OBJECTS) in libmpfr_a_DEPENDENCIES
added contributions from Emmanuel Jeandel and Thom Mulders
added Thom Mulders
routines for naive/fast short multiplication,
contributed by Thom Mulders (ETH Zu"rich)
2000-09-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added new test for overlapping x, y
fixed problem when x=y
2000-09-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added pb from Norbert Muller
fixed SEGV (mpn_lshift doesn't seem to like src_size=0)
now prints "failed" when test file doesn't return 0
2000-08-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
replaced mpn_divrem by mpn_tdiv_qr for gmp 3 or later
and avoid copy of one operand when possible
updated (make check, make install)
described each file
News for version 1.0
2000-08-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug for 0.9999999999...
added test for 0.99999999999999999
2000-08-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added mpfr_swap
now store last computed value together with last rounding mode
2000-08-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
target ps -> mpfr.ps
added $(srcdir) to trunc.c for sub-directory compilation
2000-08-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed some memory leaks
solved memory leaks with T[i] and qtoj[i]
updated (done autoconf, faster mpfr_exp, sin/cos)
updated for version 1.0
COPYING.LIB -> COPYING
renamed back (wanted for "make dist")
renamed back to COPYING (wanted for "make dist")
GNU Library General Public License
renamed to COPYING.LIB, according to mpfr.texi
result was free'd twice when good=1
put information about authors
PACKAGE and VERSION are not defined any more
gmp-mparam.h is required too
IRIX make does not recognize $< (MISCFLAGS)
do not define PACKAGE and VERSION in AM_INIT_AUTOMAKE,
this avoids conflicts with GMP 3.1 config.h
[thanks to Kevin Ryde]
updated for GMP 3.1
MP_BASE_AS_DOUBLE already defined in gmp-impl.h
nb_terms[0] was not initialized
fixed some FNH (free not in heap) problems for binary splitting method
(prec >= 30000)
gmp.info -> mpfr.info
set_dfl_rnd.* -> set_rnd.* (to avoid conflict with set_dfl_prec.* on DOS 8.3)
now automatically generated by configure
added if (__GNU_MP_VERSION < 3) for mpn_divrem_1-bug patch
set_dfl_rnd -> set_rnd
new name of set_dfl_rnd.c (avoids clash with set_dfl_prec.c on DOS 8.3)
renamed to set_rnd.c (otherwise truncates like set_dfl_prec.c on
a DOS 8.3 filesystem)
setfilename: gmp.info -> mpfr.info
replaced path for libmpfr.a by $(top_builddir)
test files are now in check_PROGRAMS instead of bin_PROGRAMS (they don't need
to be installed)
replaced back BITS_PER_MP_LIMB by mp_bits_per_limb
(not important in test files)
2000-08-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
replaced macros for mpfr_init_set_si by "do { ... } while (0)" so
they'll work in an if/else like
if (foo)
mpfr_init_set_si (f, -123, GMP_RNDN);
else
bar ();
[thanks to Kevin Ryde]
2000-08-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
replaced mp_bits_per_limb by BITS_PER_MP_LIMB (constant)
2000-08-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added mpf2mpfr.h
define check2 only with -DTEST
updated for new configure from Emmanuel Jeandel, to GMP 3.xxx
and removed errors with texinfo
solaris --> __sparc__
ifdef IRIX64 -> ifdef __mips
IRIX/make does not understand $< : expanded to trunc.c
use standard macro for Alpha
2000-07-13 Emmanuel Jeandel <emmanuel.jeandel@loria.fr>
autoconf options described
timestamp modified
timestamp changed
nothing to say
Timestamp
Small bug fixed
Timestamp modified ?
Timestamp modified
Nothing
New release
Bugs fixed
Bug fixed
sin_cos added
New algorithm, new wrapper
2000-07-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
replaced 0 by GMP_RNDN
fixed (hopefully) bug for 1/1 in precision 32, 64, ...
added test for 1/1 in precision 32 or 64
2000-07-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
use mpfr_print_rnd_mode now
2000-07-11 Emmanuel Jeandel <emmanuel.jeandel@loria.fr>
Bug Fixed, and installation guide made
Fixed bug
Bug Fixed with Solaris make
strings.h added
Deps included
Bug Fixed
Bug fixed
Bug Fixed
First Release
*** empty log message ***
First Release
First release
Added sin_cos
First Release
2000-06-29 Emmanuel Jeandel <emmanuel.jeandel@loria.fr>
Memory problems fixed
Memory Leaks Fixed
2000-06-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added prototype for mpfr_sub_ui
now use mpfr macros
be careful not to call mpn_sub_n/mpn_sub_1 with a size 0
fixed to free an entire number of limbs
test file for sub_ui
2000-06-28 Emmanuel Jeandel <emmanuel.jeandel@loria.fr>
mpfr_exp3 and mpfr_extract added to Makefile
First Release
2000-06-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
distinguish between mpfr failure and difference with sqrt()
ensures random numbers given to sqrt() are positive
adapted for freebsd
modified drand to avoid false NaNs (makes SEGV under FreeBSD)
added entry for FreeBSD, removed -pedantic option
added one test
added new tests
added prototype for mpfr_set_prec_raw
removed work done
fixed several bugs
merged different roundings in case diff_exp<PREC(a), dif<=PREC(c)
removed printf for argc=1
added one test
make ceil.o,floor.o,trunc.o depend on trunc.c
2000-06-20 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Various patches for leaks, UMR and (one) BUS.
2000-06-19 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
This patch suppresses a few mem leaks.
Suppressed memory leaks.
Patch for 1 << (BITS_PER_MP_LIMB - x) when x is 0 (produces inexact results
on PPCs).
2000-06-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
arguments of gmp_randinit were in wrong order
2000-06-16 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Patch in the case when n_bits is a multiple of 32.
2000-06-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added patch to get denorms on IRIX64
put instruction to get denormalized numbers on IRIX64 out of #ifdef TEST
fixed bug occurring on LinuxPPC (1 << 32)
added one test (bug on LinuxPPC)
added one test
fixed several problems
added more tests
2000-06-16 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Patches for the case where the precision is a multiple of the word size.
2000-06-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed another bug
added one test
added prototype for mpz_set_fr
improved choice of initial precision
added mpz_set_fr (conversion from mpfr to mpz)
added return type 'int' for main
2000-06-15 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Added TESTFLAGS to the main Makefile. Added ttrunc.
Minor patch (put to 0 the nonsignificant bits).
Added declaration of trunc, ceil, floor.
Tests for trunc, ceil, floor.
Added TESTFLAGS variable to the compile instruction, for use as
make "TESTFLAGS=-DTEST"
2000-06-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
1 -> (mp_limb_t) 1 [pb on 64-bit machines]
reduced number of tests to 1000
2000-06-15 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Display of statistics is only toggled if a number of tests to be performed
is given. Shameful hack, but is getopt really portable ?
Added trandom, teq
Added random2, urandomb
Added div_2exp to the (very rough) test.
Very basic statistical tests for random, random2, urandomb.
Patch for random (libc's random() is on 31 bits only)
Test for mpfr_eq.
Patch a few incoherences of eq.c wrt the manual + adapt to mpfr usual semantics
2000-06-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
header file providing cputime() function
test file comparing mpfr_exp and mpfr_exp2
O(n^(1/3)*log(n)) algorithm using Brent's method
and Brent-Kung's O(sqrt(t)) algorithm to evaluate
a power series of order t [exact rounding not yet finished]
2000-05-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug in mpfr_round (wrong sign)
fixed bug in mpfr_round: did not check allocated space was large enough
main -> int main
added #ifdef TEST: if not defined (default), then function
mpfr_set_machine_rnd_mode is not defined
added #ifdef TEST to disable comparison with machine arithmetic
by default (i.e. calls to mpfr_set_machine_rnd_mode)
removed longlong.h (not needed)
now deals with NaN
RND_MODE -> rnd_mode
mpfr_init is now a function (no more a macro)
printf -> fprintf
added mpfr_init as function
changed (x) -> x
fixed several typos
removed printf
2000-05-26 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added ifdef TEST
removed debug line
added one test
added 2 new tests
little change
more changes
added ifdef TEST
does not use machine rounding mode any more
added 7 new tests
fixed typo in printf format
fixed several rounding problems
rewritten case dif<=0 and PREC(b)>PREC(a) (merged all roundings)
removed DEBUG, VERBOSE ifdef's
fixed (hopefully) the case dif<=0, PREC(b)>PREC(a), directed rounding
replaced (mp_limb_t)1 by macro ONE
fixed bug for GMP_RNDN with overlap=1
removed misplaced comment
added one test
does not use rnd_mode.c by default
removed unused label
fixed more tiny bugs
2000-05-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
use mpfr_print_rnd_mode now
added one test
added more tests
removed TMP_ALLOC stuff
fixed new bug when a <- b - c with tiny c
fixed bug in a <- b-c when c very small but does not overlap with a
removed 'inline' (does not compile on Alpha with gcc 2.8.1)
added include file unistd.h
fixed warning with long arguments
initial version
added tests for mpfr_set_str
now returns 0 if all works
changed to return the error in ulps
added new functions mpfr_set_str and mpfr_inp_str
added prototypes for set_str, inp_str
changed return value for mpfr*pow*
separated functions with/without rounding argument
added tabs
added set_str.o and inp_str.o
2000-05-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
initial version
added rule for sub_ui.o
use only one file (trunc.c) for ceil, floor, trunc
now use trunc.c for all 3 functions (ceil, floor, trunc)
added ifdef to avoid warning at compilation
removed unused variable
fixed output type for mpfr_ui_div
removed 3rd argument (use PREC(rop) instead)
added include longlong.h
stupid typo: ABSSIZE -> ABSSIZE(x)
change due to new semantics of mpfr_init_set* macros
now makes an error when precision too large wrt allocated space
added new implemented functions
- added macro for mpfr_sgn
- removed argument 'p' in mpfr_init_set* macros for compatibility with mpf
updated wrt new functions
added sub_ui
added new test files
new test files
added new tests
improved tests
new functions (compatibility with mpf)
added 4th arg (was missing in non-stdc def)
added new functions (compatibility with mpf)
added several prototypes
fixed remaining bug (case overlap=5, dif>0)
added add_ui, sqrt_ui, ui_div, ui_sub, reldiff
2000-05-21 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Compatibility mpf/mpfr, second part. Ceil, floor, trunc. Yet untested.
Include file for compatibility module mpf -> mpfr.
Compatibility with mpf. WARNING: THESE FUNCTIONS ARE UNTESTED IN THEIR PRESENT
FORM. THEY *DO* COMPILE HOWEVER.
2000-05-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed unused variables
removed ';'
added return
added calls to mpf[r]_clear, and rewrote to avoid memory leaks
added calls to free
corrected comment about field mp_size
2000-05-12 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added tests for negative numbers
added one test
fixed pb with rounding of negative numbers
2000-05-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added mpfr_abs
test file for mpfr_abs
added mpfr_abs (macro using mpfr_set4)
updated wrt done/new tasks
2000-05-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added two tests
split mpfr_init2 into mpfr_init and mpfr_set_prec
removed karadiv.o
replaced mpn_divrem_n by mpn_divrem (efficient in GMP 3.0)
not needed any more with GMP 3.0
removed mpn_divrem_n stuff, now that Burnikel/Ziegler algorithm is in GMP 3.0
added one test
2000-05-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
completely rewritten (changed semantics)
initialized variable bh to avoid warning at compilation
added prototype for mpfr_set_default_rounding_mode
fixed pb in mpfr_cmp_ui_2exp for i=0
updated according to meeting from May 4, 2000
updated for AIX
updated for AIX (thanks to Gerardo Ballabio)
2000-05-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added one test
fixed bug found by G. Ballabio for b=0 and 0<c<1
added info for GMP2 vs GMP3
2000-04-19 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added -ffloat-store for Alpha/OSF
added cast to mp_limb_t (bug on Alpha in tadd with -O2)
added one test
removed #if 0
swapped gmp-impl.h and longlong.h for GMP 3.0
2000-04-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added more tests
fixed pb when target precision is less than integer length
fixed problem not solved so far, i.e. when adding round bit
produces a change of exponent
2000-04-13 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed computation of ulps
removed variable xrw in mpfr_round_raw (not used)
replaced 1st my by my+sh in mpfr_round_raw call
added 2 more tests
2000-04-13 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Correction d'un bug quand le carry contient tous les bits significatifs.
2000-02-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
improved indentation
mpfr_pi -> mpfr_const_pi
added one test
mpfr_pi -> mpfr_const_pi
use mpfr_cmp_ui instead of SIGN
mpfr_log2 -> mpfr_const_log2
added -O2 compilation flag
added set_q
convert rational (mpz_q) to floating-point (mpfr_t)
removed things which were done
unsigned char -> mp_rnd_t
SIGN -> MPFR_SIGN
use PREC() macro instead of _mp_prec, and corrected size to free
SIGN -> MPFR_SIGN
unsigned char -> mp_rnd_t
SIGN -> MPFR_SIGN
added non standard C header
unsigned char -> mp_rnd_t
unsigned long int -> mp_prec_t
renamed to mpfr_const_log2
unsigned char -> mp_rnd_t
unsigned char -> mp_rnd_t
SIGN -> MPFR_SIGN
unsigned long int -> mp_prec_t
unsigned char -> mp_rnd_t
unsigned long int -> mp_prec_t
unsigned char -> mp_rnd_t
renamed to mpfr_const_pi
unsigned char -> mp_rnd_t
unsigned char -> mp_rnd_t
added non standard C header
SIGN -> MPFR_SIGN
added non standard C header
unsigned char -> mp_rnd_t
SIGN -> MPFR_SIGN
unsigned long int -> mp_prec_t
unsigned char -> mp_rnd_t
SIGN -> MPFR_SIGN
unsigned long int -> mp_prec_t
har -> mp_rnd_t
changed rounding mode to mp_rnd_t
2000-02-04 Paul Zimmermann <Paul.Zimmermann@inria.fr>
now distinguish between true mpfr errors and possible errors from libm.a
now use print_rnd_mode
added suggestion from JP Merlet
added print_rnd_mode.c
added more tests
fixed bug(s) found by Jean-Pierre Merlet
changed prototype of mpfr_set_f (takes now only 3 arguments)
2000-02-03 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added karasqrt.o
added prototype for kara_sqrtrem
added redefinition of KARATSUBA_MUL_THRESHOLD (if not defined)
removed definition of LOG_MP_BITS_PER_LIMB (was not used)
changed return type to mp_size_t and included mpfr.h
moved definition of KARATSUBA_MUL_THRESHOLD (if not defined) to mpfr.h
implements Katatsuba square root
now use kara_sqrtrem instead of mpn_sqrtrem
fixed bug when high limb of quotient is zero
2000-02-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added one test [did fail on alpha]
added cast to mp_limb_t in front of 1<<sh
modified to be compatible with gmp-2.0.2
added further sqrt pb on alpha
swapped longlong.h and gmp-impl.h (pb on alpha)
added test for bug in sub.c found by JP Merlet on Solaris
fixed mpn_rshift which could have 0 as shift argument
(caused bug in exp on Solaris found by JP Merlet)
moved debug messages to stdout
2000-02-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added prototype for mpn_divrem_n (Burnikel-Ziegler algorithm)
use mpn_divrem_n (Burnikel-Ziegler algorithm) instead of mpn_divrem
when rsize=rrsize
added karadiv.c (to be removed when incorporated in GMP)
Burnikel-Ziegler division
2000-01-31 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added further examples from V. Lefe`vre
1999-12-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added macri VERSION for target dist
added new tests from V. Lefe`vre
improved interface: tdiv N for doing N random tests
added one test
DEBUG2 -> DEBUG
added debug instructions
fixed nasty bug in mpfr_cmp2 (case cc=1)
replaced printf by fprintf for error
1999-12-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added new tests for large input
fixed bug for large input
rewritten the error analysis:
- now analyzes the cancellation a posteriori
- takes into account errors from rounding and initial approximation
added tests from Vincent Lefe`vre
no warning any more for negative exponent (thanks to V. Lefe`vre)
1999-12-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug found by V. Lefe`vre (when n<0, we have to compute
an upper bound of log(2) instead of a lower bound)
added new test (bug found by V. Lefe`vre)
1999-12-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added suggestion from V. Lefe`vre
added several remarks from Vincent Lefe`vre
corrected many typos found by Vincent Lefe`vre
1999-11-27 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed executable rights
improved GMP link (thanks to Vincent Lefe`vre)
added pointer to Alpha-Linux f-p problems
removed executable right on file
1999-10-20 Paul Zimmermann <Paul.Zimmermann@inria.fr>
put back test for x=y
modified to avoid y=-0.0
modified test procedure to return 53 when x=y
mpfr_cmp2(b,c) now returns PREC(b) if b=c, even if c=0
added one test
added test under Cygwin
$make -> $MAKE
removed *rand48 prototypes (pb under Cygwin)
removed *rand48 prototypes
removed lrand48 prototype (pb under Cygwin)
added rounding instructions for Cygnus compiler under Windows
added dummy *rand48 functions for CYGWIN
added info about gmp-mparam.h
incorporated data for CYGWIN
1999-10-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added one test
added boundary cases from paper from Michael Parks
1999-10-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
now set sign correctly
added test to check sign is correctly set
added worst case for arg. reduction
fixed bug when initial approx. floor(x/log(2)) is too large
1999-10-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
now use macros for Linux case, and added ifdef for _ISOC9X_SOURCE
changed target dist to create archive in a directory
1999-10-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added targets doc and dist
added documentation and contact for problems
file for installation of mpfr
added more tests
now deal with 0 and fixed bug on 64-bit machine
moved to sqrt.c
now use directly mpn_sqrtrem (previously sqrt3.c)
updated prototypes of mpfr_div/mpfr_sqrt
removed div3 and sqrt3
div3 -> div
moved to div.c
replaced implementation using Goldschmidt's algorithm
by that using directly mpn_divrem (previously div3.c)
sqrt3 -> sqrt
GNU Library Public License
1999-08-31 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed printf statement
added ABS for SIZ(z) when z<0
removed special 'exact' stuff for n=0
fixed prototype of random
1999-07-30 Paul Zimmermann <Paul.Zimmermann@inria.fr>
replaced GNU MPFR by MPFR (not yet the GNU label)
added copyright notice
1999-07-09 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added one test with prec=160
error term is N+1 and not N
fixed bug in case sh=0
1999-07-08 Paul Zimmermann <Paul.Zimmermann@inria.fr>
completely rewritten mpfr_can_round_raw, which costs now O(1)
--- or more probably O(log n) --- instead of O(n)
1999-07-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed mpfr_init2 to mpfr_set_prec
added one test
added prototype for mpfr_add1
added mpfr_clear
1999-07-07 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
sqrt3 now returns an exact / inexact flag.
sqrt3 now returns an exact/inexact flag.
1999-07-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fix UMR (missing 0 terminating string)
put initialization of exponent back (avoids some UMRs)
fixed array bound write bug
added one test
added several tests, and does not print on stdout when no argument
fixed several bugs
1999-07-07 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Added an example which causes an ABW in mpz_get_str.
1999-07-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
moved drand to mpfr-impl.h and added test in large precision
added tout_str
1999-07-07 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Problem with the exponents in the destructive case.
1999-07-07 Paul Zimmermann <Paul.Zimmermann@inria.fr>
more changes from G. Hanrot
use now drand48 instead of drand
simply set to zero the non-significant bits, don't call mpfr_round_raw
upgrade from bug fixes from Guillaume Hanrot
stores now last computed value together with its rounding mode
checks now destructive version
1999-07-07 Sylvie Boldo <sylvie.boldo@inria.fr>
changes on random
using div3
using sqrt3
1999-07-06 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
HPUX support, 2nd try.
Patch for the (very seldom encountered) case of even rounding.
1999-07-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added def. for random/srandom, which do not exist under HPUX
store now computed values
_mpfr_log2_* -> __mpfr_log2_*
merged machine rounding instructions for Sun and HP
patch for HPUX (no random function)
added print_rnd_mode
fixed prototype of mpfr_print_rnd_mode
improved ulp to deal with case a=0.0
added return 0 to main
1999-07-06 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Forgotten casts.
Added sqrt3 + tentative support for Alpha linux.
The word added when the exponent is odd was sometimes uninitialized.
Initial version.
Added mpfr_sqrt3.
1999-07-06 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added several functions, and updated others
changed prototype of mpfr_log
returns now an int instead of void
removed initialization of exponent
special case for exp(0)
added test for exp(0)
1999-07-06 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
config.in -> ./config.in
1999-07-05 Sylvie Boldo <sylvie.boldo@inria.fr>
new, quick & clean
1999-07-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added two tests and converted to double's
1999-07-05 Sylvie Boldo <sylvie.boldo@inria.fr>
more checking ways
1999-07-05 Paul Zimmermann <Paul.Zimmermann@inria.fr>
distinguishes now between true errors and differences with libm.a
(which may fail too)
removed mpf stuff in check
added some mpfr_clear's
changed defs of random/srandom to work on Alpha
mpfr_init2 -> mpfr_set_prec in check64
added function dbl
added prototypes for mpfr_cmp3 and mpfr_set4
use mpfr_set4 now (no modification of const parameters any more)
return 0 in mpfr_can_round_raw
introduced auxiliary function mpfr_set4
fixed possible bug (testing sign of unsigned long) in mpfr_mul_ui
replaced PREC(r) by prec (which was defined but not used)
moved drand and ulp to mpfr-impl
moved ulp to mpfr-impl.h
and used input routine 'dbl' in some tests
modified one test to avoid rounding from double input routines
introduced auxiliary function mpfr_cmp3(x,y,sign) to compare x and sign*y
moved drand and ulp to mpfr-impl.h
mpfr_sub now calls directly mpfr_add1/mpfr_sub1 (no modification of
const parameters any more)
moved drand to mpfr-implh.h
use mpfr_cmp3 instead of mpfr_cmp (avoids warning due to modification of
const parameters)
moved drand to mpfr-impl.h and removed warnings
use the result of mpfr_can_round
moved drand and ulp to mpfr-impl.h
moved drand to mpfr-impl.h
moved drand to mpfr-impl and removed warnings
added include of math.h
moved drand and ulp to mpfr-impl.h
include file for mpfr developers only
long -> int in drand
adapted drand to sizeof(long)=64
config.in -> ./config.in (otherwise don't work under IRIX)
removed warnings
patch for GMP bug when UDIV_NEEDS_NORMALIZATION=1
1999-07-02 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Correction of a typo.
1999-07-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed horrible hack yp[-1]
1999-07-02 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Support of IRIX64 (n32/64 modes) plus cosmetic modifications.
1999-07-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added one test, and adapted to ANSI C
1999-07-02 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Yet Another Backslash Forgotten...
Bug le plus stupide de tous les temps corrige. Ca marchait sous Solaris...
1999-07-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added one test and removed warnings
1999-07-02 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Added mpfr_div3.
Added div3.c
1999-07-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug when sizeof(long) <> sizeof(mp_limb_t)
and removed DEBUG2 stuff
added one test, and removed warnings
1999-07-02 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Added div3.c, initial release.
Patch of the patch :)
Pattern matching rules in tests Makefile for non-GNU make (eg Solaris)
1999-07-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
adapted to enable denormalized numbers on IRIX64, added one test and
removed warnings
changed type of 3rd arg. 'neg' of mpfr_can_round_raw from char to int
(pb with signed char's on some machines, e.g. IRIX64)
adapted to IRIX64 (enable denorm. numbers) and removed warnings
adapted to IRIX64 (enable denormalized numbers) and removed warnings
adapted to IRIX64 (no denormalized by default) and removed warnings
unsigned long -> mp_limb_t
1999-07-02 Sylvie Boldo <sylvie.boldo@inria.fr>
unused variables
unused variable
1999-07-02 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added ifdef to avoid warning "unused variable" on 64-bit machine
added def. of swapRM to avoid warning on IRIX64
1UL -> ((mp_limb_t) 1)
changed type of mask to mp_limb_t in mpfr_round_raw2
adapted for denormalized on IRIX64
now test NaNs too
1999-07-01 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Due to the representation of 0 it might have happened that 0 != 0.
Patch mpfr_set -> MPN_COPY
Patch when prec < 32.
1999-07-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bugs for 64-bit machines
added casts to mp_limb_t
added cast to mp_limb_t for shifts
1999-07-01 Sylvie Boldo <sylvie.boldo@inria.fr>
prints nothing is everything is allright
memory gestion
one single bug
more bad cases
1999-07-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added some certified tests
added one test to check that 1*y = y
1999-07-01 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Patch of an MLK due to multiple initialization of the same variables without
freeing them in-between.
Same as in sqrt (allocation problem).
1999-07-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug due to shift=0 in mpn_rshift
1999-07-01 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
(Temporary) patch for memory gestion in sqrt.c
1999-07-01 Paul Zimmermann <Paul.Zimmermann@inria.fr>
mpfr_init -> mpfr_init2
initialize temporary variables with current precision
1999-06-30 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Unbelievably stupid bug fixed.
Two patches : one for an UMR which actually had no effect, one for an FNH in
old code..
1999-06-30 Sylvie Boldo <sylvie.boldo@inria.fr>
new bug
there were some conflicts
there were some conflicts
memory gestion
1999-06-29 Paul Zimmermann <Paul.Zimmermann@inria.fr>
replaced outputs by direct comparison when no argument
modified to do only certified test when no argument
modified to do only tests with precomputed values when no argument
does exact rounding only for n=0
1999-06-29 Jean-Luc Rémy <Jean-Luc.Remy@loria.fr>
added zeta/tzeta
added prototypes for mpfr_exp and mpfr_zeta
computes Riemann function Zeta(s)
first version: only works for s=2 with PREC(result)=53 and rnd_mode=nearest
test file for mpfr_zeta
added prototype for mpfr_set_default_prec
file renamed zeta.c
first version: computes Zeta(2) with fixed precision 53 bits and round
to nearest
1999-06-29 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Patch in the case when the number of bits is a multiple of the word size.
Patch in the case when the low words of the product are zero.
1999-06-28 Paul Zimmermann <Paul.Zimmermann@inria.fr>
changed arguments of mpfr_round_raw (continued)
changed arguments of mpfr_round_raw (now uses precision instead of size)
modified wrt warnings at compilation
modified description of mpfr_get_str for n_digits=0
now performs an exact output when n_digits=0
1999-06-28 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Yet another corrected prototype.
1999-06-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Prototypes et quelques causes de warnings corriges.
Modifs cosmetiques.
Fichier vide.
1999-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
do not print anything when no argument
use GMP allocate/free functions instead of malloc/free
do not print anything on stdout
put correctly sign with macro CHANGE_SIGN
1999-06-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Ajoute la dépendance de libmpfr.a pour le Makefile des tests.
1999-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
correctly handle case sizer=1 in mpfr_set_d
corrected allocated size in mpfr_round
make clean does not remove config.in any more
1999-06-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Correction d'un UMR en inversant le while (sans incidence tres probablement).
1999-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added four tests
adapted mpfr_set_d to case where allocated limbs > significant limbs
fixed bug for b=2^n and c very small
1999-06-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Some limbs of the result where not set to zero as they should.
1999-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added prototypes, and errors to stderr
binary file -> remove it
use PREC(x) instead of ABSSIZE(x) to get number of significant limbs
adapted to different numbers of significant limbs for x and y
fixed pbs with ABSSIZE(x) wrt PREC(x) in mpfr_round
added pointer to exponent, removed test with sprintf
removed DEBUG stuff
use PREC(x) instead of ABSSIZE(x) to get the number of significant limbs
do 10^6 tests if no argument
1999-06-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
J'avais oublie -g...
Ajoute des flags de paranoiaque schizophrene.
1999-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
now prints nothing with no argument
added texp and tdiv_ui
test file for div_ui, initial revision
commented out "avant arrondi..."
clear res1/res2
1999-06-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Patches an ABR.
Patch of an ABR.
Patch in the case n = 0.
Patch for a memory leak.
1999-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added two tests for exact roots
removed DEBUG stuff and fixed pb with exact root and GMP_RNDZ
1999-06-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Correction d'un ABR.
1999-06-25 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added test for prec=53 bits, removed output for argc==1
1999-06-25 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Initial revision.
1999-06-24 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Patched an Array Bound Read.
Corrected an Array Bound Read when all the bits are significative.
1999-06-24 Paul Zimmermann <Paul.Zimmermann@inria.fr>
i -> s in tests on mpfr_cmp_si
fixed pb in mpfr_cmp_si_2exp (case b=0 or i=0)
& -> &&
removed 3rd arg. of mpfr_set_prec
treats case b=c in mpfr_sub(a,b,c)
removed 3rd argument in mpfr_set_prec
reallocates only when more limbs are needed
removed 3rd arg. of mpfr_set_prec
added some mpfr_clear's that were missing
removed 3rd argument from mpfr_set_prec
removed 3rd argument of mpfr_set_prec
changed prototype of mpfr_set_prec (no rounding mode needed any more)
added test for case of missing exponent
and if one argument, print it as a double
fixed bug when exponent was missing (wrong result when part before
binary point is not zero)
added tests from JM Muller and V Lefevre
1999-06-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
corrected bad case in mpfr_can_round_raw where rnd1=GMP_RNDN
and err is a multiple of BITS_PER_MP_LIMB (was modifying an
extra limb perhaps not allocated)
1999-06-23 Sylvie Boldo <sylvie.boldo@inria.fr>
qq bugs d'arrondis
1999-06-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added exp and div_ui
added test of exp(Pi*sqrt(163)/3)-640320 [texp 0.0 prec]
test file for mpfr_exp, initial revision
added two tests
removed printf's and added one test for leading '+'
now allows leading '+'
1999-06-23 Sylvie Boldo <sylvie.boldo@inria.fr>
nettoye
1999-06-23 Paul Zimmermann <Paul.Zimmermann@inria.fr>
removed printf
removed printf's
added tests for large precision (tlog x prec rnd)
added test for exact division
mpfr_cmp -> mpfr_cmp2
removed printf, added exit on error
initial revision
cleaned local variables
changed prototype of mpfr_div (now returns int)
now deals correctly with exact division
removed DEBUG stuff
returns 0/1 according to exact division
1999-06-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug found by F. Rouillier: x * Z(2/x) -> 0 [carry from mpfr_round_raw]
1999-06-22 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Fill with 0 the part added in case of a larger reallocation.
Rajoute le bug report de Fabrice.
1999-06-22 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed bug in mpfr_can_round when prec or err are multiples of BITS_PER_MP_LIMB
added test to check sign of result
fixed bug: wrong sign when SIGN(a)<0 at beginning
1999-06-22 Sylvie Boldo <sylvie.boldo@inria.fr>
avec plein de cas d'erreurs
marche bien
Marche bien
1999-06-21 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Corrected prototype of mpfr_can_round_raw.
Various patches.
Added prototype for mpfr_can_round_raw
Added mpfr_can_round_raw ; mpfr_can_round just calls it.
Declaration mpfr_print_rnd_mode.c
print_rnd_mode.c -> mpfr_print_rnd_mode.c
Print the rounding mode.
Changement de semantique (plus d'arrondi) et alloc + free -> realloc.
1999-06-21 Paul Zimmermann <Paul.Zimmermann@inria.fr>
initial revision
added one test
now deal with carry from mpfr_round_raw
fixed problem with count_leading_zeros undefined for 0
store computed value and try to reuse it for next calls
added test cn>= in mpfr_cmp2
added mpfr_sub_one_ulp
1999-06-18 Sylvie Boldo <sylvie.boldo@inria.fr>
tests par rapport aux doubles
pour decouvrir les erreurs
version qui marche
1999-06-18 Paul Zimmermann <Paul.Zimmermann@inria.fr>
special cases NaN and 0
fixed a few errors
1999-06-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added tests for n=0 and d=0
added test for 0.0/1.0
SET_NAN(q) -> SET_NAN(Q)
added one exact root with rounding towards zero
added one test
added two tests
patch to detect exact roots (otherwise problem with rounding to zero)
changed way zero is represented : most sign. limb is zero
added special case for zero
special case for zero
special cases for NaN and zero
special case when one of the arguments is zero
added bug found by S. Boldo and fixed (pb in mpfr_round_raw2)
fixed bug in mpfr_round_raw2 which was returning other values than 0 or 1
1999-06-17 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Corrected a potential problem in add(a, a, a);
Corrected a potential problem in sub(a, a, a);
1999-06-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
SET_NAN(x) -> SET_NAN(X)
1999-06-17 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Patch in cmp2 for some dirty cases (2^a + 2^b <-> 2^a + z, z << 2^a, b << a)
1999-06-17 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added test to check bug found by JL Remy
added TMP_DECL/TMP_MARK/TMP_FREE in mpfr_sub1 to deal with case
where destination=source
1999-06-16 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Bug dans set_d(0) ; la mantisse n'est pas initialisee a 0 correctement.
Gere differemment les problemes d'egalite entre destinations et arguments.
Rajoute log.o et tlog
Vire fichier inutile.
1999-06-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added new tests
fixed bug for overlap=k*mp_bits_per_limb, k>=1
1999-06-16 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Vire Makefile de CVS.
Vire les Makefile de CVS.
1999-06-16 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added one test and random init.
added one test
added tests for cases where destination = source
cases NaN and destination=source
now iterates if one cannot round after 1st try,
and deals with case destination = source
mpfr_can_round again and again
added case of NaN
added macro SET_ZERO
now allows destination = source
1999-06-16 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Vire les tests de cvs.
1999-06-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
printf -> fprintf
error message when destination equals source (case not yet treated)
now uses the given rounding mode internally instead of always GMP_RNDZ
now rounding to nearest should be correct
1999-06-15 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Encore et toujours mpfr_can_round...
Nettoyage.
Patch pour mpfr_can_round.
1999-06-15 Sylvie Boldo <sylvie.boldo@inria.fr>
sans instructions de debuggage
rajout de log.o et tlog
rajout de tlog
ajout du log
*** empty log message ***
premiere version du log
1999-06-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
now recognizes division by exact power of 2
added mpfr_cmp_[us]i_2exp
added mpfr_[us]i_2exp
added mpfr_cmp_[us]i_2exp
1999-06-15 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Correction de bug (pas msb normalise).
1999-06-15 Paul Zimmermann <Paul.Zimmermann@inria.fr>
fixed mistake in error analysis (does not change code)
1999-06-15 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Ajout de random.o dans les objets.
random.c : engendre un mpfr_t dans [0, 1[. GH, 15/06
TODO : un random qui engendre un mpfr_t avec exposant gaussien centre.
1999-06-15 Jean-Luc Rémy <Jean-Luc.Remy@loria.fr>
changed return value to void
1999-06-14 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Ajoute les modes d'arrondi RNDN et RNDD.
Correction du prototype de mpfr_mul_ui
Correction du prototype de mpfr_mul_ui
1999-06-14 Sylvie Boldo <sylvie.boldo@inria.fr>
*** empty log message ***
1999-06-14 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added several files
added several prototypes
added set_z, add_one_ulp
added mpfr_get_d2 which only considers the mantissa
now uses mpfr_get_d2 (no side effect on arguments)
test file for mpfr_log2
test file for mpfr_set_z
test file for mpfr_pi
computes log(2)
add one ulp
set a mpfr from an integer
computes Pi to n bits
1999-06-14 Sylvie Boldo <sylvie.boldo@inria.fr>
*** empty log message ***
1999-06-11 Paul Zimmermann <Paul.Zimmermann@inria.fr>
Initial revision of mpfr documentation
1999-06-10 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
Patch d'un mpfr_set_d dans tsqrt.c ; GH, 100699
Patch d'un mpfr_set_d dans get_str.c ; GH, 100699
Tentative de configuration automatique, v. initiale. GH, 100699
1999-06-10 Sylvie Boldo <sylvie.boldo@inria.fr>
*** empty log message ***
1999-06-10 Paul Zimmermann <Paul.Zimmermann@inria.fr>
added tout_str
Initial revision.
added out_str.c and pow.c
added proto for mpfr_pow_ui and mpfr_ui_pow_ui
Initial revision.
added include <stdio.h> (needed for FILE in mpfr.h)
added proto for mpfr_out_str
function to print a mpfr to a stream. Initial revision.
changed proto of mpfr_get_str: 2nd arg is mp_exp_t*, not char*
now conforms to the specification
1999-06-09 Guillaume Hanrot <Guillaume.Hanrot@ens-lyon.fr>
tset_i -> tset_si dans le Makefile de tests.
Version corrigee de mmpfr.
Makefile qui devrait fonctionner pour tous.
Correction de warnings dans tmul_2exp.c
Initial revision
|