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
|
/* Test exact conversion to binary floating-point types of
floating-point contents expressed in decimal. PR 21718. */
/* { dg-do run } */
/* { dg-options "-w" } */
/* { dg-add-options ieee } */
/* For float (if IEEE binary32), double (if IEEE binary64) and long
double (if IEEE binary64, x86 extended or IEEE binary128) we test
half-way values and numbers close to those half-way values. */
#include <float.h>
#if FLT_EVAL_METHOD == 0 \
&& FLT_MANT_DIG == 24 \
&& FLT_MIN_EXP == -125 \
&& FLT_MAX_EXP == 128
# define FLT_OK
/* 0x0.8p-149 */
static const float f1ae = 0, f1be = 0, f1ce = 0x1p-149f;
static const float f1a =
7.0064923216240853546186479164495806564013097093825788587853\
4141944895541342930300743319094181060791015624999e-46f;
static const float f1b =
7.0064923216240853546186479164495806564013097093825788587853\
4141944895541342930300743319094181060791015625e-46f;
static const float f1c =
7.0064923216240853546186479164495806564013097093825788587853\
4141944895541342930300743319094181060791015625001e-46f;
/* 0x1.8p-149 */
static const float f2ae = 0x1p-149f, f2be = 0x2p-149f, f2ce = 0x2p-149f;
static const float f2a =
2.1019476964872256063855943749348741969203929128147736576356\
02425834686624028790902229957282543182373046874999e-45f;
static const float f2b =
2.1019476964872256063855943749348741969203929128147736576356\
02425834686624028790902229957282543182373046875e-45f;
static const float f2c =
2.1019476964872256063855943749348741969203929128147736576356\
02425834686624028790902229957282543182373046875001e-45f;
/* 0x1.000001p127 */
static const float f3ae = 0x1p127f, f3be = 0x1p127f, f3ce = 0x1.000002p127f;
static const float f3a =
1.70141193601674033557522515689509748735999e+38f;
static const float f3b =
1.70141193601674033557522515689509748736e+38f;
static const float f3c =
1.70141193601674033557522515689509748736001e+38f;
#endif
#if (FLT_EVAL_METHOD == 0 || FLT_EVAL_METHOD == 1) \
&& DBL_MANT_DIG == 53 \
&& DBL_MIN_EXP == -1021 \
&& DBL_MAX_EXP == 1024
# define DBL_OK
/* 0x0.8p-1074 */
static const double d1ae = 0, d1be = 0, d1ce = 0x1p-1074;
static const double d1a =
2.4703282292062327208828439643411068618252990130716238221279\
284125033775363510437593264991818081799618989828234772285886\
546332835517796989819938739800539093906315035659515570226392\
290858392449105184435931802849936536152500319370457678249219\
365623669863658480757001585769269903706311928279558551332927\
834338409351978015531246597263579574622766465272827220056374\
006485499977096599470454020828166226237857393450736339007967\
761930577506740176324673600968951340535537458516661134223766\
678604162159680461914467291840300530057530849048765391711386\
591646239524912623653881879636239373280423891018672348497668\
235089863388587925628302755995657524455507255189313690836254\
779186948667994968324049705821028513185451396213837722826145\
437693412532098591327667236328124999e-324;
static const double d1b =
2.4703282292062327208828439643411068618252990130716238221279\
284125033775363510437593264991818081799618989828234772285886\
546332835517796989819938739800539093906315035659515570226392\
290858392449105184435931802849936536152500319370457678249219\
365623669863658480757001585769269903706311928279558551332927\
834338409351978015531246597263579574622766465272827220056374\
006485499977096599470454020828166226237857393450736339007967\
761930577506740176324673600968951340535537458516661134223766\
678604162159680461914467291840300530057530849048765391711386\
591646239524912623653881879636239373280423891018672348497668\
235089863388587925628302755995657524455507255189313690836254\
779186948667994968324049705821028513185451396213837722826145\
437693412532098591327667236328125e-324;
static const double d1c =
2.4703282292062327208828439643411068618252990130716238221279\
284125033775363510437593264991818081799618989828234772285886\
546332835517796989819938739800539093906315035659515570226392\
290858392449105184435931802849936536152500319370457678249219\
365623669863658480757001585769269903706311928279558551332927\
834338409351978015531246597263579574622766465272827220056374\
006485499977096599470454020828166226237857393450736339007967\
761930577506740176324673600968951340535537458516661134223766\
678604162159680461914467291840300530057530849048765391711386\
591646239524912623653881879636239373280423891018672348497668\
235089863388587925628302755995657524455507255189313690836254\
779186948667994968324049705821028513185451396213837722826145\
437693412532098591327667236328125001e-324;
/* 0x1.8p-1074 */
static const double d2ae = 0x1p-1074, d2be = 0x2p-1074, d2ce = 0x2p-1074;
static const double d2a =
7.4109846876186981626485318930233205854758970392148714663837\
852375101326090531312779794975454245398856969484704316857659\
638998506553390969459816219401617281718945106978546710679176\
872575177347315553307795408549809608457500958111373034747658\
096871009590975442271004757307809711118935784838675653998783\
503015228055934046593739791790738723868299395818481660169122\
019456499931289798411362062484498678713572180352209017023903\
285791732520220528974020802906854021606612375549983402671300\
035812486479041385743401875520901590172592547146296175134159\
774938718574737870961645638908718119841271673056017045493004\
705269590165763776884908267986972573366521765567941072508764\
337560846003984904972149117463085539556354188641513168478436\
313080237596295773983001708984374999e-324;
static const double d2b =
7.4109846876186981626485318930233205854758970392148714663837\
852375101326090531312779794975454245398856969484704316857659\
638998506553390969459816219401617281718945106978546710679176\
872575177347315553307795408549809608457500958111373034747658\
096871009590975442271004757307809711118935784838675653998783\
503015228055934046593739791790738723868299395818481660169122\
019456499931289798411362062484498678713572180352209017023903\
285791732520220528974020802906854021606612375549983402671300\
035812486479041385743401875520901590172592547146296175134159\
774938718574737870961645638908718119841271673056017045493004\
705269590165763776884908267986972573366521765567941072508764\
337560846003984904972149117463085539556354188641513168478436\
313080237596295773983001708984375e-324;
static const double d2c =
7.4109846876186981626485318930233205854758970392148714663837\
852375101326090531312779794975454245398856969484704316857659\
638998506553390969459816219401617281718945106978546710679176\
872575177347315553307795408549809608457500958111373034747658\
096871009590975442271004757307809711118935784838675653998783\
503015228055934046593739791790738723868299395818481660169122\
019456499931289798411362062484498678713572180352209017023903\
285791732520220528974020802906854021606612375549983402671300\
035812486479041385743401875520901590172592547146296175134159\
774938718574737870961645638908718119841271673056017045493004\
705269590165763776884908267986972573366521765567941072508764\
337560846003984904972149117463085539556354188641513168478436\
313080237596295773983001708984375001e-324;
/* 0x1.00000000000008p1023 */
static const double d3ae = 0x1p1023, d3be = 0x1p1023, d3ce = 0x1.0000000000001p1023;
static const double d3a =
8.9884656743115805365666807213050294962762414131308158973971\
342756154045415486693752413698006024096935349884403114202125\
541629105369684531108613657287705365884742938136589844238179\
474556051429647415148697857438797685859063890851407391008830\
874765563025951597582513936655578157348020066364210154316532\
161708031999e+307;
static const double d3b =
8.9884656743115805365666807213050294962762414131308158973971\
342756154045415486693752413698006024096935349884403114202125\
541629105369684531108613657287705365884742938136589844238179\
474556051429647415148697857438797685859063890851407391008830\
874765563025951597582513936655578157348020066364210154316532\
161708032e+307;
static const double d3c =
8.9884656743115805365666807213050294962762414131308158973971\
342756154045415486693752413698006024096935349884403114202125\
541629105369684531108613657287705365884742938136589844238179\
474556051429647415148697857438797685859063890851407391008830\
874765563025951597582513936655578157348020066364210154316532\
161708032001e+307;
#endif
#if LDBL_MANT_DIG == 53 \
&& LDBL_MIN_EXP == -1021 \
&& LDBL_MAX_EXP == 1024
# define LDBL_OK
/* 0x0.8p-1074 */
static const long double ld1ae = 0, ld1be = 0, ld1ce = 0x1p-1074L;
static const long double ld1a =
2.4703282292062327208828439643411068618252990130716238221279\
284125033775363510437593264991818081799618989828234772285886\
546332835517796989819938739800539093906315035659515570226392\
290858392449105184435931802849936536152500319370457678249219\
365623669863658480757001585769269903706311928279558551332927\
834338409351978015531246597263579574622766465272827220056374\
006485499977096599470454020828166226237857393450736339007967\
761930577506740176324673600968951340535537458516661134223766\
678604162159680461914467291840300530057530849048765391711386\
591646239524912623653881879636239373280423891018672348497668\
235089863388587925628302755995657524455507255189313690836254\
779186948667994968324049705821028513185451396213837722826145\
437693412532098591327667236328124999e-324L;
static const long double ld1b =
2.4703282292062327208828439643411068618252990130716238221279\
284125033775363510437593264991818081799618989828234772285886\
546332835517796989819938739800539093906315035659515570226392\
290858392449105184435931802849936536152500319370457678249219\
365623669863658480757001585769269903706311928279558551332927\
834338409351978015531246597263579574622766465272827220056374\
006485499977096599470454020828166226237857393450736339007967\
761930577506740176324673600968951340535537458516661134223766\
678604162159680461914467291840300530057530849048765391711386\
591646239524912623653881879636239373280423891018672348497668\
235089863388587925628302755995657524455507255189313690836254\
779186948667994968324049705821028513185451396213837722826145\
437693412532098591327667236328125e-324L;
static const long double ld1c =
2.4703282292062327208828439643411068618252990130716238221279\
284125033775363510437593264991818081799618989828234772285886\
546332835517796989819938739800539093906315035659515570226392\
290858392449105184435931802849936536152500319370457678249219\
365623669863658480757001585769269903706311928279558551332927\
834338409351978015531246597263579574622766465272827220056374\
006485499977096599470454020828166226237857393450736339007967\
761930577506740176324673600968951340535537458516661134223766\
678604162159680461914467291840300530057530849048765391711386\
591646239524912623653881879636239373280423891018672348497668\
235089863388587925628302755995657524455507255189313690836254\
779186948667994968324049705821028513185451396213837722826145\
437693412532098591327667236328125001e-324L;
/* 0x1.8p-1074 */
static const long double ld2ae = 0x1p-1074L, ld2be = 0x2p-1074L, ld2ce = 0x2p-1074L;
static const long double ld2a =
7.4109846876186981626485318930233205854758970392148714663837\
852375101326090531312779794975454245398856969484704316857659\
638998506553390969459816219401617281718945106978546710679176\
872575177347315553307795408549809608457500958111373034747658\
096871009590975442271004757307809711118935784838675653998783\
503015228055934046593739791790738723868299395818481660169122\
019456499931289798411362062484498678713572180352209017023903\
285791732520220528974020802906854021606612375549983402671300\
035812486479041385743401875520901590172592547146296175134159\
774938718574737870961645638908718119841271673056017045493004\
705269590165763776884908267986972573366521765567941072508764\
337560846003984904972149117463085539556354188641513168478436\
313080237596295773983001708984374999e-324L;
static const long double ld2b =
7.4109846876186981626485318930233205854758970392148714663837\
852375101326090531312779794975454245398856969484704316857659\
638998506553390969459816219401617281718945106978546710679176\
872575177347315553307795408549809608457500958111373034747658\
096871009590975442271004757307809711118935784838675653998783\
503015228055934046593739791790738723868299395818481660169122\
019456499931289798411362062484498678713572180352209017023903\
285791732520220528974020802906854021606612375549983402671300\
035812486479041385743401875520901590172592547146296175134159\
774938718574737870961645638908718119841271673056017045493004\
705269590165763776884908267986972573366521765567941072508764\
337560846003984904972149117463085539556354188641513168478436\
313080237596295773983001708984375e-324L;
static const long double ld2c =
7.4109846876186981626485318930233205854758970392148714663837\
852375101326090531312779794975454245398856969484704316857659\
638998506553390969459816219401617281718945106978546710679176\
872575177347315553307795408549809608457500958111373034747658\
096871009590975442271004757307809711118935784838675653998783\
503015228055934046593739791790738723868299395818481660169122\
019456499931289798411362062484498678713572180352209017023903\
285791732520220528974020802906854021606612375549983402671300\
035812486479041385743401875520901590172592547146296175134159\
774938718574737870961645638908718119841271673056017045493004\
705269590165763776884908267986972573366521765567941072508764\
337560846003984904972149117463085539556354188641513168478436\
313080237596295773983001708984375001e-324L;
/* 0x1.00000000000008p1023 */
static const long double ld3ae = 0x1p1023L, ld3be = 0x1p1023L, ld3ce = 0x1.0000000000001p1023L;
static const long double ld3a =
8.9884656743115805365666807213050294962762414131308158973971\
342756154045415486693752413698006024096935349884403114202125\
541629105369684531108613657287705365884742938136589844238179\
474556051429647415148697857438797685859063890851407391008830\
874765563025951597582513936655578157348020066364210154316532\
161708031999e+307L;
static const long double ld3b =
8.9884656743115805365666807213050294962762414131308158973971\
342756154045415486693752413698006024096935349884403114202125\
541629105369684531108613657287705365884742938136589844238179\
474556051429647415148697857438797685859063890851407391008830\
874765563025951597582513936655578157348020066364210154316532\
161708032e+307L;
static const long double ld3c =
8.9884656743115805365666807213050294962762414131308158973971\
342756154045415486693752413698006024096935349884403114202125\
541629105369684531108613657287705365884742938136589844238179\
474556051429647415148697857438797685859063890851407391008830\
874765563025951597582513936655578157348020066364210154316532\
161708032001e+307L;
#endif
#if LDBL_MANT_DIG == 64 \
&& LDBL_MIN_EXP == -16381 \
&& LDBL_MAX_EXP == 16384
# define LDBL_OK
/* 0x0.8p-16445 */
static const long double ld1ae = 0, ld1be = 0, ld1ce = 0x1p-16445L;
static const long double ld1a =
1.8225997659412373012642029668097099081995254078467816718604\
902435141858443166988684047803543129136025986236736736017655\
509834928163110160849867540377949045027419112905889658392846\
126319028167798783107812829917053644701598967767636342956203\
999770864055077592691915230273843577112246476529298591341071\
313110337661777304220340396298768698441131694859514066773321\
059786469060001083813361460161387168195154228027648977594276\
496061276605855817438145692314650177569263750801566422892936\
732834290416745265618525969943519916542939199731612507343012\
297331882934352282118173551211985973294301787840335672389913\
821098681464088756477802684228806339233239542587316254618680\
197563613907079766830481997222017010585267442240109888818022\
189543438116245170584546472752661417773021275082355242554950\
776248474101880875363872607989624146320823364146896124171892\
610744237622308266702265704492674694505399997330424978964704\
335411125839490463131661420668167686151828553033363555080508\
484934542727634080467233927879117726432283352324546435315312\
937809651095964197873430398662003709663353962932921239516263\
008572512558260093668527782388349282015308359304941505110445\
043762021191469060607078792635897736408141163554429972292873\
575169264387977130124003958599909776720759582995017519144111\
001778329839793855454688442046155253818724410472281602421363\
580613990749181808302947976045417884436271162664776148749463\
202753814797191206392480969096910387729527305862739806702349\
088455828380471306603628636563037414688265702108098430515297\
645997107159687247830496686980315376091511219227376708389862\
310190633134517040835432587726931910775044780329777051964574\
763119639404235797665922677433332402402817037657141926646502\
612388421085254756323737273178774331073924707711575555193153\
421957126062196520952920611871114861423032687425262323243276\
848595495133802591437804984986053892365334900647137137197585\
161954823956838391108748154877098567190695813394392779995887\
642254413740232692940887236351533691174492514884514265006822\
752026136435469700291628942927286843274959781329315250417360\
438115330104516894597449604875954147108010051910197388860417\
003307595774863477182911525109554542883460240867674794470854\
883815424039187014069246137704710366577005576311674384079810\
437206511282792194562503036151028910065418370565117488062226\
073975854919243439941741016447206284543777826080409075756028\
194465562812076645422284670475730922346454505830553174377950\
824178034708147037448871898963699023373821217419560423459358\
846127232531421552826545954362386431279626917642725181802754\
271134597856231805666129524101509582941585421888561296839474\
232056474112935379177434928227554149402642893913492062781246\
372611175305462271711931011635602039137701669573065960945871\
579420683440097179831368317352157202215160682058878025153007\
184185319863451652087375936651004559837502483808090613073982\
264685620351993519454344577635257452328683726988824705474397\
398247190812883071734743260426540123481791283782928972842466\
595210269414219040901793935553872090377394005932597887081359\
481915849178541128182923272843218513093012167744690818603663\
862691727272565325057703378827553284852502067686026850339624\
401046086817036618366842240024522042069888708534827471235203\
998932259309110942367856287784097166420437430118381247339347\
418156902369282431197735078016591613063918260343498992697002\
033186558413655576703389208301203552157755701852051877927864\
696515420369217703510602759815252574799728706795849558382877\
392016396900560101736741462690753991602263974212137632508984\
264559315540891383192361601189350414311358816980975697568561\
515680971830107704152657284552920241862730125888825702301035\
564615759615882010733764341109834449576907982406265803484111\
303615971297609065271517286111839839646343815364461776394273\
571391219315553915335300622295196577640884201524657614065743\
729121754460652975075990012786021662416077757235487562550381\
116824006014440438178253273174734436163638119532295383351135\
543170811596051785036366846773285937845231974424475418970517\
659179798069972876889488877627309887323737590814875050457317\
809625163713227973229002908003491739085115971899606986738405\
752463436186745107821032315480693516006251388789902053863235\
071957895722121876262598833823352290042576488238120724072267\
480348425637199003147760378463243043407534395221882144887315\
875876025907739792297575795373506429192468470170038312050500\
917665707583420927303790875332407805094505665159755210495266\
485594187244922216154283213688032393939401426499517609275128\
062067355172333120857796045387692492375534056470145301671359\
016602832469675123108598588424022216759334733452626330303791\
660952659036162827509451468771297954737165701921676834866994\
084496268491510599580714458155026746676860790028899722645883\
679435969902046442373108472951515492761911884847211825930115\
654927539118088350255959445076757398298893380662248358210075\
297702191186519614515280395341723177201383862827129721649638\
274531314762377778754560119397123180107310216608157141828379\
259328274508467371717057031104537750450228447941619684073375\
630517322006118640290925241602376256334414376495602911265450\
165889418372161719063670619610214632774542741157366426747861\
054811449449004970132668146607323502760146957586465275981090\
328336256381187450646030492071694516054712444513961269623339\
705411366337817643269316717217432478812002049894979925260411\
553651385384826214231392012841425936827944383266227115236029\
717393064659821056467446870597828757433936024422511537561864\
619865595955628070343780472634463916608440151554502790128417\
277259492437005696576453717387309605129939526661181496994297\
244693710437436581443653555343763817246961834486181294985455\
884981266421533438177271809310897035958260776218253097858601\
160643120653927024652834025146166356877731266566437231429061\
099807825113272551869352908241073955695854354852545370793609\
838167127357752579007490955536081388103461735071174567636929\
060824172375010035497010614957197713919909924635906503348016\
450952475530978921242656498701313530533991692867619886826204\
706468476070943378163577235406861262755114909606255628375659\
196050370661430148107216310635729360112021571291096278032076\
401092225373270173950575377792566872113768085940991929655824\
050914085013970861399015141010432835406337266746706727481946\
196898882472095111505210339933002505227334750020285673634670\
738458390159933494226851499935336922036551687169140582574153\
726872453800858360764892975201757027862632615130256075468549\
502839367841926212872731925042838691319757663382746471782087\
828988857978192483595747889021081459460627705275735868618724\
958783348362295106875556443770626864591972089881215465141073\
516646930158996569747675806719463602045230325049794904894739\
988312727573320971310488326486213061839843830003145873279435\
454121817918269218294901387830156432148142381592864575229119\
479029130050663564889172093067341444164942736885872753984012\
865743421266470861425283889134636885790293235727017788606167\
560012477186697069994213912998550931078617189790771376702549\
055361745205232419031423044366971378594392952093464046441667\
117613906203494872209149396518971207279263883566606774353236\
255473603377861613942239543893894460581170658088042083661404\
937465706659424639301296621963906278930754459296017486063079\
582024995485338893699574289806529424673393810217577605952909\
491283123179789154639057105774960699934999681018155749261864\
012821574480758746632022143860041252142846691648490809250856\
327057133540568617791625295314357533564192304930155735301757\
457531580062662693966772497728335047637869054460240023262262\
260698443946964564691259441706490611176164305693669515767804\
836460521205954731752583848846525153811934541997962775215961\
180346397456122329133421016560406277159258781706172834569862\
946953007793254152187010227976038449980797987728559041018441\
590564594738308310579014597893182017151615208050090318483536\
106249131918576316944251537092347119867433735046169725181104\
507590928834713669184230634083190791725243913641206256399101\
550966117564795555149420011152858441084271411289366093158722\
254752761637144762690747726313899449121995142565661043193165\
353010677613760383307839362361625628371456344409245507081913\
518237257141164239966660785903970075181826808229440731778746\
830751045427285945936163931997929399708401851740705527023711\
492262489476846435969872480702228386506357017948329114555484\
164760105906717855684788039081591713778852802032849601308169\
832017420608399347713424218434541771868442189843417628618330\
607429739733739437863581804003482214082370567967330530446020\
897773385726872912189813323094415093143437550397556262780011\
208941731420098754319961419532567861629590267320403217607660\
774125374101195389953895035347940170148097810952083736798564\
420421622607993390894450932047257403433908665884124601384175\
012387617430467934818665777122459487877479257747635172691688\
471574765285820096075133353869554987216398800026453207557923\
535966131756358352198875705382763163680830588056974671628368\
719411827591592806044707764658145625683998557872894583705117\
936257144994734815912058252772021032081682437093280526665192\
728869800954748014250481042845426151143544474372887617562791\
409866964806319608280819816846942058817381943129762034507591\
367065185343216917751414811188645979508942996964383255432999\
246119971295726296202396921903289017490293595312645036697141\
581149988784499288560584613793415358537364677872496224892098\
940856692342358755626519304557946447004033186014602147449599\
351317079758304444877174136521487256811625263467410007624215\
856145392339552689565690577293133060124853654497575571509576\
408069646196646757505249296126372820539234090564691695806544\
715766025588258581902342311480969412221466852421842650484494\
063894865891424563992751226230317059592413191308470146226366\
458233536657973376067140793776369412191789801225320255079444\
592709005698858098716107025188986428347407279053266600044521\
079987989879536957560131070100060050673537683871138182387904\
590837539252425985326631955455857258818756188063697492342550\
045277400125480079927908846850898283905756532829762950509886\
991675925213188409911532242068610889478326451513981115020992\
630395715520350039372702741107911736947893709538471200363740\
669304116845653259038102180504837110789645359520309929381266\
271463740502507456882882255788069710715770802338317704510793\
279398576163709512326095306022330346997717688118726634628650\
675984237916551201500684504118483305560295744746257951860545\
390826531622290588364837980034428055971370065573420370270905\
592141420051502465016793525150950140243606137664910359769114\
512792293426708006440346732679574519594848136194781488696994\
267355775509666977187349644291823026624985531726865131782364\
428380093055155988532106121916567178604128111080322761213573\
781334480667563871257352254033032675246444238637990062075058\
819854494711379915549313390179300091783493496822950479766923\
983305064901026858870340863556799948310622536592472509634484\
910640735459644047154918467543140024764605449756679450446473\
048922824617117723876384637412932380635306714345354710568410\
140587435077620501285599837051978855056335305570615129711860\
309387503970812843734718712815925040263182888714533431137355\
255722368962836390856001176889513153529416105504464217522618\
741534232432067776306691118141998014985541610448993152948945\
865983354717289054861249734477980864059509622993770525110616\
313865830823478927462500895844216364365499438449134659145333\
799994034010282254566331595018205841080487728993632798168070\
476921205941768965021887178681810499301253039335978279707627\
295287697256489961179958946847840431902105306618594831078534\
622089641993900896756734276531931450266972752637997248151974\
2277811246822238899767398834228515624999e-4951L;
static const long double ld1b =
1.8225997659412373012642029668097099081995254078467816718604\
902435141858443166988684047803543129136025986236736736017655\
509834928163110160849867540377949045027419112905889658392846\
126319028167798783107812829917053644701598967767636342956203\
999770864055077592691915230273843577112246476529298591341071\
313110337661777304220340396298768698441131694859514066773321\
059786469060001083813361460161387168195154228027648977594276\
496061276605855817438145692314650177569263750801566422892936\
732834290416745265618525969943519916542939199731612507343012\
297331882934352282118173551211985973294301787840335672389913\
821098681464088756477802684228806339233239542587316254618680\
197563613907079766830481997222017010585267442240109888818022\
189543438116245170584546472752661417773021275082355242554950\
776248474101880875363872607989624146320823364146896124171892\
610744237622308266702265704492674694505399997330424978964704\
335411125839490463131661420668167686151828553033363555080508\
484934542727634080467233927879117726432283352324546435315312\
937809651095964197873430398662003709663353962932921239516263\
008572512558260093668527782388349282015308359304941505110445\
043762021191469060607078792635897736408141163554429972292873\
575169264387977130124003958599909776720759582995017519144111\
001778329839793855454688442046155253818724410472281602421363\
580613990749181808302947976045417884436271162664776148749463\
202753814797191206392480969096910387729527305862739806702349\
088455828380471306603628636563037414688265702108098430515297\
645997107159687247830496686980315376091511219227376708389862\
310190633134517040835432587726931910775044780329777051964574\
763119639404235797665922677433332402402817037657141926646502\
612388421085254756323737273178774331073924707711575555193153\
421957126062196520952920611871114861423032687425262323243276\
848595495133802591437804984986053892365334900647137137197585\
161954823956838391108748154877098567190695813394392779995887\
642254413740232692940887236351533691174492514884514265006822\
752026136435469700291628942927286843274959781329315250417360\
438115330104516894597449604875954147108010051910197388860417\
003307595774863477182911525109554542883460240867674794470854\
883815424039187014069246137704710366577005576311674384079810\
437206511282792194562503036151028910065418370565117488062226\
073975854919243439941741016447206284543777826080409075756028\
194465562812076645422284670475730922346454505830553174377950\
824178034708147037448871898963699023373821217419560423459358\
846127232531421552826545954362386431279626917642725181802754\
271134597856231805666129524101509582941585421888561296839474\
232056474112935379177434928227554149402642893913492062781246\
372611175305462271711931011635602039137701669573065960945871\
579420683440097179831368317352157202215160682058878025153007\
184185319863451652087375936651004559837502483808090613073982\
264685620351993519454344577635257452328683726988824705474397\
398247190812883071734743260426540123481791283782928972842466\
595210269414219040901793935553872090377394005932597887081359\
481915849178541128182923272843218513093012167744690818603663\
862691727272565325057703378827553284852502067686026850339624\
401046086817036618366842240024522042069888708534827471235203\
998932259309110942367856287784097166420437430118381247339347\
418156902369282431197735078016591613063918260343498992697002\
033186558413655576703389208301203552157755701852051877927864\
696515420369217703510602759815252574799728706795849558382877\
392016396900560101736741462690753991602263974212137632508984\
264559315540891383192361601189350414311358816980975697568561\
515680971830107704152657284552920241862730125888825702301035\
564615759615882010733764341109834449576907982406265803484111\
303615971297609065271517286111839839646343815364461776394273\
571391219315553915335300622295196577640884201524657614065743\
729121754460652975075990012786021662416077757235487562550381\
116824006014440438178253273174734436163638119532295383351135\
543170811596051785036366846773285937845231974424475418970517\
659179798069972876889488877627309887323737590814875050457317\
809625163713227973229002908003491739085115971899606986738405\
752463436186745107821032315480693516006251388789902053863235\
071957895722121876262598833823352290042576488238120724072267\
480348425637199003147760378463243043407534395221882144887315\
875876025907739792297575795373506429192468470170038312050500\
917665707583420927303790875332407805094505665159755210495266\
485594187244922216154283213688032393939401426499517609275128\
062067355172333120857796045387692492375534056470145301671359\
016602832469675123108598588424022216759334733452626330303791\
660952659036162827509451468771297954737165701921676834866994\
084496268491510599580714458155026746676860790028899722645883\
679435969902046442373108472951515492761911884847211825930115\
654927539118088350255959445076757398298893380662248358210075\
297702191186519614515280395341723177201383862827129721649638\
274531314762377778754560119397123180107310216608157141828379\
259328274508467371717057031104537750450228447941619684073375\
630517322006118640290925241602376256334414376495602911265450\
165889418372161719063670619610214632774542741157366426747861\
054811449449004970132668146607323502760146957586465275981090\
328336256381187450646030492071694516054712444513961269623339\
705411366337817643269316717217432478812002049894979925260411\
553651385384826214231392012841425936827944383266227115236029\
717393064659821056467446870597828757433936024422511537561864\
619865595955628070343780472634463916608440151554502790128417\
277259492437005696576453717387309605129939526661181496994297\
244693710437436581443653555343763817246961834486181294985455\
884981266421533438177271809310897035958260776218253097858601\
160643120653927024652834025146166356877731266566437231429061\
099807825113272551869352908241073955695854354852545370793609\
838167127357752579007490955536081388103461735071174567636929\
060824172375010035497010614957197713919909924635906503348016\
450952475530978921242656498701313530533991692867619886826204\
706468476070943378163577235406861262755114909606255628375659\
196050370661430148107216310635729360112021571291096278032076\
401092225373270173950575377792566872113768085940991929655824\
050914085013970861399015141010432835406337266746706727481946\
196898882472095111505210339933002505227334750020285673634670\
738458390159933494226851499935336922036551687169140582574153\
726872453800858360764892975201757027862632615130256075468549\
502839367841926212872731925042838691319757663382746471782087\
828988857978192483595747889021081459460627705275735868618724\
958783348362295106875556443770626864591972089881215465141073\
516646930158996569747675806719463602045230325049794904894739\
988312727573320971310488326486213061839843830003145873279435\
454121817918269218294901387830156432148142381592864575229119\
479029130050663564889172093067341444164942736885872753984012\
865743421266470861425283889134636885790293235727017788606167\
560012477186697069994213912998550931078617189790771376702549\
055361745205232419031423044366971378594392952093464046441667\
117613906203494872209149396518971207279263883566606774353236\
255473603377861613942239543893894460581170658088042083661404\
937465706659424639301296621963906278930754459296017486063079\
582024995485338893699574289806529424673393810217577605952909\
491283123179789154639057105774960699934999681018155749261864\
012821574480758746632022143860041252142846691648490809250856\
327057133540568617791625295314357533564192304930155735301757\
457531580062662693966772497728335047637869054460240023262262\
260698443946964564691259441706490611176164305693669515767804\
836460521205954731752583848846525153811934541997962775215961\
180346397456122329133421016560406277159258781706172834569862\
946953007793254152187010227976038449980797987728559041018441\
590564594738308310579014597893182017151615208050090318483536\
106249131918576316944251537092347119867433735046169725181104\
507590928834713669184230634083190791725243913641206256399101\
550966117564795555149420011152858441084271411289366093158722\
254752761637144762690747726313899449121995142565661043193165\
353010677613760383307839362361625628371456344409245507081913\
518237257141164239966660785903970075181826808229440731778746\
830751045427285945936163931997929399708401851740705527023711\
492262489476846435969872480702228386506357017948329114555484\
164760105906717855684788039081591713778852802032849601308169\
832017420608399347713424218434541771868442189843417628618330\
607429739733739437863581804003482214082370567967330530446020\
897773385726872912189813323094415093143437550397556262780011\
208941731420098754319961419532567861629590267320403217607660\
774125374101195389953895035347940170148097810952083736798564\
420421622607993390894450932047257403433908665884124601384175\
012387617430467934818665777122459487877479257747635172691688\
471574765285820096075133353869554987216398800026453207557923\
535966131756358352198875705382763163680830588056974671628368\
719411827591592806044707764658145625683998557872894583705117\
936257144994734815912058252772021032081682437093280526665192\
728869800954748014250481042845426151143544474372887617562791\
409866964806319608280819816846942058817381943129762034507591\
367065185343216917751414811188645979508942996964383255432999\
246119971295726296202396921903289017490293595312645036697141\
581149988784499288560584613793415358537364677872496224892098\
940856692342358755626519304557946447004033186014602147449599\
351317079758304444877174136521487256811625263467410007624215\
856145392339552689565690577293133060124853654497575571509576\
408069646196646757505249296126372820539234090564691695806544\
715766025588258581902342311480969412221466852421842650484494\
063894865891424563992751226230317059592413191308470146226366\
458233536657973376067140793776369412191789801225320255079444\
592709005698858098716107025188986428347407279053266600044521\
079987989879536957560131070100060050673537683871138182387904\
590837539252425985326631955455857258818756188063697492342550\
045277400125480079927908846850898283905756532829762950509886\
991675925213188409911532242068610889478326451513981115020992\
630395715520350039372702741107911736947893709538471200363740\
669304116845653259038102180504837110789645359520309929381266\
271463740502507456882882255788069710715770802338317704510793\
279398576163709512326095306022330346997717688118726634628650\
675984237916551201500684504118483305560295744746257951860545\
390826531622290588364837980034428055971370065573420370270905\
592141420051502465016793525150950140243606137664910359769114\
512792293426708006440346732679574519594848136194781488696994\
267355775509666977187349644291823026624985531726865131782364\
428380093055155988532106121916567178604128111080322761213573\
781334480667563871257352254033032675246444238637990062075058\
819854494711379915549313390179300091783493496822950479766923\
983305064901026858870340863556799948310622536592472509634484\
910640735459644047154918467543140024764605449756679450446473\
048922824617117723876384637412932380635306714345354710568410\
140587435077620501285599837051978855056335305570615129711860\
309387503970812843734718712815925040263182888714533431137355\
255722368962836390856001176889513153529416105504464217522618\
741534232432067776306691118141998014985541610448993152948945\
865983354717289054861249734477980864059509622993770525110616\
313865830823478927462500895844216364365499438449134659145333\
799994034010282254566331595018205841080487728993632798168070\
476921205941768965021887178681810499301253039335978279707627\
295287697256489961179958946847840431902105306618594831078534\
622089641993900896756734276531931450266972752637997248151974\
2277811246822238899767398834228515625e-4951L;
static const long double ld1c =
1.8225997659412373012642029668097099081995254078467816718604\
902435141858443166988684047803543129136025986236736736017655\
509834928163110160849867540377949045027419112905889658392846\
126319028167798783107812829917053644701598967767636342956203\
999770864055077592691915230273843577112246476529298591341071\
313110337661777304220340396298768698441131694859514066773321\
059786469060001083813361460161387168195154228027648977594276\
496061276605855817438145692314650177569263750801566422892936\
732834290416745265618525969943519916542939199731612507343012\
297331882934352282118173551211985973294301787840335672389913\
821098681464088756477802684228806339233239542587316254618680\
197563613907079766830481997222017010585267442240109888818022\
189543438116245170584546472752661417773021275082355242554950\
776248474101880875363872607989624146320823364146896124171892\
610744237622308266702265704492674694505399997330424978964704\
335411125839490463131661420668167686151828553033363555080508\
484934542727634080467233927879117726432283352324546435315312\
937809651095964197873430398662003709663353962932921239516263\
008572512558260093668527782388349282015308359304941505110445\
043762021191469060607078792635897736408141163554429972292873\
575169264387977130124003958599909776720759582995017519144111\
001778329839793855454688442046155253818724410472281602421363\
580613990749181808302947976045417884436271162664776148749463\
202753814797191206392480969096910387729527305862739806702349\
088455828380471306603628636563037414688265702108098430515297\
645997107159687247830496686980315376091511219227376708389862\
310190633134517040835432587726931910775044780329777051964574\
763119639404235797665922677433332402402817037657141926646502\
612388421085254756323737273178774331073924707711575555193153\
421957126062196520952920611871114861423032687425262323243276\
848595495133802591437804984986053892365334900647137137197585\
161954823956838391108748154877098567190695813394392779995887\
642254413740232692940887236351533691174492514884514265006822\
752026136435469700291628942927286843274959781329315250417360\
438115330104516894597449604875954147108010051910197388860417\
003307595774863477182911525109554542883460240867674794470854\
883815424039187014069246137704710366577005576311674384079810\
437206511282792194562503036151028910065418370565117488062226\
073975854919243439941741016447206284543777826080409075756028\
194465562812076645422284670475730922346454505830553174377950\
824178034708147037448871898963699023373821217419560423459358\
846127232531421552826545954362386431279626917642725181802754\
271134597856231805666129524101509582941585421888561296839474\
232056474112935379177434928227554149402642893913492062781246\
372611175305462271711931011635602039137701669573065960945871\
579420683440097179831368317352157202215160682058878025153007\
184185319863451652087375936651004559837502483808090613073982\
264685620351993519454344577635257452328683726988824705474397\
398247190812883071734743260426540123481791283782928972842466\
595210269414219040901793935553872090377394005932597887081359\
481915849178541128182923272843218513093012167744690818603663\
862691727272565325057703378827553284852502067686026850339624\
401046086817036618366842240024522042069888708534827471235203\
998932259309110942367856287784097166420437430118381247339347\
418156902369282431197735078016591613063918260343498992697002\
033186558413655576703389208301203552157755701852051877927864\
696515420369217703510602759815252574799728706795849558382877\
392016396900560101736741462690753991602263974212137632508984\
264559315540891383192361601189350414311358816980975697568561\
515680971830107704152657284552920241862730125888825702301035\
564615759615882010733764341109834449576907982406265803484111\
303615971297609065271517286111839839646343815364461776394273\
571391219315553915335300622295196577640884201524657614065743\
729121754460652975075990012786021662416077757235487562550381\
116824006014440438178253273174734436163638119532295383351135\
543170811596051785036366846773285937845231974424475418970517\
659179798069972876889488877627309887323737590814875050457317\
809625163713227973229002908003491739085115971899606986738405\
752463436186745107821032315480693516006251388789902053863235\
071957895722121876262598833823352290042576488238120724072267\
480348425637199003147760378463243043407534395221882144887315\
875876025907739792297575795373506429192468470170038312050500\
917665707583420927303790875332407805094505665159755210495266\
485594187244922216154283213688032393939401426499517609275128\
062067355172333120857796045387692492375534056470145301671359\
016602832469675123108598588424022216759334733452626330303791\
660952659036162827509451468771297954737165701921676834866994\
084496268491510599580714458155026746676860790028899722645883\
679435969902046442373108472951515492761911884847211825930115\
654927539118088350255959445076757398298893380662248358210075\
297702191186519614515280395341723177201383862827129721649638\
274531314762377778754560119397123180107310216608157141828379\
259328274508467371717057031104537750450228447941619684073375\
630517322006118640290925241602376256334414376495602911265450\
165889418372161719063670619610214632774542741157366426747861\
054811449449004970132668146607323502760146957586465275981090\
328336256381187450646030492071694516054712444513961269623339\
705411366337817643269316717217432478812002049894979925260411\
553651385384826214231392012841425936827944383266227115236029\
717393064659821056467446870597828757433936024422511537561864\
619865595955628070343780472634463916608440151554502790128417\
277259492437005696576453717387309605129939526661181496994297\
244693710437436581443653555343763817246961834486181294985455\
884981266421533438177271809310897035958260776218253097858601\
160643120653927024652834025146166356877731266566437231429061\
099807825113272551869352908241073955695854354852545370793609\
838167127357752579007490955536081388103461735071174567636929\
060824172375010035497010614957197713919909924635906503348016\
450952475530978921242656498701313530533991692867619886826204\
706468476070943378163577235406861262755114909606255628375659\
196050370661430148107216310635729360112021571291096278032076\
401092225373270173950575377792566872113768085940991929655824\
050914085013970861399015141010432835406337266746706727481946\
196898882472095111505210339933002505227334750020285673634670\
738458390159933494226851499935336922036551687169140582574153\
726872453800858360764892975201757027862632615130256075468549\
502839367841926212872731925042838691319757663382746471782087\
828988857978192483595747889021081459460627705275735868618724\
958783348362295106875556443770626864591972089881215465141073\
516646930158996569747675806719463602045230325049794904894739\
988312727573320971310488326486213061839843830003145873279435\
454121817918269218294901387830156432148142381592864575229119\
479029130050663564889172093067341444164942736885872753984012\
865743421266470861425283889134636885790293235727017788606167\
560012477186697069994213912998550931078617189790771376702549\
055361745205232419031423044366971378594392952093464046441667\
117613906203494872209149396518971207279263883566606774353236\
255473603377861613942239543893894460581170658088042083661404\
937465706659424639301296621963906278930754459296017486063079\
582024995485338893699574289806529424673393810217577605952909\
491283123179789154639057105774960699934999681018155749261864\
012821574480758746632022143860041252142846691648490809250856\
327057133540568617791625295314357533564192304930155735301757\
457531580062662693966772497728335047637869054460240023262262\
260698443946964564691259441706490611176164305693669515767804\
836460521205954731752583848846525153811934541997962775215961\
180346397456122329133421016560406277159258781706172834569862\
946953007793254152187010227976038449980797987728559041018441\
590564594738308310579014597893182017151615208050090318483536\
106249131918576316944251537092347119867433735046169725181104\
507590928834713669184230634083190791725243913641206256399101\
550966117564795555149420011152858441084271411289366093158722\
254752761637144762690747726313899449121995142565661043193165\
353010677613760383307839362361625628371456344409245507081913\
518237257141164239966660785903970075181826808229440731778746\
830751045427285945936163931997929399708401851740705527023711\
492262489476846435969872480702228386506357017948329114555484\
164760105906717855684788039081591713778852802032849601308169\
832017420608399347713424218434541771868442189843417628618330\
607429739733739437863581804003482214082370567967330530446020\
897773385726872912189813323094415093143437550397556262780011\
208941731420098754319961419532567861629590267320403217607660\
774125374101195389953895035347940170148097810952083736798564\
420421622607993390894450932047257403433908665884124601384175\
012387617430467934818665777122459487877479257747635172691688\
471574765285820096075133353869554987216398800026453207557923\
535966131756358352198875705382763163680830588056974671628368\
719411827591592806044707764658145625683998557872894583705117\
936257144994734815912058252772021032081682437093280526665192\
728869800954748014250481042845426151143544474372887617562791\
409866964806319608280819816846942058817381943129762034507591\
367065185343216917751414811188645979508942996964383255432999\
246119971295726296202396921903289017490293595312645036697141\
581149988784499288560584613793415358537364677872496224892098\
940856692342358755626519304557946447004033186014602147449599\
351317079758304444877174136521487256811625263467410007624215\
856145392339552689565690577293133060124853654497575571509576\
408069646196646757505249296126372820539234090564691695806544\
715766025588258581902342311480969412221466852421842650484494\
063894865891424563992751226230317059592413191308470146226366\
458233536657973376067140793776369412191789801225320255079444\
592709005698858098716107025188986428347407279053266600044521\
079987989879536957560131070100060050673537683871138182387904\
590837539252425985326631955455857258818756188063697492342550\
045277400125480079927908846850898283905756532829762950509886\
991675925213188409911532242068610889478326451513981115020992\
630395715520350039372702741107911736947893709538471200363740\
669304116845653259038102180504837110789645359520309929381266\
271463740502507456882882255788069710715770802338317704510793\
279398576163709512326095306022330346997717688118726634628650\
675984237916551201500684504118483305560295744746257951860545\
390826531622290588364837980034428055971370065573420370270905\
592141420051502465016793525150950140243606137664910359769114\
512792293426708006440346732679574519594848136194781488696994\
267355775509666977187349644291823026624985531726865131782364\
428380093055155988532106121916567178604128111080322761213573\
781334480667563871257352254033032675246444238637990062075058\
819854494711379915549313390179300091783493496822950479766923\
983305064901026858870340863556799948310622536592472509634484\
910640735459644047154918467543140024764605449756679450446473\
048922824617117723876384637412932380635306714345354710568410\
140587435077620501285599837051978855056335305570615129711860\
309387503970812843734718712815925040263182888714533431137355\
255722368962836390856001176889513153529416105504464217522618\
741534232432067776306691118141998014985541610448993152948945\
865983354717289054861249734477980864059509622993770525110616\
313865830823478927462500895844216364365499438449134659145333\
799994034010282254566331595018205841080487728993632798168070\
476921205941768965021887178681810499301253039335978279707627\
295287697256489961179958946847840431902105306618594831078534\
622089641993900896756734276531931450266972752637997248151974\
2277811246822238899767398834228515625001e-4951L;
/* 0x1.8p-16445 */
static const long double ld2ae = 0x1p-16445L, ld2be = 0x2p-16445L, ld2ce = 0x2p-16445L;
static const long double ld2a =
5.4677992978237119037926089004291297245985762235403450155814\
707305425575329500966052143410629387408077958710210208052966\
529504784489330482549602621133847135082257338717668975178538\
378957084503396349323438489751160934104796903302909028868611\
999312592165232778075745690821530731336739429587895774023213\
939331012985331912661021188896306095323395084578542200319963\
179359407180003251440084380484161504585462684082946932782829\
488183829817567452314437076943950532707791252404699268678810\
198502871250235796855577909830559749628817599194837522029036\
891995648803056846354520653635957919882905363521007017169741\
463296044392266269433408052686419017699718627761948763856040\
592690841721239300491445991666051031755802326720329666454066\
568630314348735511753639418257984253319063825247065727664852\
328745422305642626091617823968872438962470092440688372515677\
832232712866924800106797113478024083516199991991274936894113\
006233377518471389394984262004503058455485659100090665241525\
454803628182902241401701783637353179296850056973639305945938\
813428953287892593620291195986011128990061888798763718548789\
025717537674780281005583347165047846045925077914824515331335\
131286063574407181821236377907693209224423490663289916878620\
725507793163931390372011875799729330162278748985052557432333\
005334989519381566364065326138465761456173231416844807264090\
741841972247545424908843928136253653308813487994328446248389\
608261444391573619177442907290731163188581917588219420107047\
265367485141413919810885909689112244064797106324295291545892\
937991321479061743491490060940946128274533657682130125169586\
930571899403551122506297763180795732325134340989331155893724\
289358918212707392997768032299997207208451112971425779939507\
837165263255764268971211819536322993221774123134726665579460\
265871378186589562858761835613344584269098062275786969729830\
545786485401407774313414954958161677096004701941411411592755\
485864471870515173326244464631295701572087440183178339987662\
926763241220698078822661709054601073523477544653542795020468\
256078409306409100874886828781860529824879343987945751252081\
314345990313550683792348814627862441324030155730592166581251\
009922787324590431548734575328663628650380722603024383412564\
651446272117561042207738413114131099731016728935023152239431\
311619533848376583687509108453086730196255111695352464186678\
221927564757730319825223049341618853631333478241227227268084\
583396688436229936266854011427192767039363517491659523133852\
472534104124441112346615696891097070121463652258681270378076\
538381697594264658479637863087159293838880752928175545408262\
813403793568695416998388572304528748824756265665683890518422\
696169422338806137532304784682662448207928681740476188343739\
117833525916386815135793034906806117413105008719197882837614\
738262050320291539494104952056471606645482046176634075459021\
552555959590354956262127809953013679512507451424271839221946\
794056861055980558363033732905772356986051180966474116423192\
194741572438649215204229781279620370445373851348786918527399\
785630808242657122705381806661616271132182017797793661244078\
445747547535623384548769818529655539279036503234072455810991\
588075181817695975173110136482659854557506203058080551018873\
203138260451109855100526720073566126209666125604482413705611\
996796777927332827103568863352291499261312290355143742018042\
254470707107847293593205234049774839191754781030496978091006\
099559675240966730110167624903610656473267105556155633783594\
089546261107653110531808279445757724399186120387548675148632\
176049190701680305210224388072261974806791922636412897526952\
793677946622674149577084803568051242934076450942927092705684\
547042915490323112457971853658760725588190377666477106903106\
693847278847646032201293023329503348730723947218797410452333\
910847913892827195814551858335519518939031446093385329182820\
714173657946661746005901866885589732922652604573972842197231\
187365263381958925227970038358064987248233271706462687651143\
350472018043321314534759819524203308490914358596886150053406\
629512434788155355109100540319857813535695923273426256911552\
977539394209918630668466632881929661971212772444625151371953\
428875491139683919687008724010475217255347915698820960215217\
257390308560235323463096946442080548018754166369706161589705\
215873687166365628787796501470056870127729464714362172216802\
441045276911597009443281135389729130222603185665646434661947\
627628077723219376892727386120519287577405410510114936151502\
752997122750262781911372625997223415283516995479265631485799\
456782561734766648462849641064097181818204279498552827825384\
186202065516999362573388136163077477126602169410435905014077\
049808497409025369325795765272066650278004200357878990911374\
982857977108488482528354406313893864211497105765030504600982\
253488805474531798742143374465080240030582370086699167937651\
038307909706139327119325418854546478285735654541635477790346\
964782617354265050767878335230272194896680141986745074630225\
893106573559558843545841186025169531604151588481389164948914\
823593944287133336263680358191369540321930649824471425485137\
777984823525402115151171093313613251350685343824859052220126\
891551966018355920872775724807128769003243129486808733796350\
497668255116485157191011858830643898323628223472099280243583\
164434348347014910398004439821970508280440872759395827943270\
985008769143562351938091476215083548164137333541883808870019\
116234099013452929807950151652297436436006149684939775781234\
660954156154478642694176038524277810483833149798681345708089\
152179193979463169402340611793486272301808073267534612685593\
859596787866884211031341417903391749825320454663508370385251\
831778477311017089729361152161928815389818579983544490982891\
734081131312309744330960666031291451740885503458543884956367\
654943799264600314531815427932691107874782328654759293575803\
481929361961781073958502075438499070633193799699311694287183\
299423475339817655608058724723221867087563064557636112380829\
514501382073257737022472866608244164310385205213523702910787\
182472517125030106491031844871593141759729773907719510044049\
352857426592936763727969496103940591601975078602859660478614\
119405428212830134490731706220583788265344728818766885126977\
588151111984290444321648931907188080336064713873288834096229\
203276676119810521851726133377700616341304257822975788967472\
152742255041912584197045423031298506219011800240120182445838\
590696647416285334515631019799007515682004250060857020904012\
215375170479800482680554499806010766109655061507421747722461\
180617361402575082294678925605271083587897845390768226405648\
508518103525778638618195775128516073959272990148239415346263\
486966573934577450787243667063244378381883115827207605856174\
876350045086885320626669331311880593775916269643646395423220\
549940790476989709243027420158390806135690975149384714684219\
964938182719962913931464979458639185519531490009437619838306\
362365453754807654884704163490469296444427144778593725687358\
437087390151990694667516279202024332494828210657618261952038\
597230263799412584275851667403910657370879707181053365818502\
680037431560091209982641738995652793235851569372314130107647\
166085235615697257094269133100914135783178856280392139325001\
352841718610484616627448189556913621837791650699820323059708\
766420810133584841826718631681683381743511974264126250984214\
812397119978273917903889865891718836792263377888052458189238\
746074986456016681098722869419588274020181430652732817858728\
473849369539367463917171317324882099804999043054467247785592\
038464723442276239896066431580123756428540074945472427752568\
981171400621705853374875885943072600692576914790467205905272\
372594740187988081900317493185005142913607163380720069786786\
782095331840893694073778325119471833528492917081008547303414\
509381563617864195257751546539575461435803625993888325647883\
541039192368366987400263049681218831477776345118518503709588\
840859023379762456561030683928115349942393963185677123055324\
771693784214924931737043793679546051454845624150270955450608\
318747395755728950832754611277041359602301205138509175543313\
522772786504141007552691902249572375175731740923618769197304\
652898352694386665448260033458575323252814233868098279476166\
764258284911434288072243178941698347365985427696983129579496\
059032032841281149923518087084876885114369033227736521245740\
554711771423492719899982357711910225545480424688322195336240\
492253136281857837808491795993788199125205555222116581071134\
476787468430539307909617442106685159519071053844987343666452\
494280317720153567054364117244775141336558406098548803924509\
496052261825198043140272655303625315605326569530252885854991\
822289219201218313590745412010446642247111703901991591338062\
693320157180618736569439969283245279430312651192668788340033\
626825194260296262959884258597703584888770801961209652822982\
322376122303586169861685106043820510444293432856251210395693\
261264867823980172683352796141772210301725997652373804152525\
037162852291403804455997331367378463632437773242905518075065\
414724295857460288225400061608664961649196400079359622673770\
607898395269075056596627116148289491042491764170924014885106\
158235482774778418134123293974436877051995673618683751115353\
808771434984204447736174758316063096245047311279841579995578\
186609402864244042751443128536278453430633423118662852688374\
229600894418958824842459450540826176452145829389286103522774\
101195556029650753254244433565937938526828990893149766298997\
738359913887178888607190765709867052470880785937935110091424\
743449966353497865681753841380246075612094033617488674676296\
822570077027076266879557913673839341012099558043806442348798\
053951239274913334631522409564461770434875790402230022872647\
568436177018658068697071731879399180374560963492726714528729\
224208938589940272515747888379118461617702271694075087419634\
147298076764775745707026934442908236664400557265527951453482\
191684597674273691978253678690951178777239573925410438679099\
374700609973920128201422381329108236575369403675960765238333\
778127017096574296148321075566959285042221837159799800133563\
239963969638610872680393210300180152020613051613414547163713\
772512617757277955979895866367571776456268564191092477027650\
135832200376440239783726540552694851717269598489288851529660\
975027775639565229734596726205832668434979354541943345062977\
891187146561050118118108223323735210843681128615413601091222\
007912350536959777114306541514511332368936078560929788143798\
814391221507522370648646767364209132147312407014953113532379\
838195728491128536978285918066991040993153064356179903885952\
027952713749653604502053512355449916680887234238773855581636\
172479594866871765094513940103284167914110196720261110812716\
776424260154507395050380575452850420730818412994731079307343\
538376880280124019321040198038723558784544408584344466090982\
802067326529000931562048932875469079874956595180595395347093\
285140279165467965596318365749701535812384333240968283640721\
344003442002691613772056762099098025739332715913970186225176\
459563484134139746647940170537900275350480490468851439300771\
949915194703080576611022590670399844931867609777417528903454\
731922206378932141464755402629420074293816349270038351339419\
146768473851353171629153912238797141905920143036064131705230\
421762305232861503856799511155936565169005916711845389135580\
928162511912438531204156138447775120789548666143600293412065\
767167106888509172568003530668539460588248316513392652567856\
224602697296203328920073354425994044956624831346979458846837\
597950064151867164583749203433942592178528868981311575331848\
941597492470436782387502687532649093096498315347403977436001\
399982102030846763698994785054617523241463186980898394504211\
430763617825306895065661536045431497903759118007934839122881\
885863091769469883539876840543521295706315919855784493235603\
866268925981702690270202829595794350800918257913991744455922\
6833433740466716699302196502685546874999e-4951L;
static const long double ld2b =
5.4677992978237119037926089004291297245985762235403450155814\
707305425575329500966052143410629387408077958710210208052966\
529504784489330482549602621133847135082257338717668975178538\
378957084503396349323438489751160934104796903302909028868611\
999312592165232778075745690821530731336739429587895774023213\
939331012985331912661021188896306095323395084578542200319963\
179359407180003251440084380484161504585462684082946932782829\
488183829817567452314437076943950532707791252404699268678810\
198502871250235796855577909830559749628817599194837522029036\
891995648803056846354520653635957919882905363521007017169741\
463296044392266269433408052686419017699718627761948763856040\
592690841721239300491445991666051031755802326720329666454066\
568630314348735511753639418257984253319063825247065727664852\
328745422305642626091617823968872438962470092440688372515677\
832232712866924800106797113478024083516199991991274936894113\
006233377518471389394984262004503058455485659100090665241525\
454803628182902241401701783637353179296850056973639305945938\
813428953287892593620291195986011128990061888798763718548789\
025717537674780281005583347165047846045925077914824515331335\
131286063574407181821236377907693209224423490663289916878620\
725507793163931390372011875799729330162278748985052557432333\
005334989519381566364065326138465761456173231416844807264090\
741841972247545424908843928136253653308813487994328446248389\
608261444391573619177442907290731163188581917588219420107047\
265367485141413919810885909689112244064797106324295291545892\
937991321479061743491490060940946128274533657682130125169586\
930571899403551122506297763180795732325134340989331155893724\
289358918212707392997768032299997207208451112971425779939507\
837165263255764268971211819536322993221774123134726665579460\
265871378186589562858761835613344584269098062275786969729830\
545786485401407774313414954958161677096004701941411411592755\
485864471870515173326244464631295701572087440183178339987662\
926763241220698078822661709054601073523477544653542795020468\
256078409306409100874886828781860529824879343987945751252081\
314345990313550683792348814627862441324030155730592166581251\
009922787324590431548734575328663628650380722603024383412564\
651446272117561042207738413114131099731016728935023152239431\
311619533848376583687509108453086730196255111695352464186678\
221927564757730319825223049341618853631333478241227227268084\
583396688436229936266854011427192767039363517491659523133852\
472534104124441112346615696891097070121463652258681270378076\
538381697594264658479637863087159293838880752928175545408262\
813403793568695416998388572304528748824756265665683890518422\
696169422338806137532304784682662448207928681740476188343739\
117833525916386815135793034906806117413105008719197882837614\
738262050320291539494104952056471606645482046176634075459021\
552555959590354956262127809953013679512507451424271839221946\
794056861055980558363033732905772356986051180966474116423192\
194741572438649215204229781279620370445373851348786918527399\
785630808242657122705381806661616271132182017797793661244078\
445747547535623384548769818529655539279036503234072455810991\
588075181817695975173110136482659854557506203058080551018873\
203138260451109855100526720073566126209666125604482413705611\
996796777927332827103568863352291499261312290355143742018042\
254470707107847293593205234049774839191754781030496978091006\
099559675240966730110167624903610656473267105556155633783594\
089546261107653110531808279445757724399186120387548675148632\
176049190701680305210224388072261974806791922636412897526952\
793677946622674149577084803568051242934076450942927092705684\
547042915490323112457971853658760725588190377666477106903106\
693847278847646032201293023329503348730723947218797410452333\
910847913892827195814551858335519518939031446093385329182820\
714173657946661746005901866885589732922652604573972842197231\
187365263381958925227970038358064987248233271706462687651143\
350472018043321314534759819524203308490914358596886150053406\
629512434788155355109100540319857813535695923273426256911552\
977539394209918630668466632881929661971212772444625151371953\
428875491139683919687008724010475217255347915698820960215217\
257390308560235323463096946442080548018754166369706161589705\
215873687166365628787796501470056870127729464714362172216802\
441045276911597009443281135389729130222603185665646434661947\
627628077723219376892727386120519287577405410510114936151502\
752997122750262781911372625997223415283516995479265631485799\
456782561734766648462849641064097181818204279498552827825384\
186202065516999362573388136163077477126602169410435905014077\
049808497409025369325795765272066650278004200357878990911374\
982857977108488482528354406313893864211497105765030504600982\
253488805474531798742143374465080240030582370086699167937651\
038307909706139327119325418854546478285735654541635477790346\
964782617354265050767878335230272194896680141986745074630225\
893106573559558843545841186025169531604151588481389164948914\
823593944287133336263680358191369540321930649824471425485137\
777984823525402115151171093313613251350685343824859052220126\
891551966018355920872775724807128769003243129486808733796350\
497668255116485157191011858830643898323628223472099280243583\
164434348347014910398004439821970508280440872759395827943270\
985008769143562351938091476215083548164137333541883808870019\
116234099013452929807950151652297436436006149684939775781234\
660954156154478642694176038524277810483833149798681345708089\
152179193979463169402340611793486272301808073267534612685593\
859596787866884211031341417903391749825320454663508370385251\
831778477311017089729361152161928815389818579983544490982891\
734081131312309744330960666031291451740885503458543884956367\
654943799264600314531815427932691107874782328654759293575803\
481929361961781073958502075438499070633193799699311694287183\
299423475339817655608058724723221867087563064557636112380829\
514501382073257737022472866608244164310385205213523702910787\
182472517125030106491031844871593141759729773907719510044049\
352857426592936763727969496103940591601975078602859660478614\
119405428212830134490731706220583788265344728818766885126977\
588151111984290444321648931907188080336064713873288834096229\
203276676119810521851726133377700616341304257822975788967472\
152742255041912584197045423031298506219011800240120182445838\
590696647416285334515631019799007515682004250060857020904012\
215375170479800482680554499806010766109655061507421747722461\
180617361402575082294678925605271083587897845390768226405648\
508518103525778638618195775128516073959272990148239415346263\
486966573934577450787243667063244378381883115827207605856174\
876350045086885320626669331311880593775916269643646395423220\
549940790476989709243027420158390806135690975149384714684219\
964938182719962913931464979458639185519531490009437619838306\
362365453754807654884704163490469296444427144778593725687358\
437087390151990694667516279202024332494828210657618261952038\
597230263799412584275851667403910657370879707181053365818502\
680037431560091209982641738995652793235851569372314130107647\
166085235615697257094269133100914135783178856280392139325001\
352841718610484616627448189556913621837791650699820323059708\
766420810133584841826718631681683381743511974264126250984214\
812397119978273917903889865891718836792263377888052458189238\
746074986456016681098722869419588274020181430652732817858728\
473849369539367463917171317324882099804999043054467247785592\
038464723442276239896066431580123756428540074945472427752568\
981171400621705853374875885943072600692576914790467205905272\
372594740187988081900317493185005142913607163380720069786786\
782095331840893694073778325119471833528492917081008547303414\
509381563617864195257751546539575461435803625993888325647883\
541039192368366987400263049681218831477776345118518503709588\
840859023379762456561030683928115349942393963185677123055324\
771693784214924931737043793679546051454845624150270955450608\
318747395755728950832754611277041359602301205138509175543313\
522772786504141007552691902249572375175731740923618769197304\
652898352694386665448260033458575323252814233868098279476166\
764258284911434288072243178941698347365985427696983129579496\
059032032841281149923518087084876885114369033227736521245740\
554711771423492719899982357711910225545480424688322195336240\
492253136281857837808491795993788199125205555222116581071134\
476787468430539307909617442106685159519071053844987343666452\
494280317720153567054364117244775141336558406098548803924509\
496052261825198043140272655303625315605326569530252885854991\
822289219201218313590745412010446642247111703901991591338062\
693320157180618736569439969283245279430312651192668788340033\
626825194260296262959884258597703584888770801961209652822982\
322376122303586169861685106043820510444293432856251210395693\
261264867823980172683352796141772210301725997652373804152525\
037162852291403804455997331367378463632437773242905518075065\
414724295857460288225400061608664961649196400079359622673770\
607898395269075056596627116148289491042491764170924014885106\
158235482774778418134123293974436877051995673618683751115353\
808771434984204447736174758316063096245047311279841579995578\
186609402864244042751443128536278453430633423118662852688374\
229600894418958824842459450540826176452145829389286103522774\
101195556029650753254244433565937938526828990893149766298997\
738359913887178888607190765709867052470880785937935110091424\
743449966353497865681753841380246075612094033617488674676296\
822570077027076266879557913673839341012099558043806442348798\
053951239274913334631522409564461770434875790402230022872647\
568436177018658068697071731879399180374560963492726714528729\
224208938589940272515747888379118461617702271694075087419634\
147298076764775745707026934442908236664400557265527951453482\
191684597674273691978253678690951178777239573925410438679099\
374700609973920128201422381329108236575369403675960765238333\
778127017096574296148321075566959285042221837159799800133563\
239963969638610872680393210300180152020613051613414547163713\
772512617757277955979895866367571776456268564191092477027650\
135832200376440239783726540552694851717269598489288851529660\
975027775639565229734596726205832668434979354541943345062977\
891187146561050118118108223323735210843681128615413601091222\
007912350536959777114306541514511332368936078560929788143798\
814391221507522370648646767364209132147312407014953113532379\
838195728491128536978285918066991040993153064356179903885952\
027952713749653604502053512355449916680887234238773855581636\
172479594866871765094513940103284167914110196720261110812716\
776424260154507395050380575452850420730818412994731079307343\
538376880280124019321040198038723558784544408584344466090982\
802067326529000931562048932875469079874956595180595395347093\
285140279165467965596318365749701535812384333240968283640721\
344003442002691613772056762099098025739332715913970186225176\
459563484134139746647940170537900275350480490468851439300771\
949915194703080576611022590670399844931867609777417528903454\
731922206378932141464755402629420074293816349270038351339419\
146768473851353171629153912238797141905920143036064131705230\
421762305232861503856799511155936565169005916711845389135580\
928162511912438531204156138447775120789548666143600293412065\
767167106888509172568003530668539460588248316513392652567856\
224602697296203328920073354425994044956624831346979458846837\
597950064151867164583749203433942592178528868981311575331848\
941597492470436782387502687532649093096498315347403977436001\
399982102030846763698994785054617523241463186980898394504211\
430763617825306895065661536045431497903759118007934839122881\
885863091769469883539876840543521295706315919855784493235603\
866268925981702690270202829595794350800918257913991744455922\
6833433740466716699302196502685546875e-4951L;
static const long double ld2c =
5.4677992978237119037926089004291297245985762235403450155814\
707305425575329500966052143410629387408077958710210208052966\
529504784489330482549602621133847135082257338717668975178538\
378957084503396349323438489751160934104796903302909028868611\
999312592165232778075745690821530731336739429587895774023213\
939331012985331912661021188896306095323395084578542200319963\
179359407180003251440084380484161504585462684082946932782829\
488183829817567452314437076943950532707791252404699268678810\
198502871250235796855577909830559749628817599194837522029036\
891995648803056846354520653635957919882905363521007017169741\
463296044392266269433408052686419017699718627761948763856040\
592690841721239300491445991666051031755802326720329666454066\
568630314348735511753639418257984253319063825247065727664852\
328745422305642626091617823968872438962470092440688372515677\
832232712866924800106797113478024083516199991991274936894113\
006233377518471389394984262004503058455485659100090665241525\
454803628182902241401701783637353179296850056973639305945938\
813428953287892593620291195986011128990061888798763718548789\
025717537674780281005583347165047846045925077914824515331335\
131286063574407181821236377907693209224423490663289916878620\
725507793163931390372011875799729330162278748985052557432333\
005334989519381566364065326138465761456173231416844807264090\
741841972247545424908843928136253653308813487994328446248389\
608261444391573619177442907290731163188581917588219420107047\
265367485141413919810885909689112244064797106324295291545892\
937991321479061743491490060940946128274533657682130125169586\
930571899403551122506297763180795732325134340989331155893724\
289358918212707392997768032299997207208451112971425779939507\
837165263255764268971211819536322993221774123134726665579460\
265871378186589562858761835613344584269098062275786969729830\
545786485401407774313414954958161677096004701941411411592755\
485864471870515173326244464631295701572087440183178339987662\
926763241220698078822661709054601073523477544653542795020468\
256078409306409100874886828781860529824879343987945751252081\
314345990313550683792348814627862441324030155730592166581251\
009922787324590431548734575328663628650380722603024383412564\
651446272117561042207738413114131099731016728935023152239431\
311619533848376583687509108453086730196255111695352464186678\
221927564757730319825223049341618853631333478241227227268084\
583396688436229936266854011427192767039363517491659523133852\
472534104124441112346615696891097070121463652258681270378076\
538381697594264658479637863087159293838880752928175545408262\
813403793568695416998388572304528748824756265665683890518422\
696169422338806137532304784682662448207928681740476188343739\
117833525916386815135793034906806117413105008719197882837614\
738262050320291539494104952056471606645482046176634075459021\
552555959590354956262127809953013679512507451424271839221946\
794056861055980558363033732905772356986051180966474116423192\
194741572438649215204229781279620370445373851348786918527399\
785630808242657122705381806661616271132182017797793661244078\
445747547535623384548769818529655539279036503234072455810991\
588075181817695975173110136482659854557506203058080551018873\
203138260451109855100526720073566126209666125604482413705611\
996796777927332827103568863352291499261312290355143742018042\
254470707107847293593205234049774839191754781030496978091006\
099559675240966730110167624903610656473267105556155633783594\
089546261107653110531808279445757724399186120387548675148632\
176049190701680305210224388072261974806791922636412897526952\
793677946622674149577084803568051242934076450942927092705684\
547042915490323112457971853658760725588190377666477106903106\
693847278847646032201293023329503348730723947218797410452333\
910847913892827195814551858335519518939031446093385329182820\
714173657946661746005901866885589732922652604573972842197231\
187365263381958925227970038358064987248233271706462687651143\
350472018043321314534759819524203308490914358596886150053406\
629512434788155355109100540319857813535695923273426256911552\
977539394209918630668466632881929661971212772444625151371953\
428875491139683919687008724010475217255347915698820960215217\
257390308560235323463096946442080548018754166369706161589705\
215873687166365628787796501470056870127729464714362172216802\
441045276911597009443281135389729130222603185665646434661947\
627628077723219376892727386120519287577405410510114936151502\
752997122750262781911372625997223415283516995479265631485799\
456782561734766648462849641064097181818204279498552827825384\
186202065516999362573388136163077477126602169410435905014077\
049808497409025369325795765272066650278004200357878990911374\
982857977108488482528354406313893864211497105765030504600982\
253488805474531798742143374465080240030582370086699167937651\
038307909706139327119325418854546478285735654541635477790346\
964782617354265050767878335230272194896680141986745074630225\
893106573559558843545841186025169531604151588481389164948914\
823593944287133336263680358191369540321930649824471425485137\
777984823525402115151171093313613251350685343824859052220126\
891551966018355920872775724807128769003243129486808733796350\
497668255116485157191011858830643898323628223472099280243583\
164434348347014910398004439821970508280440872759395827943270\
985008769143562351938091476215083548164137333541883808870019\
116234099013452929807950151652297436436006149684939775781234\
660954156154478642694176038524277810483833149798681345708089\
152179193979463169402340611793486272301808073267534612685593\
859596787866884211031341417903391749825320454663508370385251\
831778477311017089729361152161928815389818579983544490982891\
734081131312309744330960666031291451740885503458543884956367\
654943799264600314531815427932691107874782328654759293575803\
481929361961781073958502075438499070633193799699311694287183\
299423475339817655608058724723221867087563064557636112380829\
514501382073257737022472866608244164310385205213523702910787\
182472517125030106491031844871593141759729773907719510044049\
352857426592936763727969496103940591601975078602859660478614\
119405428212830134490731706220583788265344728818766885126977\
588151111984290444321648931907188080336064713873288834096229\
203276676119810521851726133377700616341304257822975788967472\
152742255041912584197045423031298506219011800240120182445838\
590696647416285334515631019799007515682004250060857020904012\
215375170479800482680554499806010766109655061507421747722461\
180617361402575082294678925605271083587897845390768226405648\
508518103525778638618195775128516073959272990148239415346263\
486966573934577450787243667063244378381883115827207605856174\
876350045086885320626669331311880593775916269643646395423220\
549940790476989709243027420158390806135690975149384714684219\
964938182719962913931464979458639185519531490009437619838306\
362365453754807654884704163490469296444427144778593725687358\
437087390151990694667516279202024332494828210657618261952038\
597230263799412584275851667403910657370879707181053365818502\
680037431560091209982641738995652793235851569372314130107647\
166085235615697257094269133100914135783178856280392139325001\
352841718610484616627448189556913621837791650699820323059708\
766420810133584841826718631681683381743511974264126250984214\
812397119978273917903889865891718836792263377888052458189238\
746074986456016681098722869419588274020181430652732817858728\
473849369539367463917171317324882099804999043054467247785592\
038464723442276239896066431580123756428540074945472427752568\
981171400621705853374875885943072600692576914790467205905272\
372594740187988081900317493185005142913607163380720069786786\
782095331840893694073778325119471833528492917081008547303414\
509381563617864195257751546539575461435803625993888325647883\
541039192368366987400263049681218831477776345118518503709588\
840859023379762456561030683928115349942393963185677123055324\
771693784214924931737043793679546051454845624150270955450608\
318747395755728950832754611277041359602301205138509175543313\
522772786504141007552691902249572375175731740923618769197304\
652898352694386665448260033458575323252814233868098279476166\
764258284911434288072243178941698347365985427696983129579496\
059032032841281149923518087084876885114369033227736521245740\
554711771423492719899982357711910225545480424688322195336240\
492253136281857837808491795993788199125205555222116581071134\
476787468430539307909617442106685159519071053844987343666452\
494280317720153567054364117244775141336558406098548803924509\
496052261825198043140272655303625315605326569530252885854991\
822289219201218313590745412010446642247111703901991591338062\
693320157180618736569439969283245279430312651192668788340033\
626825194260296262959884258597703584888770801961209652822982\
322376122303586169861685106043820510444293432856251210395693\
261264867823980172683352796141772210301725997652373804152525\
037162852291403804455997331367378463632437773242905518075065\
414724295857460288225400061608664961649196400079359622673770\
607898395269075056596627116148289491042491764170924014885106\
158235482774778418134123293974436877051995673618683751115353\
808771434984204447736174758316063096245047311279841579995578\
186609402864244042751443128536278453430633423118662852688374\
229600894418958824842459450540826176452145829389286103522774\
101195556029650753254244433565937938526828990893149766298997\
738359913887178888607190765709867052470880785937935110091424\
743449966353497865681753841380246075612094033617488674676296\
822570077027076266879557913673839341012099558043806442348798\
053951239274913334631522409564461770434875790402230022872647\
568436177018658068697071731879399180374560963492726714528729\
224208938589940272515747888379118461617702271694075087419634\
147298076764775745707026934442908236664400557265527951453482\
191684597674273691978253678690951178777239573925410438679099\
374700609973920128201422381329108236575369403675960765238333\
778127017096574296148321075566959285042221837159799800133563\
239963969638610872680393210300180152020613051613414547163713\
772512617757277955979895866367571776456268564191092477027650\
135832200376440239783726540552694851717269598489288851529660\
975027775639565229734596726205832668434979354541943345062977\
891187146561050118118108223323735210843681128615413601091222\
007912350536959777114306541514511332368936078560929788143798\
814391221507522370648646767364209132147312407014953113532379\
838195728491128536978285918066991040993153064356179903885952\
027952713749653604502053512355449916680887234238773855581636\
172479594866871765094513940103284167914110196720261110812716\
776424260154507395050380575452850420730818412994731079307343\
538376880280124019321040198038723558784544408584344466090982\
802067326529000931562048932875469079874956595180595395347093\
285140279165467965596318365749701535812384333240968283640721\
344003442002691613772056762099098025739332715913970186225176\
459563484134139746647940170537900275350480490468851439300771\
949915194703080576611022590670399844931867609777417528903454\
731922206378932141464755402629420074293816349270038351339419\
146768473851353171629153912238797141905920143036064131705230\
421762305232861503856799511155936565169005916711845389135580\
928162511912438531204156138447775120789548666143600293412065\
767167106888509172568003530668539460588248316513392652567856\
224602697296203328920073354425994044956624831346979458846837\
597950064151867164583749203433942592178528868981311575331848\
941597492470436782387502687532649093096498315347403977436001\
399982102030846763698994785054617523241463186980898394504211\
430763617825306895065661536045431497903759118007934839122881\
885863091769469883539876840543521295706315919855784493235603\
866268925981702690270202829595794350800918257913991744455922\
6833433740466716699302196502685546875001e-4951L;
/* 0x1.0000000000000001p16383 */
static const long double ld3ae = 0x1p16383L, ld3be = 0x1p16383L, ld3ce = 0x1.0000000000000002p16383L;
static const long double ld3a =
5.9486574767861588257512740011252202817891302594919813725251\
295428739285541899832559628345030434759848834258858109152060\
168394580447354320917546191141469316674407503401251826592118\
529247805068466318759038608659253988075214874609536526621357\
456531393890166762179915866732524251539065872543957371571521\
983821811625262362379785274802094595537134203491628334800642\
100552410980148340419844099304716014319891796892117978584065\
642215994189779833796388294931075153217985342401232585488548\
183499573356819649604353341808627018653300000165159821533158\
398534762310007133107769480816106094590754928301890268526601\
948012303315011492834812113743989351274355589970363438128551\
573643438403526566620300559126131289478114044934210031633528\
263569989916613277150372804081100885766846923338387335735275\
815690693627425316500993091757924061275520326543377826484801\
260850814410014200240706874882235908793464063722267631785502\
588978890438298369667014685160756795261293064179236782450102\
879817506411379585551974343148401888001113058696688771238532\
123329163319380775763389985796856252232367435778523577763581\
076318820356483011816956309162306010784749642144593052844981\
144455778303480881727480293033710826466852650686573284449164\
971550815761322623554550767170481569400661823142075309755585\
825399262942161733431916879499819498306470556518202895225167\
570891857833504708712937447726161123901897152190727519098753\
173091256107155059564163182449945325514965354563242034921715\
085079669416064946957897843700525314730377964740286745952320\
848539618361767466769711132391357232984948881905511016501295\
373458116601070538750219227472880922074079367616789330713051\
392796054620611196686398104309732110578180612371988986941283\
463409571752839755060102940634838880149410521082372514146698\
949690555298417297141754693386954049385392552489950059242099\
158790234260937921119976211248531759522503364724271154732450\
580204158756703065275680503502538215181617861403909609765438\
459404741896379126766756324776550060890489522385655907004761\
103760380176704738464932582597767398552360992261748200224552\
499221197984163362555822765637968034280918669504609870586242\
062170049756721980421608552698712778507151233315121277695507\
694932304894125095195395002291537339548463471343544834535084\
385597125111888342671654244935921073610595930775193595237994\
484405470453247603596164707279142831292696020597352513459682\
982542490819269161229107183625537754125393689567083050306972\
299472451409351528024124972676859164822379702549840869992122\
109088558738008051503238314435613116752657081607929379237268\
685258548361696557803717952234859306922044575896046034219495\
078937310258307531674502149231702180717812559299741279722940\
331553164095430990867607708187092707603492795672693661579813\
722297206006600340954221573260854019342039503980256096723323\
974619210941227998945120494044519820953637210732374225869479\
681431453077746347270062554307578221973966755682727685671115\
104598487346465589917255152859638133529840253249441154093766\
468296435228729803156904942774237478111621919125582394448948\
295406406844691902789160843785892192212760482854142616066966\
061436483840059374641455624686877579416182709686546132337333\
180030729666859995573465620394353524944034503194887839608451\
069029644904642077575045157730600577875158390703330602738631\
860629283284285902868412268522486164537842820453011183015531\
669082023505889165928251243784395957824980999247118276540195\
068956031183236585108415603897481193085040746824934727777986\
761703484626902903260925660927239810711484175954901422619731\
922057229492660554293614771979793133433085936212830723862399\
334585740422370252249982159238980361966177481883090934546250\
903836442278836769393445168381535656636696931116641217099763\
249205106142470169654056239769609880390474141835446455366216\
163044493526155530766380018725181852858797332884069215206429\
253933800732703242020102754246055713369281324885855415528125\
659581759080256206862639693790603663547070031814664699862085\
124026740519096394950750536940374610036575208929959836461615\
919280191863569472772191938255564055565023733812663112274784\
824733213440763947293874467915896768018331324730250697015099\
463062533087218087488410166157459583569488345783974179340987\
151815108212218686575226398710276498737521494877861721916239\
286780194943271811625644415312213945242110591353818534254974\
082884162962499579444882831630967263044313008877192427542802\
154833385005287431176015973444837288763406349559772586733139\
508290944276618724455216038372331277739377332938820061159422\
131545699737995079186343848189545551446309662717473667598998\
332988069951307480469935653061211574846012803370905284012473\
025318540210297839541696998136885534223864988557670674501375\
244470147903967779423817060038384764935662497442963759653206\
786432859777470896394181997456033131032688720696203667198626\
404895099030068466008555612541561023366202324622483939422567\
021914882845352467305687811236417567525816955182834161603932\
993065869465459807593704095390354125514253872107415823725124\
7263969181695999e+4931L;
static const long double ld3b =
5.9486574767861588257512740011252202817891302594919813725251\
295428739285541899832559628345030434759848834258858109152060\
168394580447354320917546191141469316674407503401251826592118\
529247805068466318759038608659253988075214874609536526621357\
456531393890166762179915866732524251539065872543957371571521\
983821811625262362379785274802094595537134203491628334800642\
100552410980148340419844099304716014319891796892117978584065\
642215994189779833796388294931075153217985342401232585488548\
183499573356819649604353341808627018653300000165159821533158\
398534762310007133107769480816106094590754928301890268526601\
948012303315011492834812113743989351274355589970363438128551\
573643438403526566620300559126131289478114044934210031633528\
263569989916613277150372804081100885766846923338387335735275\
815690693627425316500993091757924061275520326543377826484801\
260850814410014200240706874882235908793464063722267631785502\
588978890438298369667014685160756795261293064179236782450102\
879817506411379585551974343148401888001113058696688771238532\
123329163319380775763389985796856252232367435778523577763581\
076318820356483011816956309162306010784749642144593052844981\
144455778303480881727480293033710826466852650686573284449164\
971550815761322623554550767170481569400661823142075309755585\
825399262942161733431916879499819498306470556518202895225167\
570891857833504708712937447726161123901897152190727519098753\
173091256107155059564163182449945325514965354563242034921715\
085079669416064946957897843700525314730377964740286745952320\
848539618361767466769711132391357232984948881905511016501295\
373458116601070538750219227472880922074079367616789330713051\
392796054620611196686398104309732110578180612371988986941283\
463409571752839755060102940634838880149410521082372514146698\
949690555298417297141754693386954049385392552489950059242099\
158790234260937921119976211248531759522503364724271154732450\
580204158756703065275680503502538215181617861403909609765438\
459404741896379126766756324776550060890489522385655907004761\
103760380176704738464932582597767398552360992261748200224552\
499221197984163362555822765637968034280918669504609870586242\
062170049756721980421608552698712778507151233315121277695507\
694932304894125095195395002291537339548463471343544834535084\
385597125111888342671654244935921073610595930775193595237994\
484405470453247603596164707279142831292696020597352513459682\
982542490819269161229107183625537754125393689567083050306972\
299472451409351528024124972676859164822379702549840869992122\
109088558738008051503238314435613116752657081607929379237268\
685258548361696557803717952234859306922044575896046034219495\
078937310258307531674502149231702180717812559299741279722940\
331553164095430990867607708187092707603492795672693661579813\
722297206006600340954221573260854019342039503980256096723323\
974619210941227998945120494044519820953637210732374225869479\
681431453077746347270062554307578221973966755682727685671115\
104598487346465589917255152859638133529840253249441154093766\
468296435228729803156904942774237478111621919125582394448948\
295406406844691902789160843785892192212760482854142616066966\
061436483840059374641455624686877579416182709686546132337333\
180030729666859995573465620394353524944034503194887839608451\
069029644904642077575045157730600577875158390703330602738631\
860629283284285902868412268522486164537842820453011183015531\
669082023505889165928251243784395957824980999247118276540195\
068956031183236585108415603897481193085040746824934727777986\
761703484626902903260925660927239810711484175954901422619731\
922057229492660554293614771979793133433085936212830723862399\
334585740422370252249982159238980361966177481883090934546250\
903836442278836769393445168381535656636696931116641217099763\
249205106142470169654056239769609880390474141835446455366216\
163044493526155530766380018725181852858797332884069215206429\
253933800732703242020102754246055713369281324885855415528125\
659581759080256206862639693790603663547070031814664699862085\
124026740519096394950750536940374610036575208929959836461615\
919280191863569472772191938255564055565023733812663112274784\
824733213440763947293874467915896768018331324730250697015099\
463062533087218087488410166157459583569488345783974179340987\
151815108212218686575226398710276498737521494877861721916239\
286780194943271811625644415312213945242110591353818534254974\
082884162962499579444882831630967263044313008877192427542802\
154833385005287431176015973444837288763406349559772586733139\
508290944276618724455216038372331277739377332938820061159422\
131545699737995079186343848189545551446309662717473667598998\
332988069951307480469935653061211574846012803370905284012473\
025318540210297839541696998136885534223864988557670674501375\
244470147903967779423817060038384764935662497442963759653206\
786432859777470896394181997456033131032688720696203667198626\
404895099030068466008555612541561023366202324622483939422567\
021914882845352467305687811236417567525816955182834161603932\
993065869465459807593704095390354125514253872107415823725124\
7263969181696e+4931L;
static const long double ld3c =
5.9486574767861588257512740011252202817891302594919813725251\
295428739285541899832559628345030434759848834258858109152060\
168394580447354320917546191141469316674407503401251826592118\
529247805068466318759038608659253988075214874609536526621357\
456531393890166762179915866732524251539065872543957371571521\
983821811625262362379785274802094595537134203491628334800642\
100552410980148340419844099304716014319891796892117978584065\
642215994189779833796388294931075153217985342401232585488548\
183499573356819649604353341808627018653300000165159821533158\
398534762310007133107769480816106094590754928301890268526601\
948012303315011492834812113743989351274355589970363438128551\
573643438403526566620300559126131289478114044934210031633528\
263569989916613277150372804081100885766846923338387335735275\
815690693627425316500993091757924061275520326543377826484801\
260850814410014200240706874882235908793464063722267631785502\
588978890438298369667014685160756795261293064179236782450102\
879817506411379585551974343148401888001113058696688771238532\
123329163319380775763389985796856252232367435778523577763581\
076318820356483011816956309162306010784749642144593052844981\
144455778303480881727480293033710826466852650686573284449164\
971550815761322623554550767170481569400661823142075309755585\
825399262942161733431916879499819498306470556518202895225167\
570891857833504708712937447726161123901897152190727519098753\
173091256107155059564163182449945325514965354563242034921715\
085079669416064946957897843700525314730377964740286745952320\
848539618361767466769711132391357232984948881905511016501295\
373458116601070538750219227472880922074079367616789330713051\
392796054620611196686398104309732110578180612371988986941283\
463409571752839755060102940634838880149410521082372514146698\
949690555298417297141754693386954049385392552489950059242099\
158790234260937921119976211248531759522503364724271154732450\
580204158756703065275680503502538215181617861403909609765438\
459404741896379126766756324776550060890489522385655907004761\
103760380176704738464932582597767398552360992261748200224552\
499221197984163362555822765637968034280918669504609870586242\
062170049756721980421608552698712778507151233315121277695507\
694932304894125095195395002291537339548463471343544834535084\
385597125111888342671654244935921073610595930775193595237994\
484405470453247603596164707279142831292696020597352513459682\
982542490819269161229107183625537754125393689567083050306972\
299472451409351528024124972676859164822379702549840869992122\
109088558738008051503238314435613116752657081607929379237268\
685258548361696557803717952234859306922044575896046034219495\
078937310258307531674502149231702180717812559299741279722940\
331553164095430990867607708187092707603492795672693661579813\
722297206006600340954221573260854019342039503980256096723323\
974619210941227998945120494044519820953637210732374225869479\
681431453077746347270062554307578221973966755682727685671115\
104598487346465589917255152859638133529840253249441154093766\
468296435228729803156904942774237478111621919125582394448948\
295406406844691902789160843785892192212760482854142616066966\
061436483840059374641455624686877579416182709686546132337333\
180030729666859995573465620394353524944034503194887839608451\
069029644904642077575045157730600577875158390703330602738631\
860629283284285902868412268522486164537842820453011183015531\
669082023505889165928251243784395957824980999247118276540195\
068956031183236585108415603897481193085040746824934727777986\
761703484626902903260925660927239810711484175954901422619731\
922057229492660554293614771979793133433085936212830723862399\
334585740422370252249982159238980361966177481883090934546250\
903836442278836769393445168381535656636696931116641217099763\
249205106142470169654056239769609880390474141835446455366216\
163044493526155530766380018725181852858797332884069215206429\
253933800732703242020102754246055713369281324885855415528125\
659581759080256206862639693790603663547070031814664699862085\
124026740519096394950750536940374610036575208929959836461615\
919280191863569472772191938255564055565023733812663112274784\
824733213440763947293874467915896768018331324730250697015099\
463062533087218087488410166157459583569488345783974179340987\
151815108212218686575226398710276498737521494877861721916239\
286780194943271811625644415312213945242110591353818534254974\
082884162962499579444882831630967263044313008877192427542802\
154833385005287431176015973444837288763406349559772586733139\
508290944276618724455216038372331277739377332938820061159422\
131545699737995079186343848189545551446309662717473667598998\
332988069951307480469935653061211574846012803370905284012473\
025318540210297839541696998136885534223864988557670674501375\
244470147903967779423817060038384764935662497442963759653206\
786432859777470896394181997456033131032688720696203667198626\
404895099030068466008555612541561023366202324622483939422567\
021914882845352467305687811236417567525816955182834161603932\
993065869465459807593704095390354125514253872107415823725124\
7263969181696001e+4931L;
#endif
#if LDBL_MANT_DIG == 113 \
&& LDBL_MIN_EXP == -16381 \
&& LDBL_MAX_EXP == 16384
# define LDBL_OK
/* 0x0.8p-16494 */
static const long double ld1ae = 0, ld1be = 0, ld1ce = 0x1p-16494L;
static const long double ld1a =
3.2375875597190125554622194791138232762497846690173405048449\
421945985197700620596855088357456383249701279390707384240598\
382936099431912710233425550359863089915213963553756674672083\
673128192358701197242632527769951957277781260855740340354110\
173441284912381364143945515141786687806740155311932822963199\
131134959539539338316310328556057915323285980341541664226172\
265348802632447238304822896568757017013159021750199744350376\
278243566840330589397015778833566517337174685312047058426075\
688036665697114219175258344917835835984013214761767520398571\
735519302688914468501077605843338555214753050109407568139932\
147308502166696009676987494125921676927574464221699654264839\
192243410627511520570610765229732327315423820550872393685221\
676561948307418196052769717057382723931306989375320957256133\
838073129463951849807075348034900035402513943244599879584009\
391110011261908615236154859382854977144106096407982738165117\
693915685918231984764157652755343417097983676870433731452629\
339981084526616826599425863049784138127555181662391766144738\
159400253422795753041594932607700680306368857466952063923782\
760519487592638820793893796669403574411398166619131986561877\
034635197232626532239192571857518274939275861531537920777299\
133535479548088762634002006634954143608168633852204577195463\
389533233992867620995583241321034602255800668175356808869060\
608582640890741203603916133682748118680676374951545690715916\
241859799379894025137504643469040366684778763795442214328000\
375999444991619403217748350277527106812175542863660436614910\
135938862296156144947361864759321605496309393905421651264941\
669606814994816518612155298709843817262034769175075602668866\
926449523554218142013501373514352370369126244144449924971423\
038024236058971106053649565799145071085840022305247663313482\
714565918140785997808209749619683146844964283106915422726638\
184861327711776708749278315100024436584176080783836115268999\
055336294569042349971163039294272620322160728879610722678506\
182344928526064885227397447578450046944618127903428943538029\
386719288345854473283987116842451647036255801966780244103035\
425445345127067921349083698736056197567752071915587544133815\
717564310032485290205726480489464589999677885266171263493459\
668963623768410922688414177814149693150024191921819721215688\
114324591287371281400636455584825253000890602388603923710921\
026880979879158388608823700222683123228822356907857261909150\
626993825760416437415551396973489279578569909699853422995997\
974315036153120383930698087773157253674975950409660938084071\
173163693891122166282318691732176374528554627905530306369204\
877964658806333996327938827344733821685425961846791581492287\
250044047142934607523718654369478552373072400018635730811749\
291666457582760812726851561001954207941547404866373158231367\
986951247388733285659455982411993350593989550494594498447410\
984783303191128659803467713819821511544998464785455306500918\
241648925913966507036336000231915215026183799886938007038845\
551916478649593272604688927931953165785101738164060543643192\
949066412847647883846835866623820426428526541564774787007791\
235843699657232847114093617412355486871810526396392792853731\
390841657984518997639795008374280777823099107035223998600103\
103211166230289241182380237703814248941627178152962100972452\
217697144954497443279450919433943252592977710901289696002698\
225209041938801190947812141758873162203113090284565687499100\
109623665868340184032428667217835198069330185880779776269137\
742366802202585247113480377505916462865316253065105837519292\
805411191872195967066157363040364443666632564266439033866945\
366496486863801221986778957510023272290593640187551645170603\
215150911733580059874983597994671388176488814794186236946834\
548816837468411497151813344980969677026131105901402313456769\
561412278508799050185582199844418197980544632067644131002512\
557755358307705356209461595354064971347590431926479961905129\
785864961996560707071051177738535042777950247546470241655891\
294428226271478689174637951663865529219133988782700199051475\
108495188941141025360733690471601309904116260484264378352956\
830972782977747351810451586166745640802378131466232692150196\
132319386267589275314909450293562079332893638471814389025392\
970579695249613486078445695214422379148991006996109216699215\
721671648754881325271879493185438097033881789311707997697928\
860866812849648616086569281093053695399558469641977866770538\
476039621947215238679930485285585513808236992918733520331110\
962448142457896209307561142289713638388281085340301520317159\
297224995464365477734040179470355969363384621039467975256670\
339354334892926205316491997244008324897517881293654265688813\
283579663372924392043825371743576754041055802440187836850412\
247984570221893156921757872572872036331343007592090605703195\
088864753777199111760713027328198781654685927174063882187275\
850263521274368447629947228263907797373221137688424821608129\
731003236738630502344377228987961455961818623205503012858619\
800521948637807438081069469400793496307826769301971342062597\
391253779410607511754278887744936774785938056823221738917303\
119592848951788560393540150358649310736020595310015728915288\
289821678102453433273888879288862086153270028346900686360943\
250522514297816412678213672667152836436597491522644579383191\
851483036048273636234050603745735057899230038434384361744893\
838050985090837220507663282503497932038372021626246900935334\
781144388106031405650705176699646299475436084049881780196520\
881623075256119318210664937469946410480660118598143375898298\
965497205621170906772915413181530577151676241283182977713765\
317889730886996471681592298058774155948285325398399674640645\
566475947058303746531133735308766583802401453804232106737787\
768035926272312574958173945816077962772826443125107145322971\
087220172175473177449006473180221085709470643042801004189714\
505520073568915195232936144169440163547568663500508335014169\
425050712038101167190534305435310279534374364467455668392421\
298604104431988622194699721632249712583483143417550152131186\
288827131347662976240916448058011869761525369135147129192405\
037216807405860168320999468074663117771890506566769628495813\
837909047220874786467663205170561835819702362482274133227483\
041342457179876653773960112367066273208176545656826800069574\
547599816180234764485446735080683694920665668954370505715843\
455110709594838989387382250502925336743830916124954071268053\
817964873658921319164268375226716232666274830656557657055342\
393552148933959057023293404027940528842591460490646295820755\
765633076707491896621769767253619370462005760078938144396953\
018925287611875441613896820035092167912718365454954166761481\
511451950826683236776211829914518353242818636196417736206010\
145109509967467266157037719712666871515644277723594273405669\
093518586548079997818085130346801040781966074621669280188633\
856299289656492439545033914935979634179552686396067914528336\
924678729357419403624798426886422277256625046946795576781709\
298737741510378578072199383561520569978396254537274419476511\
983161908266152660163477408756159700314280122283281906103567\
067156627222418787671312246698375736071215395722993294041012\
744631560602983489316782773611740570974847045870362276861106\
774130949410119612624380274679529647271294627526939490197641\
645383447755544661714281218489998189691140343327976729279891\
077101372792811842951182338559423852563331641533781432796742\
873181364582071661749961126386895359760476172215209100274274\
851619657020388051618654944574445941780637669570374280535432\
399157923698778110534174856844986671232161320063786308144771\
068130888985636449091787794632959555876880672773686838364706\
122084832995722603440165161942472322987408003421165899848443\
566885769845535074102932500939450142098799833145629484519298\
622410092757836842296697186410137365818568152771850732591405\
340248509247875448717161746544246407280913725135059228268131\
453903691495906528862410006254958805237716723952273129715780\
425223305517882562616830806755498203755676925741529569939445\
043490046171854709456730491532189688306135861932534903184518\
717706426178028900836080044604143054210332610482947502104703\
032028463320549525316174330585387581543470878545616097381416\
151451037487775797335749896735101048367502483255117772375025\
269956476872153642623856062175536913321594213515989059505375\
135183515207096576145781316398544325320022366962008554087665\
201050763789833457082359181807492731245904330245198691471329\
319324627030678762142685799400660305214140453863665517807185\
105354694177602424937823924511789133225030926924236498557565\
212794565582753399214908928688568628950225640472058381324292\
866007645368390366981937596341868992912741319342960598330486\
905946276235953206760977215407164729909506118583728562718724\
235732515062300426080741679038098122641980345051854359908213\
563779664847422505775922437272989231878912994048540484468227\
199282393172540734295329890896755037903724644870572648941076\
132423009124870700536763793881894969000042397318202298868940\
530196108237639578098191879486398269734335286831689173606327\
500405178476864790935386838169242131756729797688220656276969\
434749140204830563840068728357383111109865861495106613619153\
421725274090787422508800568671498311491210197298472420373359\
044400631309819996507004167876832936101195902219429743174557\
163362274547892397934880322990633165889175059124060202200452\
648684577182821651588921716304707095995039972827781680978274\
973838841958209215836456212939412000456040621743349981715350\
305133662772937143899882197561295808685181679238411733642697\
748892466944352640514849114619882270112386610376024527101889\
119004382703622803911212700216792471528793241950356942780714\
774957204475130171711488773121937363663487116301055073658645\
980695862570269762957141239436916216723776945522480189876803\
386123827956059851911061129713987960026363403936931196519733\
447116468545744829997003979525368783485129837821983305137448\
031689360764270759437872004895754351479890333865299565515706\
690471030702230767978923298480584997256328135245813726407464\
159230169328539541524724878662873185450510653764301207480799\
488602832618557388369552461881286225098286358672257087829660\
174231705350465091313887538950130611513878400895128618426154\
417299623157313010877679890009181366178705821415173309356192\
686429159835537275875876767919535369607142366878476025895389\
279625854409611312402187942369446302119309705461187450803468\
606366203101933821675974655441744883993796837164178911391575\
751463591650231265941242686108002052587760190005508737394014\
453031299745602214380618917954427803281262300931789525045703\
809571995929933387196864877982754748535701000330924817431298\
365273697561943437891318220691072831562717726798635382168915\
187137325209768346284183473712613689334546294053718697897526\
843398053681374508250012035211936425982389543291022583173280\
985811169783438836113209408147936547458073361625570571955232\
746103236016857123149307991441916732438322836596693687161268\
151183603534413030099360835441935243365729307681545065674775\
655582111435085683962037818795920337874290127531069511296530\
746308404963763022896682861683252995925040540038039172626001\
958340013361801588367655990575379797454237110701588716509764\
759243657077584013289594787913434812509790293636440469725564\
222946985585616708175959944099853232059130350099233608207347\
955460820122006976717445739825352919058005528371183277021250\
186916447745609162301667393077050176560656798672598371789181\
232542195795945358691713761483976100058707499929103557275695\
937295677892604799308353051124627278706035295473126217205599\
530746756205492173148619619059839609108464715691924592576481\
382126740168148453274964955074129767533813576349605298268179\
068244338581354855186516322703199278802275718580352103754433\
240982354636196477238624205575823556321375833700666021556412\
182358152808745703724362178773168996492870519432472065091133\
11767578124999e-4966L;
static const long double ld1b =
3.2375875597190125554622194791138232762497846690173405048449\
421945985197700620596855088357456383249701279390707384240598\
382936099431912710233425550359863089915213963553756674672083\
673128192358701197242632527769951957277781260855740340354110\
173441284912381364143945515141786687806740155311932822963199\
131134959539539338316310328556057915323285980341541664226172\
265348802632447238304822896568757017013159021750199744350376\
278243566840330589397015778833566517337174685312047058426075\
688036665697114219175258344917835835984013214761767520398571\
735519302688914468501077605843338555214753050109407568139932\
147308502166696009676987494125921676927574464221699654264839\
192243410627511520570610765229732327315423820550872393685221\
676561948307418196052769717057382723931306989375320957256133\
838073129463951849807075348034900035402513943244599879584009\
391110011261908615236154859382854977144106096407982738165117\
693915685918231984764157652755343417097983676870433731452629\
339981084526616826599425863049784138127555181662391766144738\
159400253422795753041594932607700680306368857466952063923782\
760519487592638820793893796669403574411398166619131986561877\
034635197232626532239192571857518274939275861531537920777299\
133535479548088762634002006634954143608168633852204577195463\
389533233992867620995583241321034602255800668175356808869060\
608582640890741203603916133682748118680676374951545690715916\
241859799379894025137504643469040366684778763795442214328000\
375999444991619403217748350277527106812175542863660436614910\
135938862296156144947361864759321605496309393905421651264941\
669606814994816518612155298709843817262034769175075602668866\
926449523554218142013501373514352370369126244144449924971423\
038024236058971106053649565799145071085840022305247663313482\
714565918140785997808209749619683146844964283106915422726638\
184861327711776708749278315100024436584176080783836115268999\
055336294569042349971163039294272620322160728879610722678506\
182344928526064885227397447578450046944618127903428943538029\
386719288345854473283987116842451647036255801966780244103035\
425445345127067921349083698736056197567752071915587544133815\
717564310032485290205726480489464589999677885266171263493459\
668963623768410922688414177814149693150024191921819721215688\
114324591287371281400636455584825253000890602388603923710921\
026880979879158388608823700222683123228822356907857261909150\
626993825760416437415551396973489279578569909699853422995997\
974315036153120383930698087773157253674975950409660938084071\
173163693891122166282318691732176374528554627905530306369204\
877964658806333996327938827344733821685425961846791581492287\
250044047142934607523718654369478552373072400018635730811749\
291666457582760812726851561001954207941547404866373158231367\
986951247388733285659455982411993350593989550494594498447410\
984783303191128659803467713819821511544998464785455306500918\
241648925913966507036336000231915215026183799886938007038845\
551916478649593272604688927931953165785101738164060543643192\
949066412847647883846835866623820426428526541564774787007791\
235843699657232847114093617412355486871810526396392792853731\
390841657984518997639795008374280777823099107035223998600103\
103211166230289241182380237703814248941627178152962100972452\
217697144954497443279450919433943252592977710901289696002698\
225209041938801190947812141758873162203113090284565687499100\
109623665868340184032428667217835198069330185880779776269137\
742366802202585247113480377505916462865316253065105837519292\
805411191872195967066157363040364443666632564266439033866945\
366496486863801221986778957510023272290593640187551645170603\
215150911733580059874983597994671388176488814794186236946834\
548816837468411497151813344980969677026131105901402313456769\
561412278508799050185582199844418197980544632067644131002512\
557755358307705356209461595354064971347590431926479961905129\
785864961996560707071051177738535042777950247546470241655891\
294428226271478689174637951663865529219133988782700199051475\
108495188941141025360733690471601309904116260484264378352956\
830972782977747351810451586166745640802378131466232692150196\
132319386267589275314909450293562079332893638471814389025392\
970579695249613486078445695214422379148991006996109216699215\
721671648754881325271879493185438097033881789311707997697928\
860866812849648616086569281093053695399558469641977866770538\
476039621947215238679930485285585513808236992918733520331110\
962448142457896209307561142289713638388281085340301520317159\
297224995464365477734040179470355969363384621039467975256670\
339354334892926205316491997244008324897517881293654265688813\
283579663372924392043825371743576754041055802440187836850412\
247984570221893156921757872572872036331343007592090605703195\
088864753777199111760713027328198781654685927174063882187275\
850263521274368447629947228263907797373221137688424821608129\
731003236738630502344377228987961455961818623205503012858619\
800521948637807438081069469400793496307826769301971342062597\
391253779410607511754278887744936774785938056823221738917303\
119592848951788560393540150358649310736020595310015728915288\
289821678102453433273888879288862086153270028346900686360943\
250522514297816412678213672667152836436597491522644579383191\
851483036048273636234050603745735057899230038434384361744893\
838050985090837220507663282503497932038372021626246900935334\
781144388106031405650705176699646299475436084049881780196520\
881623075256119318210664937469946410480660118598143375898298\
965497205621170906772915413181530577151676241283182977713765\
317889730886996471681592298058774155948285325398399674640645\
566475947058303746531133735308766583802401453804232106737787\
768035926272312574958173945816077962772826443125107145322971\
087220172175473177449006473180221085709470643042801004189714\
505520073568915195232936144169440163547568663500508335014169\
425050712038101167190534305435310279534374364467455668392421\
298604104431988622194699721632249712583483143417550152131186\
288827131347662976240916448058011869761525369135147129192405\
037216807405860168320999468074663117771890506566769628495813\
837909047220874786467663205170561835819702362482274133227483\
041342457179876653773960112367066273208176545656826800069574\
547599816180234764485446735080683694920665668954370505715843\
455110709594838989387382250502925336743830916124954071268053\
817964873658921319164268375226716232666274830656557657055342\
393552148933959057023293404027940528842591460490646295820755\
765633076707491896621769767253619370462005760078938144396953\
018925287611875441613896820035092167912718365454954166761481\
511451950826683236776211829914518353242818636196417736206010\
145109509967467266157037719712666871515644277723594273405669\
093518586548079997818085130346801040781966074621669280188633\
856299289656492439545033914935979634179552686396067914528336\
924678729357419403624798426886422277256625046946795576781709\
298737741510378578072199383561520569978396254537274419476511\
983161908266152660163477408756159700314280122283281906103567\
067156627222418787671312246698375736071215395722993294041012\
744631560602983489316782773611740570974847045870362276861106\
774130949410119612624380274679529647271294627526939490197641\
645383447755544661714281218489998189691140343327976729279891\
077101372792811842951182338559423852563331641533781432796742\
873181364582071661749961126386895359760476172215209100274274\
851619657020388051618654944574445941780637669570374280535432\
399157923698778110534174856844986671232161320063786308144771\
068130888985636449091787794632959555876880672773686838364706\
122084832995722603440165161942472322987408003421165899848443\
566885769845535074102932500939450142098799833145629484519298\
622410092757836842296697186410137365818568152771850732591405\
340248509247875448717161746544246407280913725135059228268131\
453903691495906528862410006254958805237716723952273129715780\
425223305517882562616830806755498203755676925741529569939445\
043490046171854709456730491532189688306135861932534903184518\
717706426178028900836080044604143054210332610482947502104703\
032028463320549525316174330585387581543470878545616097381416\
151451037487775797335749896735101048367502483255117772375025\
269956476872153642623856062175536913321594213515989059505375\
135183515207096576145781316398544325320022366962008554087665\
201050763789833457082359181807492731245904330245198691471329\
319324627030678762142685799400660305214140453863665517807185\
105354694177602424937823924511789133225030926924236498557565\
212794565582753399214908928688568628950225640472058381324292\
866007645368390366981937596341868992912741319342960598330486\
905946276235953206760977215407164729909506118583728562718724\
235732515062300426080741679038098122641980345051854359908213\
563779664847422505775922437272989231878912994048540484468227\
199282393172540734295329890896755037903724644870572648941076\
132423009124870700536763793881894969000042397318202298868940\
530196108237639578098191879486398269734335286831689173606327\
500405178476864790935386838169242131756729797688220656276969\
434749140204830563840068728357383111109865861495106613619153\
421725274090787422508800568671498311491210197298472420373359\
044400631309819996507004167876832936101195902219429743174557\
163362274547892397934880322990633165889175059124060202200452\
648684577182821651588921716304707095995039972827781680978274\
973838841958209215836456212939412000456040621743349981715350\
305133662772937143899882197561295808685181679238411733642697\
748892466944352640514849114619882270112386610376024527101889\
119004382703622803911212700216792471528793241950356942780714\
774957204475130171711488773121937363663487116301055073658645\
980695862570269762957141239436916216723776945522480189876803\
386123827956059851911061129713987960026363403936931196519733\
447116468545744829997003979525368783485129837821983305137448\
031689360764270759437872004895754351479890333865299565515706\
690471030702230767978923298480584997256328135245813726407464\
159230169328539541524724878662873185450510653764301207480799\
488602832618557388369552461881286225098286358672257087829660\
174231705350465091313887538950130611513878400895128618426154\
417299623157313010877679890009181366178705821415173309356192\
686429159835537275875876767919535369607142366878476025895389\
279625854409611312402187942369446302119309705461187450803468\
606366203101933821675974655441744883993796837164178911391575\
751463591650231265941242686108002052587760190005508737394014\
453031299745602214380618917954427803281262300931789525045703\
809571995929933387196864877982754748535701000330924817431298\
365273697561943437891318220691072831562717726798635382168915\
187137325209768346284183473712613689334546294053718697897526\
843398053681374508250012035211936425982389543291022583173280\
985811169783438836113209408147936547458073361625570571955232\
746103236016857123149307991441916732438322836596693687161268\
151183603534413030099360835441935243365729307681545065674775\
655582111435085683962037818795920337874290127531069511296530\
746308404963763022896682861683252995925040540038039172626001\
958340013361801588367655990575379797454237110701588716509764\
759243657077584013289594787913434812509790293636440469725564\
222946985585616708175959944099853232059130350099233608207347\
955460820122006976717445739825352919058005528371183277021250\
186916447745609162301667393077050176560656798672598371789181\
232542195795945358691713761483976100058707499929103557275695\
937295677892604799308353051124627278706035295473126217205599\
530746756205492173148619619059839609108464715691924592576481\
382126740168148453274964955074129767533813576349605298268179\
068244338581354855186516322703199278802275718580352103754433\
240982354636196477238624205575823556321375833700666021556412\
182358152808745703724362178773168996492870519432472065091133\
11767578125e-4966L;
static const long double ld1c =
3.2375875597190125554622194791138232762497846690173405048449\
421945985197700620596855088357456383249701279390707384240598\
382936099431912710233425550359863089915213963553756674672083\
673128192358701197242632527769951957277781260855740340354110\
173441284912381364143945515141786687806740155311932822963199\
131134959539539338316310328556057915323285980341541664226172\
265348802632447238304822896568757017013159021750199744350376\
278243566840330589397015778833566517337174685312047058426075\
688036665697114219175258344917835835984013214761767520398571\
735519302688914468501077605843338555214753050109407568139932\
147308502166696009676987494125921676927574464221699654264839\
192243410627511520570610765229732327315423820550872393685221\
676561948307418196052769717057382723931306989375320957256133\
838073129463951849807075348034900035402513943244599879584009\
391110011261908615236154859382854977144106096407982738165117\
693915685918231984764157652755343417097983676870433731452629\
339981084526616826599425863049784138127555181662391766144738\
159400253422795753041594932607700680306368857466952063923782\
760519487592638820793893796669403574411398166619131986561877\
034635197232626532239192571857518274939275861531537920777299\
133535479548088762634002006634954143608168633852204577195463\
389533233992867620995583241321034602255800668175356808869060\
608582640890741203603916133682748118680676374951545690715916\
241859799379894025137504643469040366684778763795442214328000\
375999444991619403217748350277527106812175542863660436614910\
135938862296156144947361864759321605496309393905421651264941\
669606814994816518612155298709843817262034769175075602668866\
926449523554218142013501373514352370369126244144449924971423\
038024236058971106053649565799145071085840022305247663313482\
714565918140785997808209749619683146844964283106915422726638\
184861327711776708749278315100024436584176080783836115268999\
055336294569042349971163039294272620322160728879610722678506\
182344928526064885227397447578450046944618127903428943538029\
386719288345854473283987116842451647036255801966780244103035\
425445345127067921349083698736056197567752071915587544133815\
717564310032485290205726480489464589999677885266171263493459\
668963623768410922688414177814149693150024191921819721215688\
114324591287371281400636455584825253000890602388603923710921\
026880979879158388608823700222683123228822356907857261909150\
626993825760416437415551396973489279578569909699853422995997\
974315036153120383930698087773157253674975950409660938084071\
173163693891122166282318691732176374528554627905530306369204\
877964658806333996327938827344733821685425961846791581492287\
250044047142934607523718654369478552373072400018635730811749\
291666457582760812726851561001954207941547404866373158231367\
986951247388733285659455982411993350593989550494594498447410\
984783303191128659803467713819821511544998464785455306500918\
241648925913966507036336000231915215026183799886938007038845\
551916478649593272604688927931953165785101738164060543643192\
949066412847647883846835866623820426428526541564774787007791\
235843699657232847114093617412355486871810526396392792853731\
390841657984518997639795008374280777823099107035223998600103\
103211166230289241182380237703814248941627178152962100972452\
217697144954497443279450919433943252592977710901289696002698\
225209041938801190947812141758873162203113090284565687499100\
109623665868340184032428667217835198069330185880779776269137\
742366802202585247113480377505916462865316253065105837519292\
805411191872195967066157363040364443666632564266439033866945\
366496486863801221986778957510023272290593640187551645170603\
215150911733580059874983597994671388176488814794186236946834\
548816837468411497151813344980969677026131105901402313456769\
561412278508799050185582199844418197980544632067644131002512\
557755358307705356209461595354064971347590431926479961905129\
785864961996560707071051177738535042777950247546470241655891\
294428226271478689174637951663865529219133988782700199051475\
108495188941141025360733690471601309904116260484264378352956\
830972782977747351810451586166745640802378131466232692150196\
132319386267589275314909450293562079332893638471814389025392\
970579695249613486078445695214422379148991006996109216699215\
721671648754881325271879493185438097033881789311707997697928\
860866812849648616086569281093053695399558469641977866770538\
476039621947215238679930485285585513808236992918733520331110\
962448142457896209307561142289713638388281085340301520317159\
297224995464365477734040179470355969363384621039467975256670\
339354334892926205316491997244008324897517881293654265688813\
283579663372924392043825371743576754041055802440187836850412\
247984570221893156921757872572872036331343007592090605703195\
088864753777199111760713027328198781654685927174063882187275\
850263521274368447629947228263907797373221137688424821608129\
731003236738630502344377228987961455961818623205503012858619\
800521948637807438081069469400793496307826769301971342062597\
391253779410607511754278887744936774785938056823221738917303\
119592848951788560393540150358649310736020595310015728915288\
289821678102453433273888879288862086153270028346900686360943\
250522514297816412678213672667152836436597491522644579383191\
851483036048273636234050603745735057899230038434384361744893\
838050985090837220507663282503497932038372021626246900935334\
781144388106031405650705176699646299475436084049881780196520\
881623075256119318210664937469946410480660118598143375898298\
965497205621170906772915413181530577151676241283182977713765\
317889730886996471681592298058774155948285325398399674640645\
566475947058303746531133735308766583802401453804232106737787\
768035926272312574958173945816077962772826443125107145322971\
087220172175473177449006473180221085709470643042801004189714\
505520073568915195232936144169440163547568663500508335014169\
425050712038101167190534305435310279534374364467455668392421\
298604104431988622194699721632249712583483143417550152131186\
288827131347662976240916448058011869761525369135147129192405\
037216807405860168320999468074663117771890506566769628495813\
837909047220874786467663205170561835819702362482274133227483\
041342457179876653773960112367066273208176545656826800069574\
547599816180234764485446735080683694920665668954370505715843\
455110709594838989387382250502925336743830916124954071268053\
817964873658921319164268375226716232666274830656557657055342\
393552148933959057023293404027940528842591460490646295820755\
765633076707491896621769767253619370462005760078938144396953\
018925287611875441613896820035092167912718365454954166761481\
511451950826683236776211829914518353242818636196417736206010\
145109509967467266157037719712666871515644277723594273405669\
093518586548079997818085130346801040781966074621669280188633\
856299289656492439545033914935979634179552686396067914528336\
924678729357419403624798426886422277256625046946795576781709\
298737741510378578072199383561520569978396254537274419476511\
983161908266152660163477408756159700314280122283281906103567\
067156627222418787671312246698375736071215395722993294041012\
744631560602983489316782773611740570974847045870362276861106\
774130949410119612624380274679529647271294627526939490197641\
645383447755544661714281218489998189691140343327976729279891\
077101372792811842951182338559423852563331641533781432796742\
873181364582071661749961126386895359760476172215209100274274\
851619657020388051618654944574445941780637669570374280535432\
399157923698778110534174856844986671232161320063786308144771\
068130888985636449091787794632959555876880672773686838364706\
122084832995722603440165161942472322987408003421165899848443\
566885769845535074102932500939450142098799833145629484519298\
622410092757836842296697186410137365818568152771850732591405\
340248509247875448717161746544246407280913725135059228268131\
453903691495906528862410006254958805237716723952273129715780\
425223305517882562616830806755498203755676925741529569939445\
043490046171854709456730491532189688306135861932534903184518\
717706426178028900836080044604143054210332610482947502104703\
032028463320549525316174330585387581543470878545616097381416\
151451037487775797335749896735101048367502483255117772375025\
269956476872153642623856062175536913321594213515989059505375\
135183515207096576145781316398544325320022366962008554087665\
201050763789833457082359181807492731245904330245198691471329\
319324627030678762142685799400660305214140453863665517807185\
105354694177602424937823924511789133225030926924236498557565\
212794565582753399214908928688568628950225640472058381324292\
866007645368390366981937596341868992912741319342960598330486\
905946276235953206760977215407164729909506118583728562718724\
235732515062300426080741679038098122641980345051854359908213\
563779664847422505775922437272989231878912994048540484468227\
199282393172540734295329890896755037903724644870572648941076\
132423009124870700536763793881894969000042397318202298868940\
530196108237639578098191879486398269734335286831689173606327\
500405178476864790935386838169242131756729797688220656276969\
434749140204830563840068728357383111109865861495106613619153\
421725274090787422508800568671498311491210197298472420373359\
044400631309819996507004167876832936101195902219429743174557\
163362274547892397934880322990633165889175059124060202200452\
648684577182821651588921716304707095995039972827781680978274\
973838841958209215836456212939412000456040621743349981715350\
305133662772937143899882197561295808685181679238411733642697\
748892466944352640514849114619882270112386610376024527101889\
119004382703622803911212700216792471528793241950356942780714\
774957204475130171711488773121937363663487116301055073658645\
980695862570269762957141239436916216723776945522480189876803\
386123827956059851911061129713987960026363403936931196519733\
447116468545744829997003979525368783485129837821983305137448\
031689360764270759437872004895754351479890333865299565515706\
690471030702230767978923298480584997256328135245813726407464\
159230169328539541524724878662873185450510653764301207480799\
488602832618557388369552461881286225098286358672257087829660\
174231705350465091313887538950130611513878400895128618426154\
417299623157313010877679890009181366178705821415173309356192\
686429159835537275875876767919535369607142366878476025895389\
279625854409611312402187942369446302119309705461187450803468\
606366203101933821675974655441744883993796837164178911391575\
751463591650231265941242686108002052587760190005508737394014\
453031299745602214380618917954427803281262300931789525045703\
809571995929933387196864877982754748535701000330924817431298\
365273697561943437891318220691072831562717726798635382168915\
187137325209768346284183473712613689334546294053718697897526\
843398053681374508250012035211936425982389543291022583173280\
985811169783438836113209408147936547458073361625570571955232\
746103236016857123149307991441916732438322836596693687161268\
151183603534413030099360835441935243365729307681545065674775\
655582111435085683962037818795920337874290127531069511296530\
746308404963763022896682861683252995925040540038039172626001\
958340013361801588367655990575379797454237110701588716509764\
759243657077584013289594787913434812509790293636440469725564\
222946985585616708175959944099853232059130350099233608207347\
955460820122006976717445739825352919058005528371183277021250\
186916447745609162301667393077050176560656798672598371789181\
232542195795945358691713761483976100058707499929103557275695\
937295677892604799308353051124627278706035295473126217205599\
530746756205492173148619619059839609108464715691924592576481\
382126740168148453274964955074129767533813576349605298268179\
068244338581354855186516322703199278802275718580352103754433\
240982354636196477238624205575823556321375833700666021556412\
182358152808745703724362178773168996492870519432472065091133\
11767578125001e-4966L;
/* 0x1.8p-16494 */
static const long double ld2ae = 0x1p-16494L, ld2be = 0x2p-16494L, ld2ce = 0x2p-16494L;
static const long double ld2a =
9.7127626791570376663866584373414698287493540070520215145348\
265837955593101861790565265072369149749103838172122152721795\
148808298295738130700276651079589269745641890661270024016251\
019384577076103591727897583309855871833343782567221021062330\
520323854737144092431836545425360063420220465935798468889597\
393404878618618014948930985668173745969857941024624992678516\
796046407897341714914468689706271051039477065250599233051128\
834730700520991768191047336500699552011524055936141175278227\
064109997091342657525775034753507507952039644285302561195715\
206557908066743405503232817530015665644259150328222704419796\
441925506500088029030962482377765030782723392665098962794517\
576730231882534561711832295689196981946271461652617181055665\
029685844922254588158309151172148171793920968125962871768401\
514219388391855549421226044104700106207541829733799638752028\
173330033785725845708464578148564931432318289223948214495353\
081747057754695954292472958266030251293951030611301194357888\
019943253579850479798277589149352414382665544987175298434214\
478200760268387259124784797823102040919106572400856191771348\
281558462777916462381681390008210723234194499857395959685631\
103905591697879596717577715572554824817827584594613762331897\
400606438644266287902006019904862430824505901556613731586390\
168599701978602862986749723963103806767402004526070426607181\
825747922672223610811748401048244356042029124854637072147748\
725579398139682075412513930407121100054336291386326642984001\
127998334974858209653245050832581320436526628590981309844730\
407816586888468434842085594277964816488928181716264953794825\
008820444984449555836465896129531451786104307525226808006600\
779348570662654426040504120543057111107378732433349774914269\
114072708176913318160948697397435213257520066915742989940448\
143697754422357993424629248859049440534892849320746268179914\
554583983135330126247834945300073309752528242351508345806997\
166008883707127049913489117882817860966482186638832168035518\
547034785578194655682192342735350140833854383710286830614088\
160157865037563419851961350527354941108767405900340732309106\
276336035381203764047251096208168592703256215746762632401447\
152692930097455870617179441468393769999033655798513790480379\
006890871305232768065242533442449079450072575765459163647064\
342973773862113844201909366754475759002671807165811771132763\
080642939637475165826471100668049369686467070723571785727451\
880981477281249312246654190920467838735709729099560268987993\
922945108459361151792094263319471761024927851228982814252213\
519491081673366498846956075196529123585663883716590919107614\
633893976419001988983816482034201465056277885540374744476861\
750132141428803822571155963108435657119217200055907192435247\
874999372748282438180554683005862623824642214599119474694103\
960853742166199856978367947235980051781968651483783495342232\
954349909573385979410403141459464534634995394356365919502754\
724946777741899521109008000695745645078551399660814021116536\
655749435948779817814066783795859497355305214492181630929578\
847199238542943651540507599871461279285579624694324361023373\
707531098971698541342280852237066460615431579189178378561194\
172524973953556992919385025122842333469297321105671995800309\
309633498690867723547140713111442746824881534458886302917356\
653091434863492329838352758301829757778933132703869088008094\
675627125816403572843436425276619486609339270853697062497300\
328870997605020552097286001653505594207990557642339328807413\
227100406607755741340441132517749388595948759195317512557878\
416233575616587901198472089121093330999897692799317101600836\
099489460591403665960336872530069816871780920562654935511809\
645452735200740179624950793984014164529466444382558710840503\
646450512405234491455440034942909031078393317704206940370308\
684236835526397150556746599533254593941633896202932393007537\
673266074923116068628384786062194914042771295779439885715389\
357594885989682121213153533215605128333850742639410724967673\
883284678814436067523913854991596587657401966348100597154425\
325485566823423076082201071414803929712348781452793135058870\
492918348933242055431354758500236922407134394398698076450588\
396958158802767825944728350880686237998680915415443167076178\
911739085748840458235337085643267137446973020988327650097647\
165014946264643975815638479556314291101645367935123993093786\
582600438548945848259707843279161086198675408925933600311615\
428118865841645716039791455856756541424710978756200560993332\
887344427373688627922683426869140915164843256020904560951477\
891674986393096433202120538411067908090153863118403925770011\
018063004678778615949475991732024974692553643880962797066439\
850738990118773176131476115230730262123167407320563510551236\
743953710665679470765273617718616108994029022776271817109585\
266594261331597335282139081984596344964057781522191646561827\
550790563823105342889841684791723392119663413065274464824389\
193009710215891507033131686963884367885455869616509038575859\
401565845913422314243208408202380488923480307905914026187792\
173761338231822535262836663234810324357814170469665216751909\
358778546855365681180620451075947932208061785930047186745864\
869465034307360299821666637866586258459810085040702059082829\
751567542893449238034641018001458509309792474567933738149575\
554449108144820908702151811237205173697690115303153085234681\
514152955272511661522989847510493796115116064878740702806004\
343433164318094216952115530098938898426308252149645340589562\
644869225768357954631994812409839231441980355794430127694896\
896491616863512720318746239544591731455028723849548933141295\
953669192660989415044776894176322467844855976195199023921936\
699427841174911239593401205926299751407204361412696320213363\
304107778816937724874521837448233888318479329375321435968913\
261660516526419532347019419540663257128411929128403012569143\
516560220706745585698808432508320490642705990501525005042508\
275152136114303501571602916305930838603123093402367005177263\
895812313295965866584099164896749137750449430252650456393558\
866481394042988928722749344174035609284576107405441387577215\
111650422217580504962998404223989353315671519700308885487441\
513727141662624359402989615511685507459107087446822399682449\
124027371539629961321880337101198819624529636970480400208723\
642799448540704293456340205242051084761997006863111517147530\
365332128784516968162146751508776010231492748374862213804161\
453894620976763957492805125680148697998824491969672971166027\
180656446801877171069880212083821586527774381471938887462267\
296899230122475689865309301760858111386017280236814433190859\
056775862835626324841690460105276503738155096364862500284444\
534355852480049710328635489743555059728455908589253208618030\
435328529902401798471113159138000614546932833170782820217007\
280555759644239993454255391040403122345898223865007840565901\
568897868969477318635101744807938902538658059188203743585010\
774036188072258210874395280659266831769875140840386730345127\
896213224531135734216598150684561709935188763611823258429535\
949485724798457980490432226268479100942840366849845718310701\
201469881667256363013936740095127208213646187168979882123038\
233894681808950467950348320835221712924541137611086830583320\
322392848230358837873140824038588941813883882580818470592924\
936150343266633985142843655469994569073421029983930187839673\
231304118378435528853547015678271557689994924601344298390228\
619544093746214985249883379160686079281428516645627300822824\
554858971061164154855964833723337825341913008711122841606297\
197473771096334331602524570534960013696483960191358924434313\
204392666956909347275363383898878667630642018321060515094118\
366254498987167810320495485827416968962224010263497699545330\
700657309536605222308797502818350426296399499436888453557895\
867230278273510526890091559230412097455704458315552197774216\
020745527743626346151485239632739221842741175405177684804394\
361711074487719586587230018764876415713150171856819389147341\
275669916553647687850492420266494611267030777224588709818335\
130470138515564128370191474596569064918407585797604709553556\
153119278534086702508240133812429162630997831448842506314109\
096085389961648575948522991756162744630412635636848292144248\
454353112463327392007249690205303145102507449765353317125075\
809869430616460927871568186526610739964782640547967178516125\
405550545621289728437343949195632975960067100886025662262995\
603152291369500371247077545422478193737712990735596074413987\
957973881092036286428057398201980915642421361590996553421555\
316064082532807274813471773535367399675092780772709495672695\
638383696748260197644726786065705886850676921416175143972878\
598022936105171100945812789025606978738223958028881794991460\
717838828707859620282931646221494189728518355751185688156172\
707197545186901278242225037114294367925941035155563079724640\
691338994542267517327767311818967695636738982145621453404681\
597847179517622202885989672690265113711173934611717946823228\
397269027374612101610291381645684907000127191954606896606821\
590588324712918734294575638459194809203005860495067520818982\
501215535430594372806160514507726395270189393064661968830908\
304247420614491691520206185072149333329597584485319840857460\
265175822272362267526401706014494934473630591895417261120077\
133201893929459989521012503630498808303587706658289229523671\
490086823643677193804640968971899497667525177372180606601357\
946053731548464954766765148914121287985119918483345042934824\
921516525874627647509368638818236001368121865230049945146050\
915400988318811431699646592683887426055545037715235200928093\
246677400833057921544547343859646810337159831128073581305667\
357013148110868411733638100650377414586379725851070828342144\
324871613425390515134466319365812090990461348903165220975937\
942087587710809288871423718310748650171330836567440569630410\
158371483868179555733183389141963880079090211810793589559200\
341349405637234489991011938576106350455389513465949915412344\
095068082292812278313616014687263054439671001595898696547120\
071413092106692303936769895441754991768984405737441179222392\
477690507985618624574174635988619556351531961292903622442398\
465808497855672165108657385643858675294859076016771263488980\
522695116051395273941662616850391834541635202685385855278463\
251898869471939032633039670027544098536117464245519928068578\
059287479506611827627630303758606108821427100635428077686167\
838877563228833937206563827108338906357929116383562352410405\
819098609305801465027923966325234651981390511492536734174727\
254390774950693797823728058324006157763280570016526212182043\
359093899236806643141856753863283409843786902795368575137111\
428715987789800161590594633948264245607103000992774452293895\
095821092685830313673954662073218494688153180395906146506745\
561411975629305038852550421137841068003638882161156093692580\
530194161044123524750036105635809277947168629873067749519842\
957433509350316508339628224443809642374220084876711715865698\
238309708050571369447923974325750197314968509790081061483804\
453550810603239090298082506325805730097187923044635197024326\
966746334305257051886113456387761013622870382593208533889592\
238925214891289068690048585049758987775121620114117517878005\
875020040085404765102967971726139392362711332104766149529294\
277730971232752039868784363740304437529370880909321409176692\
668840956756850124527879832299559696177391050297700824622043\
866382460366020930152337219476058757174016585113549831063750\
560749343236827486905002179231150529681970396017795115367543\
697626587387836076075141284451928300176122499787310671827087\
811887033677814397925059153373881836118105886419378651616798\
592240268616476519445858857179518827325394147075773777729444\
146380220504445359824894865222389302601440729048815894804537\
204733015744064565559548968109597836406827155741056311263299\
722947063908589431715872616727470668964127501101998064669236\
547074458426237111173086536319506989478611558297416195273399\
35302734374999e-4966L;
static const long double ld2b =
9.7127626791570376663866584373414698287493540070520215145348\
265837955593101861790565265072369149749103838172122152721795\
148808298295738130700276651079589269745641890661270024016251\
019384577076103591727897583309855871833343782567221021062330\
520323854737144092431836545425360063420220465935798468889597\
393404878618618014948930985668173745969857941024624992678516\
796046407897341714914468689706271051039477065250599233051128\
834730700520991768191047336500699552011524055936141175278227\
064109997091342657525775034753507507952039644285302561195715\
206557908066743405503232817530015665644259150328222704419796\
441925506500088029030962482377765030782723392665098962794517\
576730231882534561711832295689196981946271461652617181055665\
029685844922254588158309151172148171793920968125962871768401\
514219388391855549421226044104700106207541829733799638752028\
173330033785725845708464578148564931432318289223948214495353\
081747057754695954292472958266030251293951030611301194357888\
019943253579850479798277589149352414382665544987175298434214\
478200760268387259124784797823102040919106572400856191771348\
281558462777916462381681390008210723234194499857395959685631\
103905591697879596717577715572554824817827584594613762331897\
400606438644266287902006019904862430824505901556613731586390\
168599701978602862986749723963103806767402004526070426607181\
825747922672223610811748401048244356042029124854637072147748\
725579398139682075412513930407121100054336291386326642984001\
127998334974858209653245050832581320436526628590981309844730\
407816586888468434842085594277964816488928181716264953794825\
008820444984449555836465896129531451786104307525226808006600\
779348570662654426040504120543057111107378732433349774914269\
114072708176913318160948697397435213257520066915742989940448\
143697754422357993424629248859049440534892849320746268179914\
554583983135330126247834945300073309752528242351508345806997\
166008883707127049913489117882817860966482186638832168035518\
547034785578194655682192342735350140833854383710286830614088\
160157865037563419851961350527354941108767405900340732309106\
276336035381203764047251096208168592703256215746762632401447\
152692930097455870617179441468393769999033655798513790480379\
006890871305232768065242533442449079450072575765459163647064\
342973773862113844201909366754475759002671807165811771132763\
080642939637475165826471100668049369686467070723571785727451\
880981477281249312246654190920467838735709729099560268987993\
922945108459361151792094263319471761024927851228982814252213\
519491081673366498846956075196529123585663883716590919107614\
633893976419001988983816482034201465056277885540374744476861\
750132141428803822571155963108435657119217200055907192435247\
874999372748282438180554683005862623824642214599119474694103\
960853742166199856978367947235980051781968651483783495342232\
954349909573385979410403141459464534634995394356365919502754\
724946777741899521109008000695745645078551399660814021116536\
655749435948779817814066783795859497355305214492181630929578\
847199238542943651540507599871461279285579624694324361023373\
707531098971698541342280852237066460615431579189178378561194\
172524973953556992919385025122842333469297321105671995800309\
309633498690867723547140713111442746824881534458886302917356\
653091434863492329838352758301829757778933132703869088008094\
675627125816403572843436425276619486609339270853697062497300\
328870997605020552097286001653505594207990557642339328807413\
227100406607755741340441132517749388595948759195317512557878\
416233575616587901198472089121093330999897692799317101600836\
099489460591403665960336872530069816871780920562654935511809\
645452735200740179624950793984014164529466444382558710840503\
646450512405234491455440034942909031078393317704206940370308\
684236835526397150556746599533254593941633896202932393007537\
673266074923116068628384786062194914042771295779439885715389\
357594885989682121213153533215605128333850742639410724967673\
883284678814436067523913854991596587657401966348100597154425\
325485566823423076082201071414803929712348781452793135058870\
492918348933242055431354758500236922407134394398698076450588\
396958158802767825944728350880686237998680915415443167076178\
911739085748840458235337085643267137446973020988327650097647\
165014946264643975815638479556314291101645367935123993093786\
582600438548945848259707843279161086198675408925933600311615\
428118865841645716039791455856756541424710978756200560993332\
887344427373688627922683426869140915164843256020904560951477\
891674986393096433202120538411067908090153863118403925770011\
018063004678778615949475991732024974692553643880962797066439\
850738990118773176131476115230730262123167407320563510551236\
743953710665679470765273617718616108994029022776271817109585\
266594261331597335282139081984596344964057781522191646561827\
550790563823105342889841684791723392119663413065274464824389\
193009710215891507033131686963884367885455869616509038575859\
401565845913422314243208408202380488923480307905914026187792\
173761338231822535262836663234810324357814170469665216751909\
358778546855365681180620451075947932208061785930047186745864\
869465034307360299821666637866586258459810085040702059082829\
751567542893449238034641018001458509309792474567933738149575\
554449108144820908702151811237205173697690115303153085234681\
514152955272511661522989847510493796115116064878740702806004\
343433164318094216952115530098938898426308252149645340589562\
644869225768357954631994812409839231441980355794430127694896\
896491616863512720318746239544591731455028723849548933141295\
953669192660989415044776894176322467844855976195199023921936\
699427841174911239593401205926299751407204361412696320213363\
304107778816937724874521837448233888318479329375321435968913\
261660516526419532347019419540663257128411929128403012569143\
516560220706745585698808432508320490642705990501525005042508\
275152136114303501571602916305930838603123093402367005177263\
895812313295965866584099164896749137750449430252650456393558\
866481394042988928722749344174035609284576107405441387577215\
111650422217580504962998404223989353315671519700308885487441\
513727141662624359402989615511685507459107087446822399682449\
124027371539629961321880337101198819624529636970480400208723\
642799448540704293456340205242051084761997006863111517147530\
365332128784516968162146751508776010231492748374862213804161\
453894620976763957492805125680148697998824491969672971166027\
180656446801877171069880212083821586527774381471938887462267\
296899230122475689865309301760858111386017280236814433190859\
056775862835626324841690460105276503738155096364862500284444\
534355852480049710328635489743555059728455908589253208618030\
435328529902401798471113159138000614546932833170782820217007\
280555759644239993454255391040403122345898223865007840565901\
568897868969477318635101744807938902538658059188203743585010\
774036188072258210874395280659266831769875140840386730345127\
896213224531135734216598150684561709935188763611823258429535\
949485724798457980490432226268479100942840366849845718310701\
201469881667256363013936740095127208213646187168979882123038\
233894681808950467950348320835221712924541137611086830583320\
322392848230358837873140824038588941813883882580818470592924\
936150343266633985142843655469994569073421029983930187839673\
231304118378435528853547015678271557689994924601344298390228\
619544093746214985249883379160686079281428516645627300822824\
554858971061164154855964833723337825341913008711122841606297\
197473771096334331602524570534960013696483960191358924434313\
204392666956909347275363383898878667630642018321060515094118\
366254498987167810320495485827416968962224010263497699545330\
700657309536605222308797502818350426296399499436888453557895\
867230278273510526890091559230412097455704458315552197774216\
020745527743626346151485239632739221842741175405177684804394\
361711074487719586587230018764876415713150171856819389147341\
275669916553647687850492420266494611267030777224588709818335\
130470138515564128370191474596569064918407585797604709553556\
153119278534086702508240133812429162630997831448842506314109\
096085389961648575948522991756162744630412635636848292144248\
454353112463327392007249690205303145102507449765353317125075\
809869430616460927871568186526610739964782640547967178516125\
405550545621289728437343949195632975960067100886025662262995\
603152291369500371247077545422478193737712990735596074413987\
957973881092036286428057398201980915642421361590996553421555\
316064082532807274813471773535367399675092780772709495672695\
638383696748260197644726786065705886850676921416175143972878\
598022936105171100945812789025606978738223958028881794991460\
717838828707859620282931646221494189728518355751185688156172\
707197545186901278242225037114294367925941035155563079724640\
691338994542267517327767311818967695636738982145621453404681\
597847179517622202885989672690265113711173934611717946823228\
397269027374612101610291381645684907000127191954606896606821\
590588324712918734294575638459194809203005860495067520818982\
501215535430594372806160514507726395270189393064661968830908\
304247420614491691520206185072149333329597584485319840857460\
265175822272362267526401706014494934473630591895417261120077\
133201893929459989521012503630498808303587706658289229523671\
490086823643677193804640968971899497667525177372180606601357\
946053731548464954766765148914121287985119918483345042934824\
921516525874627647509368638818236001368121865230049945146050\
915400988318811431699646592683887426055545037715235200928093\
246677400833057921544547343859646810337159831128073581305667\
357013148110868411733638100650377414586379725851070828342144\
324871613425390515134466319365812090990461348903165220975937\
942087587710809288871423718310748650171330836567440569630410\
158371483868179555733183389141963880079090211810793589559200\
341349405637234489991011938576106350455389513465949915412344\
095068082292812278313616014687263054439671001595898696547120\
071413092106692303936769895441754991768984405737441179222392\
477690507985618624574174635988619556351531961292903622442398\
465808497855672165108657385643858675294859076016771263488980\
522695116051395273941662616850391834541635202685385855278463\
251898869471939032633039670027544098536117464245519928068578\
059287479506611827627630303758606108821427100635428077686167\
838877563228833937206563827108338906357929116383562352410405\
819098609305801465027923966325234651981390511492536734174727\
254390774950693797823728058324006157763280570016526212182043\
359093899236806643141856753863283409843786902795368575137111\
428715987789800161590594633948264245607103000992774452293895\
095821092685830313673954662073218494688153180395906146506745\
561411975629305038852550421137841068003638882161156093692580\
530194161044123524750036105635809277947168629873067749519842\
957433509350316508339628224443809642374220084876711715865698\
238309708050571369447923974325750197314968509790081061483804\
453550810603239090298082506325805730097187923044635197024326\
966746334305257051886113456387761013622870382593208533889592\
238925214891289068690048585049758987775121620114117517878005\
875020040085404765102967971726139392362711332104766149529294\
277730971232752039868784363740304437529370880909321409176692\
668840956756850124527879832299559696177391050297700824622043\
866382460366020930152337219476058757174016585113549831063750\
560749343236827486905002179231150529681970396017795115367543\
697626587387836076075141284451928300176122499787310671827087\
811887033677814397925059153373881836118105886419378651616798\
592240268616476519445858857179518827325394147075773777729444\
146380220504445359824894865222389302601440729048815894804537\
204733015744064565559548968109597836406827155741056311263299\
722947063908589431715872616727470668964127501101998064669236\
547074458426237111173086536319506989478611558297416195273399\
35302734375e-4966L;
static const long double ld2c =
9.7127626791570376663866584373414698287493540070520215145348\
265837955593101861790565265072369149749103838172122152721795\
148808298295738130700276651079589269745641890661270024016251\
019384577076103591727897583309855871833343782567221021062330\
520323854737144092431836545425360063420220465935798468889597\
393404878618618014948930985668173745969857941024624992678516\
796046407897341714914468689706271051039477065250599233051128\
834730700520991768191047336500699552011524055936141175278227\
064109997091342657525775034753507507952039644285302561195715\
206557908066743405503232817530015665644259150328222704419796\
441925506500088029030962482377765030782723392665098962794517\
576730231882534561711832295689196981946271461652617181055665\
029685844922254588158309151172148171793920968125962871768401\
514219388391855549421226044104700106207541829733799638752028\
173330033785725845708464578148564931432318289223948214495353\
081747057754695954292472958266030251293951030611301194357888\
019943253579850479798277589149352414382665544987175298434214\
478200760268387259124784797823102040919106572400856191771348\
281558462777916462381681390008210723234194499857395959685631\
103905591697879596717577715572554824817827584594613762331897\
400606438644266287902006019904862430824505901556613731586390\
168599701978602862986749723963103806767402004526070426607181\
825747922672223610811748401048244356042029124854637072147748\
725579398139682075412513930407121100054336291386326642984001\
127998334974858209653245050832581320436526628590981309844730\
407816586888468434842085594277964816488928181716264953794825\
008820444984449555836465896129531451786104307525226808006600\
779348570662654426040504120543057111107378732433349774914269\
114072708176913318160948697397435213257520066915742989940448\
143697754422357993424629248859049440534892849320746268179914\
554583983135330126247834945300073309752528242351508345806997\
166008883707127049913489117882817860966482186638832168035518\
547034785578194655682192342735350140833854383710286830614088\
160157865037563419851961350527354941108767405900340732309106\
276336035381203764047251096208168592703256215746762632401447\
152692930097455870617179441468393769999033655798513790480379\
006890871305232768065242533442449079450072575765459163647064\
342973773862113844201909366754475759002671807165811771132763\
080642939637475165826471100668049369686467070723571785727451\
880981477281249312246654190920467838735709729099560268987993\
922945108459361151792094263319471761024927851228982814252213\
519491081673366498846956075196529123585663883716590919107614\
633893976419001988983816482034201465056277885540374744476861\
750132141428803822571155963108435657119217200055907192435247\
874999372748282438180554683005862623824642214599119474694103\
960853742166199856978367947235980051781968651483783495342232\
954349909573385979410403141459464534634995394356365919502754\
724946777741899521109008000695745645078551399660814021116536\
655749435948779817814066783795859497355305214492181630929578\
847199238542943651540507599871461279285579624694324361023373\
707531098971698541342280852237066460615431579189178378561194\
172524973953556992919385025122842333469297321105671995800309\
309633498690867723547140713111442746824881534458886302917356\
653091434863492329838352758301829757778933132703869088008094\
675627125816403572843436425276619486609339270853697062497300\
328870997605020552097286001653505594207990557642339328807413\
227100406607755741340441132517749388595948759195317512557878\
416233575616587901198472089121093330999897692799317101600836\
099489460591403665960336872530069816871780920562654935511809\
645452735200740179624950793984014164529466444382558710840503\
646450512405234491455440034942909031078393317704206940370308\
684236835526397150556746599533254593941633896202932393007537\
673266074923116068628384786062194914042771295779439885715389\
357594885989682121213153533215605128333850742639410724967673\
883284678814436067523913854991596587657401966348100597154425\
325485566823423076082201071414803929712348781452793135058870\
492918348933242055431354758500236922407134394398698076450588\
396958158802767825944728350880686237998680915415443167076178\
911739085748840458235337085643267137446973020988327650097647\
165014946264643975815638479556314291101645367935123993093786\
582600438548945848259707843279161086198675408925933600311615\
428118865841645716039791455856756541424710978756200560993332\
887344427373688627922683426869140915164843256020904560951477\
891674986393096433202120538411067908090153863118403925770011\
018063004678778615949475991732024974692553643880962797066439\
850738990118773176131476115230730262123167407320563510551236\
743953710665679470765273617718616108994029022776271817109585\
266594261331597335282139081984596344964057781522191646561827\
550790563823105342889841684791723392119663413065274464824389\
193009710215891507033131686963884367885455869616509038575859\
401565845913422314243208408202380488923480307905914026187792\
173761338231822535262836663234810324357814170469665216751909\
358778546855365681180620451075947932208061785930047186745864\
869465034307360299821666637866586258459810085040702059082829\
751567542893449238034641018001458509309792474567933738149575\
554449108144820908702151811237205173697690115303153085234681\
514152955272511661522989847510493796115116064878740702806004\
343433164318094216952115530098938898426308252149645340589562\
644869225768357954631994812409839231441980355794430127694896\
896491616863512720318746239544591731455028723849548933141295\
953669192660989415044776894176322467844855976195199023921936\
699427841174911239593401205926299751407204361412696320213363\
304107778816937724874521837448233888318479329375321435968913\
261660516526419532347019419540663257128411929128403012569143\
516560220706745585698808432508320490642705990501525005042508\
275152136114303501571602916305930838603123093402367005177263\
895812313295965866584099164896749137750449430252650456393558\
866481394042988928722749344174035609284576107405441387577215\
111650422217580504962998404223989353315671519700308885487441\
513727141662624359402989615511685507459107087446822399682449\
124027371539629961321880337101198819624529636970480400208723\
642799448540704293456340205242051084761997006863111517147530\
365332128784516968162146751508776010231492748374862213804161\
453894620976763957492805125680148697998824491969672971166027\
180656446801877171069880212083821586527774381471938887462267\
296899230122475689865309301760858111386017280236814433190859\
056775862835626324841690460105276503738155096364862500284444\
534355852480049710328635489743555059728455908589253208618030\
435328529902401798471113159138000614546932833170782820217007\
280555759644239993454255391040403122345898223865007840565901\
568897868969477318635101744807938902538658059188203743585010\
774036188072258210874395280659266831769875140840386730345127\
896213224531135734216598150684561709935188763611823258429535\
949485724798457980490432226268479100942840366849845718310701\
201469881667256363013936740095127208213646187168979882123038\
233894681808950467950348320835221712924541137611086830583320\
322392848230358837873140824038588941813883882580818470592924\
936150343266633985142843655469994569073421029983930187839673\
231304118378435528853547015678271557689994924601344298390228\
619544093746214985249883379160686079281428516645627300822824\
554858971061164154855964833723337825341913008711122841606297\
197473771096334331602524570534960013696483960191358924434313\
204392666956909347275363383898878667630642018321060515094118\
366254498987167810320495485827416968962224010263497699545330\
700657309536605222308797502818350426296399499436888453557895\
867230278273510526890091559230412097455704458315552197774216\
020745527743626346151485239632739221842741175405177684804394\
361711074487719586587230018764876415713150171856819389147341\
275669916553647687850492420266494611267030777224588709818335\
130470138515564128370191474596569064918407585797604709553556\
153119278534086702508240133812429162630997831448842506314109\
096085389961648575948522991756162744630412635636848292144248\
454353112463327392007249690205303145102507449765353317125075\
809869430616460927871568186526610739964782640547967178516125\
405550545621289728437343949195632975960067100886025662262995\
603152291369500371247077545422478193737712990735596074413987\
957973881092036286428057398201980915642421361590996553421555\
316064082532807274813471773535367399675092780772709495672695\
638383696748260197644726786065705886850676921416175143972878\
598022936105171100945812789025606978738223958028881794991460\
717838828707859620282931646221494189728518355751185688156172\
707197545186901278242225037114294367925941035155563079724640\
691338994542267517327767311818967695636738982145621453404681\
597847179517622202885989672690265113711173934611717946823228\
397269027374612101610291381645684907000127191954606896606821\
590588324712918734294575638459194809203005860495067520818982\
501215535430594372806160514507726395270189393064661968830908\
304247420614491691520206185072149333329597584485319840857460\
265175822272362267526401706014494934473630591895417261120077\
133201893929459989521012503630498808303587706658289229523671\
490086823643677193804640968971899497667525177372180606601357\
946053731548464954766765148914121287985119918483345042934824\
921516525874627647509368638818236001368121865230049945146050\
915400988318811431699646592683887426055545037715235200928093\
246677400833057921544547343859646810337159831128073581305667\
357013148110868411733638100650377414586379725851070828342144\
324871613425390515134466319365812090990461348903165220975937\
942087587710809288871423718310748650171330836567440569630410\
158371483868179555733183389141963880079090211810793589559200\
341349405637234489991011938576106350455389513465949915412344\
095068082292812278313616014687263054439671001595898696547120\
071413092106692303936769895441754991768984405737441179222392\
477690507985618624574174635988619556351531961292903622442398\
465808497855672165108657385643858675294859076016771263488980\
522695116051395273941662616850391834541635202685385855278463\
251898869471939032633039670027544098536117464245519928068578\
059287479506611827627630303758606108821427100635428077686167\
838877563228833937206563827108338906357929116383562352410405\
819098609305801465027923966325234651981390511492536734174727\
254390774950693797823728058324006157763280570016526212182043\
359093899236806643141856753863283409843786902795368575137111\
428715987789800161590594633948264245607103000992774452293895\
095821092685830313673954662073218494688153180395906146506745\
561411975629305038852550421137841068003638882161156093692580\
530194161044123524750036105635809277947168629873067749519842\
957433509350316508339628224443809642374220084876711715865698\
238309708050571369447923974325750197314968509790081061483804\
453550810603239090298082506325805730097187923044635197024326\
966746334305257051886113456387761013622870382593208533889592\
238925214891289068690048585049758987775121620114117517878005\
875020040085404765102967971726139392362711332104766149529294\
277730971232752039868784363740304437529370880909321409176692\
668840956756850124527879832299559696177391050297700824622043\
866382460366020930152337219476058757174016585113549831063750\
560749343236827486905002179231150529681970396017795115367543\
697626587387836076075141284451928300176122499787310671827087\
811887033677814397925059153373881836118105886419378651616798\
592240268616476519445858857179518827325394147075773777729444\
146380220504445359824894865222389302601440729048815894804537\
204733015744064565559548968109597836406827155741056311263299\
722947063908589431715872616727470668964127501101998064669236\
547074458426237111173086536319506989478611558297416195273399\
35302734375001e-4966L;
/* 0x1.00000000000000000000000000008p16383 */
static const long double ld3ae = 0x1p16383L, ld3be = 0x1p16383L, ld3ce = 0x1.0000000000000000000000000001p16383L;
static const long double ld3a =
5.9486574767861588254287966331400362266521016077566321470782\
537912717956830282749074200158904838100315216442070246474582\
902003466452178519493817532236893426065414065500349426609921\
035191682920005861156266113904955955975156868485667432573303\
878926292023832306985858165533616318247459636179261303962505\
904914506095247123433601806274279678546351097459236573913920\
031119173565521719790447288258729779003490433862818295682642\
966216118764004792730459319737327354906008978235133081179386\
661103577408353480771246949457853166617701522167422003413661\
284349262437896929014552545611813747697933241007066137144800\
742052491919942298834913628182656296203230288447275444631994\
418174246363265098248611943128819168942591708210157385631417\
956400560296628065072016801065604053356267458749418972817500\
860163920552394032596390414022010839803056885484295371329659\
344624001094572196271168792142488910586863048428263135994222\
918660801863635503541746352435642903327106245556596971697306\
154375736529491499973297647239267168544491542059174479409314\
453930981788080813637734358380528957486229480817553751111130\
404254432007093360403147894746265072027252334199618554793914\
408408563073872776198001518686536858983411123156743992398602\
085226973929708268146742705557350571330511483380748376403472\
416543579901056379914358020396036857647833383066531875675143\
906511120597222727322243981995901699031025427175941279288823\
868963521340475095965307606235778429805072284801680535137734\
383642104178041358430293569208331406005130704155581295151191\
023575851522079817808333970280354640050199344622016227349001\
158400930280667186488774262251890453600109065837537684194570\
764422774923245437306731669764159584659798151950637627762794\
773771743234047950402370403351226180108444229650943701626484\
199813157683590670152514287926030050893275989087988431157294\
053225152320381185461962202878894704210605536874860744635921\
856800920799848781308318732102232154544901177747472418520161\
539850654183977571241391795912749098112352006092865789718049\
308722403022684428414862730635213534446271587083620368851394\
539053886621230946713996355227159995125430034494483477708852\
290917108703653719242299789100268057863851224567265334616704\
172517852701300018859009181286438758473871366303386211559752\
189988549719766361306120241141163757479824826687017385967199\
730649217746155593260923125994938678356692052428393066501806\
030161358556419313420716683771612548240263459903320490075985\
482955242306590857238462197972208846146747634114611463194143\
127229709932188005016692926586196070737427116881065809283735\
578248117685225847553587906225824731173075427424421056682930\
008434666477496431516691881829440430197100204332606435934395\
919650053069892524027974091575173698894803107552411683630872\
565514028274910395383420510115859479233531504702656455261624\
525121293886827716275308028935388238178963278225114817400178\
138358373030159940110845417191798464503817960506134575572552\
914585335913528444536373142082490326061583126796147603336390\
503084982226891516248370317420733394038771780044922478150880\
480334844447412365553656029955296322473008695074712792828366\
405738282245039545396582938290818627301780773130202921675326\
417583673495241569334204568141534153408474297319168484568799\
451491133718839097374713416523361939237171154953070144389353\
699828605993755613252573941610133829557167740458222617685028\
690018342727148122013513056358815140027414679795450105000784\
206522215604435223172005007036171570530334304897008809135848\
675229547083561399988252552429769084290516103080260036003448\
294799988351419108088251107290628711358276092795741489822211\
879153727229891058795497426373608319405317602924241055836665\
412584135657242160003706626205312971822953452930840783143003\
733239017808969394445195220787737174218027747221253900890536\
730326425051240764874006627032589076376990325467270006751475\
463920721323985366812116303998245085483206258613663624851716\
293180303624443281556295689730668616708901429287181381627670\
203893651414675005136379365959571811951919653635887567699289\
348324076406793991923217469674198904524716009847788439650157\
995310043698774137542541699134940585662745702625097983274489\
141416414789061652098131796728731652650516767112149192122453\
562328802846445391417036742140146906572447511494124473885963\
235217227016424204095604485308686968373890645296189932416571\
281295736247619241329068636405743573306087991776733585972793\
132869616481671565021096885870153734254648327143225051745267\
530463119926261147612098111086806545372953526471421579845285\
862975776235466663857936867536855924718593170503922894779577\
706239977813334283740751103082483280516469722321753891088699\
714361755511843803441649441302693703577359971743834932539197\
595873998629500074441134301810890941848881837426270390549007\
490141375766653241037340192392236932759127069111401216220596\
540958515892047794438580629374176225297401789362125586732528\
367695144980519774116001979888033796577336271850743828263427\
598863925843301048044096576340652808516459551933515596083641\
0468395384831999e+4931L;
static const long double ld3b =
5.9486574767861588254287966331400362266521016077566321470782\
537912717956830282749074200158904838100315216442070246474582\
902003466452178519493817532236893426065414065500349426609921\
035191682920005861156266113904955955975156868485667432573303\
878926292023832306985858165533616318247459636179261303962505\
904914506095247123433601806274279678546351097459236573913920\
031119173565521719790447288258729779003490433862818295682642\
966216118764004792730459319737327354906008978235133081179386\
661103577408353480771246949457853166617701522167422003413661\
284349262437896929014552545611813747697933241007066137144800\
742052491919942298834913628182656296203230288447275444631994\
418174246363265098248611943128819168942591708210157385631417\
956400560296628065072016801065604053356267458749418972817500\
860163920552394032596390414022010839803056885484295371329659\
344624001094572196271168792142488910586863048428263135994222\
918660801863635503541746352435642903327106245556596971697306\
154375736529491499973297647239267168544491542059174479409314\
453930981788080813637734358380528957486229480817553751111130\
404254432007093360403147894746265072027252334199618554793914\
408408563073872776198001518686536858983411123156743992398602\
085226973929708268146742705557350571330511483380748376403472\
416543579901056379914358020396036857647833383066531875675143\
906511120597222727322243981995901699031025427175941279288823\
868963521340475095965307606235778429805072284801680535137734\
383642104178041358430293569208331406005130704155581295151191\
023575851522079817808333970280354640050199344622016227349001\
158400930280667186488774262251890453600109065837537684194570\
764422774923245437306731669764159584659798151950637627762794\
773771743234047950402370403351226180108444229650943701626484\
199813157683590670152514287926030050893275989087988431157294\
053225152320381185461962202878894704210605536874860744635921\
856800920799848781308318732102232154544901177747472418520161\
539850654183977571241391795912749098112352006092865789718049\
308722403022684428414862730635213534446271587083620368851394\
539053886621230946713996355227159995125430034494483477708852\
290917108703653719242299789100268057863851224567265334616704\
172517852701300018859009181286438758473871366303386211559752\
189988549719766361306120241141163757479824826687017385967199\
730649217746155593260923125994938678356692052428393066501806\
030161358556419313420716683771612548240263459903320490075985\
482955242306590857238462197972208846146747634114611463194143\
127229709932188005016692926586196070737427116881065809283735\
578248117685225847553587906225824731173075427424421056682930\
008434666477496431516691881829440430197100204332606435934395\
919650053069892524027974091575173698894803107552411683630872\
565514028274910395383420510115859479233531504702656455261624\
525121293886827716275308028935388238178963278225114817400178\
138358373030159940110845417191798464503817960506134575572552\
914585335913528444536373142082490326061583126796147603336390\
503084982226891516248370317420733394038771780044922478150880\
480334844447412365553656029955296322473008695074712792828366\
405738282245039545396582938290818627301780773130202921675326\
417583673495241569334204568141534153408474297319168484568799\
451491133718839097374713416523361939237171154953070144389353\
699828605993755613252573941610133829557167740458222617685028\
690018342727148122013513056358815140027414679795450105000784\
206522215604435223172005007036171570530334304897008809135848\
675229547083561399988252552429769084290516103080260036003448\
294799988351419108088251107290628711358276092795741489822211\
879153727229891058795497426373608319405317602924241055836665\
412584135657242160003706626205312971822953452930840783143003\
733239017808969394445195220787737174218027747221253900890536\
730326425051240764874006627032589076376990325467270006751475\
463920721323985366812116303998245085483206258613663624851716\
293180303624443281556295689730668616708901429287181381627670\
203893651414675005136379365959571811951919653635887567699289\
348324076406793991923217469674198904524716009847788439650157\
995310043698774137542541699134940585662745702625097983274489\
141416414789061652098131796728731652650516767112149192122453\
562328802846445391417036742140146906572447511494124473885963\
235217227016424204095604485308686968373890645296189932416571\
281295736247619241329068636405743573306087991776733585972793\
132869616481671565021096885870153734254648327143225051745267\
530463119926261147612098111086806545372953526471421579845285\
862975776235466663857936867536855924718593170503922894779577\
706239977813334283740751103082483280516469722321753891088699\
714361755511843803441649441302693703577359971743834932539197\
595873998629500074441134301810890941848881837426270390549007\
490141375766653241037340192392236932759127069111401216220596\
540958515892047794438580629374176225297401789362125586732528\
367695144980519774116001979888033796577336271850743828263427\
598863925843301048044096576340652808516459551933515596083641\
0468395384832e+4931L;
static const long double ld3c =
5.9486574767861588254287966331400362266521016077566321470782\
537912717956830282749074200158904838100315216442070246474582\
902003466452178519493817532236893426065414065500349426609921\
035191682920005861156266113904955955975156868485667432573303\
878926292023832306985858165533616318247459636179261303962505\
904914506095247123433601806274279678546351097459236573913920\
031119173565521719790447288258729779003490433862818295682642\
966216118764004792730459319737327354906008978235133081179386\
661103577408353480771246949457853166617701522167422003413661\
284349262437896929014552545611813747697933241007066137144800\
742052491919942298834913628182656296203230288447275444631994\
418174246363265098248611943128819168942591708210157385631417\
956400560296628065072016801065604053356267458749418972817500\
860163920552394032596390414022010839803056885484295371329659\
344624001094572196271168792142488910586863048428263135994222\
918660801863635503541746352435642903327106245556596971697306\
154375736529491499973297647239267168544491542059174479409314\
453930981788080813637734358380528957486229480817553751111130\
404254432007093360403147894746265072027252334199618554793914\
408408563073872776198001518686536858983411123156743992398602\
085226973929708268146742705557350571330511483380748376403472\
416543579901056379914358020396036857647833383066531875675143\
906511120597222727322243981995901699031025427175941279288823\
868963521340475095965307606235778429805072284801680535137734\
383642104178041358430293569208331406005130704155581295151191\
023575851522079817808333970280354640050199344622016227349001\
158400930280667186488774262251890453600109065837537684194570\
764422774923245437306731669764159584659798151950637627762794\
773771743234047950402370403351226180108444229650943701626484\
199813157683590670152514287926030050893275989087988431157294\
053225152320381185461962202878894704210605536874860744635921\
856800920799848781308318732102232154544901177747472418520161\
539850654183977571241391795912749098112352006092865789718049\
308722403022684428414862730635213534446271587083620368851394\
539053886621230946713996355227159995125430034494483477708852\
290917108703653719242299789100268057863851224567265334616704\
172517852701300018859009181286438758473871366303386211559752\
189988549719766361306120241141163757479824826687017385967199\
730649217746155593260923125994938678356692052428393066501806\
030161358556419313420716683771612548240263459903320490075985\
482955242306590857238462197972208846146747634114611463194143\
127229709932188005016692926586196070737427116881065809283735\
578248117685225847553587906225824731173075427424421056682930\
008434666477496431516691881829440430197100204332606435934395\
919650053069892524027974091575173698894803107552411683630872\
565514028274910395383420510115859479233531504702656455261624\
525121293886827716275308028935388238178963278225114817400178\
138358373030159940110845417191798464503817960506134575572552\
914585335913528444536373142082490326061583126796147603336390\
503084982226891516248370317420733394038771780044922478150880\
480334844447412365553656029955296322473008695074712792828366\
405738282245039545396582938290818627301780773130202921675326\
417583673495241569334204568141534153408474297319168484568799\
451491133718839097374713416523361939237171154953070144389353\
699828605993755613252573941610133829557167740458222617685028\
690018342727148122013513056358815140027414679795450105000784\
206522215604435223172005007036171570530334304897008809135848\
675229547083561399988252552429769084290516103080260036003448\
294799988351419108088251107290628711358276092795741489822211\
879153727229891058795497426373608319405317602924241055836665\
412584135657242160003706626205312971822953452930840783143003\
733239017808969394445195220787737174218027747221253900890536\
730326425051240764874006627032589076376990325467270006751475\
463920721323985366812116303998245085483206258613663624851716\
293180303624443281556295689730668616708901429287181381627670\
203893651414675005136379365959571811951919653635887567699289\
348324076406793991923217469674198904524716009847788439650157\
995310043698774137542541699134940585662745702625097983274489\
141416414789061652098131796728731652650516767112149192122453\
562328802846445391417036742140146906572447511494124473885963\
235217227016424204095604485308686968373890645296189932416571\
281295736247619241329068636405743573306087991776733585972793\
132869616481671565021096885870153734254648327143225051745267\
530463119926261147612098111086806545372953526471421579845285\
862975776235466663857936867536855924718593170503922894779577\
706239977813334283740751103082483280516469722321753891088699\
714361755511843803441649441302693703577359971743834932539197\
595873998629500074441134301810890941848881837426270390549007\
490141375766653241037340192392236932759127069111401216220596\
540958515892047794438580629374176225297401789362125586732528\
367695144980519774116001979888033796577336271850743828263427\
598863925843301048044096576340652808516459551933515596083641\
0468395384832001e+4931L;
#endif
extern void abort (void);
extern void exit (int);
int
main (void)
{
#ifdef FLT_OK
if (f1a != f1ae
|| f1b != f1be
|| f1c != f1ce
|| f2a != f2ae
|| f2b != f2be
|| f2c != f2ce
|| f3a != f3ae
|| f3b != f3be
|| f3c != f3ce)
abort ();
#endif
#ifdef DBL_OK
if (d1a != d1ae
|| d1b != d1be
|| d1c != d1ce
|| d2a != d2ae
|| d2b != d2be
|| d2c != d2ce
|| d3a != d3ae
|| d3b != d3be
|| d3c != d3ce)
abort ();
#endif
#ifdef LDBL_OK
if (ld1a != ld1ae
|| ld1b != ld1be
|| ld1c != ld1ce
|| ld2a != ld2ae
|| ld2b != ld2be
|| ld2c != ld2ce
|| ld3a != ld3ae
|| ld3b != ld3be
|| ld3c != ld3ce)
abort ();
#endif
exit (0);
}
|