Specialize the curvfit / surface fit rate models

The rate models for the curvfit and surffit models are
specialized by block size, by dividing the block sizes
into 4 categories. The prediction error for rate is
reduced substantially in the process.

Note there is much less improvement in distortion by
the same process and so a generic model for all block
sizes are still used for distortion. However the
distortion model for surffit is also updated by sampling
a little more coarsely than before.

lowres 20 frames end-usage=q: +0.023% av PSNR
midres 20 frames end-usage=q: -0.053% av PSNR

Upto 3% speed-up but bot consistently across all videos.

STATS_CHANGED

Change-Id: I1ef7335b2e40308e11790dd9fc13d062d4fc81c1
diff --git a/av1/encoder/rd.c b/av1/encoder/rd.c
index 05e5097..5152b66 100644
--- a/av1/encoder/rd.c
+++ b/av1/encoder/rd.c
@@ -694,385 +694,596 @@
   return interp_cubic(q, y);
 }
 
-static const double interp_rgrid_surf[65 * 18] = {
-  0.104019,    0.245714,    0.293686,    0.358635,    0.382167,    0.412446,
-  0.419955,    0.421388,    0.426672,    0.427990,    0.428531,    0.456868,
-  0.569880,    0.638822,    1.016319,    2.143453,    3.565229,    4.720880,
-  0.124618,    0.294211,    0.352023,    0.429991,    0.458206,    0.494510,
-  0.503513,    0.505232,    0.511566,    0.513234,    0.519365,    0.570225,
-  0.697373,    0.840624,    1.462198,    3.289054,    6.256517,    6.852788,
-  0.118630,    0.269669,    0.346620,    0.430999,    0.459385,    0.495783,
-  0.504808,    0.506532,    0.512884,    0.514988,    0.543437,    0.662772,
-  0.795876,    1.313596,    2.403841,    4.163098,    7.440589,    8.616275,
-  0.093329,    0.168205,    0.321320,    0.430607,    0.459385,    0.495783,
-  0.504813,    0.506548,    0.512975,    0.520662,    0.571659,    0.701841,
-  1.010727,    2.138851,    3.460626,    6.317955,    10.098127,   14.418553,
-  0.087021,    0.142905,    0.315011,    0.430509,    0.459385,    0.495787,
-  0.505075,    0.507599,    0.513584,    0.543182,    0.669941,    0.825620,
-  1.362800,    2.572187,    4.205047,    7.498399,    12.303118,   16.641735,
-  0.086923,    0.142513,    0.314913,    0.430508,    0.459385,    0.495803,
-  0.506126,    0.511816,    0.514810,    0.549705,    0.725350,    1.127334,
-  2.168597,    3.463686,    6.318605,    10.162284,   18.556041,   19.847042,
-  0.086923,    0.142513,    0.314913,    0.430506,    0.459376,    0.495805,
-  0.506388,    0.512954,    0.520772,    0.580215,    0.810474,    1.391548,
-  2.579442,    4.205160,    7.498399,    12.381597,   21.703618,   24.015457,
-  0.086923,    0.142513,    0.314911,    0.430353,    0.458765,    0.495652,
-  0.506391,    0.513406,    0.544098,    0.702950,    1.121860,    2.168961,
-  3.463798,    6.318607,    10.162284,   18.685361,   28.188192,   37.638872,
-  0.086923,    0.142513,    0.314901,    0.429742,    0.456313,    0.495045,
-  0.506484,    0.519195,    0.580104,    0.810126,    1.391462,    2.579441,
-  4.205160,    7.498399,    12.381597,   21.848607,   33.367199,   42.623190,
-  0.086923,    0.142513,    0.314899,    0.429589,    0.455706,    0.495155,
-  0.507882,    0.542426,    0.702360,    1.119921,    2.168478,    3.463791,
-  6.318607,    10.162284,   18.685361,   28.345760,   47.802028,   49.163533,
-  0.086924,    0.142548,    0.315086,    0.429842,    0.455870,    0.496336,
-  0.512412,    0.556953,    0.773373,    1.266396,    2.548277,    4.204676,
-  7.498399,    12.381597,   21.848607,   33.548250,   54.301011,   56.262859,
-  0.087067,    0.144957,    0.327436,    0.446616,    0.466362,    0.505706,
-  0.522077,    0.610747,    0.972543,    1.666916,    3.338812,    6.316669,
-  10.162284,   18.685361,   28.345760,   48.065311,   66.145302,   78.396020,
-  0.094295,    0.164235,    0.393722,    0.534219,    0.530922,    0.579308,
-  0.603889,    0.760870,    1.229961,    2.423214,    4.173513,    7.497916,
-  12.381597,   21.848607,   33.548250,   54.589585,   74.875848,   86.468182,
-  0.124096,    0.213005,    0.497188,    0.665176,    0.685973,    0.800200,
-  0.911394,    1.077971,    1.677290,    3.332129,    6.314960,    10.162257,
-  18.685361,   28.345760,   48.065311,   66.453506,   98.275189,   96.862588,
-  0.140999,    0.270140,    0.658212,    0.867661,    0.970183,    1.149516,
-  1.480599,    1.664833,    2.421893,    3.857981,    7.418830,    12.380371,
-  21.848607,   33.548250,   54.589585,   75.188867,   106.657971,  99.762997,
-  0.178353,    0.398001,    0.988462,    1.241473,    1.340967,    1.713568,
-  2.335030,    2.701432,    3.348532,    5.077158,    9.829903,    18.676528,
-  28.345700,   48.065311,   66.453506,   98.588283,   117.057193,  101.130722,
-  0.281079,    0.548300,    1.395825,    1.780770,    2.000508,    2.702964,
-  3.638454,    4.573843,    5.051641,    7.079129,    11.293332,   21.594861,
-  33.544335,   54.589585,   75.188867,   106.971065,  119.957601,  101.466632,
-  0.476762,    0.842189,    2.019678,    2.723895,    3.188467,    4.011610,
-  5.545111,    7.508984,    8.176339,    9.774504,    14.720782,   27.334416,
-  48.049609,   66.453506,   98.588283,   117.370357,  121.329855,  101.509242,
-  0.993999,    1.520111,    3.013605,    4.203530,    4.982992,    6.074944,
-  8.583581,    11.818375,   14.192544,   14.937517,   21.258160,   33.305953,
-  54.585735,   75.188867,   106.971135,  120.279824,  121.976055,  102.690130,
-  1.776487,    2.613655,    4.356487,    6.161726,    7.622196,    9.464193,
-  13.077233,   18.051656,   23.221051,   24.080068,   30.085038,   48.345269,
-  66.457698,   98.588353,   117.379415,  121.976128,  124.356210,  107.713202,
-  3.191085,    4.495201,    5.686033,    8.365566,    11.275339,   14.706437,
-  20.300969,   28.152237,   35.688355,   39.341382,   41.030743,   55.752262,
-  75.211764,   106.980285,  120.608403,  124.680746,  130.222528,  112.260098,
-  6.136611,    7.305215,    7.272532,    10.646713,   15.630815,   22.383168,
-  31.349131,   42.419822,   52.301680,   58.983454,   58.915405,   69.161305,
-  98.992460,   117.713855,  124.344836,  130.623638,  138.442401,  127.846670,
-  11.707980,   13.490761,   11.640845,   14.176132,   22.131124,   33.776462,
-  47.365711,   61.603834,   75.281056,   83.463985,   85.510533,   86.026513,
-  108.787480,  123.031136,  130.607284,  138.954406,  160.867784,  158.958882,
-  27.062874,   32.195139,   24.147297,   22.114632,   35.580506,   52.551674,
-  71.652956,   88.606776,   102.107193,  110.703186,  114.398733,  111.118539,
-  121.503578,  132.455924,  139.490806,  161.412674,  193.563210,  172.203945,
-  35.625692,   47.953028,   42.639820,   42.276254,   58.815664,   84.977282,
-  110.656412,  126.168446,  134.658126,  140.604482,  144.006012,  141.702382,
-  140.125323,  153.122630,  164.748041,  194.156197,  206.854650,  174.013079,
-  49.516447,   65.335381,   71.738306,   81.872819,   98.400740,   136.840488,
-  163.775802,  169.440078,  172.747876,  171.222919,  171.679604,  172.173550,
-  168.200129,  187.617133,  199.683394,  207.768200,  210.062520,  175.478356,
-  60.341673,   92.487135,   119.907299,  136.068010,  144.778950,  189.443534,
-  220.120077,  219.641635,  214.616503,  205.894657,  198.453924,  200.013069,
-  195.938103,  206.118661,  210.447375,  212.061379,  216.078218,  181.162805,
-  78.422159,   112.242899,  158.416312,  181.404320,  193.188690,  229.296967,
-  270.461799,  275.168977,  256.511701,  244.706786,  231.344608,  226.065087,
-  222.248618,  218.662324,  217.966722,  218.248574,  218.818588,  182.740573,
-  88.713664,   123.594164,  172.928179,  213.781414,  245.800351,  252.063414,
-  313.283141,  331.703831,  305.866639,  285.177142,  269.759635,  251.988739,
-  245.998388,  232.688076,  230.588702,  230.882657,  230.319053,  192.120741,
-  102.540561,  152.905927,  189.137131,  241.806756,  273.868497,  284.258017,
-  339.689853,  373.561104,  362.657463,  326.291984,  311.922687,  290.460189,
-  276.774381,  273.012072,  277.751792,  279.123748,  278.820447,  233.813798,
-  132.983118,  176.307242,  197.415684,  243.307787,  280.893995,  332.922370,
-  340.329043,  404.530166,  419.475405,  375.775209,  351.300889,  340.042759,
-  315.683832,  306.123530,  306.359319,  306.733063,  307.609556,  261.647847,
-  149.579109,  185.925581,  207.937033,  245.159084,  301.890957,  350.040480,
-  352.250771,  418.742329,  458.112686,  430.125208,  386.460441,  380.346839,
-  354.679150,  337.305620,  334.504124,  335.889932,  341.060725,  286.898578,
-  153.576812,  202.105624,  219.366967,  248.524506,  314.255692,  350.607526,
-  390.567688,  408.629209,  488.000213,  480.563823,  432.461799,  410.412624,
-  398.607371,  400.188740,  402.780916,  408.853470,  430.449735,  363.777088,
-  161.353129,  214.848904,  231.549852,  258.536466,  313.163177,  368.140577,
-  412.136393,  413.409032,  499.838438,  519.571063,  485.833867,  444.562715,
-  435.738129,  442.358549,  450.166531,  453.208524,  458.424358,  385.823139,
-  175.109034,  227.608058,  250.069563,  286.101747,  312.256740,  378.421485,
-  413.344147,  435.058646,  476.960941,  542.448886,  530.189154,  495.408402,
-  475.326752,  465.017144,  464.694045,  465.144689,  466.905382,  398.669138,
-  184.750180,  240.766694,  283.240772,  305.480150,  322.409001,  374.526162,
-  427.141326,  452.840323,  472.604139,  545.366105,  567.676694,  541.666203,
-  509.591873,  492.044219,  492.778569,  493.765684,  493.235693,  413.684325,
-  194.728357,  254.928927,  289.991157,  300.193195,  324.194589,  371.563147,
-  439.226438,  468.295088,  495.654854,  533.506353,  587.476353,  578.298989,
-  548.041942,  527.393885,  538.965146,  545.070442,  544.295454,  454.012211,
-  205.195287,  283.135677,  297.921431,  319.295927,  355.621830,  392.466463,
-  446.696167,  485.053519,  516.426615,  532.264584,  588.481600,  615.906737,
-  589.319634,  555.754316,  558.389367,  569.094521,  569.779764,  475.384946,
-  218.552054,  298.511016,  319.188338,  351.781666,  372.789510,  412.827434,
-  464.569387,  506.270203,  533.049810,  553.347364,  580.644599,  632.759854,
-  622.235843,  569.960552,  580.799340,  586.553714,  579.488366,  491.826482,
-  244.803348,  299.790203,  324.187975,  363.280782,  403.710443,  441.724083,
-  492.732682,  534.722691,  552.193622,  575.112647,  586.097705,  635.224970,
-  644.642944,  606.017786,  640.321218,  642.316989,  616.397020,  548.300111,
-  256.957358,  318.638991,  355.063346,  389.889307,  433.607315,  468.209001,
-  515.178157,  573.556591,  578.113115,  587.246475,  601.762801,  638.454644,
-  656.574853,  641.184609,  676.908189,  684.198162,  678.387412,  574.805864,
-  251.211502,  323.448532,  364.227424,  411.792704,  462.226488,  503.572288,
-  549.299249,  599.124071,  601.227977,  597.118176,  613.247552,  633.278532,
-  658.074755,  664.930719,  685.731531,  693.632845,  693.076350,  578.326477,
-  267.695377,  354.273736,  389.976833,  438.518178,  493.332686,  544.343027,
-  588.895829,  620.206193,  628.327410,  606.067827,  620.998532,  657.985256,
-  683.936059,  691.345257,  693.894723,  695.175306,  693.618786,  578.517148,
-  274.290725,  363.465288,  411.808596,  463.369805,  515.310226,  581.009306,
-  613.070738,  636.638714,  647.333929,  629.867603,  644.646319,  687.796202,
-  702.859596,  713.495479,  704.068069,  704.991807,  704.188594,  587.283658,
-  302.538449,  389.174737,  438.518422,  493.398902,  547.662399,  601.981814,
-  624.773046,  641.629484,  644.699451,  645.848784,  668.033340,  703.643523,
-  707.422408,  717.329600,  726.298973,  744.127507,  745.365167,  617.954068,
-  310.328188,  410.984766,  463.369805,  515.315010,  581.309832,  613.787792,
-  634.988538,  654.145284,  662.632978,  668.413496,  706.494057,  750.545471,
-  730.724808,  730.002100,  743.625262,  750.801609,  745.308457,  606.505800,
-  329.948756,  437.600191,  493.398902,  547.661910,  601.917884,  622.557745,
-  633.244395,  644.055898,  648.224221,  665.062911,  763.555733,  812.391078,
-  769.063582,  744.865168,  727.579796,  724.950408,  722.179707,  598.564510,
-  350.848328,  462.437458,  515.315010,  581.309823,  613.779123,  634.465309,
-  652.056257,  662.179143,  671.466297,  726.881256,  819.824030,  880.232789,
-  810.371672,  754.246481,  725.053473,  724.253390,  723.503395,  603.394909,
-  373.704088,  492.408266,  547.661910,  601.917884,  622.557620,  633.236320,
-  644.023513,  648.232514,  666.381639,  785.498283,  929.441612,  999.772800,
-  890.339033,  775.852504,  731.840181,  726.905100,  725.251844,  604.899901,
-  394.473422,  514.261306,  581.309823,  613.779123,  634.465309,  652.056257,
-  662.179143,  671.466557,  727.134512,  835.764144,  981.747089,  1018.462934,
-  939.686967,  811.276731,  739.398459,  727.365647,  725.285425,  604.923525,
-  419.976505,  546.538939,  601.917884,  622.557620,  633.236320,  644.023513,
-  648.232514,  666.381639,  785.545191,  932.841398,  1036.609617, 1026.945092,
-  963.822765,  840.827315,  755.532423,  730.241865,  725.366847,  604.924155,
-  437.281359,  580.116337,  613.779123,  634.465309,  652.056257,  662.179143,
-  671.466557,  727.134512,  835.764859,  981.996194,  1031.896881, 1002.544732,
-  881.157178,  828.151494,  799.340975,  751.314325,  728.316587,  605.005504,
-  464.713920,  600.649281,  622.557620,  633.236320,  644.023513,  648.232514,
-  666.381639,  785.545191,  932.841398,  1036.735329, 1035.037004, 995.478339,
-  858.093733,  823.471976,  819.881754,  798.749289,  749.440463,  607.955244,
-  495.880237,  612.473139,  634.465309,  652.056257,  662.179143,  671.466557,
-  727.134512,  835.764859,  981.996194,  1032.339788, 1031.105117, 995.303259,
-  857.733663,  823.435877,  822.822791,  819.873050,  796.882480,  629.038445,
-  510.391280,  621.158273,  633.236320,  644.023513,  648.232514,  666.381639,
-  785.545191,  932.841398,  1036.735329, 1035.566013, 1029.599350, 994.926093,
-  857.645648,  823.435143,  822.904139,  822.822791,  817.965681,  673.856962,
-  514.588176,  632.947715,  652.056257,  662.179143,  671.466557,  727.134512,
-  835.764859,  981.996194,  1032.339788, 1031.547475, 1023.835377, 972.158629,
-  851.968626,  823.347128,  822.904770,  822.904139,  820.752301,  684.418900,
-  520.013294,  631.668183,  644.023513,  648.232514,  666.381639,  785.545191,
-  932.841398,  1036.735329, 1035.567378, 1029.776746, 1001.044108, 880.853721,
-  829.201546,  822.994150,  822.904770,  822.904770,  820.792975,  684.582020,
-  531.253628,  650.479606,  662.179143,  671.466557,  727.134512,  835.764859,
-  981.996194,  1032.339788, 1031.636855, 1029.601779, 995.366703,  858.086641,
-  823.524524,  822.906135,  822.904770,  822.904770,  820.792975,  684.582020,
-  528.531744,  642.424501,  648.232514,  666.381639,  785.545191,  932.841398,
-  1036.735329, 1035.567378, 1030.219103, 1029.576226, 995.278687,  857.733663,
-  823.436508,  822.904770,  822.904770,  822.904770,  820.792975,  684.582020,
-  545.401164,  660.550678,  671.508859,  727.304161,  835.807162,  981.996850,
-  1032.339788, 1031.636855, 1030.130788, 1029.487827, 994.925709,  857.645648,
-  823.435143,  822.904770,  822.904770,  822.904770,  820.792975,  684.582020,
-  537.684760,  646.650947,  669.110131,  796.487512,  935.569890,  1036.777631,
-  1035.567378, 1030.219103, 1030.018584, 1023.810805, 972.158629,  851.968626,
-  823.347128,  822.904770,  822.904770,  822.904770,  820.792975,  684.582020,
-  552.408370,  670.001885,  738.246482,  879.690154,  992.939171,  1032.509436,
-  1031.636855, 1030.132153, 1029.665223, 1001.043724, 880.853721,  829.201546,
-  822.994150,  822.904770,  822.904770,  822.904770,  820.792975,  684.582020,
-  539.835902,  667.496388,  799.216004,  946.512211,  1039.506123, 1035.609680,
-  1030.219103, 1030.107964, 1029.577207, 995.366703,  858.086641,  823.524524,
-  822.906135,  822.904770,  822.904770,  822.904770,  820.792975,  684.582020,
-  558.362529,  734.277451,  877.197218,  990.478243,  1029.908393, 1028.993978,
-  1027.488620, 1027.464048, 1026.933674, 992.724534,  855.532488,  821.323349,
-  820.792975,  820.792975,  820.792975,  820.792975,  818.686600,  682.825198,
-  453.127195,  649.075095,  780.278390,  867.165890,  862.469711,  857.067460,
-  856.956321,  856.955937,  856.513579,  827.981461,  713.556496,  685.024378,
-  684.582020,  684.582020,  684.582020,  684.582020,  682.825198,  569.510056,
+static const uint8_t bsize_model_cat_lookup[BLOCK_SIZES_ALL] = {
+  0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, 0, 0, 1, 1, 2, 2
 };
 
-static const double interp_dgrid_surf[65 * 18] = {
-  10.650434, 12.204694, 12.040917, 11.843008, 11.845578, 12.051535, 12.103583,
-  12.136780, 12.266709, 12.299107, 12.299673, 12.303120, 12.316337, 12.293431,
-  12.092165, 11.602421, 11.141559, 8.864495,  12.770003, 14.634889, 14.437149,
-  14.199413, 14.202487, 14.449423, 14.511827, 14.551629, 14.707410, 14.746265,
-  14.747610, 14.753705, 14.762194, 14.699395, 14.390525, 13.690970, 12.874168,
-  10.367121, 12.832328, 14.790730, 14.503765, 14.236403, 14.239028, 14.486600,
-  14.549164, 14.589069, 14.745250, 14.784258, 14.788320, 14.801930, 14.762798,
-  14.499088, 14.021544, 13.469684, 12.661560, 10.108384, 12.950520, 15.264726,
-  14.621957, 14.238236, 14.239028, 14.486601, 14.549264, 14.589469, 14.745361,
-  14.784949, 14.791572, 14.798652, 14.660251, 14.119394, 13.651131, 12.935657,
-  12.176082, 9.228999,  12.979992, 15.382918, 14.651428, 14.238693, 14.239028,
-  14.486701, 14.555710, 14.615321, 14.751849, 14.787700, 14.797104, 14.743189,
-  14.475057, 13.944406, 13.450468, 12.687876, 11.824993, 8.906683,  12.980449,
-  15.384750, 14.651885, 14.238700, 14.239028, 14.487102, 14.581562, 14.718998,
-  14.777721, 14.788445, 14.778661, 14.582790, 14.099785, 13.649637, 12.935359,
-  12.201859, 10.891931, 8.482221,  12.980449, 15.384750, 14.651886, 14.238801,
-  14.239434, 14.487303, 14.588010, 14.744860, 14.784773, 14.786094, 14.735647,
-  14.455704, 13.939591, 13.450393, 12.687876, 11.849334, 10.476658, 8.043672,
-  12.980449, 15.384750, 14.651987, 14.245320, 14.265579, 14.493824, 14.588211,
-  14.745312, 14.787263, 14.775934, 14.582036, 14.099475, 13.649563, 12.935358,
-  12.201859, 10.911285, 9.730570,  6.696921,  12.980449, 15.384750, 14.652393,
-  14.271466, 14.370434, 14.520069, 14.589027, 14.746028, 14.785482, 14.735605,
-  14.455693, 13.939590, 13.450393, 12.687876, 11.849334, 10.494514, 9.195398,
-  6.215460,  12.980449, 15.384750, 14.652494, 14.277985, 14.396679, 14.533035,
-  14.615021, 14.754825, 14.775610, 14.582796, 14.099664, 13.649565, 12.935358,
-  12.201859, 10.911285, 9.747361,  7.779960,  5.617541,  12.980448, 15.384731,
-  14.652415, 14.278078, 14.397578, 14.559053, 14.718657, 14.776398, 14.747044,
-  14.504690, 13.951810, 13.450583, 12.687876, 11.849334, 10.494514, 9.210817,
-  7.210003,  5.164575,  12.980446, 15.383448, 14.647073, 14.277541, 14.403813,
-  14.569546, 14.744956, 14.765103, 14.629073, 14.296161, 13.698573, 12.936118,
-  12.201859, 10.911285, 9.747361,  7.790897,  6.322998,  3.931551,  12.981550,
-  15.376916, 14.615597, 14.274820, 14.437479, 14.575942, 14.707492, 14.734111,
-  14.515975, 14.000806, 13.462803, 12.688066, 11.849334, 10.494514, 9.210817,
-  7.219566,  5.781392,  3.486081,  12.991899, 15.376201, 14.579444, 14.296898,
-  14.473361, 14.522910, 14.491600, 14.543267, 14.288580, 13.700311, 12.936579,
-  12.201867, 10.911285, 9.747361,  7.790897,  6.331506,  4.480348,  2.923138,
-  13.019848, 15.383477, 14.582260, 14.385262, 14.452673, 14.436019, 14.238174,
-  14.255993, 13.977481, 13.532342, 12.705591, 11.849605, 10.494514, 9.210817,
-  7.219566,  5.789642,  4.018194,  2.766222,  13.028558, 15.315782, 14.439141,
-  14.326286, 14.452429, 14.311731, 14.033235, 13.922587, 13.665868, 13.207897,
-  12.274375, 10.912967, 9.747371,  7.790897,  6.331506,  4.488594,  3.454993,
-  2.692682,  12.992752, 15.321471, 14.409573, 14.236340, 14.322969, 14.049072,
-  13.764823, 13.479242, 13.250105, 12.759133, 12.019174, 10.532951, 9.211409,
-  7.219566,  5.789642,  4.026440,  3.298077,  2.674624,  12.945493, 15.276596,
-  14.315745, 14.026198, 14.085774, 13.844563, 13.447576, 12.964935, 12.735525,
-  12.288592, 11.511693, 9.900227,  7.793270,  6.331506,  4.488594,  3.463236,
-  3.224318,  2.672433,  12.757570, 15.056661, 14.095011, 13.722362, 13.812624,
-  13.608480, 13.021206, 12.367627, 11.937931, 11.581049, 10.599552, 9.247860,
-  7.220151,  5.789642,  4.026437,  3.305882,  3.191260,  2.615317,  12.581293,
-  14.824658, 13.909074, 13.496158, 13.491402, 13.221550, 12.514140, 11.677229,
-  10.936895, 10.619912, 9.634779,  7.763570,  6.331082,  4.488590,  3.462798,
-  3.216460,  3.076315,  2.373499,  12.283499, 14.455760, 13.890593, 13.427587,
-  13.183783, 12.763833, 11.861006, 10.740618, 9.820756,  9.354945,  8.669862,
-  7.123268,  5.787860,  4.025994,  3.290000,  3.084410,  2.810905,  2.222916,
-  12.010893, 14.300919, 13.986624, 13.484026, 13.025385, 12.224281, 11.064265,
-  9.631040,  8.594396,  8.003736,  7.561587,  6.274418,  4.466637,  3.446574,
-  3.102467,  2.816989,  2.598688,  1.951541,  11.581477, 13.831132, 13.632027,
-  13.380414, 12.807880, 11.665651, 10.218236, 8.562237,  7.222614,  6.611808,
-  6.261676,  5.402793,  3.938544,  3.174375,  2.818166,  2.602758,  2.213911,
-  1.434763,  11.050735, 12.893449, 12.363152, 12.712829, 12.012961, 10.887854,
-  9.109699,  7.421701,  5.965603,  5.272129,  4.991435,  4.423000,  3.369988,
-  2.800371,  2.593901,  2.217431,  1.670917,  1.215265,  10.641194, 11.766277,
-  10.777082, 10.972917, 10.689298, 9.701545,  7.719947,  6.145654,  4.872442,
-  4.099600,  3.880934,  3.514159,  2.786474,  2.368963,  2.162376,  1.673670,
-  1.450770,  1.185424,  10.071964, 11.107701, 9.172361,  8.551313,  8.412080,
-  7.641397,  6.174246,  4.853916,  3.904549,  3.246810,  2.959903,  2.785066,
-  2.240001,  1.793166,  1.585520,  1.449824,  1.405368,  1.168856,  9.213182,
-  9.173278,  7.219231,  6.242951,  5.626013,  5.768007,  4.908666,  3.809589,
-  3.115109,  2.617899,  2.274793,  2.172960,  1.838597,  1.505915,  1.414333,
-  1.392666,  1.338173,  1.105611,  7.365015,  7.471370,  5.622346,  4.520127,
-  3.936272,  4.208822,  3.623024,  2.977794,  2.450003,  2.097261,  1.824090,
-  1.643270,  1.473525,  1.351388,  1.327504,  1.323865,  1.307894,  1.088234,
-  6.198210,  6.580712,  4.682511,  3.416952,  2.941929,  2.766637,  2.650686,
-  2.315439,  1.925838,  1.659784,  1.464419,  1.252806,  1.162722,  1.197518,
-  1.199875,  1.197365,  1.194040,  0.995797,  5.402507,  5.055466,  3.728724,
-  2.624359,  2.165810,  1.943189,  1.918190,  1.738078,  1.516328,  1.290520,
-  1.155793,  1.015962,  0.881900,  0.807203,  0.754242,  0.743378,  0.740288,
-  0.614158,  3.937867,  3.862507,  2.884664,  2.088147,  1.648496,  1.473584,
-  1.340123,  1.291769,  1.165381,  1.000224,  0.893316,  0.821333,  0.691363,
-  0.610501,  0.586766,  0.583762,  0.577840,  0.468733,  3.104660,  3.181078,
-  2.420208,  1.747442,  1.297956,  1.109835,  0.970385,  0.943229,  0.876923,
-  0.777584,  0.678183,  0.628623,  0.553745,  0.523430,  0.519490,  0.514394,
-  0.492259,  0.403172,  2.593833,  2.533720,  2.010452,  1.480944,  1.060302,
-  0.846383,  0.738703,  0.673144,  0.658010,  0.592449,  0.518236,  0.470335,
-  0.425088,  0.393168,  0.378116,  0.355846,  0.275469,  0.213128,  2.176988,
-  2.089575,  1.671284,  1.225008,  0.895382,  0.672008,  0.566241,  0.496746,
-  0.488005,  0.449874,  0.400899,  0.354002,  0.318150,  0.281533,  0.238545,
-  0.224159,  0.202399,  0.160681,  1.874679,  1.769165,  1.430124,  1.068727,
-  0.780272,  0.557801,  0.441643,  0.377256,  0.352957,  0.338452,  0.304965,
-  0.273172,  0.240052,  0.208724,  0.193431,  0.190845,  0.185025,  0.138166,
-  1.590226,  1.502830,  1.193127,  0.917885,  0.670432,  0.474546,  0.355420,
-  0.292305,  0.259035,  0.249937,  0.232079,  0.208943,  0.181936,  0.160038,
-  0.152257,  0.151235,  0.149583,  0.120747,  1.331730,  1.255907,  1.012871,
-  0.778422,  0.578977,  0.412432,  0.293155,  0.231824,  0.197187,  0.183921,
-  0.174876,  0.157252,  0.140263,  0.127050,  0.110244,  0.105041,  0.104323,
-  0.086944,  1.153994,  1.118771,  0.822355,  0.612321,  0.478249,  0.348222,
-  0.247408,  0.186141,  0.152714,  0.135445,  0.129810,  0.119994,  0.115619,
-  0.131626,  0.095612,  0.079343,  0.077502,  0.064550,  0.946317,  0.925894,
-  0.677969,  0.499906,  0.397101,  0.297931,  0.214467,  0.152333,  0.120731,
-  0.102686,  0.095062,  0.090361,  0.122319,  0.240194,  0.112687,  0.070690,
-  0.070461,  0.054194,  0.824155,  0.787241,  0.581856,  0.419228,  0.313167,
-  0.245582,  0.183500,  0.128101,  0.096577,  0.080267,  0.071022,  0.066851,
-  0.085754,  0.154163,  0.075884,  0.052401,  0.054270,  0.026656,  0.716310,
-  0.671378,  0.489580,  0.349569,  0.256155,  0.206343,  0.157853,  0.111950,
-  0.079271,  0.062518,  0.053441,  0.049660,  0.051400,  0.063778,  0.039993,
-  0.029133,  0.023382,  0.013725,  0.614125,  0.579096,  0.417126,  0.299465,
-  0.217849,  0.165515,  0.129040,  0.093127,  0.065612,  0.049543,  0.041429,
-  0.036850,  0.034416,  0.033989,  0.024216,  0.017377,  0.014833,  0.011987,
-  0.520407,  0.487239,  0.349473,  0.251741,  0.184897,  0.135813,  0.107098,
-  0.073607,  0.053938,  0.040531,  0.032931,  0.028876,  0.025759,  0.022168,
-  0.016739,  0.014638,  0.014333,  0.011947,  0.449954,  0.415124,  0.299452,
-  0.216942,  0.158874,  0.115334,  0.088821,  0.060105,  0.042610,  0.032566,
-  0.026903,  0.023123,  0.019913,  0.016835,  0.014306,  0.013625,  0.013535,
-  0.011284,  0.377618,  0.347773,  0.251741,  0.184839,  0.132857,  0.095439,
-  0.070462,  0.052244,  0.036078,  0.026025,  0.021518,  0.018487,  0.015361,
-  0.012905,  0.011470,  0.010569,  0.010283,  0.008297,  0.319953,  0.297976,
-  0.216942,  0.158842,  0.113280,  0.080426,  0.057367,  0.041987,  0.030135,
-  0.022295,  0.017901,  0.015121,  0.012224,  0.010035,  0.009353,  0.009108,
-  0.008695,  0.006139,  0.267864,  0.250502,  0.184839,  0.132851,  0.095039,
-  0.068220,  0.049135,  0.035315,  0.025144,  0.018237,  0.013857,  0.012094,
-  0.009715,  0.007743,  0.006937,  0.006446,  0.006243,  0.004929,  0.230449,
-  0.215895,  0.158842,  0.113280,  0.080417,  0.057174,  0.041304,  0.029959,
-  0.021866,  0.015673,  0.012133,  0.010083,  0.007801,  0.006053,  0.005401,
-  0.003834,  0.003429,  0.002851,  0.193984,  0.183963,  0.132851,  0.095039,
-  0.068220,  0.049133,  0.035305,  0.025140,  0.018150,  0.013175,  0.010422,
-  0.008491,  0.006397,  0.004567,  0.003494,  0.002933,  0.002825,  0.002355,
-  0.167298,  0.158088,  0.113280,  0.080417,  0.057174,  0.041304,  0.029959,
-  0.021866,  0.015669,  0.011955,  0.009257,  0.007051,  0.005543,  0.003905,
-  0.002984,  0.002825,  0.002814,  0.002347,  0.143228,  0.132220,  0.095039,
-  0.068220,  0.049133,  0.035305,  0.025140,  0.018150,  0.013174,  0.010394,
-  0.008403,  0.006661,  0.005378,  0.003545,  0.002876,  0.002818,  0.002814,
-  0.002347,  0.122934,  0.112735,  0.080417,  0.057174,  0.041304,  0.029959,
-  0.021866,  0.015669,  0.011955,  0.009258,  0.007182,  0.006012,  0.003762,
-  0.002866,  0.002739,  0.002788,  0.002810,  0.002347,  0.101934,  0.094569,
-  0.068220,  0.049133,  0.035305,  0.025140,  0.018150,  0.013174,  0.010394,
-  0.008405,  0.006797,  0.005845,  0.003333,  0.002703,  0.002695,  0.002723,
-  0.002781,  0.002343,  0.086702,  0.080014,  0.057174,  0.041304,  0.029959,
-  0.021866,  0.015669,  0.011955,  0.009258,  0.007190,  0.006533,  0.005839,
-  0.003326,  0.002700,  0.002690,  0.002694,  0.002716,  0.002314,  0.073040,
-  0.067886,  0.049133,  0.035305,  0.025140,  0.018150,  0.013174,  0.010394,
-  0.008405,  0.006807,  0.006468,  0.005831,  0.003325,  0.002700,  0.002690,
-  0.002690,  0.002687,  0.002253,  0.061685,  0.056890,  0.041304,  0.029959,
-  0.021866,  0.015669,  0.011955,  0.009258,  0.007190,  0.006542,  0.006360,
-  0.005416,  0.003221,  0.002698,  0.002690,  0.002690,  0.002683,  0.002238,
-  0.052465,  0.048894,  0.035305,  0.025140,  0.018150,  0.013174,  0.010394,
-  0.008405,  0.006807,  0.006472,  0.005943,  0.003748,  0.002805,  0.002692,
-  0.002690,  0.002690,  0.002683,  0.002238,  0.043838,  0.041101,  0.029959,
-  0.021866,  0.015669,  0.011955,  0.009258,  0.007190,  0.006543,  0.006465,
-  0.005839,  0.003333,  0.002702,  0.002690,  0.002690,  0.002690,  0.002683,
-  0.002238,  0.037824,  0.035133,  0.025140,  0.018150,  0.013174,  0.010394,
-  0.008405,  0.006807,  0.006480,  0.006464,  0.005838,  0.003326,  0.002700,
-  0.002690,  0.002690,  0.002690,  0.002683,  0.002238,  0.031865,  0.029815,
-  0.021866,  0.015668,  0.011955,  0.009258,  0.007190,  0.006543,  0.006475,
-  0.006462,  0.005831,  0.003325,  0.002700,  0.002690,  0.002690,  0.002690,
-  0.002683,  0.002238,  0.027150,  0.025016,  0.018128,  0.013083,  0.010371,
-  0.008405,  0.006807,  0.006480,  0.006472,  0.006359,  0.005416,  0.003221,
-  0.002698,  0.002690,  0.002690,  0.002690,  0.002683,  0.002238,  0.023094,
-  0.021760,  0.015577,  0.011590,  0.009167,  0.007188,  0.006543,  0.006475,
-  0.006466,  0.005943,  0.003748,  0.002805,  0.002692,  0.002690,  0.002690,
-  0.002690,  0.002683,  0.002238,  0.019269,  0.018038,  0.013060,  0.010280,
-  0.008382,  0.006806,  0.006480,  0.006474,  0.006464,  0.005839,  0.003333,
-  0.002702,  0.002690,  0.002690,  0.002690,  0.002690,  0.002683,  0.002238,
-  0.016874,  0.015472,  0.011566,  0.009148,  0.007171,  0.006527,  0.006458,
-  0.006457,  0.006447,  0.005823,  0.003318,  0.002693,  0.002683,  0.002683,
-  0.002683,  0.002683,  0.002676,  0.002232,  0.011968,  0.011056,  0.008762,
-  0.007219,  0.005717,  0.005391,  0.005386,  0.005386,  0.005377,  0.004856,
-  0.002767,  0.002246,  0.002238,  0.002238,  0.002238,  0.002238,  0.002232,
-  0.001862,
+static const double interp_rgrid_surf[4][33 * 18] = {
+  {
+      29.726102,   30.738006,   25.294088,   25.736759,   41.255961,
+      41.937828,   41.937901,   42.110487,   46.038554,   46.593284,
+      55.290144,   55.672257,   55.672289,   55.672284,   55.641633,
+      54.251766,   38.404522,   36.186584,   30.977201,   32.031695,
+      26.358675,   26.819956,   42.992269,   43.702888,   43.702966,
+      43.882830,   47.992288,   48.920311,   57.633255,   58.015369,
+      58.015396,   57.984745,   56.594876,   40.717227,   39.327227,
+      37.709563,   30.977308,   32.041872,   26.587891,   26.801416,
+      42.339251,   43.674340,   43.710377,   44.048333,   48.365747,
+      57.251292,   57.999483,   58.015595,   57.984977,   56.595076,
+      40.717426,   39.327559,   39.313319,   38.085580,   30.977328,
+      32.271000,   31.802769,   26.377378,   27.473270,   43.021187,
+      43.875643,   47.811034,   48.547182,   57.617338,   58.015563,
+      58.001989,   56.982277,   40.734438,   39.327560,   39.313487,
+      40.065111,   46.657660,   30.977329,   32.281067,   32.031899,
+      26.358835,   26.820108,   42.992490,   43.882906,   47.992438,
+      48.920477,   57.633450,   58.001989,   57.369478,   49.547092,
+      39.714761,   39.313520,   40.065295,   48.834535,   51.525122,
+      30.977329,   32.281072,   32.077511,   27.396520,   26.865699,
+      42.992474,   43.882906,   48.358483,   57.251290,   57.985906,
+      57.369511,   49.564105,   40.101962,   39.330532,   40.065297,
+      48.835069,   57.817665,   145.394655,  30.977369,   32.281197,
+      33.076074,   50.151877,   28.497451,   42.792931,   43.512994,
+      48.377350,   57.604551,   57.386489,   49.951306,   40.118976,
+      39.330567,   40.065298,   48.835069,   57.818203,   151.867755,
+      153.625733,  31.447893,   32.750906,   32.266221,   32.302627,
+      42.268290,   38.854272,   35.574619,   49.427510,   56.878041,
+      50.330896,   48.931678,   39.717770,   40.065331,   48.835069,
+      57.818191,   151.733328,  156.892368,  150.600520,  42.125514,
+      43.448292,   33.901056,   49.284440,   47.710751,   52.761179,
+      46.446220,   71.330907,   47.520016,   49.126258,   40.678046,
+      40.107037,   48.835077,   57.818191,   151.733068,  153.820869,
+      83.953859,   77.615621,   42.078145,   44.460837,   53.413056,
+      53.860750,   51.935802,   60.688133,   54.022549,   59.058236,
+      61.487243,   49.511225,   53.558701,   50.619860,   57.871196,
+      151.733230,  153.821045,  83.819613,   77.759808,   76.318016,
+      47.334708,   55.115021,   63.088351,   65.025437,   66.447005,
+      66.685816,   72.840860,   70.204772,   75.247159,   75.769300,
+      62.167236,   83.948064,   149.878947,  155.679346,  86.031186,
+      83.012511,   86.265353,   124.454706,  64.496779,   78.702984,
+      76.659370,   83.931191,   87.076287,   91.454837,   94.323380,
+      104.708654,  109.932924,  118.596035,  126.154595,  114.409068,
+      89.213630,   131.569970,  134.824613,  205.866155,  239.628810,
+      233.070258,  72.308997,   94.104934,   101.404120,  121.159064,
+      139.921349,  156.802796,  164.908506,  170.895200,  184.099064,
+      198.250167,  207.100063,  207.922921,  207.455763,  210.915553,
+      241.757520,  246.227265,  247.706317,  237.758893,  138.726610,
+      135.459290,  198.494473,  240.094885,  275.356590,  295.461068,
+      304.435273,  303.110796,  296.273053,  317.439936,  319.323966,
+      331.200883,  330.246858,  256.379818,  247.994095,  247.767952,
+      247.767210,  237.760453,  243.406633,  292.096487,  381.480937,
+      421.494757,  458.357268,  483.808573,  487.800297,  481.212962,
+      472.226349,  472.996935,  480.732289,  475.694812,  418.477476,
+      412.710307,  268.338558,  261.989349,  261.987913,  251.406810,
+      469.068582,  568.835648,  608.315967,  642.717253,  653.879813,
+      681.008793,  688.659203,  677.706251,  668.348079,  652.995530,
+      636.214467,  632.005555,  550.175654,  522.412011,  588.754096,
+      591.721361,  591.719586,  567.821360,  667.228892,  787.133995,
+      830.015474,  848.841400,  863.280871,  882.475988,  896.321308,
+      889.205975,  878.059084,  871.467549,  860.073920,  814.054753,
+      726.521001,  747.583633,  751.922326,  752.065525,  752.062970,
+      721.688835,  795.516527,  916.651129,  1045.662316, 1064.160855,
+      1070.930169, 1060.177543, 1080.056283, 1096.204211, 1095.337870,
+      1098.401980, 1087.336698, 1022.507849, 916.586633,  938.424837,
+      942.750167,  945.352203,  945.457385,  907.272493,  943.653980,
+      1021.248655, 1129.544563, 1267.035138, 1281.163505, 1235.783117,
+      1258.747831, 1285.425350, 1293.324247, 1314.802791, 1320.786990,
+      1253.910457, 1138.645930, 1091.248129, 1161.397763, 1220.617170,
+      1223.081462, 1173.684183, 1077.194216, 1216.741493, 1278.148407,
+      1383.489545, 1497.622061, 1505.771495, 1422.262568, 1462.870558,
+      1491.544736, 1494.922359, 1533.495237, 1509.573542, 1356.235452,
+      1322.878872, 1324.869188, 1327.897500, 1337.708123, 1284.090364,
+      1177.946473, 1335.104679, 1414.612819, 1508.772208, 1656.204257,
+      1636.726625, 1693.515385, 1658.176544, 1626.718453, 1699.881842,
+      1721.127481, 1715.540667, 1610.027798, 1528.475428, 1525.090509,
+      1534.987574, 1760.238672, 1698.643936, 1285.821939, 1417.714456,
+      1527.788112, 1660.663143, 1648.660011, 1838.036905, 1838.669356,
+      1803.685279, 1895.404145, 1878.456820, 1907.761437, 1891.806178,
+      1798.474576, 1772.695413, 1777.922135, 1782.961020, 1891.441373,
+      1819.624352, 1363.652278, 1525.975687, 1664.733346, 1725.645678,
+      1842.181220, 1845.935374, 1847.645643, 2084.649919, 2156.327082,
+      2070.132265, 2093.920913, 2066.856209, 1935.233655, 1757.519179,
+      1894.998543, 1904.433642, 1909.668939, 1832.757449, 1466.924321,
+      1622.799826, 1723.952077, 1846.075992, 1857.802996, 1849.640165,
+      2127.098845, 2370.422248, 2375.277013, 2471.317955, 2282.670767,
+      2242.894713, 2110.737592, 1924.405669, 2022.847422, 2092.614827,
+      2113.100659, 2028.502155, 1561.024406, 1719.325091, 1845.872940,
+      1857.825889, 1850.155079, 2127.184115, 2372.221523, 2397.560183,
+      2793.802030, 2525.955468, 2512.515727, 2465.117634, 2335.991284,
+      2104.381407, 2124.161214, 2128.328755, 2129.221941, 2043.260174,
+      1651.007418, 1782.604815, 1855.046326, 1850.154844, 2127.184127,
+      2372.221529, 2397.560385, 2794.384764, 2544.781302, 2651.443272,
+      2739.000803, 2702.474497, 2522.919941, 2276.563499, 2274.919319,
+      2275.308573, 2275.300889, 2183.406597, 1713.105119, 1852.260885,
+      1850.032717, 2127.168115, 2371.857312, 2397.544382, 2794.384763,
+      2544.781370, 2651.673334, 2746.255820, 2763.494638, 2872.508140,
+      2846.367495, 2305.137739, 2281.712444, 2281.725436, 2281.717621,
+      2189.564169, 1780.286046, 1850.026376, 2127.168073, 2371.493095,
+      2389.254845, 2794.020546, 2544.781339, 2651.673334, 2746.255845,
+      2763.564597, 2874.688737, 2884.399707, 2860.263639, 2306.077266,
+      2281.728045, 2281.725981, 2281.718165, 2189.564691, 1775.067091,
+      2127.161715, 2371.493094, 2389.238842, 2793.656329, 2544.765337,
+      2651.673332, 2746.255845, 2763.564597, 2874.688743, 2884.401957,
+      2884.614099, 2860.264919, 2306.079244, 2281.728130, 2281.725981,
+      2281.718165, 2189.564691, 2052.948444, 2371.486799, 2389.238842,
+      2793.656328, 2544.765306, 2651.673331, 2746.255845, 2763.564597,
+      2874.688743, 2884.401957, 2884.616164, 2884.614218, 2861.248329,
+      2328.461556, 2282.711540, 2281.726065, 2281.718165, 2189.564691,
+      2285.514142, 2389.231550, 2793.656328, 2544.765306, 2651.673331,
+      2746.255845, 2763.564597, 2874.688743, 2884.401957, 2884.616164,
+      2884.616200, 2884.616117, 2883.630641, 2837.880625, 2305.093852,
+      2281.727963, 2281.718165, 2189.564691, 2293.011609, 2793.639080,
+      2544.755886, 2651.663879, 2746.245982, 2763.554715, 2874.678861,
+      2884.392075, 2884.606282, 2884.606318, 2884.606318, 2884.606318,
+      2884.604170, 2860.253139, 2306.069362, 2281.720230, 2281.710349,
+      2189.557190, 2600.476153, 2437.607663, 2540.606072, 2634.813199,
+      2647.265343, 2758.176106, 2767.889302, 2768.103509, 2768.103545,
+      2768.103545, 2768.103545, 2768.103545, 2768.101564, 2744.735758,
+      2212.932478, 2189.566673, 2189.557190, 2101.125891,
+  },
+  {
+      8.370360,    8.509764,    8.942497,    8.962541,    8.993650,
+      9.401615,    9.414854,    9.308823,    9.304164,    9.304163,
+      9.304164,    9.304609,    9.324803,    9.555049,    9.565277,
+      9.571194,    9.647370,    9.451428,    8.722648,    8.867100,
+      9.300225,    9.352116,    9.672213,    9.809754,    9.794381,
+      9.699874,    9.695753,    9.695753,    9.696199,    9.716392,
+      9.947083,    9.967407,    9.973767,    10.050124,   10.454503,
+      14.384681,   8.722677,    8.848489,    8.875968,    9.334087,
+      9.685450,    9.793645,    9.413799,    9.683184,    9.695785,
+      9.696231,    9.716425,    9.947116,    9.967440,    9.973802,
+      10.050158,   10.454591,   15.023561,   15.153937,   8.723107,
+      8.857467,    8.857756,    9.333268,    9.685451,    9.792911,
+      9.397076,    9.682449,    9.695786,    9.706329,    9.946672,
+      9.967440,    9.973802,    10.050158,   10.454591,   15.023647,
+      16.163497,   23.616388,   8.732904,    9.080445,    8.867552,
+      9.333269,    9.685451,    9.792910,    9.397075,    9.682449,
+      9.696231,    9.716869,    9.957343,    9.973801,    10.050158,
+      10.454591,   15.023647,   16.163589,   24.700350,   25.680478,
+      8.733342,    9.090251,    8.868006,    9.333704,    9.685477,
+      9.792913,    9.397086,    9.682895,    9.716424,    9.947246,
+      9.973357,    10.050158,   10.454591,   15.023647,   16.163589,
+      24.700554,   28.087109,   55.858717,   8.827122,    9.186580,
+      8.932093,    9.387586,    9.780396,    9.827339,    9.522726,
+      9.715771,    9.936594,    9.972878,    10.050158,   10.454591,
+      15.023647,   16.163589,   24.700554,   28.087318,   58.323463,
+      58.504090,   11.020305,   11.418729,   10.432068,   10.462985,
+      11.980204,   10.705178,   12.392570,   10.364495,   9.829351,
+      10.102947,   10.457228,   15.023647,   16.163589,   24.700554,
+      28.087319,   58.323704,   60.984846,   58.926665,   12.554530,
+      12.511580,   11.828923,   12.308025,   13.298760,   13.044522,
+      12.945689,   13.556029,   12.673484,   12.067338,   15.194674,
+      16.168241,   24.700556,   28.087321,   58.339708,   61.349323,
+      61.787659,   67.232638,   15.008518,   15.485683,   15.872869,
+      16.107583,   15.835820,   16.877645,   17.678106,   18.822352,
+      20.208378,   19.665073,   19.090588,   25.203257,   28.104179,
+      58.339741,   61.713565,   70.078019,   70.458033,   67.961299,
+      17.761908,   35.462897,   20.615440,   19.929266,   20.679593,
+      22.692816,   25.941528,   29.215386,   34.956494,   38.908872,
+      35.866805,   37.824252,   59.112479,   61.729892,   70.173287,
+      72.702736,   72.797652,   69.857555,   20.506234,   39.710259,
+      24.054829,   25.703729,   31.621917,   38.509103,   44.229053,
+      56.544042,   67.468427,   79.581678,   80.144809,   78.556111,
+      74.399792,   73.852202,   76.027762,   117.654284,  119.482115,
+      114.656650,  25.548773,   48.434418,   42.617322,   59.026359,
+      82.885084,   103.416136,  110.596012,  118.893312,  139.741780,
+      150.511338,  161.901080,  167.647532,  162.429576,  152.184833,
+      152.445359,  168.398896,  169.099625,  162.269514,  82.673806,
+      70.110218,   132.312464,  183.332020,  215.910819,  237.790158,
+      239.207817,  229.469490,  230.174506,  250.717349,  253.902836,
+      250.549622,  207.721430,  175.337781,  174.022082,  174.844559,
+      179.095719,  164.620978,  109.303621,  158.273825,  282.689646,
+      346.940666,  386.914531,  410.989383,  397.460378,  370.331321,
+      364.107004,  366.410030,  380.333542,  363.501310,  294.254304,
+      262.048447,  260.790777,  265.975674,  362.177173,  183.336338,
+      404.520239,  473.542827,  507.606249,  529.861510,  559.718099,
+      588.632991,  577.691379,  533.799138,  522.780262,  528.340923,
+      525.905829,  507.879853,  415.994095,  425.708669,  426.932731,
+      441.248848,  446.721366,  435.160437,  604.741350,  709.039378,
+      780.416591,  732.829427,  733.032326,  766.737728,  758.413295,
+      720.856125,  705.746779,  717.211527,  703.753940,  661.340782,
+      552.231698,  523.727433,  522.707356,  523.327476,  523.380946,
+      502.845082,  745.431184,  827.490462,  962.723712,  998.756854,
+      911.671845,  907.248783,  925.966430,  901.879365,  900.337680,
+      919.439892,  914.334537,  842.878262,  704.639674,  702.883177,
+      703.067185,  703.067254,  703.064850,  674.669690,  894.169844,
+      1025.903412, 1134.439771, 1219.193918, 1158.526825, 1079.781195,
+      1077.325043, 1076.106019, 1075.934290, 1117.511500, 1135.469693,
+      1063.699731, 901.900714,  920.553711,  921.681648,  921.681860,
+      921.679125,  884.454592,  994.327035,  1175.512444, 1231.834682,
+      1307.830164, 1407.421778, 1326.963114, 1253.371428, 1250.787362,
+      1269.653825, 1282.857814, 1343.429863, 1307.501250, 1114.048857,
+      983.551449,  978.228429,  979.601009,  984.578211,  945.021162,
+      1135.950879, 1278.106415, 1310.418579, 1419.457570, 1488.462247,
+      1521.009066, 1542.754625, 1434.182316, 1454.788272, 1471.133321,
+      1506.092266, 1521.256433, 1327.843116, 1309.574134, 1310.302024,
+      1341.725430, 1459.021892, 1404.992306, 1232.172010, 1349.471091,
+      1428.291402, 1487.206606, 1535.398237, 1746.731849, 1716.656287,
+      1635.940921, 1639.303784, 1673.047286, 1693.682270, 1671.177816,
+      1517.793233, 1479.700025, 1478.369392, 1483.694229, 1578.610159,
+      1518.853600, 1297.751330, 1428.849626, 1485.708645, 1493.412575,
+      1741.940596, 1728.475751, 1735.779511, 1858.578642, 1918.863689,
+      1863.724239, 1891.004802, 1842.815568, 1675.715043, 1588.071911,
+      1589.814363, 1592.306606, 1596.345158, 1532.039001, 1373.297412,
+      1461.343441, 1492.261194, 1736.797392, 1653.192795, 1733.476694,
+      1888.263820, 2082.789610, 1991.468137, 1883.805569, 2116.637406,
+      2071.956368, 1871.698996, 1644.776129, 1756.448731, 1809.269770,
+      1811.354640, 1738.198277, 1403.551810, 1491.185946, 1736.750346,
+      1653.047461, 1730.172539, 1888.230584, 2085.624280, 1993.438043,
+      1786.471183, 2337.838134, 2448.464613, 2336.935884, 2097.581279,
+      1808.183187, 1828.142934, 1821.170551, 1820.795051, 1747.257197,
+      1427.896429, 1736.558511, 1653.047441, 1730.172527, 1888.230448,
+      2087.322730, 2032.094869, 1787.954651, 2341.066895, 2641.531977,
+      2539.340235, 2507.302262, 2309.116599, 2030.685235, 2078.550644,
+      1842.720183, 1832.216691, 1758.216718, 1580.198506, 1648.792285,
+      1730.172167, 1888.230448, 2087.322736, 2032.169494, 1789.653110,
+      2341.141530, 2641.873005, 2555.239313, 2709.221434, 2715.218691,
+      2682.937371, 2124.893499, 2102.967545, 2092.601766, 2092.133383,
+      2007.636776, 1578.033231, 1729.979789, 1888.230432, 2087.322736,
+      2032.169494, 1789.653117, 2341.141675, 2641.873012, 2555.239371,
+      2709.566764, 2723.749115, 2724.064349, 2699.003101, 2128.626010,
+      2103.563660, 2103.560569, 2103.553324, 2018.595528, 1663.710423,
+      1888.224796, 2087.322736, 2032.169494, 1789.653117, 2341.141675,
+      2641.873012, 2555.239371, 2709.566764, 2723.749145, 2724.067198,
+      2724.065212, 2700.016608, 2151.662616, 2104.575854, 2103.561585,
+      2103.554293, 2018.596458, 1818.473656, 2087.316820, 2032.169494,
+      1789.653117, 2341.141675, 2641.873012, 2555.239371, 2709.566764,
+      2723.749145, 2724.067198, 2724.067252, 2724.067166, 2723.052897,
+      2675.966135, 2127.612143, 2103.563538, 2103.554293, 2018.596458,
+      2011.142209, 2032.163033, 1789.653117, 2341.141675, 2641.873012,
+      2555.239371, 2709.566764, 2723.749145, 2724.067198, 2724.067252,
+      2724.067252, 2724.067252, 2724.065041, 2699.002510, 2128.626241,
+      2103.563710, 2103.554293, 2018.596458, 1947.414707, 1789.636821,
+      2341.132961, 2641.863707, 2555.230039, 2709.557432, 2723.739813,
+      2724.057867, 2724.057920, 2724.057920, 2724.057920, 2724.057920,
+      2724.055881, 2700.007276, 2151.653370, 2104.568562, 2103.547173,
+      2018.589543, 1614.950117, 2233.740132, 2539.133260, 2445.528333,
+      2599.538876, 2613.721229, 2614.039283, 2614.039337, 2614.039337,
+      2614.039337, 2614.039337, 2614.039337, 2614.039251, 2613.025067,
+      2566.950536, 2041.634786, 2018.591496, 1937.063243,
+  },
+  {
+      2.147514,    2.237898,    2.237803,    2.237151,    2.275320,
+      2.279324,    2.332179,    2.334501,    2.322470,    2.048664,
+      2.036634,    2.036633,    2.043731,    2.205267,    2.213955,
+      2.286115,    3.114672,    3.150236,    2.237900,    2.332085,
+      2.329658,    2.278309,    2.368754,    2.375255,    2.430335,
+      2.432248,    2.408693,    2.134381,    2.122351,    2.122650,
+      2.136546,    2.299971,    2.379228,    3.209393,    3.546162,
+      6.294600,    2.271800,    2.333582,    2.329564,    2.275984,
+      2.368873,    2.380129,    2.430556,    2.420732,    2.146419,
+      2.122864,    2.122657,    2.136254,    2.293180,    2.378937,
+      3.209400,    3.546195,    6.591552,    7.028860,    3.043184,
+      2.367477,    2.329567,    2.275984,    2.373739,    2.490860,
+      2.435421,    2.420225,    2.134895,    2.122658,    2.136254,
+      2.293180,    2.378936,    3.209400,    3.546195,    6.591617,
+      7.795421,    17.743823,   3.078566,    2.402859,    2.331056,
+      2.275985,    2.373953,    2.495725,    2.435129,    2.408702,
+      2.134688,    2.136255,    2.293180,    2.378936,    3.209400,
+      3.546195,    6.591617,    7.795492,    18.578087,   19.754344,
+      3.112459,    3.174471,    2.370323,    2.279235,    2.375398,
+      2.494530,    2.423939,    2.146738,    2.136763,    2.293180,
+      2.378939,    3.209400,    3.546195,    6.591617,    7.795492,
+      18.578249,   21.659892,   44.204400,   3.089303,    3.189642,
+      2.509317,    2.372448,    2.432176,    2.489915,    2.461894,
+      2.170933,    2.301935,    2.380378,    3.234280,    3.547288,
+      6.591617,    7.795492,    18.578249,   21.660057,   46.157016,
+      46.346972,   2.545327,    2.662725,    2.893299,    2.840660,
+      3.006570,    3.048065,    3.224317,    2.907751,    2.627415,
+      3.268959,    4.113541,    6.616496,    7.795494,    18.578249,
+      21.660057,   46.157182,   48.299592,   46.394222,   2.942757,
+      3.155386,    3.688593,    3.481851,    3.715109,    4.145502,
+      4.681446,    5.080585,    4.600294,    4.278096,    6.726591,
+      7.800142,    18.578250,   21.660057,   46.157182,   48.299758,
+      48.346843,   46.394230,   3.793838,    5.473983,    4.608110,
+      4.665834,    4.593326,    5.621563,    7.102711,    9.025169,
+      10.122234,   10.159723,   10.023976,   18.857332,   21.668316,
+      46.157261,   48.299839,   48.347091,   48.346956,   46.394491,
+      4.271176,    6.466779,    5.484235,    6.027476,    7.301091,
+      9.352794,    12.715546,   16.192475,   22.560070,   27.958500,
+      27.052873,   26.766614,   46.406220,   49.221059,   49.307058,
+      49.315280,   49.587875,   49.469333,   4.312908,    7.475387,
+      7.833860,    10.223714,   16.775457,   24.234924,   32.175390,
+      45.584094,   54.342692,   64.941124,   66.654416,   62.626466,
+      52.266425,   72.572219,   73.485826,   73.672773,   79.880600,
+      119.538616,  9.063034,    10.103318,   19.539238,   36.472083,
+      62.703355,   82.709235,   91.988082,   100.285999,  115.687111,
+      124.329614,  125.634719,  122.315209,  112.379054,  130.322056,
+      131.130875,  131.139174,  131.411947,  127.988734,  19.796341,
+      25.882925,   93.253237,   153.548489,  189.401787,  213.347763,
+      206.988813,  189.758327,  189.286642,  204.628607,  202.531100,
+      201.472079,  186.352604,  214.273591,  215.531911,  215.769339,
+      221.170008,  212.465343,  169.309448,  175.824536,  224.720662,
+      303.438505,  343.063029,  370.535703,  343.624360,  300.549614,
+      289.296503,  298.082336,  310.854450,  294.466802,  270.163254,
+      249.832086,  248.983097,  254.384429,  377.318513,  367.262701,
+      353.359003,  463.883442,  447.419222,  453.002989,  489.006379,
+      528.921013,  500.655371,  439.860852,  423.703334,  423.144668,
+      431.190760,  422.628418,  346.619232,  383.306337,  385.067653,
+      385.305123,  390.705188,  375.153218,  539.087109,  664.575466,
+      708.656277,  662.482491,  618.723324,  674.195070,  656.531281,
+      596.084694,  576.463478,  584.628279,  577.147684,  562.515800,
+      453.416064,  428.149599,  427.247359,  427.247313,  427.246307,
+      409.990807,  687.292802,  777.058828,  905.030245,  912.381642,
+      788.119446,  769.561998,  795.174180,  761.722895,  738.637994,
+      753.718308,  761.364923,  712.753474,  603.465105,  591.662313,
+      594.079856,  594.200005,  594.197958,  570.199152,  779.060173,
+      951.796204,  1069.175314, 1170.755086, 1067.610429, 949.009502,
+      934.793193,  914.719926,  899.055222,  929.548018,  948.443491,
+      883.741844,  754.604267,  719.256051,  780.076337,  782.811403,
+      782.547500,  745.230787,  922.165691,  1108.252645, 1185.274121,
+      1237.276156, 1266.012843, 1226.812751, 1102.465568, 1085.286013,
+      1075.433883, 1091.747391, 1130.914031, 1079.716598, 927.463157,
+      942.209973,  945.879069,  946.263934,  946.332394,  778.375752,
+      1069.516638, 1181.232895, 1244.763295, 1280.392765, 1419.980489,
+      1443.722749, 1374.005679, 1247.118477, 1252.786860, 1265.078694,
+      1280.267151, 1273.804486, 1085.050290, 1037.883124, 1036.171983,
+      1042.457032, 1185.241611, 1137.692305, 1136.326843, 1246.301355,
+      1321.499026, 1422.581245, 1459.231744, 1574.624247, 1593.556714,
+      1554.290382, 1474.539686, 1480.100956, 1464.679108, 1412.507057,
+      1251.278472, 1197.245685, 1195.175062, 1201.168704, 1337.571298,
+      1289.300549, 1198.629451, 1322.569335, 1424.892277, 1470.063106,
+      1576.317080, 1629.881049, 1759.007438, 1685.455960, 1823.183401,
+      1696.763728, 1720.897219, 1582.701816, 1409.816846, 1352.692221,
+      1350.761108, 1356.950874, 1362.935844, 1308.131482, 1273.245632,
+      1447.544983, 1471.079493, 1576.789596, 1629.891022, 1759.113129,
+      1704.167080, 2077.760859, 1944.393655, 2008.282739, 1951.682502,
+      1905.896173, 1653.621076, 1524.210363, 1526.775296, 1662.009621,
+      1667.942643, 1600.578688, 1394.223453, 1472.070445, 1576.833336,
+      1629.890970, 1757.978972, 1678.353822, 2077.085726, 1963.548056,
+      2214.617152, 2129.636312, 2170.262437, 2204.652056, 1892.295487,
+      1652.520236, 1673.779173, 1681.078895, 1681.334159, 1613.428869,
+      1413.634564, 1576.837954, 1629.890974, 1757.978960, 1678.303800,
+      2075.951574, 1963.498706, 2214.984962, 2140.104142, 2224.748512,
+      2358.489855, 2338.333779, 2147.326062, 1959.161343, 1704.142189,
+      1693.264072, 1693.257371, 1624.870507, 1522.455341, 1630.102341,
+      1757.978970, 1678.205343, 2073.710713, 1963.613482, 2219.840292,
+      2140.317509, 2224.830630, 2367.413225, 2514.706448, 2519.715697,
+      2490.578281, 1997.672226, 1965.092163, 1964.608831, 1964.602061,
+      1885.256194, 1566.312385, 1757.983049, 1678.205154, 2071.469838,
+      1912.611809, 2222.454760, 2250.824415, 2229.685973, 2367.413669,
+      2515.007972, 2527.205354, 2527.466626, 2505.215096, 1998.786468,
+      1976.532889, 1976.530885, 1976.524114, 1896.696743, 1692.302152,
+      1678.199584, 2071.469829, 1912.513351, 2220.213903, 2250.939287,
+      2234.541308, 2367.626998, 2515.007990, 2527.205379, 2527.469148,
+      2527.467382, 2506.115004, 2019.240121, 1977.432526, 1976.531972,
+      1976.525125, 1896.697713, 1606.783592, 2071.463772, 1912.513351,
+      2220.213894, 2250.939097, 2234.541317, 2367.627410, 2515.008008,
+      2527.205379, 2527.469148, 2527.469193, 2527.469116, 2526.568562,
+      2484.760968, 1997.886085, 1976.533707, 1976.525125, 1896.697713,
+      2004.589287, 1912.507679, 2220.213894, 2250.939097, 2234.541317,
+      2367.627410, 2515.008008, 2527.205379, 2527.469148, 2527.469193,
+      2527.469193, 2527.469193, 2527.467229, 2505.214602, 1998.786486,
+      1976.533860, 1976.525125, 1896.697713, 1827.779426, 2220.199076,
+      2250.930988, 2234.532682, 2367.618752, 2514.999350, 2527.196721,
+      2527.460490, 2527.460534, 2527.460534, 2527.460534, 2527.460534,
+      2527.458723, 2506.106346, 2019.231539, 1977.425679, 1976.518431,
+      1896.691216, 2056.541124, 2160.944440, 2138.934044, 2265.803052,
+      2412.920916, 2425.118264, 2425.382033, 2425.382078, 2425.382078,
+      2425.382078, 2425.382078, 2425.382078, 2425.382002, 2424.481524,
+      2383.572672, 1917.153083, 1896.692951, 1820.088116,
+  },
+  {
+      0.254129,    0.265575,    0.267769,    0.316933,    0.320396,
+      0.350337,    0.358368,    0.358663,    0.358663,    0.358675,
+      0.359199,    0.365181,    0.366036,    0.392895,    0.701286,
+      0.812014,    1.926722,    2.011743,    0.247749,    0.276002,
+      0.279039,    0.330191,    0.332015,    0.365000,    0.373450,
+      0.373758,    0.373759,    0.374032,    0.380276,    0.381405,
+      0.408276,    0.717257,    0.841415,    1.958868,    2.298681,
+      4.856667,    0.246998,    0.275970,    0.279040,    0.328326,
+      0.289563,    0.363136,    0.373451,    0.373760,    0.373771,
+      0.374308,    0.381144,    0.408277,    0.717258,    0.841416,
+      1.958870,    2.298703,    5.088461,    5.484975,    0.246965,
+      0.275218,    0.279007,    0.328244,    0.287698,    0.363054,
+      0.373451,    0.373771,    0.374296,    0.380881,    0.408266,
+      0.717258,    0.841416,    1.958870,    2.298703,    5.088514,
+      6.102534,    14.287379,   0.246213,    0.258111,    0.278255,
+      0.328244,    0.287698,    0.363054,    0.373452,    0.374034,
+      0.380870,    0.408644,    0.725849,    0.841794,    1.958870,
+      2.298703,    5.088514,    6.102591,    14.959455,   15.913957,
+      0.246180,    0.257402,    0.279186,    0.328526,    0.290138,
+      0.364877,    0.376133,    0.375014,    0.408382,    0.734439,
+      1.037308,    1.967461,    2.298704,    5.088514,    6.102591,
+      14.959584,   17.441072,   35.429097,   0.250019,    0.262303,
+      0.303891,    0.340011,    0.350106,    0.413735,    0.446832,
+      0.410301,    0.734390,    1.038841,    2.002354,    2.300237,
+      5.088514,    6.102591,    14.959584,   17.441204,   36.992539,
+      37.110962,   0.339750,    0.354696,    0.373261,    0.461008,
+      0.462495,    0.598987,    0.695421,    0.760530,    1.068705,
+      2.029958,    2.898902,    5.114817,    6.102593,    14.959584,
+      17.441205,   36.992675,   38.648954,   36.568097,   0.400795,
+      0.421342,    0.508307,    0.588014,    0.677109,    0.972744,
+      1.364551,    2.005727,    2.968255,    3.091537,    5.221096,
+      6.106993,    14.959585,   17.441202,   36.995441,   38.712050,
+      38.170575,   37.947398,   0.489106,    0.499732,    0.682198,
+      0.797985,    0.928841,    1.529889,    3.407135,    6.047262,
+      9.020716,    9.566838,    8.225222,    15.250390,   17.449015,
+      36.967227,   38.773771,   39.603706,   39.612863,   38.072105,
+      0.782539,    0.400752,    1.185871,    1.379942,    2.131362,
+      4.169824,    9.556239,    12.949414,   21.418888,   24.451152,
+      23.409241,   22.939144,   37.166430,   38.131684,   39.591435,
+      39.985395,   39.999803,   38.384307,   1.616514,    0.576268,
+      3.109295,    3.930083,    8.248113,    15.543679,   28.108995,
+      37.139521,   46.111565,   52.306471,   54.245700,   51.814241,
+      40.882242,   41.810659,   42.231519,   48.976557,   49.261637,
+      47.271630,   5.094715,    1.500966,    10.566421,   19.002838,
+      38.783971,   59.976285,   70.642488,   79.940911,   88.863960,
+      91.805239,   95.624856,   92.381504,   94.587340,   93.842585,
+      93.403266,   93.670318,   93.432487,   89.648397,   0.664794,
+      7.849196,    61.154449,   96.443290,   137.609372,  162.556446,
+      148.037064,  138.292519,  136.715840,  145.772994,  149.246615,
+      151.612049,  131.470885,  109.201663,  101.316335,  101.904288,
+      101.932270,  97.814994,   6.925953,    50.062367,   155.094765,
+      216.414869,  252.438993,  271.718839,  232.337598,  204.289605,
+      199.194140,  205.331210,  215.677297,  214.590331,  188.109722,
+      172.081271,  228.048207,  250.892300,  251.787562,  241.618501,
+      134.674271,  296.106246,  298.718911,  312.356451,  323.413855,
+      342.631007,  307.749299,  283.067516,  265.987870,  265.460375,
+      276.156298,  267.602576,  244.127989,  255.341106,  257.373708,
+      258.333723,  258.372207,  247.937137,  342.349647,  510.603738,
+      581.005531,  478.386434,  373.143790,  378.600404,  377.561939,
+      356.141074,  338.631477,  331.842551,  340.566852,  327.567230,
+      297.260507,  287.191935,  263.781497,  262.767950,  262.766967,
+      252.154399,  475.742336,  629.567678,  578.444958,  564.378757,
+      438.113186,  396.420987,  414.959234,  431.302969,  421.606208,
+      403.786618,  405.430259,  389.856615,  363.613524,  366.303795,
+      365.460005,  365.415394,  365.414130,  350.655776,  624.537781,
+      642.232055,  604.750655,  630.663539,  588.111844,  475.625654,
+      468.814426,  477.664040,  494.124835,  483.676981,  477.873259,
+      452.815795,  423.548326,  431.959314,  432.336669,  431.259561,
+      431.158392,  412.599201,  599.136090,  596.383540,  649.766837,
+      714.641904,  647.024168,  546.886099,  544.047374,  542.897551,
+      558.506982,  555.978025,  571.819113,  532.351774,  510.677525,
+      495.125872,  493.402635,  468.981876,  468.871284,  423.950331,
+      572.225475,  705.639818,  1024.735591, 667.143308,  595.280675,
+      762.720257,  552.209148,  613.853858,  630.029121,  653.039002,
+      643.569732,  623.030443,  573.888949,  571.441956,  571.380435,
+      572.467453,  621.621663,  597.446835,  681.815611,  1037.097688,
+      905.438670,  599.972561,  762.219180,  517.929098,  688.053947,
+      744.181205,  679.524546,  682.569374,  713.780286,  707.985178,
+      646.983619,  636.062414,  635.699032,  635.794133,  637.956277,
+      612.281811,  1009.018046, 905.871087,  604.028246,  629.564692,
+      511.991374,  689.885845,  836.027416,  766.534552,  881.860194,
+      735.849782,  783.725360,  809.653496,  750.636979,  811.765460,
+      814.639525,  816.244480,  818.253804,  785.288396,  867.862571,
+      604.231326,  629.308626,  506.143862,  689.628928,  836.193031,
+      774.742632,  1007.244245, 1293.627165, 897.984304,  931.611215,
+      973.236387,  945.068518,  947.276414,  950.892263,  987.500595,
+      1033.288662, 993.423200,  674.214249,  634.009759,  506.144239,
+      689.628432,  836.193010,  774.742663,  1007.434892, 1306.991055,
+      1109.422389, 1067.304686, 1126.861498, 1124.180515, 989.502672,
+      997.732672,  1042.608506, 1046.158446, 1048.166963, 1005.915872,
+      633.151925,  507.355996,  689.628570,  836.193810,  774.742698,
+      1007.434892, 1306.991101, 1109.775470, 1079.300073, 1239.065289,
+      1628.963638, 1322.149598, 1152.072478, 1133.642807, 1135.074392,
+      1135.159950, 1135.156239, 1089.309834, 1002.301724, 712.557708,
+      836.610527,  784.181750,  1007.849615, 1306.991136, 1109.775470,
+      1079.300117, 1239.231971, 1644.540785, 1609.385289, 1575.587962,
+      1175.113940, 1139.762609, 1138.978460, 1138.978401, 1138.974499,
+      1092.973876, 693.249751,  850.650934,  794.193638,  1222.681498,
+      1316.430188, 1109.776271, 1079.300117, 1239.231971, 1644.540839,
+      1609.866572, 1604.515037, 1603.618487, 1568.302641, 1157.017568,
+      1138.980254, 1138.978724, 1138.974823, 1092.974187, 834.755585,
+      1090.883669, 1236.131974, 1325.870346, 1110.190994, 1079.300152,
+      1239.231971, 1644.540839, 1609.866572, 1604.515142, 1604.380213,
+      1604.378532, 1585.580675, 1157.776710, 1138.980319, 1138.978724,
+      1138.974823, 1092.974187, 1056.722338, 1249.164781, 1326.443132,
+      1110.191843, 1079.300187, 1239.231971, 1644.540839, 1609.866572,
+      1604.515142, 1604.380213, 1604.380190, 1604.378596, 1585.582205,
+      1157.778240, 1138.980383, 1138.978724, 1138.974823, 1092.974187,
+      1204.957557, 1326.440488, 1110.191892, 1079.300187, 1239.231971,
+      1644.540839, 1609.866572, 1604.515142, 1604.380213, 1604.380190,
+      1604.380190, 1604.378661, 1586.341349, 1175.056279, 1139.739527,
+      1138.978789, 1138.974823, 1092.974187, 1275.872102, 1110.183396,
+      1079.294485, 1239.226464, 1644.535343, 1609.861076, 1604.509646,
+      1604.374717, 1604.374695, 1604.374695, 1604.374695, 1604.374630,
+      1603.613892, 1568.297204, 1157.013600, 1138.976353, 1138.970921,
+      1092.970443, 1014.576161, 1029.697894, 1172.002606, 1579.603765,
+      1545.063972, 1539.712554, 1539.577625, 1539.577603, 1539.577603,
+      1539.577603, 1539.577603, 1539.577603, 1539.576008, 1521.537360,
+      1111.012900, 1092.975717, 1092.970443, 1048.827820,
+  },
 };
 
-void av1_model_rd_surffit(double xm, double yl, double *rate_f,
-                          double *dist_f) {
+static const double interp_dgrid_surf[33 * 18] = {
+  15.491252, 15.496413, 15.496379, 15.394447, 15.394431, 15.446941, 15.480480,
+  15.480491, 15.480491, 15.480491, 15.480573, 15.603112, 15.603153, 15.602880,
+  15.196621, 15.195983, 14.447585, 14.442076, 15.599420, 15.501644, 15.501575,
+  15.399610, 15.399669, 15.452121, 15.485671, 15.485682, 15.485682, 15.485724,
+  15.608303, 15.608385, 15.608113, 15.201854, 15.201079, 14.452681, 14.451350,
+  13.210484, 15.599455, 15.501644, 15.501575, 15.399686, 15.626744, 15.452197,
+  15.485671, 15.485682, 15.485682, 15.485765, 15.608344, 15.608113, 15.201854,
+  15.201079, 14.452681, 14.451350, 13.214913, 13.208705, 15.599455, 15.501679,
+  15.501575, 15.399686, 15.626820, 15.452197, 15.485671, 15.485682, 15.485765,
+  15.608303, 15.608113, 15.201854, 15.201079, 14.452681, 14.451350, 13.214913,
+  13.212184, 10.377543, 15.599489, 15.604652, 15.501610, 15.399686, 15.626820,
+  15.452197, 15.485671, 15.485724, 15.608303, 15.608113, 15.201794, 15.201079,
+  14.452681, 14.451350, 13.214913, 13.212184, 10.381022, 10.373758, 15.599489,
+  15.604686, 15.501645, 15.399727, 15.626807, 15.452213, 15.485673, 15.485765,
+  15.608072, 15.201734, 15.022022, 14.452621, 14.451350, 13.214913, 13.212184,
+  10.381022, 10.375351, 4.752366,  15.599553, 15.604785, 15.606745, 15.523109,
+  15.588440, 15.498592, 15.490939, 15.608113, 15.201734, 15.022022, 14.452398,
+  14.451350, 13.214913, 13.212184, 10.381022, 10.375351, 4.753958,  4.748594,
+  15.788491, 15.793763, 15.727178, 15.593404, 15.576185, 15.541155, 15.528638,
+  15.443234, 15.022046, 14.452234, 13.963908, 13.214750, 13.212184, 10.381022,
+  10.375351, 4.753958,  4.750187,  4.748513,  15.783667, 15.788604, 15.715040,
+  15.574608, 15.604897, 15.345511, 15.322323, 15.003579, 14.280362, 13.963611,
+  13.214382, 13.212184, 10.381022, 10.375351, 4.753958,  4.750106,  4.750025,
+  4.508804,  15.747709, 14.765834, 15.706678, 15.619092, 15.637946, 15.437393,
+  14.705235, 13.886464, 13.092309, 12.499506, 12.601594, 10.380302, 10.375350,
+  4.753958,  4.750026,  4.510253,  4.510173,  4.508580,  15.641901, 14.968111,
+  15.663074, 15.583828, 15.420627, 14.983936, 13.912901, 13.425841, 11.601603,
+  10.600757, 10.110971, 8.839811,  4.753363,  4.749963,  4.510190,  4.322919,
+  4.322857,  4.321407,  15.545263, 14.859883, 15.429167, 15.185696, 14.527376,
+  13.650042, 12.244185, 10.755706, 9.356137,  8.229212,  8.166627,  7.324414,
+  4.511146,  4.322709,  4.322566,  4.322503,  4.322503,  4.321054,  15.151031,
+  14.579126, 14.592456, 13.733213, 11.980508, 10.685709, 9.143695,  7.466555,
+  6.434770,  5.659204,  5.592407,  5.356211,  4.597869,  3.456439,  3.456056,
+  3.456176,  3.456176,  3.455018,  13.478598, 13.969965, 10.921203, 9.274388,
+  7.530261,  6.614303,  5.617812,  4.558886,  4.008929,  3.739688,  3.597707,
+  3.510418,  3.041638,  3.096611,  3.096750,  3.455008,  3.455038,  3.453880,
+  11.982351, 11.102072, 6.384662,  5.366178,  4.365376,  3.782955,  3.285890,
+  2.758904,  2.439067,  2.338593,  2.257332,  2.190385,  2.088145,  1.867744,
+  1.867445,  1.196878,  0.929332,  0.928931,  6.882587,  5.102224,  3.928701,
+  3.021205,  2.614349,  2.162491,  1.870802,  1.628127,  1.448370,  1.352404,
+  1.349332,  1.277236,  1.128399,  0.928668,  0.928601,  0.928485,  0.928395,
+  0.928084,  4.066496,  3.233175,  2.413117,  1.830193,  1.473572,  1.273461,
+  1.065156,  0.929824,  0.844729,  0.777037,  0.754300,  0.759737,  0.658871,
+  0.603118,  0.603209,  0.928096,  0.928205,  0.927893,  2.747433,  2.039019,
+  1.400016,  1.123698,  0.918772,  0.744824,  0.627536,  0.528263,  0.480634,
+  0.446093,  0.423444,  0.401394,  0.394353,  0.360914,  0.360903,  0.361012,
+  0.361012,  0.360891,  1.709038,  1.258373,  0.985529,  0.673582,  0.559577,
+  0.456411,  0.372560,  0.312622,  0.268425,  0.251698,  0.238132,  0.222477,
+  0.209643,  0.165264,  0.165254,  0.165254,  0.165254,  0.165199,  1.088160,
+  0.806677,  0.673453,  0.490758,  0.350173,  0.277724,  0.229342,  0.190245,
+  0.158717,  0.138414,  0.132405,  0.123800,  0.120550,  0.128355,  0.142808,
+  0.142812,  0.142800,  0.142752,  0.806227,  0.588621,  0.490714,  0.350136,
+  0.236497,  0.188583,  0.143991,  0.115039,  0.097317,  0.081406,  0.071159,
+  0.067980,  0.062769,  0.066575,  0.066581,  0.066569,  0.030318,  0.030291,
+  0.588339,  0.456572,  0.302189,  0.236473,  0.188564,  0.126491,  0.101248,
+  0.075242,  0.059591,  0.051942,  0.042824,  0.037390,  0.034523,  0.030277,
+  0.030275,  0.030275,  0.030258,  0.014677,  0.456374,  0.302172,  0.236448,
+  0.164278,  0.126481,  0.094667,  0.068489,  0.053835,  0.038513,  0.031335,
+  0.028947,  0.022753,  0.019347,  0.014676,  0.014675,  0.014674,  0.014674,
+  0.014664,  0.302014,  0.221625,  0.164273,  0.126473,  0.094667,  0.068483,
+  0.053831,  0.034298,  0.027445,  0.022220,  0.016315,  0.015692,  0.012949,
+  0.009448,  0.009442,  0.007914,  0.007913,  0.007910,  0.221524,  0.164268,
+  0.126473,  0.094667,  0.068480,  0.044800,  0.034295,  0.027442,  0.019666,
+  0.014389,  0.011041,  0.011550,  0.009117,  0.021326,  0.007915,  0.007911,
+  0.007911,  0.007908,  0.164193,  0.126473,  0.094667,  0.068480,  0.044800,
+  0.034291,  0.027442,  0.019665,  0.014388,  0.008515,  0.008320,  0.009117,
+  0.007357,  0.004348,  0.004343,  0.007908,  0.007910,  0.007907,  0.125623,
+  0.094667,  0.068480,  0.044800,  0.034289,  0.023364,  0.019663,  0.011887,
+  0.008514,  0.008318,  0.007208,  0.007208,  0.007206,  0.004342,  0.004341,
+  0.004342,  0.004342,  0.004341,  0.094624,  0.068480,  0.044800,  0.034289,
+  0.023364,  0.019662,  0.011887,  0.008514,  0.008318,  0.007208,  0.007207,
+  0.007207,  0.007206,  0.004342,  0.004341,  0.004341,  0.004341,  0.004340,
+  0.068449,  0.044800,  0.034289,  0.023364,  0.019662,  0.011887,  0.008514,
+  0.008318,  0.007208,  0.007207,  0.007207,  0.007207,  0.007206,  0.004343,
+  0.004341,  0.004341,  0.004341,  0.004340,  0.044777,  0.034289,  0.023364,
+  0.019662,  0.011887,  0.008514,  0.008318,  0.007208,  0.007207,  0.007207,
+  0.007207,  0.007207,  0.007207,  0.007205,  0.004342,  0.004341,  0.004341,
+  0.004340,  0.034274,  0.023364,  0.019662,  0.011887,  0.008514,  0.008318,
+  0.007208,  0.007207,  0.007207,  0.007207,  0.007207,  0.007207,  0.007207,
+  0.007206,  0.004342,  0.004341,  0.004341,  0.004340,  0.023353,  0.019662,
+  0.011887,  0.008514,  0.008318,  0.007208,  0.007207,  0.007207,  0.007207,
+  0.007207,  0.007207,  0.007207,  0.007207,  0.007206,  0.004343,  0.004341,
+  0.004341,  0.004340,  0.019650,  0.011884,  0.008511,  0.008316,  0.007205,
+  0.007205,  0.007205,  0.007205,  0.007205,  0.007205,  0.007205,  0.007205,
+  0.007205,  0.007205,  0.007203,  0.004341,  0.004340,  0.004338,
+};
+
+void av1_model_rd_surffit(BLOCK_SIZE bsize, double xm, double yl,
+                          double *rate_f, double *dist_f) {
   const double x_start = -0.5;
   const double x_end = 16.5;
-  const double x_step = 1;
+  const double x_step = 1.0;
   const double y_start = -15.5;
   const double y_end = 16.5;
-  const double y_step = 0.5;
+  const double y_step = 1.0;
   const double epsilon = 1e-6;
   const int stride = (int)rint((x_end - x_start) / x_step) + 1;
+  const int cat = bsize_model_cat_lookup[bsize];
   (void)y_end;
 
   xm = AOMMAX(xm, x_start + x_step + epsilon);
@@ -1090,24 +1301,73 @@
 
   const double yo = y - yi;
   const double xo = x - xi;
-  const double *prate = &interp_rgrid_surf[(yi - 1) * stride + (xi - 1)];
+  const double *prate = &interp_rgrid_surf[cat][(yi - 1) * stride + (xi - 1)];
   const double *pdist = &interp_dgrid_surf[(yi - 1) * stride + (xi - 1)];
   *rate_f = interp_bicubic(prate, stride, xo, yo);
   *dist_f = interp_bicubic(pdist, stride, xo, yo);
 }
 
-static const double interp_rgrid_curv[65] = {
-  0.000000,    0.000000,    0.000000,    0.000000,    0.000000,     0.000000,
-  0.000000,    0.000000,    0.000000,    0.000000,    0.000000,     0.000000,
-  0.000000,    0.000000,    0.000000,    0.000000,    0.000000,     4.759876,
-  8.132086,    13.651828,   21.908271,   33.522054,   48.782376,    71.530983,
-  106.728649,  151.942795,  199.893011,  242.850965,  283.933923,   322.154203,
-  360.684608,  394.801656,  426.879017,  460.234313,  484.103987,   508.261495,
-  536.486763,  558.196737,  586.285894,  614.764511,  634.166333,   647.706472,
-  658.211478,  681.360407,  701.052141,  727.007310,  768.663973,   804.407660,
-  884.627751,  1065.658131, 1238.875214, 1440.185176, 1678.377931,  1962.243390,
-  2300.571467, 2702.152072, 3175.775119, 3730.230519, 4374.308184,  5116.798028,
-  5966.489961, 6932.173897, 8022.639747, 9246.677424, 10613.076839,
+static const double interp_rgrid_curv[4][65] = {
+  {
+      0.000000,    0.000000,    0.000000,    0.000000,    0.000000,
+      0.000000,    0.000000,    0.000000,    0.000000,    0.000000,
+      0.000000,    0.000000,    0.000000,    0.000000,    0.000000,
+      41.525408,   51.597692,   49.566271,   54.632979,   60.321507,
+      67.730678,   75.766165,   85.324032,   96.600012,   120.839562,
+      173.917577,  255.974908,  354.107573,  458.063476,  562.345966,
+      668.568424,  772.072881,  878.598490,  982.202274,  1082.708946,
+      1188.037853, 1287.702240, 1395.588773, 1490.825830, 1584.231230,
+      1691.386090, 1766.822555, 1869.630904, 1926.743565, 2002.949495,
+      2047.431137, 2138.486068, 2154.743767, 2209.242472, 2278.252010,
+      2298.028834, 2302.326180, 2293.979995, 2275.826226, 2250.700821,
+      2221.439725, 2190.878887, 2161.854252, 2137.201768, 2119.757381,
+      2112.357039, 2117.836689, 2139.032277, 2178.779750, 2239.915056,
+  },
+  {
+      0.000000,     0.000000,     0.000000,     0.000000,     0.000000,
+      0.000000,     0.000000,     0.000000,     0.000000,     0.000000,
+      0.000000,     0.000000,     0.000000,     0.000000,     0.000000,
+      11.561347,    12.578139,    14.205101,    16.770584,    19.094853,
+      21.330863,    23.298907,    26.901921,    34.501017,    57.891733,
+      112.234763,   194.853189,   288.302032,   380.499422,   472.625309,
+      560.226809,   647.928463,   734.155122,   817.489721,   906.265783,
+      999.260562,   1094.489206,  1197.062998,  1293.296825,  1378.926484,
+      1472.760990,  1552.663779,  1635.196884,  1692.451951,  1759.741063,
+      1822.162720,  1916.515921,  1966.686071,  2031.647506,  2031.381029,
+      2067.971335,  2203.662704,  2500.257936,  3019.559830,  3823.371186,
+      4973.494802,  6531.733478,  8559.890013,  11119.767206, 14273.167855,
+      18081.894761, 22607.750723, 27912.538538, 34058.061008, 41106.120930,
+  },
+  {
+      0.000000,    0.000000,    0.000000,    0.000000,    0.000000,
+      0.000000,    0.000000,    0.000000,    0.000000,    0.000000,
+      0.000000,    0.000000,    0.000000,    0.000000,    0.000000,
+      3.281800,    3.765589,    4.342578,    5.145582,    5.611038,
+      6.642238,    7.945977,    11.800522,   17.346624,   37.501413,
+      87.216800,   165.860942,  253.865564,  332.039345,  408.518863,
+      478.120452,  547.268590,  616.067676,  680.022540,  753.863541,
+      834.529973,  919.489191,  1008.264989, 1092.230318, 1173.971886,
+      1249.514122, 1330.510941, 1399.523249, 1466.923387, 1530.533471,
+      1586.515722, 1695.197774, 1746.648696, 1837.136959, 1909.056910,
+      1974.948082, 2063.374132, 2178.496387, 2324.476176, 2505.474827,
+      2725.653666, 2989.174023, 3300.197225, 3662.884600, 4081.397476,
+      4559.897180, 5102.545042, 5713.502387, 6396.930546, 7156.990844,
+  },
+  {
+      0.000000,     0.000000,     0.000000,     0.000000,     0.000000,
+      0.000000,     0.000000,     0.000000,     0.000000,     0.000000,
+      0.000000,     0.000000,     0.000000,     0.000000,     0.000000,
+      0.614483,     0.842937,     1.050824,     1.326663,     1.717750,
+      2.530591,     3.582302,     6.995373,     9.973335,     24.042464,
+      56.598240,    113.680735,   180.018689,   231.050567,   266.101082,
+      294.957934,   323.326511,   349.434429,   380.443211,   408.171987,
+      441.214916,   475.716772,   512.900000,   551.186939,   592.364455,
+      624.527378,   661.940693,   679.185473,   724.800679,   764.781792,
+      873.050019,   950.299001,   939.292954,   1052.406153,  1030.816617,
+      1086.316710,  1275.467594,  1671.923018,  2349.336727,  3381.362469,
+      4841.653990,  6803.865037,  9341.649358,  12528.660698, 16438.552805,
+      21144.979426, 26721.594308, 33242.051197, 40780.003840, 49409.105984,
+  },
 };
 
 static const double interp_dgrid_curv[65] = {
@@ -1123,11 +1383,13 @@
   0.000000,  0.000000,
 };
 
-void av1_model_rd_curvfit(double xqr, double *rate_f, double *distbysse_f) {
+void av1_model_rd_curvfit(BLOCK_SIZE bsize, double xqr, double *rate_f,
+                          double *distbysse_f) {
   const double x_start = -15.5;
   const double x_end = 16.5;
   const double x_step = 0.5;
   const double epsilon = 1e-6;
+  const int cat = bsize_model_cat_lookup[bsize];
   (void)x_end;
 
   xqr = AOMMAX(xqr, x_start + x_step + epsilon);
@@ -1138,7 +1400,7 @@
 
   assert(xi > 0);
 
-  const double *prate = &interp_rgrid_curv[(xi - 1)];
+  const double *prate = &interp_rgrid_curv[cat][(xi - 1)];
   const double *pdist = &interp_dgrid_curv[(xi - 1)];
   *rate_f = interp_cubic(prate, xo);
   *distbysse_f = interp_cubic(pdist, xo);
diff --git a/av1/encoder/rd.h b/av1/encoder/rd.h
index b2360ee..e29a1d5 100644
--- a/av1/encoder/rd.h
+++ b/av1/encoder/rd.h
@@ -656,9 +656,10 @@
 void av1_model_rd_from_var_lapndz(int64_t var, unsigned int n,
                                   unsigned int qstep, int *rate, int64_t *dist);
 
-void av1_model_rd_curvfit(double xqr, double *rate_f, double *distbysse_f);
-void av1_model_rd_surffit(double xm, double yl, double *rate_f,
+void av1_model_rd_curvfit(BLOCK_SIZE bsize, double xqr, double *rate_f,
                           double *distbysse_f);
+void av1_model_rd_surffit(BLOCK_SIZE bsize, double xm, double yl,
+                          double *rate_f, double *distbysse_f);
 
 int av1_get_switchable_rate(const AV1_COMMON *const cm, MACROBLOCK *x,
                             const MACROBLOCKD *xd);
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index 659b189..5e0c168 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -2839,7 +2839,7 @@
   const double yl = log(sse_norm / qstepsqr) / log(2.0);
   double rate_f, dist_by_sse_norm_f;
 
-  av1_model_rd_surffit(xm, yl, &rate_f, &dist_by_sse_norm_f);
+  av1_model_rd_surffit(plane_bsize, xm, yl, &rate_f, &dist_by_sse_norm_f);
 
   const double dist_f = dist_by_sse_norm_f * sse_norm;
   int rate_i = (int)(AOMMAX(0.0, rate_f * num_samples) + 0.5);
@@ -2944,7 +2944,7 @@
   const double xqr = log(sse_norm / qstepsqr) / log(2.0);
 
   double rate_f, dist_by_sse_norm_f;
-  av1_model_rd_curvfit(xqr, &rate_f, &dist_by_sse_norm_f);
+  av1_model_rd_curvfit(plane_bsize, xqr, &rate_f, &dist_by_sse_norm_f);
 
   const double dist_f = dist_by_sse_norm_f * sse_norm;
   int rate_i = (int)(AOMMAX(0.0, rate_f * num_samples) + 0.5);