com.yahoo.sketches.hll.Interpolation Maven / Gradle / Ivy
/*
* Copyright 2015-16, Yahoo! Inc.
* Licensed under the terms of the Apache License 2.0. See LICENSE file at the project root for terms.
*/
package com.yahoo.sketches.hll;
/**
* @author Kevin Lang
*/
final class Interpolation {
private Interpolation() {}
static final int INTERPOLATION_MIN_LOG_K = 7;
static final int INTERPOLATION_MAX_LOG_K = 21;
//arrays could be made private and then accessed via getters. But may impact performance.
//CHECKSTYLE.OFF: LineLength
static final double interpolation_x_arrs[][] = {
// log K = 7
{91.554623, 93.970317, 96.431113, 98.937264, 101.488909, 104.086010, 106.728780, 109.417062,
112.150914, 114.930279, 117.755065, 120.625143, 123.540431, 126.500927, 129.506371, 132.556551,
135.651450, 138.790477, 141.973357, 145.200176, 148.470504, 151.783478, 155.139376, 158.537455,
161.977357, 165.458477, 168.980630, 172.543258, 176.145951, 179.788203, 183.469266, 187.188166,
190.945533, 194.739618, 198.570460, 202.437447, 206.339379, 210.276276, 214.247092, 218.251243,
222.288169, 226.357728, 230.458810, 234.590263, 238.751826, 242.942859, 247.162518, 251.410098,
255.685517, 259.987202, 264.314569, 268.667458, 273.044873, 277.445418, 281.869296, 286.316796,
290.785471, 295.276055, 299.788143, 304.319743, 308.869691, 313.438842, 318.026761, 322.632499,
327.254588, 331.892954, 336.547483, 341.217702, 345.901880, 350.601214, 355.313731, 360.038868,
364.777348, 369.526476, 374.288795, 379.061811, 383.846122, 388.640850, 393.446218, 398.260691,
403.084626, 407.916053, 412.755659, 417.604951, 422.461448, 427.324128, 432.195028, 437.072269,
441.956190, 446.846167, 451.741463, 456.641868, 461.549478, 466.461280, 471.377098, 476.297446,
481.222717, 486.151860, 491.085033, 496.022133, 500.962856, 505.906586, 510.853868, 515.802981,
520.755460, 525.711123, 530.668833, 535.629910, 540.592334, 545.557764, 550.525455, 555.494082,
560.463996, 565.436164, 570.410847, 575.385933, 580.361996, 585.339352, 590.318151, 595.300216,
600.281543, 605.264482, 610.250114, 615.236608, 620.222025, 625.208433, 630.195367, 635.183997,
640.172271, 645.162589, 650.153647, 655.144276, 660.133923, 665.123818, 670.115789, 675.109169,
680.103270, 685.097349, 690.091960, 695.086028, 700.080326, 705.075670, 710.069697, 715.065265,
720.062426, 725.058529, 730.054916, 735.050560, 740.048508, 745.044790, 750.041067, 755.037833,
760.035090, 765.033371, 770.029865, 775.025946, 780.022408, 785.021534, 790.018699, 795.016742,
800.013947, 805.012680, 810.009483, 815.007921, 820.008589, 825.007658, 830.007411, 835.006892,
840.006917, 845.006362, 850.004606, 855.003367, 860.001219, 864.999491, 869.999131, 874.998190,
879.998460, 884.997482, 889.995952, 894.995130, 899.994555, 904.993474, 909.991434, 914.990519,
919.991564, 924.992234, 929.993901, 934.992310, 939.992013, 944.993341, 949.993576, 954.992981,
959.993548, 964.993781, 969.993129, 974.994050, 979.994706, 984.994372, 989.994395, 994.995339,
999.995544, 1004.995498, 1009.996864, 1014.997829, 1019.996531, 1024.996724, 1029.997574, 1034.998591,
1039.997807, 1044.998954, 1050.000113, 1055.000633, 1060.000845, 1065.000760, 1070.000907, 1075.001248,
1080.001187, 1084.999775, 1089.999105, 1094.999647, 1100.001983, 1105.003468, 1110.004542, 1115.005170,
1120.006517, 1125.006493, 1130.006837, 1135.008369, 1140.006966, 1145.009225, 1150.008497, 1155.009589,
1160.009558, 1165.011395, 1170.009739, 1175.011131, 1180.013303, 1185.012525, 1190.014190, 1195.016399,
1200.016087, 1205.016715, 1210.018008, 1215.018108, 1220.019677, 1225.020269, 1230.019468, 1235.020515,
1240.021850, 1245.020961, 1250.019785, 1255.020253, 1260.020623, 1265.020156, 1270.020625, 1275.019028,
1280.019972},
// log K = 8
{183.877784, 188.720097, 193.652407, 198.675131, 203.788397, 208.992238, 214.286620, 219.671580,
225.147277, 230.713559, 236.370208, 242.117078, 247.953569, 253.880078, 259.895869, 266.000405,
272.193694, 278.474457, 284.843102, 291.298228, 297.839692, 304.466434, 311.177471, 317.972674,
324.850719, 331.811076, 338.852902, 345.974709, 353.175880, 360.455237, 367.811613, 375.244484,
382.752472, 390.334218, 397.988777, 405.714596, 413.510671, 421.376147, 429.308973, 437.308197,
445.372302, 453.500121, 461.690796, 469.942249, 478.253652, 486.623402, 495.049662, 503.532193,
512.068670, 520.658371, 529.299186, 537.990886, 546.732097, 555.520093, 564.355935, 573.235689,
582.159345, 591.126063, 600.133321, 609.181348, 618.267848, 627.392384, 636.552822, 645.748152,
654.977601, 664.239902, 673.534497, 682.859448, 692.213983, 701.598606, 711.009376, 720.446781,
729.910995, 739.397888, 748.908546, 758.443812, 768.000572, 777.577584, 787.174815, 796.791250,
806.427107, 816.079660, 825.748493, 835.435992, 845.136828, 854.854141, 864.583886, 874.328396,
884.085720, 893.855568, 903.637568, 913.431080, 923.234553, 933.049830, 942.873895, 952.707793,
962.551743, 972.402421, 982.263001, 992.131464, 1002.006941, 1011.888460, 1021.777462, 1031.671376,
1041.569600, 1051.476632, 1061.386996, 1071.302834, 1081.224251, 1091.148847, 1101.080297, 1111.013589,
1120.951962, 1130.893360, 1140.838011, 1150.786112, 1160.737100, 1170.689817, 1180.646908, 1190.604979,
1200.565150, 1210.527894, 1220.492169, 1230.460128, 1240.429764, 1250.401749, 1260.373274, 1270.349608,
1280.325544, 1290.302087, 1300.279074, 1310.257850, 1320.238948, 1330.221273, 1340.203554, 1350.186669,
1360.171345, 1370.156233, 1380.142561, 1390.129535, 1400.119177, 1410.107938, 1420.097171, 1430.087586,
1440.077831, 1450.067996, 1460.060299, 1470.050059, 1480.042995, 1490.035101, 1500.026878, 1510.021128,
1520.014262, 1530.008487, 1540.002895, 1549.996342, 1559.991075, 1569.986665, 1579.981202, 1589.976021,
1599.969512, 1609.964051, 1619.959210, 1629.957092, 1639.953516, 1649.948113, 1659.946715, 1669.945253,
1679.941736, 1689.938651, 1699.937600, 1709.936396, 1719.933608, 1729.931040, 1739.930316, 1749.927141,
1759.922600, 1769.920847, 1779.918614, 1789.915707, 1799.913000, 1809.910958, 1819.908532, 1829.906905,
1839.903410, 1849.904217, 1859.901705, 1869.898815, 1879.898869, 1889.899032, 1899.899113, 1909.896164,
1919.893199, 1929.894515, 1939.894965, 1949.893184, 1959.892164, 1969.890794, 1979.889035, 1989.888005,
1999.888538, 2009.888252, 2019.888976, 2029.890242, 2039.890655, 2049.891065, 2059.891068, 2069.889204,
2079.891120, 2089.892462, 2099.892479, 2109.891814, 2119.893049, 2129.893705, 2139.893471, 2149.894162,
2159.894213, 2169.895041, 2179.895987, 2189.894721, 2199.894028, 2209.896005, 2219.898683, 2229.898673,
2239.898012, 2249.898018, 2259.898215, 2269.899380, 2279.902590, 2289.903144, 2299.902047, 2309.904214,
2319.903812, 2329.904180, 2339.902528, 2349.903057, 2359.903089, 2369.904512, 2379.902563, 2389.905522,
2399.903653, 2409.902313, 2419.904452, 2429.905949, 2439.905059, 2449.904954, 2459.904977, 2469.905111,
2479.904049, 2489.903762, 2499.902022, 2509.904352, 2519.903272, 2529.901643, 2539.900789, 2549.903045,
2559.904334},
// log K = 9
{368.528954, 378.224619, 388.100156, 398.155846, 408.391912, 418.808631, 429.406377, 440.185048,
451.144613, 462.284693, 473.604932, 485.105306, 496.784844, 508.643147, 520.679581, 532.893098,
545.282616, 557.848295, 570.587645, 583.500268, 596.584345, 609.838697, 623.261582, 636.851681,
650.607666, 664.527320, 678.608336, 692.849674, 707.248088, 721.803089, 736.511331, 751.372034,
766.381798, 781.538178, 796.839808, 812.283881, 827.867995, 843.588520, 859.444318, 875.432109,
891.550599, 907.795630, 924.165943, 940.657393, 957.268601, 973.995685, 990.837235, 1007.789667,
1024.850025, 1042.016602, 1059.286426, 1076.658199, 1094.126523, 1111.689346, 1129.345589, 1147.092119,
1164.926795, 1182.844471, 1200.846880, 1218.929006, 1237.088281, 1255.322930, 1273.630393, 1292.007269,
1310.452948, 1328.963430, 1347.538768, 1366.176566, 1384.871299, 1403.626249, 1422.434094, 1441.295238,
1460.208340, 1479.169853, 1498.179265, 1517.234855, 1536.335403, 1555.477305, 1574.659180, 1593.881592,
1613.139378, 1632.433516, 1651.764587, 1671.127255, 1690.519577, 1709.942250, 1729.393153, 1748.871689,
1768.377142, 1787.907209, 1807.464755, 1827.043146, 1846.641976, 1866.263022, 1885.903553, 1905.564908,
1925.240581, 1944.936723, 1964.648221, 1984.375489, 2004.117246, 2023.875053, 2043.644075, 2063.423514,
2083.218689, 2103.026148, 2122.840475, 2142.669046, 2162.505619, 2182.351758, 2202.205963, 2222.068658,
2241.939010, 2261.814547, 2281.701803, 2301.591894, 2321.490728, 2341.393208, 2361.298412, 2381.211528,
2401.132345, 2421.057721, 2440.985510, 2460.916691, 2480.851468, 2500.792645, 2520.738446, 2540.683395,
2560.634603, 2580.586307, 2600.540530, 2620.497170, 2640.458137, 2660.421783, 2680.386186, 2700.352664,
2720.321411, 2740.291944, 2760.264068, 2780.238910, 2800.212546, 2820.185829, 2840.163952, 2860.142145,
2880.120568, 2900.102466, 2920.081981, 2940.062964, 2960.046262, 2980.029101, 3000.012591, 3019.998424,
3039.983637, 3059.969573, 3079.955927, 3099.942114, 3119.930348, 3139.919614, 3159.909130, 3179.899816,
3199.892231, 3219.885316, 3239.878917, 3259.871675, 3279.865195, 3299.856210, 3319.848871, 3339.840385,
3359.834158, 3379.830660, 3399.826361, 3419.822855, 3439.814714, 3459.813765, 3479.808673, 3499.804339,
3519.797785, 3539.791012, 3559.789885, 3579.785152, 3599.780237, 3619.775480, 3639.772724, 3659.768920,
3679.765735, 3699.766361, 3719.765048, 3739.762845, 3759.761526, 3779.757598, 3799.755719, 3819.751149,
3839.750182, 3859.749673, 3879.749344, 3899.749939, 3919.749060, 3939.748385, 3959.750520, 3979.750055,
3999.750104, 4019.749963, 4039.748453, 4059.746737, 4079.744522, 4099.744430, 4119.741804, 4139.740704,
4159.742056, 4179.740063, 4199.739155, 4219.741718, 4239.743433, 4259.743115, 4279.743265, 4299.745518,
4319.746682, 4339.750491, 4359.748549, 4379.747226, 4399.750319, 4419.750379, 4439.752339, 4459.750561,
4479.750612, 4499.747862, 4519.750693, 4539.747476, 4559.749051, 4579.750603, 4599.750089, 4619.754781,
4639.755536, 4659.758879, 4679.762145, 4699.762199, 4719.763886, 4739.765081, 4759.765681, 4779.765427,
4799.767582, 4819.769915, 4839.770107, 4859.769398, 4879.768976, 4899.768288, 4919.768786, 4939.768607,
4959.772822, 4979.772833, 4999.775808, 5019.773468, 5039.776181, 5059.770860, 5079.773006, 5099.773136,
5119.772474},
// log K = 10
{737.833738, 757.236338, 776.997875, 797.119465, 817.602058, 838.445349, 859.650320, 881.216437,
903.143414, 925.430957, 948.079220, 971.086231, 994.451449, 1018.173846, 1042.251928, 1066.683804,
1091.467648, 1116.601416, 1142.083017, 1167.909918, 1194.079097, 1220.588887, 1247.435099, 1274.614860,
1302.125360, 1329.962942, 1358.123177, 1386.601609, 1415.396299, 1444.501692, 1473.913256, 1503.628515,
1533.642054, 1563.948888, 1594.544067, 1625.424305, 1656.582169, 1688.016543, 1719.718553, 1751.685990,
1783.912130, 1816.393610, 1849.122123, 1882.095124, 1915.305647, 1948.748605, 1982.419843, 2016.313904,
2050.422277, 2084.742618, 2119.270601, 2153.998538, 2188.920843, 2224.034736, 2259.333960, 2294.812594,
2330.467059, 2366.291844, 2402.281356, 2438.428954, 2474.734330, 2511.187839, 2547.786319, 2584.527356,
2621.406814, 2658.418551, 2695.554270, 2732.812564, 2770.190157, 2807.682744, 2845.287138, 2882.995251,
2920.807982, 2958.719996, 2996.728771, 3034.826885, 3073.014082, 3111.287116, 3149.642093, 3188.073159,
3226.577352, 3265.156836, 3303.803738, 3342.515111, 3381.291514, 3420.130671, 3459.024315, 3497.974631,
3536.978221, 3576.034737, 3615.138610, 3654.285859, 3693.480455, 3732.715296, 3771.991792, 3811.305300,
3850.654870, 3890.041152, 3929.457167, 3968.905021, 4008.381466, 4047.886976, 4087.419414, 4126.978997,
4166.562624, 4206.166726, 4245.793284, 4285.445151, 4325.113012, 4364.802795, 4404.506274, 4444.228475,
4483.965191, 4523.719569, 4563.487708, 4603.267460, 4643.060387, 4682.865430, 4722.680718, 4762.503248,
4802.341326, 4842.185529, 4882.039088, 4921.900432, 4961.772625, 5001.649566, 5041.534380, 5081.425809,
5121.323013, 5161.224908, 5201.130560, 5241.044625, 5280.962456, 5320.882373, 5360.810007, 5400.740058,
5440.673843, 5480.606748, 5520.547394, 5560.493520, 5600.438100, 5640.383853, 5680.335386, 5720.292400,
5760.250576, 5800.212705, 5840.172984, 5880.134991, 5920.097923, 5960.060294, 6000.031177, 6040.003398,
6079.981696, 6119.954349, 6159.929074, 6199.908569, 6239.886163, 6279.863659, 6319.838261, 6359.815405,
6399.795170, 6439.777225, 6479.755885, 6519.738857, 6559.723169, 6599.708549, 6639.695186, 6679.679788,
6719.663289, 6759.651052, 6799.634129, 6839.624763, 6879.615013, 6919.605584, 6959.591310, 6999.586006,
7039.577399, 7079.565236, 7119.557222, 7159.548481, 7199.533025, 7239.519648, 7279.511781, 7319.507639,
7359.506105, 7399.497488, 7439.494944, 7479.491545, 7519.488415, 7559.480534, 7599.475646, 7639.470315,
7679.468730, 7719.460928, 7759.455834, 7799.455686, 7839.451758, 7879.446841, 7919.443884, 7959.444138,
7999.443141, 8039.446339, 8079.445285, 8119.444120, 8159.443157, 8199.446480, 8239.438893, 8279.437597,
8319.439714, 8359.441566, 8399.440754, 8439.439156, 8479.440112, 8519.442365, 8559.444795, 8599.444497,
8639.446714, 8679.449177, 8719.447620, 8759.443423, 8799.445995, 8839.446170, 8879.449622, 8919.450486,
8959.450372, 8999.449731, 9039.448449, 9079.452579, 9119.451596, 9159.454020, 9199.456651, 9239.460902,
9279.460419, 9319.461322, 9359.464611, 9399.467790, 9439.471448, 9479.468426, 9519.462982, 9559.464881,
9599.462983, 9639.461706, 9679.457284, 9719.457023, 9759.455648, 9799.458786, 9839.456980, 9879.457411,
9919.454971, 9959.451735, 9999.451916, 10039.443939, 10079.435325, 10119.432142, 10159.431313, 10199.431306,
10239.429671},
// log K = 11
{1476.444530, 1515.260638, 1554.794859, 1595.048761, 1636.023652, 1677.720065, 1720.138513, 1763.279158,
1807.141823, 1851.724811, 1897.027530, 1943.048153, 1989.784818, 2037.234835, 2085.395149, 2134.263580,
2183.834818, 2234.105548, 2285.071077, 2336.726064, 2389.065940, 2442.084276, 2495.776521, 2550.134177,
2605.153465, 2660.825522, 2717.142881, 2774.098631, 2831.683790, 2889.889911, 2948.711233, 3008.137464,
3068.158605, 3128.766926, 3189.951984, 3251.704129, 3314.013826, 3376.873018, 3440.270569, 3504.194851,
3568.636295, 3633.586039, 3699.031630, 3764.962925, 3831.371336, 3898.245744, 3965.574384, 4033.345701,
4101.550888, 4170.180686, 4239.221393, 4308.664143, 4378.497100, 4448.712735, 4519.296212, 4590.243535,
4661.538747, 4733.174738, 4805.142002, 4877.427081, 4950.019513, 5022.915001, 5096.098561, 5169.567185,
5243.312012, 5317.314578, 5391.572253, 5466.077564, 5540.821377, 5615.792025, 5690.985894, 5766.392174,
5842.007403, 5917.816734, 5993.815607, 6069.999957, 6146.362662, 6222.895187, 6299.592875, 6376.440778,
6453.443173, 6530.588182, 6607.874560, 6685.288536, 6762.829840, 6840.490840, 6918.272948, 6996.164556,
7074.161694, 7152.259404, 7230.451098, 7308.737035, 7387.113244, 7465.575350, 7544.120230, 7622.733447,
7701.427750, 7780.188044, 7859.016102, 7937.904850, 8016.853624, 8095.860379, 8174.919884, 8254.034842,
8333.197794, 8412.405307, 8491.657429, 8570.946804, 8650.278289, 8729.648657, 8809.056098, 8888.496764,
8967.966663, 9047.466051, 9126.993636, 9206.547289, 9286.127523, 9365.733732, 9445.361201, 9525.008810,
9604.680107, 9684.363532, 9764.066435, 9843.787987, 9923.523567, 10003.272886, 10083.037524, 10162.811803,
10242.597755, 10322.402415, 10402.216522, 10482.042584, 10561.877077, 10641.722187, 10721.570740, 10801.435848,
10881.301249, 10961.178474, 11041.059765, 11120.951444, 11200.845806, 11280.746075, 11360.652145, 11440.567398,
11520.476709, 11600.395391, 11680.316855, 11760.241900, 11840.170134, 11920.103548, 12000.038206, 12079.975425,
12159.912459, 12239.857191, 12319.802744, 12399.754385, 12479.707055, 12559.658981, 12639.614004, 12719.566502,
12799.526877, 12879.488833, 12959.451231, 13039.416480, 13119.388158, 13199.360789, 13279.334923, 13359.298927,
13439.261641, 13519.235871, 13599.204919, 13679.181082, 13759.157391, 13839.137425, 13919.112545, 13999.096522,
14079.082789, 14159.060487, 14239.040581, 14319.025236, 14399.006995, 14478.994078, 14558.980576, 14638.962774,
14718.952192, 14798.938522, 14878.931501, 14958.919062, 15038.907891, 15118.897247, 15198.889129, 15278.881057,
15358.873272, 15438.867627, 15518.861931, 15598.858206, 15678.850014, 15758.849382, 15838.847872, 15918.837658,
15998.837920, 16078.831305, 16158.827345, 16238.815546, 16318.817302, 16398.814389, 16478.815820, 16558.811634,
16638.808126, 16718.807170, 16798.805652, 16878.813389, 16958.806543, 17038.807885, 17118.813146, 17198.813752,
17278.817574, 17358.820511, 17438.819443, 17518.814262, 17598.815511, 17678.814160, 17758.816726, 17838.817584,
17918.814197, 17998.821276, 18078.822342, 18158.828474, 18238.822064, 18318.826732, 18398.827758, 18478.827319,
18558.834153, 18638.835651, 18718.839105, 18798.840903, 18878.836463, 18958.836015, 19038.836351, 19118.832583,
19198.829856, 19278.822953, 19358.824866, 19438.823697, 19518.826538, 19598.826954, 19678.831393, 19758.822279,
19838.818757, 19918.808247, 19998.804516, 20078.809201, 20158.808900, 20238.806398, 20318.798516, 20398.802224,
20478.803179},
// log K = 12
{2953.666722, 3031.310137, 3110.389526, 3190.908699, 3272.865410, 3356.267166, 3441.114376, 3527.404284,
3615.136846, 3704.310976, 3794.924283, 3886.973846, 3980.451903, 4075.355844, 4171.681168, 4269.423939,
4368.569738, 4469.111760, 4571.043603, 4674.356370, 4779.038117, 4885.076002, 4992.460659, 5101.176875,
5211.214098, 5322.553631, 5435.184633, 5549.088369, 5664.258175, 5780.673987, 5898.312682, 6017.158593,
6137.195815, 6258.397951, 6380.761679, 6504.261630, 6628.870413, 6754.585867, 6881.374325, 7009.206926,
7138.080376, 7267.979175, 7398.866805, 7530.722851, 7663.531580, 7797.269872, 7931.907340, 8067.451667,
8203.855692, 8341.091306, 8479.155031, 8618.026003, 8757.682272, 8898.095612, 9039.253787, 9181.124777,
9323.694329, 9466.944202, 9610.861899, 9755.403639, 9900.578346, 10046.356477, 10192.718770, 10339.635914,
10487.081762, 10635.066232, 10783.560130, 10932.549371, 11082.024055, 11231.949071, 11382.332885, 11533.122831,
11684.327555, 11835.935533, 11987.926999, 12140.281619, 12292.994375, 12446.046449, 12599.411083, 12753.088314,
12907.079745, 13061.355923, 13215.895621, 13370.722085, 13525.795736, 13681.095971, 13836.645692, 13992.405906,
14148.380716, 14304.566860, 14460.959382, 14617.539754, 14774.296125, 14931.214508, 15088.271748, 15245.493870,
15402.867309, 15560.380994, 15718.035423, 15875.801492, 16033.687891, 16191.701231, 16349.808763, 16508.026001,
16666.336068, 16824.745049, 16983.259302, 17141.848044, 17300.504517, 17459.240272, 17618.060296, 17776.914688,
17935.848010, 18094.852645, 18253.914288, 18413.023567, 18572.168358, 18731.376016, 18890.631505, 19049.948196,
19209.279260, 19368.638871, 19528.043860, 19687.498901, 19846.941765, 20006.443084, 20165.973535, 20325.525957,
20485.109520, 20644.729917, 20804.363876, 20964.021778, 21123.698687, 21283.379344, 21443.080536, 21602.821439,
21762.568135, 21922.305338, 22082.065878, 22241.856145, 22401.629436, 22561.435266, 22721.262644, 22881.080478,
23040.916036, 23200.734053, 23360.583255, 23520.433188, 23680.275065, 23840.132678, 24000.012847, 24159.886135,
24319.788338, 24479.654024, 24639.540316, 24799.466449, 24959.369335, 25119.276072, 25279.186502, 25439.091982,
25599.020083, 25758.930671, 25918.847522, 26078.773060, 26238.704021, 26398.647566, 26558.603366, 26718.539855,
26878.464425, 27038.402892, 27198.344989, 27358.270906, 27518.203448, 27678.169545, 27838.133625, 27998.111630,
28158.064264, 28318.032491, 28477.994153, 28637.950838, 28797.910362, 28957.884994, 29117.861910, 29277.814384,
29437.774223, 29597.762256, 29757.729819, 29917.688497, 30077.675371, 30237.667941, 30397.639431, 30557.644527,
30717.622991, 30877.622641, 31037.598941, 31197.601527, 31357.599118, 31517.585221, 31677.569983, 31837.556138,
31997.527880, 32157.500622, 32317.491709, 32477.504936, 32637.501123, 32797.516330, 32957.547336, 33117.541765,
33277.561207, 33437.554332, 33597.564988, 33757.565321, 33917.561180, 34077.580598, 34237.597132, 34397.598246,
34557.617536, 34717.623318, 34877.649722, 35037.645029, 35197.681143, 35357.700478, 35517.701804, 35677.734383,
35837.736494, 35997.737103, 36157.732045, 36317.741539, 36477.735602, 36637.761491, 36797.742508, 36957.734137,
37117.742952, 37277.789218, 37437.793798, 37597.779066, 37757.796449, 37917.794116, 38077.804399, 38237.797507,
38397.788049, 38557.768583, 38717.768279, 38877.752553, 39037.747349, 39197.737646, 39357.774395, 39517.752643,
39677.753347, 39837.740038, 39997.719486, 40157.709578, 40317.708657, 40477.719261, 40637.726978, 40797.711139,
40957.707784},
// log K = 13
{5908.111420, 6063.410343, 6221.578483, 6382.623803, 6546.553966, 6713.369171, 6883.070010, 7055.656719,
7231.129758, 7409.486672, 7590.720089, 7774.822139, 7961.786850, 8151.601206, 8344.261218, 8539.750086,
8738.048786, 8939.141702, 9143.011205, 9349.645220, 9559.003557, 9771.078383, 9985.846791, 10203.277103,
10423.349219, 10646.031323, 10871.293001, 11099.111735, 11329.434411, 11562.255804, 11797.522109, 12035.204106,
12275.263649, 12517.670237, 12762.388671, 13009.375491, 13258.587519, 13510.006825, 13763.564399, 14019.227089,
14276.975295, 14536.745792, 14798.511796, 15062.215057, 15327.806593, 15595.257499, 15864.529774, 16135.586770,
16408.362074, 16682.849583, 16958.977019, 17236.708221, 17515.990972, 17796.798914, 18079.096585, 18362.834517,
18647.959152, 18934.452073, 19222.251998, 19511.366053, 19801.717928, 20093.269020, 20385.960319, 20679.772736,
20974.698498, 21270.684814, 21567.671010, 21865.649193, 22164.581341, 22464.423293, 22765.172894, 23066.785452,
23369.201089, 23672.387494, 23976.354000, 24281.072155, 24586.465328, 24892.557323, 25199.303712, 25506.654130,
25814.626835, 26123.148009, 26432.247046, 26741.889610, 27052.042135, 27362.685181, 27673.761784, 27985.292246,
28297.219809, 28609.572368, 28922.317633, 29235.448741, 29548.944253, 29862.766175, 30176.910610, 30491.363107,
30806.103787, 31121.126024, 31436.412153, 31751.975134, 32067.737444, 32383.768560, 32700.017044, 33016.458300,
33333.101934, 33649.904492, 33966.923435, 34284.105041, 34601.429152, 34918.876076, 35236.481998, 35554.235511,
35872.093847, 36190.101572, 36508.190892, 36826.420800, 37144.739624, 37463.138566, 37781.598984, 38100.191087,
38418.846511, 38737.587005, 39056.391321, 39375.255819, 39694.182864, 40013.173503, 40332.221146, 40651.311460,
40970.465534, 41289.697002, 41608.913381, 41928.242461, 42247.585089, 42566.988678, 42886.409594, 43205.849396,
43525.322840, 43844.784209, 44164.327769, 44483.869861, 44803.383648, 45122.975593, 45442.593765, 45762.258110,
46081.937012, 46401.605265, 46721.295022, 47041.004034, 47360.695978, 47680.435451, 48000.192231, 48319.953839,
48639.726508, 48959.506239, 49279.318744, 49599.117846, 49918.951926, 50238.772730, 50558.620076, 50878.455501,
51198.285377, 51518.135316, 51837.976134, 52157.809260, 52477.635805, 52797.492063, 53117.368983, 53437.262930,
53757.142921, 54077.026859, 54396.907345, 54716.835955, 55036.713062, 55356.640827, 55676.537369, 55996.488865,
56316.420754, 56636.355217, 56956.329593, 57276.245282, 57596.202473, 57916.159021, 58236.077854, 58556.010303,
58875.938110, 59195.924442, 59515.871947, 59835.838035, 60155.809948, 60475.808167, 60795.765545, 61115.766398,
61435.725825, 61755.677959, 62075.688445, 62395.647263, 62715.609853, 63035.591787, 63355.588060, 63675.579841,
63995.560980, 64315.552298, 64635.582956, 64955.538779, 65275.512154, 65595.490993, 65915.477332, 66235.470693,
66555.483426, 66875.455452, 67195.455039, 67515.435090, 67835.418300, 68155.401870, 68475.404599, 68795.452423,
69115.474466, 69435.450344, 69755.439668, 70075.479966, 70395.468204, 70715.475957, 71035.472807, 71355.513734,
71675.486047, 71995.450475, 72315.443410, 72635.425138, 72955.481520, 73275.482426, 73595.476688, 73915.469540,
74235.426693, 74555.381683, 74875.368981, 75195.429157, 75515.480428, 75835.517265, 76155.557945, 76475.556134,
76795.579451, 77115.605924, 77435.604178, 77755.572770, 78075.576305, 78395.562526, 78715.547599, 79035.551674,
79355.540615, 79675.575726, 79995.547586, 80315.544278, 80635.546227, 80955.555617, 81275.540591, 81595.549538,
81915.550079},
// log K = 14
{11817.000969, 12127.609164, 12443.958867, 12766.059919, 13093.926347, 13427.563687, 13766.972021, 14112.158775,
14463.118632, 14819.833221, 15182.310838, 15550.514164, 15924.452624, 16304.097682, 16689.414687, 17080.390156,
17476.985675, 17879.171048, 18286.913146, 18700.171223, 19118.909859, 19543.074108, 19972.606221, 20407.466793,
20847.600290, 21292.965548, 21743.489087, 22199.109276, 22659.760749, 23125.379711, 23595.914325, 24071.277989,
24551.407611, 25036.233071, 25525.671155, 26019.641791, 26518.074136, 27020.885189, 27528.004081, 28039.347478,
28554.818908, 29074.343878, 29597.869471, 30125.254970, 30656.449891, 31191.351228, 31729.908970, 32272.003587,
32817.586623, 33366.531359, 33918.769390, 34474.232727, 35032.798601, 35594.423192, 36159.024745, 36726.469786,
37296.712851, 37869.686035, 38445.278953, 39023.442285, 39604.084062, 40187.147209, 40772.503600, 41360.148758,
41949.978377, 42541.929077, 43135.892496, 43731.836459, 44329.664552, 44929.334224, 45530.772542, 46133.919152,
46738.746702, 47345.120215, 47953.051656, 48562.469011, 49173.281212, 49785.453501, 50398.908717, 51013.645932,
51629.563526, 52246.635759, 52864.820434, 53484.057447, 54104.303719, 54725.504675, 55347.680019, 55970.744363,
56594.688890, 57219.458967, 57844.949821, 58471.197998, 59098.180259, 59725.774793, 60354.058215, 60982.962558,
61612.427469, 62242.448368, 62873.013426, 63504.106743, 64135.672742, 64767.665213, 65400.082326, 66032.949331,
66666.219558, 67299.817447, 67933.801373, 68568.092593, 69202.717636, 69837.643507, 70472.852133, 71108.305774,
71744.023189, 72380.016332, 73016.168118, 73652.560876, 74289.210741, 74926.041959, 75563.048434, 76200.207724,
76837.505542, 77474.999283, 78112.608284, 78750.375633, 79388.254423, 80026.267074, 80664.419197, 81302.602941,
81940.909776, 82579.321050, 83217.801329, 83856.420605, 84495.098999, 85133.832545, 85772.588001, 86411.448347,
87050.399262, 87689.358100, 88328.463714, 88967.516990, 89606.618839, 90245.788934, 90884.986443, 91524.243962,
92163.523370, 92802.835394, 93442.198790, 94081.633840, 94721.043838, 95360.482304, 96000.002974, 96639.518339,
97279.069377, 97918.584802, 98558.189888, 99197.773242, 99837.390001, 100476.994827, 101116.655652, 101756.293703,
102395.977437, 103035.662337, 103675.360919, 104315.063845, 104954.783621, 105594.504004, 106234.229823, 106874.056079,
107513.846129, 108153.562857, 108793.393622, 109433.202056, 110072.966808, 110712.777026, 111352.577741, 111992.441538,
112632.256702, 113272.083743, 113911.943484, 114551.818432, 115191.687411, 115831.584194, 116471.522453, 117111.338979,
117751.192777, 118391.070556, 119030.991702, 119670.888488, 120310.801509, 120950.761000, 121590.691826, 122230.618394,
122870.618097, 123510.616056, 124150.552363, 124790.488946, 125430.445483, 126070.428297, 126710.409643, 127350.398562,
127990.397846, 128630.413222, 129270.354937, 129910.365912, 130550.332174, 131190.259646, 131830.280970, 132470.304278,
133110.295205, 133750.312426, 134390.364847, 135030.321000, 135670.319926, 136310.335570, 136950.324790, 137590.338289,
138230.368657, 138870.374084, 139510.447896, 140150.468353, 140790.441338, 141430.438424, 142070.440787, 142710.431348,
143350.433770, 143990.493350, 144630.548409, 145270.549935, 145910.530486, 146550.488808, 147190.510290, 147830.509426,
148470.575641, 149110.541845, 149750.592427, 150390.634921, 151030.706500, 151670.646574, 152310.624482, 152950.686127,
153590.659153, 154230.646236, 154870.720079, 155510.614028, 156150.596142, 156790.659641, 157430.633386, 158070.649047,
158710.591350, 159350.585980, 159990.557711, 160630.530183, 161270.499427, 161910.521323, 162550.516603, 163190.482792,
163830.422631},
// log K = 15
{23634.780143, 24256.008404, 24888.717596, 25532.934303, 26188.680791, 26855.965949, 27534.798395, 28225.179199,
28927.099457, 29640.545847, 30365.501013, 31101.936533, 31849.825685, 32609.111850, 33379.755958, 34161.706474,
34954.912131, 35759.291030, 36574.778310, 37401.280667, 38238.742234, 39087.060449, 39946.133936, 40815.861824,
41696.151280, 42586.877221, 43487.927203, 44399.169293, 45320.460825, 46251.693279, 47192.741847, 48143.464216,
49103.716679, 50073.349113, 51052.208336, 52040.138165, 53036.993192, 54042.604241, 55056.838449, 56079.501709,
57110.434199, 58149.484623, 59196.455710, 60251.226284, 61313.593108, 62383.385277, 63460.484960, 64544.666337,
65635.763495, 66733.629361, 67838.096489, 68948.987037, 70066.117363, 71189.338133, 72318.464573, 73453.423815,
74593.923438, 75739.864335, 76891.058098, 78047.391508, 79208.654009, 80374.753680, 81545.514022, 82720.817799,
83900.405263, 85084.273208, 86272.263471, 87464.134340, 88659.829437, 89859.204804, 91062.115479, 92268.425863,
93478.041907, 94690.804589, 95906.647693, 97125.398400, 98347.018145, 99571.305992, 100798.274503, 102027.737913,
103259.574749, 104493.727918, 105730.035415, 106968.465700, 108208.988306, 109451.445144, 110695.748927, 111941.827269,
113189.666448, 114439.093665, 115690.116530, 116942.608958, 118196.501294, 119451.722652, 120708.276299, 121966.046247,
123225.027480, 124485.082349, 125746.201609, 127008.357433, 128271.416054, 129535.417336, 130800.297278, 132066.008820,
133332.483576, 134599.733640, 135867.681429, 137136.303792, 138405.538969, 139675.413251, 140945.839375, 142216.787412,
143488.232199, 144760.234976, 146032.650196, 147305.459198, 148578.703708, 149852.356585, 151126.347770, 152400.641475,
153675.275168, 154950.179904, 156225.390849, 157500.864126, 158776.585926, 160052.504602, 161328.716398, 162605.171897,
163881.825931, 165158.677102, 166435.646121, 167712.814846, 168990.136047, 170267.619890, 171545.238277, 172823.011460,
174100.890250, 175378.821293, 176656.920467, 177935.093547, 179213.318173, 180491.692642, 181770.130424, 183048.727206,
184327.217835, 185605.921891, 186884.657773, 188163.418059, 189442.221838, 190721.122201, 192000.068271, 193279.087882,
194558.139554, 195837.195523, 197116.400538, 198395.612565, 199674.831001, 200954.101970, 202233.365695, 203512.639968,
204792.003319, 206071.379608, 207350.730914, 208630.080321, 209909.544216, 211189.014497, 212468.508049, 213748.055445,
215027.584964, 216307.216078, 217586.896296, 218866.477232, 220146.109506, 221425.767458, 222705.465633, 223985.129542,
225264.797531, 226544.544335, 227824.304232, 229104.031191, 230383.739676, 231663.424684, 232943.198829, 234222.906969,
235502.669185, 236782.475696, 238062.262723, 239342.090234, 240622.002668, 241901.911022, 243181.742902, 244461.690551,
245741.531359, 247021.432644, 248301.277604, 249581.168404, 250861.094078, 252141.038818, 253421.065594, 254701.020169,
255980.887518, 257260.848328, 258540.873565, 259820.905666, 261100.908594, 262380.854763, 263660.862699, 264940.834842,
266220.775656, 267500.745402, 268780.761926, 270060.823540, 271340.798715, 272620.823081, 273900.881190, 275180.928531,
276460.914606, 277740.919081, 279020.967358, 280301.002010, 281581.054314, 282861.097638, 284141.109728, 285421.181335,
286701.182750, 287981.231437, 289261.342952, 290541.328315, 291821.320901, 293101.395969, 294381.402286, 295661.374812,
296941.357112, 298221.462446, 299501.443884, 300781.429735, 302061.512800, 303341.459364, 304621.530042, 305901.507763,
307181.541613, 308461.506346, 309741.474814, 311021.458944, 312301.373851, 313581.258984, 314861.222655, 316141.192042,
317421.179698, 318701.162346, 319981.143104, 321261.185706, 322541.120379, 323821.065555, 325100.961639, 326380.920540,
327660.786948},
// log K = 16
{47270.338530, 48512.804588, 49778.235006, 51066.679846, 52378.178287, 53712.756179, 55070.430016, 56451.198432,
57855.044557, 59281.941569, 60731.855114, 62204.727445, 63700.498656, 65219.087806, 66760.381754, 68324.278827,
69910.681844, 71519.442760, 73150.426782, 74803.469853, 76478.400456, 78175.038414, 79893.184924, 81632.639705,
83393.214587, 85174.662642, 86976.739912, 88799.210643, 90641.829434, 92504.355605, 94386.478165, 96287.925119,
98208.422967, 100147.694840, 102105.387259, 104081.226364, 106074.916897, 108086.136683, 110114.560800, 112159.857579,
114221.724675, 116299.785348, 118393.731853, 120503.258946, 122627.958417, 124767.540962, 126921.668848, 129090.003274,
131272.204811, 133467.918004, 135676.870426, 137898.595565, 140132.829694, 142379.269230, 144637.536478, 146907.321805,
149188.299797, 151480.151490, 153782.571459, 156095.292246, 158417.834407, 160749.983694, 163091.465145, 165441.984077,
167801.236994, 170168.903670, 172544.767987, 174928.494171, 177319.918928, 179718.624717, 182124.426670, 184537.056818,
186956.260737, 189381.869001, 191813.551321, 194251.107949, 196694.280093, 199142.910671, 201596.663557, 204055.453662,
206519.090402, 208987.322132, 211460.079506, 213936.962995, 216417.945039, 218902.907481, 221391.594168, 223883.857806,
226379.519239, 228878.478995, 231380.515508, 233885.422831, 236393.251620, 238903.734661, 241416.885791, 243932.462444,
246450.361381, 248970.497360, 251492.768859, 254017.059221, 256543.244066, 259071.366198, 261601.098326, 264132.472390,
266665.477130, 269200.003838, 271735.898262, 274273.128446, 276811.699617, 279351.334667, 281892.176977, 284434.126935,
286977.141855, 289520.993664, 292065.816286, 294611.452586, 297157.986206, 299705.252956, 302253.226506, 304801.859484,
307351.170990, 309901.148395, 312451.594894, 315002.530644, 317553.961670, 320105.951895, 322658.553440, 325211.299379,
327764.626147, 330318.311300, 332872.331048, 335426.696106, 337981.358498, 340536.275072, 343091.446562, 345646.972942,
348202.757347, 350758.693296, 353314.808579, 355871.203754, 358427.702337, 360984.491079, 363541.449032, 366098.493281,
368655.687887, 371213.030472, 373770.561193, 376328.233445, 378886.001706, 381443.937538, 384001.856504, 386559.857503,
389117.926075, 391676.219835, 394234.530250, 396792.812601, 399351.291660, 401909.794770, 404468.330377, 407026.964781,
409585.614496, 412144.407471, 414703.175858, 417261.980659, 419820.958264, 422379.863083, 424938.751186, 427497.927620,
430056.993719, 432616.066348, 435175.266190, 437734.382772, 440293.531277, 442852.711332, 445412.016423, 447971.502143,
450530.798765, 453090.167199, 455649.502729, 458208.951251, 460768.459694, 463328.053373, 465887.570627, 468447.239271,
471006.792818, 473566.544068, 476126.194227, 478685.887605, 481245.577573, 483805.348711, 486365.028302, 488924.844568,
491484.612666, 494044.321666, 496604.011864, 499163.799789, 501723.629793, 504283.493711, 506843.290195, 509403.157856,
511962.990320, 514522.941350, 517082.791953, 519642.848656, 522202.833761, 524762.686522, 527322.632758, 529882.529037,
532442.420851, 535002.422317, 537562.386309, 540122.357425, 542682.434171, 545242.468829, 547802.466694, 550362.492718,
552922.461624, 555482.539495, 558042.531431, 560602.467437, 563162.648952, 565722.750610, 568282.702877, 570842.810092,
573402.917604, 575962.999235, 578523.081937, 581083.162584, 583643.265455, 586203.287883, 588763.260931, 591323.292027,
593883.252456, 596443.273935, 599003.353442, 601563.492606, 604123.421135, 606683.438234, 609243.605174, 611803.638038,
614363.628593, 616923.690580, 619483.675256, 622043.744171, 624603.673246, 627163.577236, 629723.677960, 632283.670157,
634843.692958, 637403.576097, 639963.511752, 642523.482942, 645083.419327, 647643.330711, 650203.272467, 652763.290376,
655323.267522},
// log K = 17
{94541.455324, 97026.403245, 99557.280165, 102134.178452, 104757.187033, 107426.362674, 110141.726029, 112903.278005,
115710.975458, 118564.785344, 121464.629896, 124410.377345, 127401.910279, 130439.087070, 133521.683723, 136649.499031,
139822.321627, 143039.848320, 146301.785984, 149607.844773, 152957.695333, 156350.945326, 159787.233040, 163266.157476,
166787.301371, 170350.201319, 173954.353438, 177599.302692, 181284.526367, 185009.507089, 188773.757457, 192576.638207,
196417.619925, 200296.089540, 204211.494530, 208163.221220, 212150.613086, 216173.056150, 220229.879308, 224320.462264,
228444.146459, 232600.284426, 236788.187347, 241007.264352, 245256.725247, 249535.938618, 253844.217048, 258180.876528,
262545.282090, 266936.686787, 271354.453768, 275797.958112, 280266.429404, 284759.298770, 289275.861948, 293815.386243,
298377.390708, 302961.087179, 307565.895452, 312191.173759, 316836.362522, 321500.721532, 326183.652758, 330884.723656,
335603.197219, 340338.617624, 345090.316855, 349857.860719, 354640.538362, 359438.001710, 364249.638745, 369074.940533,
373913.351331, 378764.438864, 383627.767868, 388502.854215, 393389.259584, 398286.483436, 403194.238263, 408111.948151,
413039.292303, 417975.909674, 422921.304084, 427875.195485, 432837.200959, 437807.062429, 442784.399966, 447768.726662,
452760.032525, 457757.794185, 462761.810279, 467771.737196, 472787.226777, 477808.283249, 482834.411114, 487865.521166,
492901.275392, 497941.616150, 502986.164281, 508034.749030, 513087.210697, 518143.298172, 523202.692981, 528265.454984,
533331.384435, 538400.437943, 543472.278711, 548546.790172, 553623.737338, 558703.047575, 563784.666463, 568868.524932,
573954.251207, 579041.935016, 584131.557779, 589222.910016, 594315.786547, 599410.314112, 604506.227555, 609603.610432,
614702.124262, 619801.918486, 624902.903258, 630005.085347, 635107.990499, 640211.847431, 645316.755403, 650422.424613,
655529.009211, 660636.166872, 665744.170495, 670852.806947, 675962.099161, 681072.042796, 686182.458370, 691293.269596,
696404.763335, 701516.635253, 706628.965299, 711741.575313, 716854.769083, 721968.220605, 727082.027784, 732196.114131,
737310.594653, 742425.339665, 747540.295793, 752655.505647, 757770.968129, 762886.636891, 768002.527720, 773118.559142,
778234.871441, 783351.273881, 788467.944809, 793584.599211, 798701.497594, 803818.484285, 808935.619316, 814053.067243,
819170.390229, 824287.946609, 829405.450988, 834523.054071, 839640.856519, 844758.800102, 849876.719924, 854994.831607,
860112.896788, 865231.116455, 870349.453898, 875467.910756, 880586.444976, 885705.102070, 890823.822978, 895942.513436,
901061.120048, 906179.716020, 911298.587548, 916417.583647, 921536.507373, 926655.570709, 931774.690027, 936893.879961,
942012.956398, 947132.142141, 952251.503479, 957370.815448, 962490.012685, 967609.521437, 972729.002837, 977848.339983,
982967.824448, 988087.392216, 993206.992691, 998326.635354, 1003446.304388, 1008565.985024, 1013685.706678, 1018805.581548,
1023925.239073, 1029045.157502, 1034165.035124, 1039284.843524, 1044404.676526, 1049524.620186, 1054644.441170, 1059764.409794,
1064884.318434, 1070004.338968, 1075124.268749, 1080244.471055, 1085364.528193, 1090484.511927, 1095604.595114, 1100724.598478,
1105844.666500, 1110964.804168, 1116084.864159, 1121204.874577, 1126325.062599, 1131445.152321, 1136565.301592, 1141685.638897,
1146805.806800, 1151925.790859, 1157045.932640, 1162166.112443, 1167286.221698, 1172406.273611, 1177526.581875, 1182646.832239,
1187766.882661, 1192886.884388, 1198006.962839, 1203127.084377, 1208246.959060, 1213366.976076, 1218486.763464, 1223606.758568,
1228726.721761, 1233846.593404, 1238966.815228, 1244086.865449, 1249206.854850, 1254326.996667, 1259447.092239, 1264567.198081,
1269687.499091, 1274807.474194, 1279927.244161, 1285047.273317, 1290167.090035, 1295287.035620, 1300406.888764, 1305526.667946,
1310646.540340},
// log K = 18
{189083.688921, 194053.597973, 199115.342781, 204269.157017, 209515.195566, 214853.553887, 220284.295855, 225807.399998,
231422.826900, 237130.469824, 242930.139690, 248821.634191, 254804.718978, 260879.073467, 267044.289594, 273299.936993,
279645.549742, 286080.586199, 292604.521050, 299216.651567, 305916.376160, 312702.908374, 319575.536730, 326533.420485,
333575.639430, 340701.388339, 347909.713977, 355199.642852, 362570.108280, 370020.154080, 377548.652175, 385154.413997,
392836.374125, 400593.371525, 408424.172521, 416327.671123, 424302.406749, 432347.292674, 440461.014310, 448642.241683,
456889.603709, 465201.946081, 473577.749277, 482015.802141, 490514.770444, 499073.243760, 507689.794308, 516363.149230,
525091.902823, 533874.850510, 542710.434311, 551597.433198, 560534.241273, 569520.019389, 578553.034265, 587632.180111,
596756.084542, 605923.440522, 615133.037840, 624383.626242, 633673.841133, 643002.674316, 652368.578283, 661770.556501,
671207.605795, 680678.417768, 690181.818697, 699716.780471, 709282.084973, 718876.864175, 728499.951143, 738150.280049,
747827.053968, 757529.236597, 767255.784062, 777006.100829, 786779.065927, 796573.507429, 806388.828153, 816223.976258,
826078.608350, 835951.751956, 845842.493689, 855750.225870, 865674.190527, 875613.809349, 885568.425527, 895537.272219,
905519.763307, 915515.310346, 925523.353103, 935543.172648, 945574.292664, 955616.280042, 965668.428231, 975730.535479,
985802.055447, 995882.596628, 1005971.583108, 1016068.664992, 1026173.649961, 1036285.774891, 1046404.955770, 1056530.588186,
1066662.648243, 1076800.535542, 1086944.269881, 1097093.058652, 1107247.076183, 1117405.990557, 1127569.310917, 1137737.011345,
1147908.717700, 1158084.362020, 1168263.501029, 1178446.221907, 1188632.206842, 1198821.131431, 1209013.020373, 1219207.570786,
1229404.854893, 1239604.423801, 1249806.433263, 1260010.619993, 1270216.819018, 1280424.774173, 1290634.560600, 1300846.097203,
1311059.128630, 1321273.628402, 1331489.832488, 1341707.300774, 1351925.947953, 1362145.802925, 1372366.802414, 1382588.547896,
1392811.264776, 1403035.227449, 1413259.922280, 1423485.322819, 1433711.916106, 1443938.981360, 1454166.596984, 1464394.761679,
1474623.684212, 1484853.156422, 1495083.020146, 1505313.735890, 1515544.731764, 1525776.086634, 1536007.742073, 1546239.679012,
1556472.212370, 1566704.988763, 1576937.965495, 1587171.446007, 1597405.292186, 1607639.395274, 1617873.660775, 1628108.037273,
1638342.741799, 1648577.832828, 1658813.325573, 1669048.803784, 1679284.679963, 1689520.927615, 1699757.050010, 1709993.263665,
1720229.557663, 1730466.102090, 1740702.604009, 1750939.618504, 1761176.930182, 1771414.210528, 1781651.713742, 1791889.218503,
1802126.805234, 1812364.257333, 1822602.054007, 1832839.687792, 1843077.871973, 1853315.944762, 1863554.202066, 1873792.633125,
1884030.883830, 1894269.182711, 1904507.712050, 1914746.469507, 1924985.484753, 1935224.245956, 1945463.225215, 1955702.268883,
1965941.321722, 1976180.037370, 1986419.052784, 1996658.429579, 2006897.450283, 2017136.904971, 2027376.240039, 2037615.549295,
2047855.197425, 2058094.765906, 2068334.279787, 2078573.820075, 2088813.469730, 2099053.348620, 2109293.174176, 2119533.012704,
2129772.820132, 2140012.744709, 2150252.607739, 2160492.533017, 2170732.406422, 2180972.400110, 2191212.436319, 2201452.637894,
2211692.339292, 2221932.460057, 2232172.746036, 2242412.892705, 2252653.174824, 2262893.432271, 2273134.002270, 2283374.311008,
2293614.537881, 2303854.703732, 2314095.191374, 2324335.236186, 2334575.624526, 2344816.313269, 2355056.224171, 2365296.361285,
2375537.048184, 2385777.280284, 2396017.222502, 2406257.145546, 2416497.272190, 2426737.212210, 2436977.500856, 2447217.897426,
2457458.423605, 2467698.536697, 2477938.448096, 2488178.544726, 2498418.640441, 2508658.160374, 2518898.274852, 2529138.509345,
2539378.310538, 2549617.989497, 2559857.504886, 2570097.363128, 2580337.195261, 2590576.878833, 2600816.572159, 2611055.930087,
2621295.625004},
// log K = 19
{378168.156126, 388107.986863, 398231.517433, 408539.178530, 419031.252008, 429707.954086, 440569.365328, 451615.642722,
462846.490174, 474261.790112, 485861.190310, 497644.259253, 509610.438730, 521759.095095, 534089.573442, 546600.981190,
559292.272697, 572162.409622, 585210.331052, 598434.669889, 611834.157416, 625407.271721, 639152.543961, 653068.262294,
667152.777393, 681404.241581, 695820.778241, 710400.501586, 725141.425404, 740041.558661, 755098.503731, 770310.107475,
785674.192935, 801188.297422, 816849.950298, 832656.623960, 848606.198026, 864696.151343, 880923.487841, 897285.841319,
913780.530043, 930405.131973, 947156.655545, 964032.974599, 981030.762278, 998147.499138, 1015380.659035, 1032727.149847,
1050184.616751, 1067750.330789, 1085421.716664, 1103195.771853, 1121069.796650, 1139041.324454, 1157107.373802, 1175265.377022,
1193513.201704, 1211847.872855, 1230267.133114, 1248768.293478, 1267348.634472, 1286005.987451, 1304738.187318, 1323542.421988,
1342416.458954, 1361357.807871, 1380364.530293, 1399434.095493, 1418564.587724, 1437754.116682, 1457000.254889, 1476301.275902,
1495654.977143, 1515059.332212, 1534512.821906, 1554013.130304, 1573558.585534, 1593147.244450, 1612777.978405, 1632448.600136,
1652157.704100, 1671904.308928, 1691686.012962, 1711501.716352, 1731349.849417, 1751229.053668, 1771138.423208, 1791076.196899,
1811041.338260, 1831032.177526, 1851048.091817, 1871088.096683, 1891150.317142, 1911234.619162, 1931339.423184, 1951463.947205,
1971606.994543, 1991767.606441, 2011945.852451, 2032140.098239, 2052349.709954, 2072574.274980, 2092812.387905, 2113063.537955,
2133327.750182, 2153603.787963, 2173890.933053, 2194188.225246, 2214496.333997, 2234814.120065, 2255140.753372, 2275476.675949,
2295820.689602, 2316172.220323, 2336530.258616, 2356894.932256, 2377266.633368, 2397645.173978, 2418028.419639, 2438417.586475,
2458812.422593, 2479211.306360, 2499615.253217, 2520023.375080, 2540436.051898, 2560851.967345, 2581271.569076, 2601694.318944,
2622120.693963, 2642549.418269, 2662981.070023, 2683415.520909, 2703852.500003, 2724291.876933, 2744733.213126, 2765177.477758,
2785623.320019, 2806070.985142, 2826520.234343, 2846971.203929, 2867423.303616, 2887876.396540, 2908331.739769, 2928788.290672,
2949245.276635, 2969704.620226, 2990164.657583, 3010625.841710, 3031087.855626, 3051550.619090, 3072014.642350, 3092479.163042,
3112944.278087, 3133410.101603, 3153876.719100, 3174343.414117, 3194810.517970, 3215278.762802, 3235747.174277, 3256216.390486,
3276685.652553, 3297155.394593, 3317625.911419, 3338096.547090, 3358567.567862, 3379038.637659, 3399510.649493, 3419983.382105,
3440456.231853, 3460929.496047, 3481403.703904, 3501877.874941, 3522351.898403, 3542825.527074, 3563300.038829, 3583775.102749,
3604249.896903, 3624724.967423, 3645201.027293, 3665676.534460, 3686152.061202, 3706628.308333, 3727104.271827, 3747580.803335,
3768057.710876, 3788534.660048, 3809011.720864, 3829489.164523, 3849967.204462, 3870445.043912, 3890923.080446, 3911400.767281,
3931879.061622, 3952357.218696, 3972836.284463, 3993314.516935, 4013793.278282, 4034272.661280, 4054751.814018, 4075230.503334,
4095708.557968, 4116187.919814, 4136667.714093, 4157147.152355, 4177627.302553, 4198107.383728, 4218587.174918, 4239066.631662,
4259545.994167, 4280026.100110, 4300506.380609, 4320986.617208, 4341466.696312, 4361945.995732, 4382426.527708, 4402907.058309,
4423386.556967, 4443867.498542, 4464348.284664, 4484828.344391, 4505309.026083, 4525789.774619, 4546270.396129, 4566750.818685,
4587231.362126, 4607711.356124, 4628191.883250, 4648673.308942, 4669153.953372, 4689634.118530, 4710114.637510, 4730595.217429,
4751075.358693, 4771555.492921, 4792035.313408, 4812516.057037, 4832995.761283, 4853475.977619, 4873956.732160, 4894436.879314,
4914917.149285, 4935397.069776, 4955877.550351, 4976357.852728, 4996838.246842, 5017318.023169, 5037798.008344, 5058278.290403,
5078757.968956, 5099237.419344, 5119716.759591, 5140195.935830, 5160675.636320, 5181154.980843, 5201633.780713, 5222113.031789,
5242591.881577},
// log K = 20
{756337.090537, 776216.744995, 796463.785646, 817079.035290, 838063.221300, 859416.678362, 881139.576270, 903232.151726,
925693.940877, 948524.600346, 971723.442348, 995289.632784, 1019222.059448, 1043519.402588, 1068180.163485, 1093202.854610,
1118585.515820, 1144326.031845, 1170421.828997, 1196870.617641, 1223669.453959, 1250815.679160, 1278306.298944, 1306137.726017,
1334306.782451, 1362809.672011, 1391643.048887, 1420802.665486, 1450284.419390, 1480084.556504, 1510198.362531, 1540621.709038,
1571349.988582, 1602377.885766, 1633700.853485, 1665314.443974, 1697213.607484, 1729393.242718, 1761847.799154, 1794572.464804,
1827562.002973, 1860811.213417, 1894314.858503, 1928067.079352, 1962062.774535, 1996296.400592, 2030762.354026, 2065455.981656,
2100370.818573, 2135502.224529, 2170844.722018, 2206392.452100, 2242140.795895, 2278083.565225, 2314215.470175, 2350532.238358,
2387028.028531, 2423697.739702, 2460535.617283, 2497537.908190, 2534699.627071, 2572014.508248, 2609478.240813, 2647086.878671,
2684834.738503, 2722717.495987, 2760730.659130, 2798869.445379, 2837130.937688, 2875509.782410, 2914002.086936, 2952603.395700,
2991310.971904, 3030119.629799, 3069026.891217, 3108027.543585, 3147118.485322, 3186296.724369, 3225557.893026, 3264899.405158,
3304317.806643, 3343809.532357, 3383372.875494, 3423003.239113, 3462699.855290, 3502458.588120, 3542276.984489, 3582151.461666,
3622080.455509, 3662062.087297, 3702093.774268, 3742173.351913, 3782298.542025, 3822466.599295, 3862676.059061, 3902925.301466,
3943212.313188, 3983534.655139, 4023890.682932, 4064278.948819, 4104698.644146, 4145147.867936, 4185624.200116, 4226127.607823,
4266655.471909, 4307207.261933, 4347781.577688, 4388376.075665, 4428991.084860, 4469625.512791, 4510278.322018, 4550949.135583,
4591635.061142, 4632337.290243, 4673054.034167, 4713783.999697, 4754527.016825, 4795282.199016, 4836049.304645, 4876828.217063,
4917617.432795, 4958416.033283, 4999223.332994, 5040040.200620, 5080865.836319, 5121698.006953, 5162537.663489, 5203383.861562,
5244235.368756, 5285093.542054, 5325957.172545, 5366826.006832, 5407700.602295, 5448579.444589, 5489462.237514, 5530348.767163,
5571240.286944, 5612135.490023, 5653033.590430, 5693935.090249, 5734840.012969, 5775747.413811, 5816658.159197, 5857571.727542,
5898486.810748, 5939403.918361, 5980324.159335, 6021245.922584, 6062167.462275, 6103093.061724, 6144019.021028, 6184948.477708,
6225878.111073, 6266809.926593, 6307741.380274, 6348674.587241, 6389609.653586, 6430546.024311, 6471482.661256, 6512419.658468,
6553358.313587, 6594299.462793, 6635239.780670, 6676180.809115, 6717122.614963, 6758064.640997, 6799009.935719, 6839954.567726,
6880900.950276, 6921847.965357, 6962794.580261, 7003742.234176, 7044691.155209, 7085639.223984, 7126587.984374, 7167538.597843,
7208487.508674, 7249437.307369, 7290389.448350, 7331341.752887, 7372292.872774, 7413245.082344, 7454198.512431, 7495151.878502,
7536105.815461, 7577059.755263, 7618013.175400, 7658967.579066, 7699922.475951, 7740878.015144, 7781833.511721, 7822789.986990,
7863745.987999, 7904702.500036, 7945659.757785, 7986615.385020, 8027573.168319, 8068531.917672, 8109489.438412, 8150447.742963,
8191403.350221, 8232362.807587, 8273321.255913, 8314281.043410, 8355240.292724, 8396199.214301, 8437156.471990, 8478114.862372,
8519073.457296, 8560034.832965, 8600993.512814, 8641954.368755, 8682914.667061, 8723875.362809, 8764837.809961, 8805797.690078,
8846758.789178, 8887720.671501, 8928680.126482, 8969640.467726, 9010601.160006, 9051561.769905, 9092522.487783, 9133484.594542,
9174446.122191, 9215406.809237, 9256366.837569, 9297328.747584, 9338288.901510, 9379250.948160, 9420212.503729, 9461173.228802,
9502133.928845, 9543094.489131, 9584055.513956, 9625015.618922, 9665975.737758, 9706937.403885, 9747896.035874, 9788856.165941,
9829816.994627, 9870777.228642, 9911737.327683, 9952698.937964, 9993660.635143, 10034620.747904, 10075579.526207, 10116539.739394,
10157498.625700, 10198458.468474, 10239418.486051, 10280376.431741, 10321335.494132, 10362295.312860, 10403254.402980, 10444214.519042,
10485173.027410},
// log K = 21
{1512674.959317, 1552434.197368, 1592928.155075, 1634158.593696, 1676126.959176, 1718834.017325, 1762279.726817, 1806464.610827,
1851388.162884, 1897049.337397, 1943446.849678, 1990579.312415, 2038444.063365, 2087038.766553, 2136360.248426, 2186405.470599,
2237170.640174, 2288651.015887, 2340842.752937, 2393739.986364, 2447337.958039, 2501630.515180, 2556611.361814, 2612274.289376,
2668612.210872, 2725618.064986, 2783284.549430, 2841603.566294, 2900566.895724, 2960167.093438, 3020394.610851, 3081240.447614,
3142696.078921, 3204751.105703, 3267397.808234, 3330624.834407, 3394422.872136, 3458781.966184, 3523690.805899, 3589140.856689,
3655119.540256, 3721617.907853, 3788624.486645, 3856129.175227, 3924119.940026, 3992586.658818, 4061519.544440, 4130906.734075,
4200737.500257, 4271000.909057, 4341685.842431, 4412781.306685, 4484277.199691, 4556162.287552, 4628426.495554, 4701059.642462,
4774050.909933, 4847389.117100, 4921065.536469, 4995068.178578, 5069389.529141, 5144019.928509, 5218947.440841, 5294164.568050,
5369660.364896, 5445425.915267, 5521454.727645, 5597734.642433, 5674257.411718, 5751014.463556, 5827999.822090, 5905203.759793,
5982617.522812, 6060234.561845, 6138048.162353, 6216049.451496, 6294232.713331, 6372588.108087, 6451109.903764, 6529792.611180,
6608629.912527, 6687615.097432, 6766740.086064, 6846000.116450, 6925391.839995, 7004908.093083, 7084544.127544, 7164293.822313,
7244153.392582, 7324115.814384, 7404179.031163, 7484336.380737, 7564586.128001, 7644922.247694, 7725340.819662, 7805840.541693,
7886412.416887, 7967054.301986, 8047764.087248, 8128539.447460, 8209376.477465, 8290273.766928, 8371225.884580, 8452230.183873,
8533283.959811, 8614388.863382, 8695539.350564, 8776730.375553, 8857961.046732, 8939230.757845, 9020535.369667, 9101877.322129,
9183251.420601, 9264654.743697, 9346087.109813, 9427548.372707, 9509034.441574, 9590547.753266, 9672081.682514, 9753639.600816,
9835216.139507, 9916813.989591, 9998428.682824, 10080058.312759, 10161706.673718, 10243372.018016, 10325050.507034, 10406744.529470,
10488447.296300, 10570163.109725, 10651893.512546, 10733632.712879, 10815382.384056, 10897140.573621, 10978907.646650, 11060681.383125,
11142464.138730, 11224254.549571, 11306053.275368, 11387858.162207, 11469666.329635, 11551480.634292, 11633302.025569, 11715128.710512,
11796961.403328, 11878795.670820, 11960634.652330, 12042477.348124, 12124323.950451, 12206172.128053, 12288028.811447, 12369886.306570,
12451744.123236, 12533607.183832, 12615473.707341, 12697338.733240, 12779207.987968, 12861080.507718, 12942957.260823, 13024834.007606,
13106715.252745, 13188597.806270, 13270478.933580, 13352362.482281, 13434247.263704, 13516133.477076, 13598020.834213, 13679909.264273,
13761799.592878, 13843689.299819, 13925583.582108, 14007479.173806, 14089371.780210, 14171268.621526, 14253167.561983, 14335070.527750,
14416971.620797, 14498873.784867, 14580778.789301, 14662681.662290, 14744586.311912, 14826493.286700, 14908400.702409, 14990305.605573,
15072214.379125, 15154123.120545, 15236031.901296, 15317939.866920, 15399849.993076, 15481761.939120, 15563672.325616, 15645585.312945,
15727497.406318, 15809411.780271, 15891325.875461, 15973239.145687, 16055155.936424, 16137069.783844, 16218984.663574, 16300899.732679,
16382815.849682, 16464730.053474, 16546645.675799, 16628563.444017, 16710481.533611, 16792400.824636, 16874319.061886, 16956235.859045,
17038151.394583, 17120072.629220, 17201992.200096, 17283914.365655, 17365836.161356, 17447756.880495, 17529681.545942, 17611601.675003,
17693522.079185, 17775441.939609, 17857361.777214, 17939284.144858, 18021205.445833, 18103125.675947, 18185051.132189, 18266974.391463,
18348894.689783, 18430817.526979, 18512736.992850, 18594657.001222, 18676577.636496, 18758497.698999, 18840421.426602, 18922345.360722,
19004266.906157, 19086186.184618, 19168105.320223, 19250029.336282, 19331950.350200, 19413874.580826, 19495794.431194, 19577715.745558,
19659638.264924, 19741557.363469, 19823478.431258, 19905400.862401, 19987318.682409, 20069238.585823, 20151157.549449, 20233076.181910,
20314994.521260, 20396915.069140, 20478836.108717, 20560753.915833, 20642672.570035, 20724588.867440, 20806507.038063, 20888426.370670,
20970344.006053}
};
static final double interpolation_y_arrs[][] = {
// log K = 7
{0.0, 5.0, 10.0, 15.0, 20.0, 25.0, 30.0, 35.0,
40.0, 45.0, 50.0, 55.0, 60.0, 65.0, 70.0, 75.0,
80.0, 85.0, 90.0, 95.0, 100.0, 105.0, 110.0, 115.0,
120.0, 125.0, 130.0, 135.0, 140.0, 145.0, 150.0, 155.0,
160.0, 165.0, 170.0, 175.0, 180.0, 185.0, 190.0, 195.0,
200.0, 205.0, 210.0, 215.0, 220.0, 225.0, 230.0, 235.0,
240.0, 245.0, 250.0, 255.0, 260.0, 265.0, 270.0, 275.0,
280.0, 285.0, 290.0, 295.0, 300.0, 305.0, 310.0, 315.0,
320.0, 325.0, 330.0, 335.0, 340.0, 345.0, 350.0, 355.0,
360.0, 365.0, 370.0, 375.0, 380.0, 385.0, 390.0, 395.0,
400.0, 405.0, 410.0, 415.0, 420.0, 425.0, 430.0, 435.0,
440.0, 445.0, 450.0, 455.0, 460.0, 465.0, 470.0, 475.0,
480.0, 485.0, 490.0, 495.0, 500.0, 505.0, 510.0, 515.0,
520.0, 525.0, 530.0, 535.0, 540.0, 545.0, 550.0, 555.0,
560.0, 565.0, 570.0, 575.0, 580.0, 585.0, 590.0, 595.0,
600.0, 605.0, 610.0, 615.0, 620.0, 625.0, 630.0, 635.0,
640.0, 645.0, 650.0, 655.0, 660.0, 665.0, 670.0, 675.0,
680.0, 685.0, 690.0, 695.0, 700.0, 705.0, 710.0, 715.0,
720.0, 725.0, 730.0, 735.0, 740.0, 745.0, 750.0, 755.0,
760.0, 765.0, 770.0, 775.0, 780.0, 785.0, 790.0, 795.0,
800.0, 805.0, 810.0, 815.0, 820.0, 825.0, 830.0, 835.0,
840.0, 845.0, 850.0, 855.0, 860.0, 865.0, 870.0, 875.0,
880.0, 885.0, 890.0, 895.0, 900.0, 905.0, 910.0, 915.0,
920.0, 925.0, 930.0, 935.0, 940.0, 945.0, 950.0, 955.0,
960.0, 965.0, 970.0, 975.0, 980.0, 985.0, 990.0, 995.0,
1000.0, 1005.0, 1010.0, 1015.0, 1020.0, 1025.0, 1030.0, 1035.0,
1040.0, 1045.0, 1050.0, 1055.0, 1060.0, 1065.0, 1070.0, 1075.0,
1080.0, 1085.0, 1090.0, 1095.0, 1100.0, 1105.0, 1110.0, 1115.0,
1120.0, 1125.0, 1130.0, 1135.0, 1140.0, 1145.0, 1150.0, 1155.0,
1160.0, 1165.0, 1170.0, 1175.0, 1180.0, 1185.0, 1190.0, 1195.0,
1200.0, 1205.0, 1210.0, 1215.0, 1220.0, 1225.0, 1230.0, 1235.0,
1240.0, 1245.0, 1250.0, 1255.0, 1260.0, 1265.0, 1270.0, 1275.0,
1280.0},
// log K = 8
{0.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0,
80.0, 90.0, 100.0, 110.0, 120.0, 130.0, 140.0, 150.0,
160.0, 170.0, 180.0, 190.0, 200.0, 210.0, 220.0, 230.0,
240.0, 250.0, 260.0, 270.0, 280.0, 290.0, 300.0, 310.0,
320.0, 330.0, 340.0, 350.0, 360.0, 370.0, 380.0, 390.0,
400.0, 410.0, 420.0, 430.0, 440.0, 450.0, 460.0, 470.0,
480.0, 490.0, 500.0, 510.0, 520.0, 530.0, 540.0, 550.0,
560.0, 570.0, 580.0, 590.0, 600.0, 610.0, 620.0, 630.0,
640.0, 650.0, 660.0, 670.0, 680.0, 690.0, 700.0, 710.0,
720.0, 730.0, 740.0, 750.0, 760.0, 770.0, 780.0, 790.0,
800.0, 810.0, 820.0, 830.0, 840.0, 850.0, 860.0, 870.0,
880.0, 890.0, 900.0, 910.0, 920.0, 930.0, 940.0, 950.0,
960.0, 970.0, 980.0, 990.0, 1000.0, 1010.0, 1020.0, 1030.0,
1040.0, 1050.0, 1060.0, 1070.0, 1080.0, 1090.0, 1100.0, 1110.0,
1120.0, 1130.0, 1140.0, 1150.0, 1160.0, 1170.0, 1180.0, 1190.0,
1200.0, 1210.0, 1220.0, 1230.0, 1240.0, 1250.0, 1260.0, 1270.0,
1280.0, 1290.0, 1300.0, 1310.0, 1320.0, 1330.0, 1340.0, 1350.0,
1360.0, 1370.0, 1380.0, 1390.0, 1400.0, 1410.0, 1420.0, 1430.0,
1440.0, 1450.0, 1460.0, 1470.0, 1480.0, 1490.0, 1500.0, 1510.0,
1520.0, 1530.0, 1540.0, 1550.0, 1560.0, 1570.0, 1580.0, 1590.0,
1600.0, 1610.0, 1620.0, 1630.0, 1640.0, 1650.0, 1660.0, 1670.0,
1680.0, 1690.0, 1700.0, 1710.0, 1720.0, 1730.0, 1740.0, 1750.0,
1760.0, 1770.0, 1780.0, 1790.0, 1800.0, 1810.0, 1820.0, 1830.0,
1840.0, 1850.0, 1860.0, 1870.0, 1880.0, 1890.0, 1900.0, 1910.0,
1920.0, 1930.0, 1940.0, 1950.0, 1960.0, 1970.0, 1980.0, 1990.0,
2000.0, 2010.0, 2020.0, 2030.0, 2040.0, 2050.0, 2060.0, 2070.0,
2080.0, 2090.0, 2100.0, 2110.0, 2120.0, 2130.0, 2140.0, 2150.0,
2160.0, 2170.0, 2180.0, 2190.0, 2200.0, 2210.0, 2220.0, 2230.0,
2240.0, 2250.0, 2260.0, 2270.0, 2280.0, 2290.0, 2300.0, 2310.0,
2320.0, 2330.0, 2340.0, 2350.0, 2360.0, 2370.0, 2380.0, 2390.0,
2400.0, 2410.0, 2420.0, 2430.0, 2440.0, 2450.0, 2460.0, 2470.0,
2480.0, 2490.0, 2500.0, 2510.0, 2520.0, 2530.0, 2540.0, 2550.0,
2560.0},
// log K = 9
{0.0, 20.0, 40.0, 60.0, 80.0, 100.0, 120.0, 140.0,
160.0, 180.0, 200.0, 220.0, 240.0, 260.0, 280.0, 300.0,
320.0, 340.0, 360.0, 380.0, 400.0, 420.0, 440.0, 460.0,
480.0, 500.0, 520.0, 540.0, 560.0, 580.0, 600.0, 620.0,
640.0, 660.0, 680.0, 700.0, 720.0, 740.0, 760.0, 780.0,
800.0, 820.0, 840.0, 860.0, 880.0, 900.0, 920.0, 940.0,
960.0, 980.0, 1000.0, 1020.0, 1040.0, 1060.0, 1080.0, 1100.0,
1120.0, 1140.0, 1160.0, 1180.0, 1200.0, 1220.0, 1240.0, 1260.0,
1280.0, 1300.0, 1320.0, 1340.0, 1360.0, 1380.0, 1400.0, 1420.0,
1440.0, 1460.0, 1480.0, 1500.0, 1520.0, 1540.0, 1560.0, 1580.0,
1600.0, 1620.0, 1640.0, 1660.0, 1680.0, 1700.0, 1720.0, 1740.0,
1760.0, 1780.0, 1800.0, 1820.0, 1840.0, 1860.0, 1880.0, 1900.0,
1920.0, 1940.0, 1960.0, 1980.0, 2000.0, 2020.0, 2040.0, 2060.0,
2080.0, 2100.0, 2120.0, 2140.0, 2160.0, 2180.0, 2200.0, 2220.0,
2240.0, 2260.0, 2280.0, 2300.0, 2320.0, 2340.0, 2360.0, 2380.0,
2400.0, 2420.0, 2440.0, 2460.0, 2480.0, 2500.0, 2520.0, 2540.0,
2560.0, 2580.0, 2600.0, 2620.0, 2640.0, 2660.0, 2680.0, 2700.0,
2720.0, 2740.0, 2760.0, 2780.0, 2800.0, 2820.0, 2840.0, 2860.0,
2880.0, 2900.0, 2920.0, 2940.0, 2960.0, 2980.0, 3000.0, 3020.0,
3040.0, 3060.0, 3080.0, 3100.0, 3120.0, 3140.0, 3160.0, 3180.0,
3200.0, 3220.0, 3240.0, 3260.0, 3280.0, 3300.0, 3320.0, 3340.0,
3360.0, 3380.0, 3400.0, 3420.0, 3440.0, 3460.0, 3480.0, 3500.0,
3520.0, 3540.0, 3560.0, 3580.0, 3600.0, 3620.0, 3640.0, 3660.0,
3680.0, 3700.0, 3720.0, 3740.0, 3760.0, 3780.0, 3800.0, 3820.0,
3840.0, 3860.0, 3880.0, 3900.0, 3920.0, 3940.0, 3960.0, 3980.0,
4000.0, 4020.0, 4040.0, 4060.0, 4080.0, 4100.0, 4120.0, 4140.0,
4160.0, 4180.0, 4200.0, 4220.0, 4240.0, 4260.0, 4280.0, 4300.0,
4320.0, 4340.0, 4360.0, 4380.0, 4400.0, 4420.0, 4440.0, 4460.0,
4480.0, 4500.0, 4520.0, 4540.0, 4560.0, 4580.0, 4600.0, 4620.0,
4640.0, 4660.0, 4680.0, 4700.0, 4720.0, 4740.0, 4760.0, 4780.0,
4800.0, 4820.0, 4840.0, 4860.0, 4880.0, 4900.0, 4920.0, 4940.0,
4960.0, 4980.0, 5000.0, 5020.0, 5040.0, 5060.0, 5080.0, 5100.0,
5120.0},
// log K = 10
{0.0, 40.0, 80.0, 120.0, 160.0, 200.0, 240.0, 280.0,
320.0, 360.0, 400.0, 440.0, 480.0, 520.0, 560.0, 600.0,
640.0, 680.0, 720.0, 760.0, 800.0, 840.0, 880.0, 920.0,
960.0, 1000.0, 1040.0, 1080.0, 1120.0, 1160.0, 1200.0, 1240.0,
1280.0, 1320.0, 1360.0, 1400.0, 1440.0, 1480.0, 1520.0, 1560.0,
1600.0, 1640.0, 1680.0, 1720.0, 1760.0, 1800.0, 1840.0, 1880.0,
1920.0, 1960.0, 2000.0, 2040.0, 2080.0, 2120.0, 2160.0, 2200.0,
2240.0, 2280.0, 2320.0, 2360.0, 2400.0, 2440.0, 2480.0, 2520.0,
2560.0, 2600.0, 2640.0, 2680.0, 2720.0, 2760.0, 2800.0, 2840.0,
2880.0, 2920.0, 2960.0, 3000.0, 3040.0, 3080.0, 3120.0, 3160.0,
3200.0, 3240.0, 3280.0, 3320.0, 3360.0, 3400.0, 3440.0, 3480.0,
3520.0, 3560.0, 3600.0, 3640.0, 3680.0, 3720.0, 3760.0, 3800.0,
3840.0, 3880.0, 3920.0, 3960.0, 4000.0, 4040.0, 4080.0, 4120.0,
4160.0, 4200.0, 4240.0, 4280.0, 4320.0, 4360.0, 4400.0, 4440.0,
4480.0, 4520.0, 4560.0, 4600.0, 4640.0, 4680.0, 4720.0, 4760.0,
4800.0, 4840.0, 4880.0, 4920.0, 4960.0, 5000.0, 5040.0, 5080.0,
5120.0, 5160.0, 5200.0, 5240.0, 5280.0, 5320.0, 5360.0, 5400.0,
5440.0, 5480.0, 5520.0, 5560.0, 5600.0, 5640.0, 5680.0, 5720.0,
5760.0, 5800.0, 5840.0, 5880.0, 5920.0, 5960.0, 6000.0, 6040.0,
6080.0, 6120.0, 6160.0, 6200.0, 6240.0, 6280.0, 6320.0, 6360.0,
6400.0, 6440.0, 6480.0, 6520.0, 6560.0, 6600.0, 6640.0, 6680.0,
6720.0, 6760.0, 6800.0, 6840.0, 6880.0, 6920.0, 6960.0, 7000.0,
7040.0, 7080.0, 7120.0, 7160.0, 7200.0, 7240.0, 7280.0, 7320.0,
7360.0, 7400.0, 7440.0, 7480.0, 7520.0, 7560.0, 7600.0, 7640.0,
7680.0, 7720.0, 7760.0, 7800.0, 7840.0, 7880.0, 7920.0, 7960.0,
8000.0, 8040.0, 8080.0, 8120.0, 8160.0, 8200.0, 8240.0, 8280.0,
8320.0, 8360.0, 8400.0, 8440.0, 8480.0, 8520.0, 8560.0, 8600.0,
8640.0, 8680.0, 8720.0, 8760.0, 8800.0, 8840.0, 8880.0, 8920.0,
8960.0, 9000.0, 9040.0, 9080.0, 9120.0, 9160.0, 9200.0, 9240.0,
9280.0, 9320.0, 9360.0, 9400.0, 9440.0, 9480.0, 9520.0, 9560.0,
9600.0, 9640.0, 9680.0, 9720.0, 9760.0, 9800.0, 9840.0, 9880.0,
9920.0, 9960.0, 10000.0, 10040.0, 10080.0, 10120.0, 10160.0, 10200.0,
10240.0},
// log K = 11
{0.0, 80.0, 160.0, 240.0, 320.0, 400.0, 480.0, 560.0,
640.0, 720.0, 800.0, 880.0, 960.0, 1040.0, 1120.0, 1200.0,
1280.0, 1360.0, 1440.0, 1520.0, 1600.0, 1680.0, 1760.0, 1840.0,
1920.0, 2000.0, 2080.0, 2160.0, 2240.0, 2320.0, 2400.0, 2480.0,
2560.0, 2640.0, 2720.0, 2800.0, 2880.0, 2960.0, 3040.0, 3120.0,
3200.0, 3280.0, 3360.0, 3440.0, 3520.0, 3600.0, 3680.0, 3760.0,
3840.0, 3920.0, 4000.0, 4080.0, 4160.0, 4240.0, 4320.0, 4400.0,
4480.0, 4560.0, 4640.0, 4720.0, 4800.0, 4880.0, 4960.0, 5040.0,
5120.0, 5200.0, 5280.0, 5360.0, 5440.0, 5520.0, 5600.0, 5680.0,
5760.0, 5840.0, 5920.0, 6000.0, 6080.0, 6160.0, 6240.0, 6320.0,
6400.0, 6480.0, 6560.0, 6640.0, 6720.0, 6800.0, 6880.0, 6960.0,
7040.0, 7120.0, 7200.0, 7280.0, 7360.0, 7440.0, 7520.0, 7600.0,
7680.0, 7760.0, 7840.0, 7920.0, 8000.0, 8080.0, 8160.0, 8240.0,
8320.0, 8400.0, 8480.0, 8560.0, 8640.0, 8720.0, 8800.0, 8880.0,
8960.0, 9040.0, 9120.0, 9200.0, 9280.0, 9360.0, 9440.0, 9520.0,
9600.0, 9680.0, 9760.0, 9840.0, 9920.0, 10000.0, 10080.0, 10160.0,
10240.0, 10320.0, 10400.0, 10480.0, 10560.0, 10640.0, 10720.0, 10800.0,
10880.0, 10960.0, 11040.0, 11120.0, 11200.0, 11280.0, 11360.0, 11440.0,
11520.0, 11600.0, 11680.0, 11760.0, 11840.0, 11920.0, 12000.0, 12080.0,
12160.0, 12240.0, 12320.0, 12400.0, 12480.0, 12560.0, 12640.0, 12720.0,
12800.0, 12880.0, 12960.0, 13040.0, 13120.0, 13200.0, 13280.0, 13360.0,
13440.0, 13520.0, 13600.0, 13680.0, 13760.0, 13840.0, 13920.0, 14000.0,
14080.0, 14160.0, 14240.0, 14320.0, 14400.0, 14480.0, 14560.0, 14640.0,
14720.0, 14800.0, 14880.0, 14960.0, 15040.0, 15120.0, 15200.0, 15280.0,
15360.0, 15440.0, 15520.0, 15600.0, 15680.0, 15760.0, 15840.0, 15920.0,
16000.0, 16080.0, 16160.0, 16240.0, 16320.0, 16400.0, 16480.0, 16560.0,
16640.0, 16720.0, 16800.0, 16880.0, 16960.0, 17040.0, 17120.0, 17200.0,
17280.0, 17360.0, 17440.0, 17520.0, 17600.0, 17680.0, 17760.0, 17840.0,
17920.0, 18000.0, 18080.0, 18160.0, 18240.0, 18320.0, 18400.0, 18480.0,
18560.0, 18640.0, 18720.0, 18800.0, 18880.0, 18960.0, 19040.0, 19120.0,
19200.0, 19280.0, 19360.0, 19440.0, 19520.0, 19600.0, 19680.0, 19760.0,
19840.0, 19920.0, 20000.0, 20080.0, 20160.0, 20240.0, 20320.0, 20400.0,
20480.0},
// log K = 12
{0.0, 160.0, 320.0, 480.0, 640.0, 800.0, 960.0, 1120.0,
1280.0, 1440.0, 1600.0, 1760.0, 1920.0, 2080.0, 2240.0, 2400.0,
2560.0, 2720.0, 2880.0, 3040.0, 3200.0, 3360.0, 3520.0, 3680.0,
3840.0, 4000.0, 4160.0, 4320.0, 4480.0, 4640.0, 4800.0, 4960.0,
5120.0, 5280.0, 5440.0, 5600.0, 5760.0, 5920.0, 6080.0, 6240.0,
6400.0, 6560.0, 6720.0, 6880.0, 7040.0, 7200.0, 7360.0, 7520.0,
7680.0, 7840.0, 8000.0, 8160.0, 8320.0, 8480.0, 8640.0, 8800.0,
8960.0, 9120.0, 9280.0, 9440.0, 9600.0, 9760.0, 9920.0, 10080.0,
10240.0, 10400.0, 10560.0, 10720.0, 10880.0, 11040.0, 11200.0, 11360.0,
11520.0, 11680.0, 11840.0, 12000.0, 12160.0, 12320.0, 12480.0, 12640.0,
12800.0, 12960.0, 13120.0, 13280.0, 13440.0, 13600.0, 13760.0, 13920.0,
14080.0, 14240.0, 14400.0, 14560.0, 14720.0, 14880.0, 15040.0, 15200.0,
15360.0, 15520.0, 15680.0, 15840.0, 16000.0, 16160.0, 16320.0, 16480.0,
16640.0, 16800.0, 16960.0, 17120.0, 17280.0, 17440.0, 17600.0, 17760.0,
17920.0, 18080.0, 18240.0, 18400.0, 18560.0, 18720.0, 18880.0, 19040.0,
19200.0, 19360.0, 19520.0, 19680.0, 19840.0, 20000.0, 20160.0, 20320.0,
20480.0, 20640.0, 20800.0, 20960.0, 21120.0, 21280.0, 21440.0, 21600.0,
21760.0, 21920.0, 22080.0, 22240.0, 22400.0, 22560.0, 22720.0, 22880.0,
23040.0, 23200.0, 23360.0, 23520.0, 23680.0, 23840.0, 24000.0, 24160.0,
24320.0, 24480.0, 24640.0, 24800.0, 24960.0, 25120.0, 25280.0, 25440.0,
25600.0, 25760.0, 25920.0, 26080.0, 26240.0, 26400.0, 26560.0, 26720.0,
26880.0, 27040.0, 27200.0, 27360.0, 27520.0, 27680.0, 27840.0, 28000.0,
28160.0, 28320.0, 28480.0, 28640.0, 28800.0, 28960.0, 29120.0, 29280.0,
29440.0, 29600.0, 29760.0, 29920.0, 30080.0, 30240.0, 30400.0, 30560.0,
30720.0, 30880.0, 31040.0, 31200.0, 31360.0, 31520.0, 31680.0, 31840.0,
32000.0, 32160.0, 32320.0, 32480.0, 32640.0, 32800.0, 32960.0, 33120.0,
33280.0, 33440.0, 33600.0, 33760.0, 33920.0, 34080.0, 34240.0, 34400.0,
34560.0, 34720.0, 34880.0, 35040.0, 35200.0, 35360.0, 35520.0, 35680.0,
35840.0, 36000.0, 36160.0, 36320.0, 36480.0, 36640.0, 36800.0, 36960.0,
37120.0, 37280.0, 37440.0, 37600.0, 37760.0, 37920.0, 38080.0, 38240.0,
38400.0, 38560.0, 38720.0, 38880.0, 39040.0, 39200.0, 39360.0, 39520.0,
39680.0, 39840.0, 40000.0, 40160.0, 40320.0, 40480.0, 40640.0, 40800.0,
40960.0},
// log K = 13
{0.0, 320.0, 640.0, 960.0, 1280.0, 1600.0, 1920.0, 2240.0,
2560.0, 2880.0, 3200.0, 3520.0, 3840.0, 4160.0, 4480.0, 4800.0,
5120.0, 5440.0, 5760.0, 6080.0, 6400.0, 6720.0, 7040.0, 7360.0,
7680.0, 8000.0, 8320.0, 8640.0, 8960.0, 9280.0, 9600.0, 9920.0,
10240.0, 10560.0, 10880.0, 11200.0, 11520.0, 11840.0, 12160.0, 12480.0,
12800.0, 13120.0, 13440.0, 13760.0, 14080.0, 14400.0, 14720.0, 15040.0,
15360.0, 15680.0, 16000.0, 16320.0, 16640.0, 16960.0, 17280.0, 17600.0,
17920.0, 18240.0, 18560.0, 18880.0, 19200.0, 19520.0, 19840.0, 20160.0,
20480.0, 20800.0, 21120.0, 21440.0, 21760.0, 22080.0, 22400.0, 22720.0,
23040.0, 23360.0, 23680.0, 24000.0, 24320.0, 24640.0, 24960.0, 25280.0,
25600.0, 25920.0, 26240.0, 26560.0, 26880.0, 27200.0, 27520.0, 27840.0,
28160.0, 28480.0, 28800.0, 29120.0, 29440.0, 29760.0, 30080.0, 30400.0,
30720.0, 31040.0, 31360.0, 31680.0, 32000.0, 32320.0, 32640.0, 32960.0,
33280.0, 33600.0, 33920.0, 34240.0, 34560.0, 34880.0, 35200.0, 35520.0,
35840.0, 36160.0, 36480.0, 36800.0, 37120.0, 37440.0, 37760.0, 38080.0,
38400.0, 38720.0, 39040.0, 39360.0, 39680.0, 40000.0, 40320.0, 40640.0,
40960.0, 41280.0, 41600.0, 41920.0, 42240.0, 42560.0, 42880.0, 43200.0,
43520.0, 43840.0, 44160.0, 44480.0, 44800.0, 45120.0, 45440.0, 45760.0,
46080.0, 46400.0, 46720.0, 47040.0, 47360.0, 47680.0, 48000.0, 48320.0,
48640.0, 48960.0, 49280.0, 49600.0, 49920.0, 50240.0, 50560.0, 50880.0,
51200.0, 51520.0, 51840.0, 52160.0, 52480.0, 52800.0, 53120.0, 53440.0,
53760.0, 54080.0, 54400.0, 54720.0, 55040.0, 55360.0, 55680.0, 56000.0,
56320.0, 56640.0, 56960.0, 57280.0, 57600.0, 57920.0, 58240.0, 58560.0,
58880.0, 59200.0, 59520.0, 59840.0, 60160.0, 60480.0, 60800.0, 61120.0,
61440.0, 61760.0, 62080.0, 62400.0, 62720.0, 63040.0, 63360.0, 63680.0,
64000.0, 64320.0, 64640.0, 64960.0, 65280.0, 65600.0, 65920.0, 66240.0,
66560.0, 66880.0, 67200.0, 67520.0, 67840.0, 68160.0, 68480.0, 68800.0,
69120.0, 69440.0, 69760.0, 70080.0, 70400.0, 70720.0, 71040.0, 71360.0,
71680.0, 72000.0, 72320.0, 72640.0, 72960.0, 73280.0, 73600.0, 73920.0,
74240.0, 74560.0, 74880.0, 75200.0, 75520.0, 75840.0, 76160.0, 76480.0,
76800.0, 77120.0, 77440.0, 77760.0, 78080.0, 78400.0, 78720.0, 79040.0,
79360.0, 79680.0, 80000.0, 80320.0, 80640.0, 80960.0, 81280.0, 81600.0,
81920.0},
// log K = 14
{0.0, 640.0, 1280.0, 1920.0, 2560.0, 3200.0, 3840.0, 4480.0,
5120.0, 5760.0, 6400.0, 7040.0, 7680.0, 8320.0, 8960.0, 9600.0,
10240.0, 10880.0, 11520.0, 12160.0, 12800.0, 13440.0, 14080.0, 14720.0,
15360.0, 16000.0, 16640.0, 17280.0, 17920.0, 18560.0, 19200.0, 19840.0,
20480.0, 21120.0, 21760.0, 22400.0, 23040.0, 23680.0, 24320.0, 24960.0,
25600.0, 26240.0, 26880.0, 27520.0, 28160.0, 28800.0, 29440.0, 30080.0,
30720.0, 31360.0, 32000.0, 32640.0, 33280.0, 33920.0, 34560.0, 35200.0,
35840.0, 36480.0, 37120.0, 37760.0, 38400.0, 39040.0, 39680.0, 40320.0,
40960.0, 41600.0, 42240.0, 42880.0, 43520.0, 44160.0, 44800.0, 45440.0,
46080.0, 46720.0, 47360.0, 48000.0, 48640.0, 49280.0, 49920.0, 50560.0,
51200.0, 51840.0, 52480.0, 53120.0, 53760.0, 54400.0, 55040.0, 55680.0,
56320.0, 56960.0, 57600.0, 58240.0, 58880.0, 59520.0, 60160.0, 60800.0,
61440.0, 62080.0, 62720.0, 63360.0, 64000.0, 64640.0, 65280.0, 65920.0,
66560.0, 67200.0, 67840.0, 68480.0, 69120.0, 69760.0, 70400.0, 71040.0,
71680.0, 72320.0, 72960.0, 73600.0, 74240.0, 74880.0, 75520.0, 76160.0,
76800.0, 77440.0, 78080.0, 78720.0, 79360.0, 80000.0, 80640.0, 81280.0,
81920.0, 82560.0, 83200.0, 83840.0, 84480.0, 85120.0, 85760.0, 86400.0,
87040.0, 87680.0, 88320.0, 88960.0, 89600.0, 90240.0, 90880.0, 91520.0,
92160.0, 92800.0, 93440.0, 94080.0, 94720.0, 95360.0, 96000.0, 96640.0,
97280.0, 97920.0, 98560.0, 99200.0, 99840.0, 100480.0, 101120.0, 101760.0,
102400.0, 103040.0, 103680.0, 104320.0, 104960.0, 105600.0, 106240.0, 106880.0,
107520.0, 108160.0, 108800.0, 109440.0, 110080.0, 110720.0, 111360.0, 112000.0,
112640.0, 113280.0, 113920.0, 114560.0, 115200.0, 115840.0, 116480.0, 117120.0,
117760.0, 118400.0, 119040.0, 119680.0, 120320.0, 120960.0, 121600.0, 122240.0,
122880.0, 123520.0, 124160.0, 124800.0, 125440.0, 126080.0, 126720.0, 127360.0,
128000.0, 128640.0, 129280.0, 129920.0, 130560.0, 131200.0, 131840.0, 132480.0,
133120.0, 133760.0, 134400.0, 135040.0, 135680.0, 136320.0, 136960.0, 137600.0,
138240.0, 138880.0, 139520.0, 140160.0, 140800.0, 141440.0, 142080.0, 142720.0,
143360.0, 144000.0, 144640.0, 145280.0, 145920.0, 146560.0, 147200.0, 147840.0,
148480.0, 149120.0, 149760.0, 150400.0, 151040.0, 151680.0, 152320.0, 152960.0,
153600.0, 154240.0, 154880.0, 155520.0, 156160.0, 156800.0, 157440.0, 158080.0,
158720.0, 159360.0, 160000.0, 160640.0, 161280.0, 161920.0, 162560.0, 163200.0,
163840.0},
// log K = 15
{0.0, 1280.0, 2560.0, 3840.0, 5120.0, 6400.0, 7680.0, 8960.0,
10240.0, 11520.0, 12800.0, 14080.0, 15360.0, 16640.0, 17920.0, 19200.0,
20480.0, 21760.0, 23040.0, 24320.0, 25600.0, 26880.0, 28160.0, 29440.0,
30720.0, 32000.0, 33280.0, 34560.0, 35840.0, 37120.0, 38400.0, 39680.0,
40960.0, 42240.0, 43520.0, 44800.0, 46080.0, 47360.0, 48640.0, 49920.0,
51200.0, 52480.0, 53760.0, 55040.0, 56320.0, 57600.0, 58880.0, 60160.0,
61440.0, 62720.0, 64000.0, 65280.0, 66560.0, 67840.0, 69120.0, 70400.0,
71680.0, 72960.0, 74240.0, 75520.0, 76800.0, 78080.0, 79360.0, 80640.0,
81920.0, 83200.0, 84480.0, 85760.0, 87040.0, 88320.0, 89600.0, 90880.0,
92160.0, 93440.0, 94720.0, 96000.0, 97280.0, 98560.0, 99840.0, 101120.0,
102400.0, 103680.0, 104960.0, 106240.0, 107520.0, 108800.0, 110080.0, 111360.0,
112640.0, 113920.0, 115200.0, 116480.0, 117760.0, 119040.0, 120320.0, 121600.0,
122880.0, 124160.0, 125440.0, 126720.0, 128000.0, 129280.0, 130560.0, 131840.0,
133120.0, 134400.0, 135680.0, 136960.0, 138240.0, 139520.0, 140800.0, 142080.0,
143360.0, 144640.0, 145920.0, 147200.0, 148480.0, 149760.0, 151040.0, 152320.0,
153600.0, 154880.0, 156160.0, 157440.0, 158720.0, 160000.0, 161280.0, 162560.0,
163840.0, 165120.0, 166400.0, 167680.0, 168960.0, 170240.0, 171520.0, 172800.0,
174080.0, 175360.0, 176640.0, 177920.0, 179200.0, 180480.0, 181760.0, 183040.0,
184320.0, 185600.0, 186880.0, 188160.0, 189440.0, 190720.0, 192000.0, 193280.0,
194560.0, 195840.0, 197120.0, 198400.0, 199680.0, 200960.0, 202240.0, 203520.0,
204800.0, 206080.0, 207360.0, 208640.0, 209920.0, 211200.0, 212480.0, 213760.0,
215040.0, 216320.0, 217600.0, 218880.0, 220160.0, 221440.0, 222720.0, 224000.0,
225280.0, 226560.0, 227840.0, 229120.0, 230400.0, 231680.0, 232960.0, 234240.0,
235520.0, 236800.0, 238080.0, 239360.0, 240640.0, 241920.0, 243200.0, 244480.0,
245760.0, 247040.0, 248320.0, 249600.0, 250880.0, 252160.0, 253440.0, 254720.0,
256000.0, 257280.0, 258560.0, 259840.0, 261120.0, 262400.0, 263680.0, 264960.0,
266240.0, 267520.0, 268800.0, 270080.0, 271360.0, 272640.0, 273920.0, 275200.0,
276480.0, 277760.0, 279040.0, 280320.0, 281600.0, 282880.0, 284160.0, 285440.0,
286720.0, 288000.0, 289280.0, 290560.0, 291840.0, 293120.0, 294400.0, 295680.0,
296960.0, 298240.0, 299520.0, 300800.0, 302080.0, 303360.0, 304640.0, 305920.0,
307200.0, 308480.0, 309760.0, 311040.0, 312320.0, 313600.0, 314880.0, 316160.0,
317440.0, 318720.0, 320000.0, 321280.0, 322560.0, 323840.0, 325120.0, 326400.0,
327680.0},
// log K = 16
{0.0, 2560.0, 5120.0, 7680.0, 10240.0, 12800.0, 15360.0, 17920.0,
20480.0, 23040.0, 25600.0, 28160.0, 30720.0, 33280.0, 35840.0, 38400.0,
40960.0, 43520.0, 46080.0, 48640.0, 51200.0, 53760.0, 56320.0, 58880.0,
61440.0, 64000.0, 66560.0, 69120.0, 71680.0, 74240.0, 76800.0, 79360.0,
81920.0, 84480.0, 87040.0, 89600.0, 92160.0, 94720.0, 97280.0, 99840.0,
102400.0, 104960.0, 107520.0, 110080.0, 112640.0, 115200.0, 117760.0, 120320.0,
122880.0, 125440.0, 128000.0, 130560.0, 133120.0, 135680.0, 138240.0, 140800.0,
143360.0, 145920.0, 148480.0, 151040.0, 153600.0, 156160.0, 158720.0, 161280.0,
163840.0, 166400.0, 168960.0, 171520.0, 174080.0, 176640.0, 179200.0, 181760.0,
184320.0, 186880.0, 189440.0, 192000.0, 194560.0, 197120.0, 199680.0, 202240.0,
204800.0, 207360.0, 209920.0, 212480.0, 215040.0, 217600.0, 220160.0, 222720.0,
225280.0, 227840.0, 230400.0, 232960.0, 235520.0, 238080.0, 240640.0, 243200.0,
245760.0, 248320.0, 250880.0, 253440.0, 256000.0, 258560.0, 261120.0, 263680.0,
266240.0, 268800.0, 271360.0, 273920.0, 276480.0, 279040.0, 281600.0, 284160.0,
286720.0, 289280.0, 291840.0, 294400.0, 296960.0, 299520.0, 302080.0, 304640.0,
307200.0, 309760.0, 312320.0, 314880.0, 317440.0, 320000.0, 322560.0, 325120.0,
327680.0, 330240.0, 332800.0, 335360.0, 337920.0, 340480.0, 343040.0, 345600.0,
348160.0, 350720.0, 353280.0, 355840.0, 358400.0, 360960.0, 363520.0, 366080.0,
368640.0, 371200.0, 373760.0, 376320.0, 378880.0, 381440.0, 384000.0, 386560.0,
389120.0, 391680.0, 394240.0, 396800.0, 399360.0, 401920.0, 404480.0, 407040.0,
409600.0, 412160.0, 414720.0, 417280.0, 419840.0, 422400.0, 424960.0, 427520.0,
430080.0, 432640.0, 435200.0, 437760.0, 440320.0, 442880.0, 445440.0, 448000.0,
450560.0, 453120.0, 455680.0, 458240.0, 460800.0, 463360.0, 465920.0, 468480.0,
471040.0, 473600.0, 476160.0, 478720.0, 481280.0, 483840.0, 486400.0, 488960.0,
491520.0, 494080.0, 496640.0, 499200.0, 501760.0, 504320.0, 506880.0, 509440.0,
512000.0, 514560.0, 517120.0, 519680.0, 522240.0, 524800.0, 527360.0, 529920.0,
532480.0, 535040.0, 537600.0, 540160.0, 542720.0, 545280.0, 547840.0, 550400.0,
552960.0, 555520.0, 558080.0, 560640.0, 563200.0, 565760.0, 568320.0, 570880.0,
573440.0, 576000.0, 578560.0, 581120.0, 583680.0, 586240.0, 588800.0, 591360.0,
593920.0, 596480.0, 599040.0, 601600.0, 604160.0, 606720.0, 609280.0, 611840.0,
614400.0, 616960.0, 619520.0, 622080.0, 624640.0, 627200.0, 629760.0, 632320.0,
634880.0, 637440.0, 640000.0, 642560.0, 645120.0, 647680.0, 650240.0, 652800.0,
655360.0},
// log K = 17
{0.0, 5120.0, 10240.0, 15360.0, 20480.0, 25600.0, 30720.0, 35840.0,
40960.0, 46080.0, 51200.0, 56320.0, 61440.0, 66560.0, 71680.0, 76800.0,
81920.0, 87040.0, 92160.0, 97280.0, 102400.0, 107520.0, 112640.0, 117760.0,
122880.0, 128000.0, 133120.0, 138240.0, 143360.0, 148480.0, 153600.0, 158720.0,
163840.0, 168960.0, 174080.0, 179200.0, 184320.0, 189440.0, 194560.0, 199680.0,
204800.0, 209920.0, 215040.0, 220160.0, 225280.0, 230400.0, 235520.0, 240640.0,
245760.0, 250880.0, 256000.0, 261120.0, 266240.0, 271360.0, 276480.0, 281600.0,
286720.0, 291840.0, 296960.0, 302080.0, 307200.0, 312320.0, 317440.0, 322560.0,
327680.0, 332800.0, 337920.0, 343040.0, 348160.0, 353280.0, 358400.0, 363520.0,
368640.0, 373760.0, 378880.0, 384000.0, 389120.0, 394240.0, 399360.0, 404480.0,
409600.0, 414720.0, 419840.0, 424960.0, 430080.0, 435200.0, 440320.0, 445440.0,
450560.0, 455680.0, 460800.0, 465920.0, 471040.0, 476160.0, 481280.0, 486400.0,
491520.0, 496640.0, 501760.0, 506880.0, 512000.0, 517120.0, 522240.0, 527360.0,
532480.0, 537600.0, 542720.0, 547840.0, 552960.0, 558080.0, 563200.0, 568320.0,
573440.0, 578560.0, 583680.0, 588800.0, 593920.0, 599040.0, 604160.0, 609280.0,
614400.0, 619520.0, 624640.0, 629760.0, 634880.0, 640000.0, 645120.0, 650240.0,
655360.0, 660480.0, 665600.0, 670720.0, 675840.0, 680960.0, 686080.0, 691200.0,
696320.0, 701440.0, 706560.0, 711680.0, 716800.0, 721920.0, 727040.0, 732160.0,
737280.0, 742400.0, 747520.0, 752640.0, 757760.0, 762880.0, 768000.0, 773120.0,
778240.0, 783360.0, 788480.0, 793600.0, 798720.0, 803840.0, 808960.0, 814080.0,
819200.0, 824320.0, 829440.0, 834560.0, 839680.0, 844800.0, 849920.0, 855040.0,
860160.0, 865280.0, 870400.0, 875520.0, 880640.0, 885760.0, 890880.0, 896000.0,
901120.0, 906240.0, 911360.0, 916480.0, 921600.0, 926720.0, 931840.0, 936960.0,
942080.0, 947200.0, 952320.0, 957440.0, 962560.0, 967680.0, 972800.0, 977920.0,
983040.0, 988160.0, 993280.0, 998400.0, 1003520.0, 1008640.0, 1013760.0, 1018880.0,
1024000.0, 1029120.0, 1034240.0, 1039360.0, 1044480.0, 1049600.0, 1054720.0, 1059840.0,
1064960.0, 1070080.0, 1075200.0, 1080320.0, 1085440.0, 1090560.0, 1095680.0, 1100800.0,
1105920.0, 1111040.0, 1116160.0, 1121280.0, 1126400.0, 1131520.0, 1136640.0, 1141760.0,
1146880.0, 1152000.0, 1157120.0, 1162240.0, 1167360.0, 1172480.0, 1177600.0, 1182720.0,
1187840.0, 1192960.0, 1198080.0, 1203200.0, 1208320.0, 1213440.0, 1218560.0, 1223680.0,
1228800.0, 1233920.0, 1239040.0, 1244160.0, 1249280.0, 1254400.0, 1259520.0, 1264640.0,
1269760.0, 1274880.0, 1280000.0, 1285120.0, 1290240.0, 1295360.0, 1300480.0, 1305600.0,
1310720.0},
// log K = 18
{0.0, 10240.0, 20480.0, 30720.0, 40960.0, 51200.0, 61440.0, 71680.0,
81920.0, 92160.0, 102400.0, 112640.0, 122880.0, 133120.0, 143360.0, 153600.0,
163840.0, 174080.0, 184320.0, 194560.0, 204800.0, 215040.0, 225280.0, 235520.0,
245760.0, 256000.0, 266240.0, 276480.0, 286720.0, 296960.0, 307200.0, 317440.0,
327680.0, 337920.0, 348160.0, 358400.0, 368640.0, 378880.0, 389120.0, 399360.0,
409600.0, 419840.0, 430080.0, 440320.0, 450560.0, 460800.0, 471040.0, 481280.0,
491520.0, 501760.0, 512000.0, 522240.0, 532480.0, 542720.0, 552960.0, 563200.0,
573440.0, 583680.0, 593920.0, 604160.0, 614400.0, 624640.0, 634880.0, 645120.0,
655360.0, 665600.0, 675840.0, 686080.0, 696320.0, 706560.0, 716800.0, 727040.0,
737280.0, 747520.0, 757760.0, 768000.0, 778240.0, 788480.0, 798720.0, 808960.0,
819200.0, 829440.0, 839680.0, 849920.0, 860160.0, 870400.0, 880640.0, 890880.0,
901120.0, 911360.0, 921600.0, 931840.0, 942080.0, 952320.0, 962560.0, 972800.0,
983040.0, 993280.0, 1003520.0, 1013760.0, 1024000.0, 1034240.0, 1044480.0, 1054720.0,
1064960.0, 1075200.0, 1085440.0, 1095680.0, 1105920.0, 1116160.0, 1126400.0, 1136640.0,
1146880.0, 1157120.0, 1167360.0, 1177600.0, 1187840.0, 1198080.0, 1208320.0, 1218560.0,
1228800.0, 1239040.0, 1249280.0, 1259520.0, 1269760.0, 1280000.0, 1290240.0, 1300480.0,
1310720.0, 1320960.0, 1331200.0, 1341440.0, 1351680.0, 1361920.0, 1372160.0, 1382400.0,
1392640.0, 1402880.0, 1413120.0, 1423360.0, 1433600.0, 1443840.0, 1454080.0, 1464320.0,
1474560.0, 1484800.0, 1495040.0, 1505280.0, 1515520.0, 1525760.0, 1536000.0, 1546240.0,
1556480.0, 1566720.0, 1576960.0, 1587200.0, 1597440.0, 1607680.0, 1617920.0, 1628160.0,
1638400.0, 1648640.0, 1658880.0, 1669120.0, 1679360.0, 1689600.0, 1699840.0, 1710080.0,
1720320.0, 1730560.0, 1740800.0, 1751040.0, 1761280.0, 1771520.0, 1781760.0, 1792000.0,
1802240.0, 1812480.0, 1822720.0, 1832960.0, 1843200.0, 1853440.0, 1863680.0, 1873920.0,
1884160.0, 1894400.0, 1904640.0, 1914880.0, 1925120.0, 1935360.0, 1945600.0, 1955840.0,
1966080.0, 1976320.0, 1986560.0, 1996800.0, 2007040.0, 2017280.0, 2027520.0, 2037760.0,
2048000.0, 2058240.0, 2068480.0, 2078720.0, 2088960.0, 2099200.0, 2109440.0, 2119680.0,
2129920.0, 2140160.0, 2150400.0, 2160640.0, 2170880.0, 2181120.0, 2191360.0, 2201600.0,
2211840.0, 2222080.0, 2232320.0, 2242560.0, 2252800.0, 2263040.0, 2273280.0, 2283520.0,
2293760.0, 2304000.0, 2314240.0, 2324480.0, 2334720.0, 2344960.0, 2355200.0, 2365440.0,
2375680.0, 2385920.0, 2396160.0, 2406400.0, 2416640.0, 2426880.0, 2437120.0, 2447360.0,
2457600.0, 2467840.0, 2478080.0, 2488320.0, 2498560.0, 2508800.0, 2519040.0, 2529280.0,
2539520.0, 2549760.0, 2560000.0, 2570240.0, 2580480.0, 2590720.0, 2600960.0, 2611200.0,
2621440.0},
// log K = 19
{0.0, 20480.0, 40960.0, 61440.0, 81920.0, 102400.0, 122880.0, 143360.0,
163840.0, 184320.0, 204800.0, 225280.0, 245760.0, 266240.0, 286720.0, 307200.0,
327680.0, 348160.0, 368640.0, 389120.0, 409600.0, 430080.0, 450560.0, 471040.0,
491520.0, 512000.0, 532480.0, 552960.0, 573440.0, 593920.0, 614400.0, 634880.0,
655360.0, 675840.0, 696320.0, 716800.0, 737280.0, 757760.0, 778240.0, 798720.0,
819200.0, 839680.0, 860160.0, 880640.0, 901120.0, 921600.0, 942080.0, 962560.0,
983040.0, 1003520.0, 1024000.0, 1044480.0, 1064960.0, 1085440.0, 1105920.0, 1126400.0,
1146880.0, 1167360.0, 1187840.0, 1208320.0, 1228800.0, 1249280.0, 1269760.0, 1290240.0,
1310720.0, 1331200.0, 1351680.0, 1372160.0, 1392640.0, 1413120.0, 1433600.0, 1454080.0,
1474560.0, 1495040.0, 1515520.0, 1536000.0, 1556480.0, 1576960.0, 1597440.0, 1617920.0,
1638400.0, 1658880.0, 1679360.0, 1699840.0, 1720320.0, 1740800.0, 1761280.0, 1781760.0,
1802240.0, 1822720.0, 1843200.0, 1863680.0, 1884160.0, 1904640.0, 1925120.0, 1945600.0,
1966080.0, 1986560.0, 2007040.0, 2027520.0, 2048000.0, 2068480.0, 2088960.0, 2109440.0,
2129920.0, 2150400.0, 2170880.0, 2191360.0, 2211840.0, 2232320.0, 2252800.0, 2273280.0,
2293760.0, 2314240.0, 2334720.0, 2355200.0, 2375680.0, 2396160.0, 2416640.0, 2437120.0,
2457600.0, 2478080.0, 2498560.0, 2519040.0, 2539520.0, 2560000.0, 2580480.0, 2600960.0,
2621440.0, 2641920.0, 2662400.0, 2682880.0, 2703360.0, 2723840.0, 2744320.0, 2764800.0,
2785280.0, 2805760.0, 2826240.0, 2846720.0, 2867200.0, 2887680.0, 2908160.0, 2928640.0,
2949120.0, 2969600.0, 2990080.0, 3010560.0, 3031040.0, 3051520.0, 3072000.0, 3092480.0,
3112960.0, 3133440.0, 3153920.0, 3174400.0, 3194880.0, 3215360.0, 3235840.0, 3256320.0,
3276800.0, 3297280.0, 3317760.0, 3338240.0, 3358720.0, 3379200.0, 3399680.0, 3420160.0,
3440640.0, 3461120.0, 3481600.0, 3502080.0, 3522560.0, 3543040.0, 3563520.0, 3584000.0,
3604480.0, 3624960.0, 3645440.0, 3665920.0, 3686400.0, 3706880.0, 3727360.0, 3747840.0,
3768320.0, 3788800.0, 3809280.0, 3829760.0, 3850240.0, 3870720.0, 3891200.0, 3911680.0,
3932160.0, 3952640.0, 3973120.0, 3993600.0, 4014080.0, 4034560.0, 4055040.0, 4075520.0,
4096000.0, 4116480.0, 4136960.0, 4157440.0, 4177920.0, 4198400.0, 4218880.0, 4239360.0,
4259840.0, 4280320.0, 4300800.0, 4321280.0, 4341760.0, 4362240.0, 4382720.0, 4403200.0,
4423680.0, 4444160.0, 4464640.0, 4485120.0, 4505600.0, 4526080.0, 4546560.0, 4567040.0,
4587520.0, 4608000.0, 4628480.0, 4648960.0, 4669440.0, 4689920.0, 4710400.0, 4730880.0,
4751360.0, 4771840.0, 4792320.0, 4812800.0, 4833280.0, 4853760.0, 4874240.0, 4894720.0,
4915200.0, 4935680.0, 4956160.0, 4976640.0, 4997120.0, 5017600.0, 5038080.0, 5058560.0,
5079040.0, 5099520.0, 5120000.0, 5140480.0, 5160960.0, 5181440.0, 5201920.0, 5222400.0,
5242880.0},
// log K = 20
{0.0, 40960.0, 81920.0, 122880.0, 163840.0, 204800.0, 245760.0, 286720.0,
327680.0, 368640.0, 409600.0, 450560.0, 491520.0, 532480.0, 573440.0, 614400.0,
655360.0, 696320.0, 737280.0, 778240.0, 819200.0, 860160.0, 901120.0, 942080.0,
983040.0, 1024000.0, 1064960.0, 1105920.0, 1146880.0, 1187840.0, 1228800.0, 1269760.0,
1310720.0, 1351680.0, 1392640.0, 1433600.0, 1474560.0, 1515520.0, 1556480.0, 1597440.0,
1638400.0, 1679360.0, 1720320.0, 1761280.0, 1802240.0, 1843200.0, 1884160.0, 1925120.0,
1966080.0, 2007040.0, 2048000.0, 2088960.0, 2129920.0, 2170880.0, 2211840.0, 2252800.0,
2293760.0, 2334720.0, 2375680.0, 2416640.0, 2457600.0, 2498560.0, 2539520.0, 2580480.0,
2621440.0, 2662400.0, 2703360.0, 2744320.0, 2785280.0, 2826240.0, 2867200.0, 2908160.0,
2949120.0, 2990080.0, 3031040.0, 3072000.0, 3112960.0, 3153920.0, 3194880.0, 3235840.0,
3276800.0, 3317760.0, 3358720.0, 3399680.0, 3440640.0, 3481600.0, 3522560.0, 3563520.0,
3604480.0, 3645440.0, 3686400.0, 3727360.0, 3768320.0, 3809280.0, 3850240.0, 3891200.0,
3932160.0, 3973120.0, 4014080.0, 4055040.0, 4096000.0, 4136960.0, 4177920.0, 4218880.0,
4259840.0, 4300800.0, 4341760.0, 4382720.0, 4423680.0, 4464640.0, 4505600.0, 4546560.0,
4587520.0, 4628480.0, 4669440.0, 4710400.0, 4751360.0, 4792320.0, 4833280.0, 4874240.0,
4915200.0, 4956160.0, 4997120.0, 5038080.0, 5079040.0, 5120000.0, 5160960.0, 5201920.0,
5242880.0, 5283840.0, 5324800.0, 5365760.0, 5406720.0, 5447680.0, 5488640.0, 5529600.0,
5570560.0, 5611520.0, 5652480.0, 5693440.0, 5734400.0, 5775360.0, 5816320.0, 5857280.0,
5898240.0, 5939200.0, 5980160.0, 6021120.0, 6062080.0, 6103040.0, 6144000.0, 6184960.0,
6225920.0, 6266880.0, 6307840.0, 6348800.0, 6389760.0, 6430720.0, 6471680.0, 6512640.0,
6553600.0, 6594560.0, 6635520.0, 6676480.0, 6717440.0, 6758400.0, 6799360.0, 6840320.0,
6881280.0, 6922240.0, 6963200.0, 7004160.0, 7045120.0, 7086080.0, 7127040.0, 7168000.0,
7208960.0, 7249920.0, 7290880.0, 7331840.0, 7372800.0, 7413760.0, 7454720.0, 7495680.0,
7536640.0, 7577600.0, 7618560.0, 7659520.0, 7700480.0, 7741440.0, 7782400.0, 7823360.0,
7864320.0, 7905280.0, 7946240.0, 7987200.0, 8028160.0, 8069120.0, 8110080.0, 8151040.0,
8192000.0, 8232960.0, 8273920.0, 8314880.0, 8355840.0, 8396800.0, 8437760.0, 8478720.0,
8519680.0, 8560640.0, 8601600.0, 8642560.0, 8683520.0, 8724480.0, 8765440.0, 8806400.0,
8847360.0, 8888320.0, 8929280.0, 8970240.0, 9011200.0, 9052160.0, 9093120.0, 9134080.0,
9175040.0, 9216000.0, 9256960.0, 9297920.0, 9338880.0, 9379840.0, 9420800.0, 9461760.0,
9502720.0, 9543680.0, 9584640.0, 9625600.0, 9666560.0, 9707520.0, 9748480.0, 9789440.0,
9830400.0, 9871360.0, 9912320.0, 9953280.0, 9994240.0, 10035200.0, 10076160.0, 10117120.0,
10158080.0, 10199040.0, 10240000.0, 10280960.0, 10321920.0, 10362880.0, 10403840.0, 10444800.0,
10485760.0},
// log K = 21
{0.0, 81920.0, 163840.0, 245760.0, 327680.0, 409600.0, 491520.0, 573440.0,
655360.0, 737280.0, 819200.0, 901120.0, 983040.0, 1064960.0, 1146880.0, 1228800.0,
1310720.0, 1392640.0, 1474560.0, 1556480.0, 1638400.0, 1720320.0, 1802240.0, 1884160.0,
1966080.0, 2048000.0, 2129920.0, 2211840.0, 2293760.0, 2375680.0, 2457600.0, 2539520.0,
2621440.0, 2703360.0, 2785280.0, 2867200.0, 2949120.0, 3031040.0, 3112960.0, 3194880.0,
3276800.0, 3358720.0, 3440640.0, 3522560.0, 3604480.0, 3686400.0, 3768320.0, 3850240.0,
3932160.0, 4014080.0, 4096000.0, 4177920.0, 4259840.0, 4341760.0, 4423680.0, 4505600.0,
4587520.0, 4669440.0, 4751360.0, 4833280.0, 4915200.0, 4997120.0, 5079040.0, 5160960.0,
5242880.0, 5324800.0, 5406720.0, 5488640.0, 5570560.0, 5652480.0, 5734400.0, 5816320.0,
5898240.0, 5980160.0, 6062080.0, 6144000.0, 6225920.0, 6307840.0, 6389760.0, 6471680.0,
6553600.0, 6635520.0, 6717440.0, 6799360.0, 6881280.0, 6963200.0, 7045120.0, 7127040.0,
7208960.0, 7290880.0, 7372800.0, 7454720.0, 7536640.0, 7618560.0, 7700480.0, 7782400.0,
7864320.0, 7946240.0, 8028160.0, 8110080.0, 8192000.0, 8273920.0, 8355840.0, 8437760.0,
8519680.0, 8601600.0, 8683520.0, 8765440.0, 8847360.0, 8929280.0, 9011200.0, 9093120.0,
9175040.0, 9256960.0, 9338880.0, 9420800.0, 9502720.0, 9584640.0, 9666560.0, 9748480.0,
9830400.0, 9912320.0, 9994240.0, 10076160.0, 10158080.0, 10240000.0, 10321920.0, 10403840.0,
10485760.0, 10567680.0, 10649600.0, 10731520.0, 10813440.0, 10895360.0, 10977280.0, 11059200.0,
11141120.0, 11223040.0, 11304960.0, 11386880.0, 11468800.0, 11550720.0, 11632640.0, 11714560.0,
11796480.0, 11878400.0, 11960320.0, 12042240.0, 12124160.0, 12206080.0, 12288000.0, 12369920.0,
12451840.0, 12533760.0, 12615680.0, 12697600.0, 12779520.0, 12861440.0, 12943360.0, 13025280.0,
13107200.0, 13189120.0, 13271040.0, 13352960.0, 13434880.0, 13516800.0, 13598720.0, 13680640.0,
13762560.0, 13844480.0, 13926400.0, 14008320.0, 14090240.0, 14172160.0, 14254080.0, 14336000.0,
14417920.0, 14499840.0, 14581760.0, 14663680.0, 14745600.0, 14827520.0, 14909440.0, 14991360.0,
15073280.0, 15155200.0, 15237120.0, 15319040.0, 15400960.0, 15482880.0, 15564800.0, 15646720.0,
15728640.0, 15810560.0, 15892480.0, 15974400.0, 16056320.0, 16138240.0, 16220160.0, 16302080.0,
16384000.0, 16465920.0, 16547840.0, 16629760.0, 16711680.0, 16793600.0, 16875520.0, 16957440.0,
17039360.0, 17121280.0, 17203200.0, 17285120.0, 17367040.0, 17448960.0, 17530880.0, 17612800.0,
17694720.0, 17776640.0, 17858560.0, 17940480.0, 18022400.0, 18104320.0, 18186240.0, 18268160.0,
18350080.0, 18432000.0, 18513920.0, 18595840.0, 18677760.0, 18759680.0, 18841600.0, 18923520.0,
19005440.0, 19087360.0, 19169280.0, 19251200.0, 19333120.0, 19415040.0, 19496960.0, 19578880.0,
19660800.0, 19742720.0, 19824640.0, 19906560.0, 19988480.0, 20070400.0, 20152320.0, 20234240.0,
20316160.0, 20398080.0, 20480000.0, 20561920.0, 20643840.0, 20725760.0, 20807680.0, 20889600.0,
20971520.0}
};
//CHECKSTYLE.ON: LineLength
static double cubicInterpolateUsingTable(double[] xArr, double[] yArr, double x) {
assert (xArr.length >= 4 && xArr.length == yArr.length && x >= xArr[0]
&& x <= xArr[xArr.length - 1]);
if (x == xArr[xArr.length - 1]) { // corner case
return yArr[yArr.length - 1];
}
int offset = findStraddle(xArr, x);
assert (offset >= 0 && offset <= xArr.length - 2);
if (offset == 0) { // corner case
return cubicInterpolateAux(xArr, yArr, offset, x);
}
if (offset == xArr.length - 2) { // corner case
return cubicInterpolateAux(xArr, yArr, offset - 2, x);
}
return cubicInterpolateAux(xArr, yArr, offset - 1, x);
}
private static double cubicInterpolateAux(double[] xArr, double[] yArr, int offset, double x) {
return cubicInterpolateAuxAux(
xArr[offset], yArr[offset],
xArr[offset + 1], yArr[offset + 1],
xArr[offset + 2], yArr[offset + 2],
xArr[offset + 3], yArr[offset + 3],
x
);
}
// interpolate using the cubic curve that passes through the four given points, using the
// Lagrange interpolation formula
private static double cubicInterpolateAuxAux(double x0, double y0, double x1, double y1,
double x2, double y2, double x3, double y3, double x) {
double l0Numer = (x - x1) * (x - x2) * (x - x3);
double l1Numer = (x - x0) * (x - x2) * (x - x3);
double l2Numer = (x - x0) * (x - x1) * (x - x3);
double l3Numer = (x - x0) * (x - x1) * (x - x2);
double l0Denom = (x0 - x1) * (x0 - x2) * (x0 - x3);
double l1Denom = (x1 - x0) * (x1 - x2) * (x1 - x3);
double l2Denom = (x2 - x0) * (x2 - x1) * (x2 - x3);
double l3Denom = (x3 - x0) * (x3 - x1) * (x3 - x2);
double term0 = y0 * l0Numer / l0Denom;
double term1 = y1 * l1Numer / l1Denom;
double term2 = y2 * l2Numer / l2Denom;
double term3 = y3 * l3Numer / l3Denom;
return term0 + term1 + term2 + term3;
}
private static int findStraddle(double[] xArr, double x) {
assert (xArr.length >= 2 && x >= xArr[0] && x <= xArr[xArr.length - 1]);
return (findStraddleAux(xArr, 0, xArr.length - 1, x));
}
private static int findStraddleAux(double[] xArr, int left, int right, double x) {
int middle;
assert (left < right);
assert (xArr[left] <= x && x < xArr[right]); /* the invariant */
if (left + 1 == right) { return (left); }
middle = left + ((right - left) / 2);
if (xArr[middle] <= x) {
return (findStraddleAux(xArr, middle, right, x));
}
else {
return (findStraddleAux(xArr, left, middle, x));
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy