19#ifndef FEATURE_CAMBI_H_
20#define FEATURE_CAMBI_H_
26#include "common/macros.h"
29#define MAX(x, y) (((x) > (y)) ? (x) : (y))
32#define MIN(x, y) (((x) < (y)) ? (x) : (y))
39#define CAMBI_RECIPROCAL_LUT_SIZE 4226
41 0.0f, 1.0f, 0.5f, 0.333333333f, 0.25f, 0.2f, 0.166666667f, 0.142857143f,
42 0.125f, 0.111111111f, 0.1f, 0.0909090909f, 0.0833333333f, 0.0769230769f, 0.0714285714f, 0.0666666667f,
43 0.0625f, 0.0588235294f, 0.0555555556f, 0.0526315789f, 0.05f, 0.0476190476f, 0.0454545455f, 0.0434782609f,
44 0.0416666667f, 0.04f, 0.0384615385f, 0.037037037f, 0.0357142857f, 0.0344827586f, 0.0333333333f, 0.0322580645f,
45 0.03125f, 0.0303030303f, 0.0294117647f, 0.0285714286f, 0.0277777778f, 0.027027027f, 0.0263157895f, 0.0256410256f,
46 0.025f, 0.0243902439f, 0.0238095238f, 0.023255814f, 0.0227272727f, 0.0222222222f, 0.0217391304f, 0.0212765957f,
47 0.0208333333f, 0.0204081633f, 0.02f, 0.0196078431f, 0.0192307692f, 0.0188679245f, 0.0185185185f, 0.0181818182f,
48 0.0178571429f, 0.0175438596f, 0.0172413793f, 0.0169491525f, 0.0166666667f, 0.0163934426f, 0.0161290323f, 0.0158730159f,
49 0.015625f, 0.0153846154f, 0.0151515152f, 0.0149253731f, 0.0147058824f, 0.0144927536f, 0.0142857143f, 0.014084507f,
50 0.0138888889f, 0.0136986301f, 0.0135135135f, 0.0133333333f, 0.0131578947f, 0.012987013f, 0.0128205128f, 0.0126582278f,
51 0.0125f, 0.012345679f, 0.012195122f, 0.0120481928f, 0.0119047619f, 0.0117647059f, 0.011627907f, 0.0114942529f,
52 0.0113636364f, 0.0112359551f, 0.0111111111f, 0.010989011f, 0.0108695652f, 0.0107526882f, 0.0106382979f, 0.0105263158f,
53 0.0104166667f, 0.0103092784f, 0.0102040816f, 0.0101010101f, 0.01f, 0.0099009901f, 0.00980392157f, 0.00970873786f,
54 0.00961538462f, 0.00952380952f, 0.00943396226f, 0.00934579439f, 0.00925925926f, 0.00917431193f, 0.00909090909f, 0.00900900901f,
55 0.00892857143f, 0.00884955752f, 0.00877192982f, 0.00869565217f, 0.00862068966f, 0.00854700855f, 0.00847457627f, 0.00840336134f,
56 0.00833333333f, 0.00826446281f, 0.00819672131f, 0.0081300813f, 0.00806451613f, 0.008f, 0.00793650794f, 0.00787401575f,
57 0.0078125f, 0.00775193798f, 0.00769230769f, 0.00763358779f, 0.00757575758f, 0.00751879699f, 0.00746268657f, 0.00740740741f,
58 0.00735294118f, 0.00729927007f, 0.00724637681f, 0.0071942446f, 0.00714285714f, 0.00709219858f, 0.00704225352f, 0.00699300699f,
59 0.00694444444f, 0.00689655172f, 0.00684931507f, 0.00680272109f, 0.00675675676f, 0.0067114094f, 0.00666666667f, 0.00662251656f,
60 0.00657894737f, 0.00653594771f, 0.00649350649f, 0.0064516129f, 0.00641025641f, 0.00636942675f, 0.00632911392f, 0.00628930818f,
61 0.00625f, 0.00621118012f, 0.00617283951f, 0.00613496933f, 0.00609756098f, 0.00606060606f, 0.00602409639f, 0.00598802395f,
62 0.00595238095f, 0.00591715976f, 0.00588235294f, 0.00584795322f, 0.00581395349f, 0.00578034682f, 0.00574712644f, 0.00571428571f,
63 0.00568181818f, 0.00564971751f, 0.00561797753f, 0.00558659218f, 0.00555555556f, 0.00552486188f, 0.00549450549f, 0.00546448087f,
64 0.00543478261f, 0.00540540541f, 0.00537634409f, 0.00534759358f, 0.00531914894f, 0.00529100529f, 0.00526315789f, 0.00523560209f,
65 0.00520833333f, 0.00518134715f, 0.00515463918f, 0.00512820513f, 0.00510204082f, 0.00507614213f, 0.00505050505f, 0.00502512563f,
66 0.005f, 0.00497512438f, 0.00495049505f, 0.00492610837f, 0.00490196078f, 0.00487804878f, 0.00485436893f, 0.00483091787f,
67 0.00480769231f, 0.004784689f, 0.00476190476f, 0.00473933649f, 0.00471698113f, 0.00469483568f, 0.0046728972f, 0.00465116279f,
68 0.00462962963f, 0.00460829493f, 0.00458715596f, 0.00456621005f, 0.00454545455f, 0.00452488688f, 0.0045045045f, 0.00448430493f,
69 0.00446428571f, 0.00444444444f, 0.00442477876f, 0.00440528634f, 0.00438596491f, 0.00436681223f, 0.00434782609f, 0.00432900433f,
70 0.00431034483f, 0.00429184549f, 0.00427350427f, 0.00425531915f, 0.00423728814f, 0.00421940928f, 0.00420168067f, 0.00418410042f,
71 0.00416666667f, 0.00414937759f, 0.0041322314f, 0.00411522634f, 0.00409836066f, 0.00408163265f, 0.00406504065f, 0.004048583f,
72 0.00403225806f, 0.00401606426f, 0.004f, 0.00398406375f, 0.00396825397f, 0.00395256917f, 0.00393700787f, 0.00392156863f,
73 0.00390625f, 0.00389105058f, 0.00387596899f, 0.00386100386f, 0.00384615385f, 0.00383141762f, 0.00381679389f, 0.00380228137f,
74 0.00378787879f, 0.00377358491f, 0.0037593985f, 0.00374531835f, 0.00373134328f, 0.00371747212f, 0.0037037037f, 0.0036900369f,
75 0.00367647059f, 0.00366300366f, 0.00364963504f, 0.00363636364f, 0.00362318841f, 0.0036101083f, 0.0035971223f, 0.00358422939f,
76 0.00357142857f, 0.00355871886f, 0.00354609929f, 0.0035335689f, 0.00352112676f, 0.00350877193f, 0.0034965035f, 0.00348432056f,
77 0.00347222222f, 0.00346020761f, 0.00344827586f, 0.00343642612f, 0.00342465753f, 0.00341296928f, 0.00340136054f, 0.00338983051f,
78 0.00337837838f, 0.00336700337f, 0.0033557047f, 0.00334448161f, 0.00333333333f, 0.00332225914f, 0.00331125828f, 0.00330033003f,
79 0.00328947368f, 0.00327868852f, 0.00326797386f, 0.00325732899f, 0.00324675325f, 0.00323624595f, 0.00322580645f, 0.00321543408f,
80 0.00320512821f, 0.00319488818f, 0.00318471338f, 0.00317460317f, 0.00316455696f, 0.00315457413f, 0.00314465409f, 0.00313479624f,
81 0.003125f, 0.0031152648f, 0.00310559006f, 0.00309597523f, 0.00308641975f, 0.00307692308f, 0.00306748466f, 0.00305810398f,
82 0.00304878049f, 0.00303951368f, 0.00303030303f, 0.00302114804f, 0.00301204819f, 0.003003003f, 0.00299401198f, 0.00298507463f,
83 0.00297619048f, 0.00296735905f, 0.00295857988f, 0.00294985251f, 0.00294117647f, 0.00293255132f, 0.00292397661f, 0.0029154519f,
84 0.00290697674f, 0.00289855072f, 0.00289017341f, 0.00288184438f, 0.00287356322f, 0.00286532951f, 0.00285714286f, 0.00284900285f,
85 0.00284090909f, 0.00283286119f, 0.00282485876f, 0.00281690141f, 0.00280898876f, 0.00280112045f, 0.00279329609f, 0.00278551532f,
86 0.00277777778f, 0.0027700831f, 0.00276243094f, 0.00275482094f, 0.00274725275f, 0.00273972603f, 0.00273224044f, 0.00272479564f,
87 0.0027173913f, 0.0027100271f, 0.0027027027f, 0.00269541779f, 0.00268817204f, 0.00268096515f, 0.00267379679f, 0.00266666667f,
88 0.00265957447f, 0.00265251989f, 0.00264550265f, 0.00263852243f, 0.00263157895f, 0.00262467192f, 0.00261780105f, 0.00261096606f,
89 0.00260416667f, 0.0025974026f, 0.00259067358f, 0.00258397933f, 0.00257731959f, 0.00257069409f, 0.00256410256f, 0.00255754476f,
90 0.00255102041f, 0.00254452926f, 0.00253807107f, 0.00253164557f, 0.00252525253f, 0.00251889169f, 0.00251256281f, 0.00250626566f,
91 0.0025f, 0.00249376559f, 0.00248756219f, 0.00248138958f, 0.00247524752f, 0.0024691358f, 0.00246305419f, 0.00245700246f,
92 0.00245098039f, 0.00244498778f, 0.00243902439f, 0.00243309002f, 0.00242718447f, 0.00242130751f, 0.00241545894f, 0.00240963855f,
93 0.00240384615f, 0.00239808153f, 0.0023923445f, 0.00238663484f, 0.00238095238f, 0.00237529691f, 0.00236966825f, 0.00236406619f,
94 0.00235849057f, 0.00235294118f, 0.00234741784f, 0.00234192037f, 0.0023364486f, 0.00233100233f, 0.0023255814f, 0.00232018561f,
95 0.00231481481f, 0.00230946882f, 0.00230414747f, 0.00229885057f, 0.00229357798f, 0.00228832952f, 0.00228310502f, 0.00227790433f,
96 0.00227272727f, 0.0022675737f, 0.00226244344f, 0.00225733634f, 0.00225225225f, 0.00224719101f, 0.00224215247f, 0.00223713647f,
97 0.00223214286f, 0.00222717149f, 0.00222222222f, 0.0022172949f, 0.00221238938f, 0.00220750552f, 0.00220264317f, 0.0021978022f,
98 0.00219298246f, 0.00218818381f, 0.00218340611f, 0.00217864924f, 0.00217391304f, 0.0021691974f, 0.00216450216f, 0.00215982721f,
99 0.00215517241f, 0.00215053763f, 0.00214592275f, 0.00214132762f, 0.00213675214f, 0.00213219616f, 0.00212765957f, 0.00212314225f,
100 0.00211864407f, 0.0021141649f, 0.00210970464f, 0.00210526316f, 0.00210084034f, 0.00209643606f, 0.00209205021f, 0.00208768267f,
101 0.00208333333f, 0.00207900208f, 0.0020746888f, 0.00207039337f, 0.0020661157f, 0.00206185567f, 0.00205761317f, 0.00205338809f,
102 0.00204918033f, 0.00204498978f, 0.00204081633f, 0.00203665988f, 0.00203252033f, 0.00202839757f, 0.0020242915f, 0.00202020202f,
103 0.00201612903f, 0.00201207243f, 0.00200803213f, 0.00200400802f, 0.002f, 0.00199600798f, 0.00199203187f, 0.00198807157f,
104 0.00198412698f, 0.00198019802f, 0.00197628458f, 0.00197238659f, 0.00196850394f, 0.00196463654f, 0.00196078431f, 0.00195694716f,
105 0.001953125f, 0.00194931774f, 0.00194552529f, 0.00194174757f, 0.0019379845f, 0.00193423598f, 0.00193050193f, 0.00192678227f,
106 0.00192307692f, 0.0019193858f, 0.00191570881f, 0.00191204589f, 0.00190839695f, 0.0019047619f, 0.00190114068f, 0.00189753321f,
107 0.00189393939f, 0.00189035917f, 0.00188679245f, 0.00188323917f, 0.00187969925f, 0.00187617261f, 0.00187265918f, 0.00186915888f,
108 0.00186567164f, 0.00186219739f, 0.00185873606f, 0.00185528757f, 0.00185185185f, 0.00184842884f, 0.00184501845f, 0.00184162063f,
109 0.00183823529f, 0.00183486239f, 0.00183150183f, 0.00182815356f, 0.00182481752f, 0.00182149362f, 0.00181818182f, 0.00181488203f,
110 0.0018115942f, 0.00180831826f, 0.00180505415f, 0.0018018018f, 0.00179856115f, 0.00179533214f, 0.0017921147f, 0.00178890877f,
111 0.00178571429f, 0.00178253119f, 0.00177935943f, 0.00177619893f, 0.00177304965f, 0.0017699115f, 0.00176678445f, 0.00176366843f,
112 0.00176056338f, 0.00175746924f, 0.00175438596f, 0.00175131349f, 0.00174825175f, 0.0017452007f, 0.00174216028f, 0.00173913043f,
113 0.00173611111f, 0.00173310225f, 0.00173010381f, 0.00172711572f, 0.00172413793f, 0.0017211704f, 0.00171821306f, 0.00171526587f,
114 0.00171232877f, 0.00170940171f, 0.00170648464f, 0.00170357751f, 0.00170068027f, 0.00169779287f, 0.00169491525f, 0.00169204738f,
115 0.00168918919f, 0.00168634064f, 0.00168350168f, 0.00168067227f, 0.00167785235f, 0.00167504188f, 0.0016722408f, 0.00166944908f,
116 0.00166666667f, 0.00166389351f, 0.00166112957f, 0.00165837479f, 0.00165562914f, 0.00165289256f, 0.00165016502f, 0.00164744646f,
117 0.00164473684f, 0.00164203612f, 0.00163934426f, 0.00163666121f, 0.00163398693f, 0.00163132137f, 0.0016286645f, 0.00162601626f,
118 0.00162337662f, 0.00162074554f, 0.00161812298f, 0.00161550889f, 0.00161290323f, 0.00161030596f, 0.00160771704f, 0.00160513644f,
119 0.0016025641f, 0.0016f, 0.00159744409f, 0.00159489633f, 0.00159235669f, 0.00158982512f, 0.00158730159f, 0.00158478605f,
120 0.00158227848f, 0.00157977883f, 0.00157728707f, 0.00157480315f, 0.00157232704f, 0.00156985871f, 0.00156739812f, 0.00156494523f,
121 0.0015625f, 0.0015600624f, 0.0015576324f, 0.00155520995f, 0.00155279503f, 0.0015503876f, 0.00154798762f, 0.00154559505f,
122 0.00154320988f, 0.00154083205f, 0.00153846154f, 0.00153609831f, 0.00153374233f, 0.00153139357f, 0.00152905199f, 0.00152671756f,
123 0.00152439024f, 0.00152207002f, 0.00151975684f, 0.00151745068f, 0.00151515152f, 0.0015128593f, 0.00151057402f, 0.00150829563f,
124 0.0015060241f, 0.0015037594f, 0.0015015015f, 0.00149925037f, 0.00149700599f, 0.00149476831f, 0.00149253731f, 0.00149031297f,
125 0.00148809524f, 0.0014858841f, 0.00148367953f, 0.00148148148f, 0.00147928994f, 0.00147710487f, 0.00147492625f, 0.00147275405f,
126 0.00147058824f, 0.00146842878f, 0.00146627566f, 0.00146412884f, 0.0014619883f, 0.00145985401f, 0.00145772595f, 0.00145560408f,
127 0.00145348837f, 0.00145137881f, 0.00144927536f, 0.001447178f, 0.00144508671f, 0.00144300144f, 0.00144092219f, 0.00143884892f,
128 0.00143678161f, 0.00143472023f, 0.00143266476f, 0.00143061516f, 0.00142857143f, 0.00142653352f, 0.00142450142f, 0.00142247511f,
129 0.00142045455f, 0.00141843972f, 0.00141643059f, 0.00141442716f, 0.00141242938f, 0.00141043724f, 0.0014084507f, 0.00140646976f,
130 0.00140449438f, 0.00140252454f, 0.00140056022f, 0.0013986014f, 0.00139664804f, 0.00139470014f, 0.00139275766f, 0.00139082058f,
131 0.00138888889f, 0.00138696255f, 0.00138504155f, 0.00138312586f, 0.00138121547f, 0.00137931034f, 0.00137741047f, 0.00137551582f,
132 0.00137362637f, 0.00137174211f, 0.00136986301f, 0.00136798906f, 0.00136612022f, 0.00136425648f, 0.00136239782f, 0.00136054422f,
133 0.00135869565f, 0.0013568521f, 0.00135501355f, 0.00135317997f, 0.00135135135f, 0.00134952767f, 0.00134770889f, 0.00134589502f,
134 0.00134408602f, 0.00134228188f, 0.00134048257f, 0.00133868809f, 0.0013368984f, 0.00133511348f, 0.00133333333f, 0.00133155792f,
135 0.00132978723f, 0.00132802125f, 0.00132625995f, 0.00132450331f, 0.00132275132f, 0.00132100396f, 0.00131926121f, 0.00131752306f,
136 0.00131578947f, 0.00131406045f, 0.00131233596f, 0.00131061599f, 0.00130890052f, 0.00130718954f, 0.00130548303f, 0.00130378096f,
137 0.00130208333f, 0.00130039012f, 0.0012987013f, 0.00129701686f, 0.00129533679f, 0.00129366106f, 0.00129198966f, 0.00129032258f,
138 0.00128865979f, 0.00128700129f, 0.00128534704f, 0.00128369705f, 0.00128205128f, 0.00128040973f, 0.00127877238f, 0.00127713921f,
139 0.0012755102f, 0.00127388535f, 0.00127226463f, 0.00127064803f, 0.00126903553f, 0.00126742712f, 0.00126582278f, 0.0012642225f,
140 0.00126262626f, 0.00126103405f, 0.00125944584f, 0.00125786164f, 0.00125628141f, 0.00125470514f, 0.00125313283f, 0.00125156446f,
141 0.00125f, 0.00124843945f, 0.00124688279f, 0.00124533001f, 0.00124378109f, 0.00124223602f, 0.00124069479f, 0.00123915737f,
142 0.00123762376f, 0.00123609394f, 0.0012345679f, 0.00123304562f, 0.00123152709f, 0.0012300123f, 0.00122850123f, 0.00122699387f,
143 0.0012254902f, 0.00122399021f, 0.00122249389f, 0.00122100122f, 0.0012195122f, 0.0012180268f, 0.00121654501f, 0.00121506683f,
144 0.00121359223f, 0.00121212121f, 0.00121065375f, 0.00120918984f, 0.00120772947f, 0.00120627262f, 0.00120481928f, 0.00120336943f,
145 0.00120192308f, 0.00120048019f, 0.00119904077f, 0.00119760479f, 0.00119617225f, 0.00119474313f, 0.00119331742f, 0.00119189511f,
146 0.00119047619f, 0.00118906064f, 0.00118764846f, 0.00118623962f, 0.00118483412f, 0.00118343195f, 0.0011820331f, 0.00118063754f,
147 0.00117924528f, 0.0011778563f, 0.00117647059f, 0.00117508813f, 0.00117370892f, 0.00117233294f, 0.00117096019f, 0.00116959064f,
148 0.0011682243f, 0.00116686114f, 0.00116550117f, 0.00116414435f, 0.0011627907f, 0.00116144019f, 0.00116009281f, 0.00115874855f,
149 0.00115740741f, 0.00115606936f, 0.00115473441f, 0.00115340254f, 0.00115207373f, 0.00115074799f, 0.00114942529f, 0.00114810563f,
150 0.00114678899f, 0.00114547537f, 0.00114416476f, 0.00114285714f, 0.00114155251f, 0.00114025086f, 0.00113895216f, 0.00113765643f,
151 0.00113636364f, 0.00113507378f, 0.00113378685f, 0.00113250283f, 0.00113122172f, 0.0011299435f, 0.00112866817f, 0.00112739572f,
152 0.00112612613f, 0.00112485939f, 0.00112359551f, 0.00112233446f, 0.00112107623f, 0.00111982083f, 0.00111856823f, 0.00111731844f,
153 0.00111607143f, 0.0011148272f, 0.00111358575f, 0.00111234705f, 0.00111111111f, 0.00110987791f, 0.00110864745f, 0.00110741971f,
154 0.00110619469f, 0.00110497238f, 0.00110375276f, 0.00110253583f, 0.00110132159f, 0.00110011001f, 0.0010989011f, 0.00109769484f,
155 0.00109649123f, 0.00109529025f, 0.0010940919f, 0.00109289617f, 0.00109170306f, 0.00109051254f, 0.00108932462f, 0.00108813928f,
156 0.00108695652f, 0.00108577633f, 0.0010845987f, 0.00108342362f, 0.00108225108f, 0.00108108108f, 0.00107991361f, 0.00107874865f,
157 0.00107758621f, 0.00107642626f, 0.00107526882f, 0.00107411386f, 0.00107296137f, 0.00107181136f, 0.00107066381f, 0.00106951872f,
158 0.00106837607f, 0.00106723586f, 0.00106609808f, 0.00106496273f, 0.00106382979f, 0.00106269926f, 0.00106157113f, 0.00106044539f,
159 0.00105932203f, 0.00105820106f, 0.00105708245f, 0.00105596621f, 0.00105485232f, 0.00105374078f, 0.00105263158f, 0.00105152471f,
160 0.00105042017f, 0.00104931794f, 0.00104821803f, 0.00104712042f, 0.0010460251f, 0.00104493208f, 0.00104384134f, 0.00104275287f,
161 0.00104166667f, 0.00104058273f, 0.00103950104f, 0.0010384216f, 0.0010373444f, 0.00103626943f, 0.00103519669f, 0.00103412616f,
162 0.00103305785f, 0.00103199174f, 0.00103092784f, 0.00102986612f, 0.00102880658f, 0.00102774923f, 0.00102669405f, 0.00102564103f,
163 0.00102459016f, 0.00102354145f, 0.00102249489f, 0.00102145046f, 0.00102040816f, 0.00101936799f, 0.00101832994f, 0.001017294f,
164 0.00101626016f, 0.00101522843f, 0.00101419878f, 0.00101317123f, 0.00101214575f, 0.00101112235f, 0.00101010101f, 0.00100908174f,
165 0.00100806452f, 0.00100704935f, 0.00100603622f, 0.00100502513f, 0.00100401606f, 0.00100300903f, 0.00100200401f, 0.001001001f,
166 0.001f, 0.000999000999f, 0.000998003992f, 0.000997008973f, 0.000996015936f, 0.000995024876f, 0.000994035785f, 0.000993048659f,
167 0.000992063492f, 0.000991080278f, 0.00099009901f, 0.000989119683f, 0.000988142292f, 0.000987166831f, 0.000986193294f, 0.000985221675f,
168 0.000984251969f, 0.000983284169f, 0.000982318271f, 0.000981354269f, 0.000980392157f, 0.000979431929f, 0.000978473581f, 0.000977517107f,
169 0.0009765625f, 0.000975609756f, 0.000974658869f, 0.000973709834f, 0.000972762646f, 0.000971817298f, 0.000970873786f, 0.000969932105f,
170 0.000968992248f, 0.000968054211f, 0.000967117988f, 0.000966183575f, 0.000965250965f, 0.000964320154f, 0.000963391137f, 0.000962463908f,
171 0.000961538462f, 0.000960614793f, 0.000959692898f, 0.000958772771f, 0.000957854406f, 0.000956937799f, 0.000956022945f, 0.000955109838f,
172 0.000954198473f, 0.000953288847f, 0.000952380952f, 0.000951474786f, 0.000950570342f, 0.000949667616f, 0.000948766603f, 0.000947867299f,
173 0.000946969697f, 0.000946073794f, 0.000945179584f, 0.000944287063f, 0.000943396226f, 0.000942507069f, 0.000941619586f, 0.000940733772f,
174 0.000939849624f, 0.000938967136f, 0.000938086304f, 0.000937207123f, 0.000936329588f, 0.000935453695f, 0.000934579439f, 0.000933706816f,
175 0.000932835821f, 0.000931966449f, 0.000931098696f, 0.000930232558f, 0.00092936803f, 0.000928505107f, 0.000927643785f, 0.000926784059f,
176 0.000925925926f, 0.00092506938f, 0.000924214418f, 0.000923361034f, 0.000922509225f, 0.000921658986f, 0.000920810313f, 0.000919963201f,
177 0.000919117647f, 0.000918273646f, 0.000917431193f, 0.000916590284f, 0.000915750916f, 0.000914913083f, 0.000914076782f, 0.000913242009f,
178 0.000912408759f, 0.000911577028f, 0.000910746812f, 0.000909918107f, 0.000909090909f, 0.000908265213f, 0.000907441016f, 0.000906618314f,
179 0.000905797101f, 0.000904977376f, 0.000904159132f, 0.000903342367f, 0.000902527076f, 0.000901713255f, 0.000900900901f, 0.000900090009f,
180 0.000899280576f, 0.000898472597f, 0.000897666068f, 0.000896860987f, 0.000896057348f, 0.000895255148f, 0.000894454383f, 0.000893655049f,
181 0.000892857143f, 0.00089206066f, 0.000891265597f, 0.00089047195f, 0.000889679715f, 0.000888888889f, 0.000888099467f, 0.000887311446f,
182 0.000886524823f, 0.000885739593f, 0.000884955752f, 0.000884173298f, 0.000883392226f, 0.000882612533f, 0.000881834215f, 0.000881057269f,
183 0.00088028169f, 0.000879507476f, 0.000878734622f, 0.000877963126f, 0.000877192982f, 0.000876424189f, 0.000875656743f, 0.000874890639f,
184 0.000874125874f, 0.000873362445f, 0.000872600349f, 0.000871839582f, 0.000871080139f, 0.000870322019f, 0.000869565217f, 0.000868809731f,
185 0.000868055556f, 0.000867302689f, 0.000866551127f, 0.000865800866f, 0.000865051903f, 0.000864304235f, 0.000863557858f, 0.00086281277f,
186 0.000862068966f, 0.000861326443f, 0.000860585198f, 0.000859845228f, 0.000859106529f, 0.000858369099f, 0.000857632933f, 0.000856898029f,
187 0.000856164384f, 0.000855431993f, 0.000854700855f, 0.000853970965f, 0.000853242321f, 0.000852514919f, 0.000851788756f, 0.00085106383f,
188 0.000850340136f, 0.000849617672f, 0.000848896435f, 0.000848176421f, 0.000847457627f, 0.000846740051f, 0.000846023689f, 0.000845308538f,
189 0.000844594595f, 0.000843881857f, 0.00084317032f, 0.000842459983f, 0.000841750842f, 0.000841042893f, 0.000840336134f, 0.000839630563f,
190 0.000838926174f, 0.000838222967f, 0.000837520938f, 0.000836820084f, 0.000836120401f, 0.000835421888f, 0.000834724541f, 0.000834028357f,
191 0.000833333333f, 0.000832639467f, 0.000831946755f, 0.000831255195f, 0.000830564784f, 0.000829875519f, 0.000829187396f, 0.000828500414f,
192 0.00082781457f, 0.000827129859f, 0.000826446281f, 0.000825763832f, 0.000825082508f, 0.000824402308f, 0.000823723229f, 0.000823045267f,
193 0.000822368421f, 0.000821692687f, 0.000821018062f, 0.000820344545f, 0.000819672131f, 0.000819000819f, 0.000818330606f, 0.000817661488f,
194 0.000816993464f, 0.000816326531f, 0.000815660685f, 0.000814995925f, 0.000814332248f, 0.00081366965f, 0.00081300813f, 0.000812347685f,
195 0.000811688312f, 0.000811030008f, 0.000810372771f, 0.000809716599f, 0.000809061489f, 0.000808407437f, 0.000807754443f, 0.000807102502f,
196 0.000806451613f, 0.000805801773f, 0.000805152979f, 0.000804505229f, 0.000803858521f, 0.000803212851f, 0.000802568218f, 0.000801924619f,
197 0.000801282051f, 0.000800640512f, 0.0008f, 0.000799360512f, 0.000798722045f, 0.000798084597f, 0.000797448166f, 0.000796812749f,
198 0.000796178344f, 0.000795544948f, 0.00079491256f, 0.000794281176f, 0.000793650794f, 0.000793021412f, 0.000792393027f, 0.000791765637f,
199 0.000791139241f, 0.000790513834f, 0.000789889415f, 0.000789265983f, 0.000788643533f, 0.000788022065f, 0.000787401575f, 0.000786782061f,
200 0.000786163522f, 0.000785545954f, 0.000784929356f, 0.000784313725f, 0.00078369906f, 0.000783085356f, 0.000782472613f, 0.000781860829f,
201 0.00078125f, 0.000780640125f, 0.000780031201f, 0.000779423227f, 0.000778816199f, 0.000778210117f, 0.000777604977f, 0.000777000777f,
202 0.000776397516f, 0.00077579519f, 0.000775193798f, 0.000774593338f, 0.000773993808f, 0.000773395205f, 0.000772797527f, 0.000772200772f,
203 0.000771604938f, 0.000771010023f, 0.000770416025f, 0.000769822941f, 0.000769230769f, 0.000768639508f, 0.000768049155f, 0.000767459708f,
204 0.000766871166f, 0.000766283525f, 0.000765696784f, 0.000765110941f, 0.000764525994f, 0.00076394194f, 0.000763358779f, 0.000762776506f,
205 0.000762195122f, 0.000761614623f, 0.000761035008f, 0.000760456274f, 0.000759878419f, 0.000759301443f, 0.000758725341f, 0.000758150114f,
206 0.000757575758f, 0.000757002271f, 0.000756429652f, 0.000755857899f, 0.000755287009f, 0.000754716981f, 0.000754147813f, 0.000753579503f,
207 0.000753012048f, 0.000752445448f, 0.000751879699f, 0.000751314801f, 0.000750750751f, 0.000750187547f, 0.000749625187f, 0.00074906367f,
208 0.000748502994f, 0.000747943156f, 0.000747384155f, 0.00074682599f, 0.000746268657f, 0.000745712155f, 0.000745156483f, 0.000744601638f,
209 0.000744047619f, 0.000743494424f, 0.000742942051f, 0.000742390497f, 0.000741839763f, 0.000741289844f, 0.000740740741f, 0.00074019245f,
210 0.00073964497f, 0.0007390983f, 0.000738552437f, 0.00073800738f, 0.000737463127f, 0.000736919676f, 0.000736377025f, 0.000735835173f,
211 0.000735294118f, 0.000734753857f, 0.000734214391f, 0.000733675715f, 0.00073313783f, 0.000732600733f, 0.000732064422f, 0.000731528895f,
212 0.000730994152f, 0.00073046019f, 0.000729927007f, 0.000729394602f, 0.000728862974f, 0.000728332119f, 0.000727802038f, 0.000727272727f,
213 0.000726744186f, 0.000726216412f, 0.000725689405f, 0.000725163162f, 0.000724637681f, 0.000724112962f, 0.000723589001f, 0.000723065799f,
214 0.000722543353f, 0.000722021661f, 0.000721500722f, 0.000720980534f, 0.000720461095f, 0.000719942405f, 0.00071942446f, 0.000718907261f,
215 0.000718390805f, 0.00071787509f, 0.000717360115f, 0.000716845878f, 0.000716332378f, 0.000715819613f, 0.000715307582f, 0.000714796283f,
216 0.000714285714f, 0.000713775874f, 0.000713266762f, 0.000712758375f, 0.000712250712f, 0.000711743772f, 0.000711237553f, 0.000710732054f,
217 0.000710227273f, 0.000709723208f, 0.000709219858f, 0.000708717222f, 0.000708215297f, 0.000707714084f, 0.000707213579f, 0.000706713781f,
218 0.000706214689f, 0.000705716302f, 0.000705218618f, 0.000704721635f, 0.000704225352f, 0.000703729768f, 0.00070323488f, 0.000702740689f,
219 0.000702247191f, 0.000701754386f, 0.000701262272f, 0.000700770848f, 0.000700280112f, 0.000699790063f, 0.000699300699f, 0.00069881202f,
220 0.000698324022f, 0.000697836706f, 0.00069735007f, 0.000696864111f, 0.00069637883f, 0.000695894224f, 0.000695410292f, 0.000694927033f,
221 0.000694444444f, 0.000693962526f, 0.000693481276f, 0.000693000693f, 0.000692520776f, 0.000692041522f, 0.000691562932f, 0.000691085003f,
222 0.000690607735f, 0.000690131125f, 0.000689655172f, 0.000689179876f, 0.000688705234f, 0.000688231246f, 0.000687757909f, 0.000687285223f,
223 0.000686813187f, 0.000686341798f, 0.000685871056f, 0.00068540096f, 0.000684931507f, 0.000684462697f, 0.000683994528f, 0.000683526999f,
224 0.000683060109f, 0.000682593857f, 0.00068212824f, 0.000681663258f, 0.00068119891f, 0.000680735194f, 0.000680272109f, 0.000679809653f,
225 0.000679347826f, 0.000678886626f, 0.000678426052f, 0.000677966102f, 0.000677506775f, 0.00067704807f, 0.000676589986f, 0.000676132522f,
226 0.000675675676f, 0.000675219446f, 0.000674763833f, 0.000674308833f, 0.000673854447f, 0.000673400673f, 0.00067294751f, 0.000672494956f,
227 0.000672043011f, 0.000671591672f, 0.00067114094f, 0.000670690812f, 0.000670241287f, 0.000669792364f, 0.000669344043f, 0.000668896321f,
228 0.000668449198f, 0.000668002672f, 0.000667556742f, 0.000667111408f, 0.000666666667f, 0.000666222518f, 0.000665778961f, 0.000665335995f,
229 0.000664893617f, 0.000664451827f, 0.000664010624f, 0.000663570007f, 0.000663129973f, 0.000662690524f, 0.000662251656f, 0.000661813369f,
230 0.000661375661f, 0.000660938533f, 0.000660501982f, 0.000660066007f, 0.000659630607f, 0.000659195781f, 0.000658761528f, 0.000658327847f,
231 0.000657894737f, 0.000657462196f, 0.000657030223f, 0.000656598818f, 0.000656167979f, 0.000655737705f, 0.000655307995f, 0.000654878847f,
232 0.000654450262f, 0.000654022237f, 0.000653594771f, 0.000653167864f, 0.000652741514f, 0.000652315721f, 0.000651890482f, 0.000651465798f,
233 0.000651041667f, 0.000650618087f, 0.000650195059f, 0.00064977258f, 0.000649350649f, 0.000648929267f, 0.000648508431f, 0.00064808814f,
234 0.000647668394f, 0.000647249191f, 0.00064683053f, 0.000646412411f, 0.000645994832f, 0.000645577792f, 0.00064516129f, 0.000644745326f,
235 0.000644329897f, 0.000643915003f, 0.000643500644f, 0.000643086817f, 0.000642673522f, 0.000642260758f, 0.000641848524f, 0.000641436818f,
236 0.000641025641f, 0.00064061499f, 0.000640204866f, 0.000639795266f, 0.000639386189f, 0.000638977636f, 0.000638569604f, 0.000638162093f,
237 0.000637755102f, 0.00063734863f, 0.000636942675f, 0.000636537237f, 0.000636132316f, 0.000635727908f, 0.000635324015f, 0.000634920635f,
238 0.000634517766f, 0.000634115409f, 0.000633713561f, 0.000633312223f, 0.000632911392f, 0.000632511069f, 0.000632111252f, 0.000631711939f,
239 0.000631313131f, 0.000630914826f, 0.000630517024f, 0.000630119723f, 0.000629722922f, 0.000629326621f, 0.000628930818f, 0.000628535512f,
240 0.000628140704f, 0.00062774639f, 0.000627352572f, 0.000626959248f, 0.000626566416f, 0.000626174076f, 0.000625782228f, 0.000625390869f,
241 0.000625f, 0.000624609619f, 0.000624219725f, 0.000623830318f, 0.000623441397f, 0.00062305296f, 0.000622665006f, 0.000622277536f,
242 0.000621890547f, 0.00062150404f, 0.000621118012f, 0.000620732464f, 0.000620347395f, 0.000619962802f, 0.000619578686f, 0.000619195046f,
243 0.000618811881f, 0.00061842919f, 0.000618046972f, 0.000617665225f, 0.000617283951f, 0.000616903146f, 0.000616522811f, 0.000616142945f,
244 0.000615763547f, 0.000615384615f, 0.00061500615f, 0.00061462815f, 0.000614250614f, 0.000613873542f, 0.000613496933f, 0.000613120785f,
245 0.000612745098f, 0.000612369871f, 0.000611995104f, 0.000611620795f, 0.000611246944f, 0.000610873549f, 0.000610500611f, 0.000610128127f,
246 0.000609756098f, 0.000609384522f, 0.000609013398f, 0.000608642727f, 0.000608272506f, 0.000607902736f, 0.000607533414f, 0.000607164542f,
247 0.000606796117f, 0.000606428138f, 0.000606060606f, 0.000605693519f, 0.000605326877f, 0.000604960678f, 0.000604594921f, 0.000604229607f,
248 0.000603864734f, 0.000603500302f, 0.000603136309f, 0.000602772755f, 0.000602409639f, 0.00060204696f, 0.000601684717f, 0.00060132291f,
249 0.000600961538f, 0.000600600601f, 0.000600240096f, 0.000599880024f, 0.000599520384f, 0.000599161174f, 0.000598802395f, 0.000598444045f,
250 0.000598086124f, 0.000597728631f, 0.000597371565f, 0.000597014925f, 0.000596658711f, 0.000596302922f, 0.000595947557f, 0.000595592615f,
251 0.000595238095f, 0.000594883998f, 0.000594530321f, 0.000594177065f, 0.000593824228f, 0.00059347181f, 0.00059311981f, 0.000592768228f,
252 0.000592417062f, 0.000592066311f, 0.000591715976f, 0.000591366056f, 0.000591016548f, 0.000590667454f, 0.000590318772f, 0.000589970501f,
253 0.000589622642f, 0.000589275192f, 0.000588928151f, 0.000588581519f, 0.000588235294f, 0.000587889477f, 0.000587544066f, 0.00058719906f,
254 0.00058685446f, 0.000586510264f, 0.000586166471f, 0.000585823081f, 0.000585480094f, 0.000585137507f, 0.000584795322f, 0.000584453536f,
255 0.00058411215f, 0.000583771162f, 0.000583430572f, 0.000583090379f, 0.000582750583f, 0.000582411182f, 0.000582072177f, 0.000581733566f,
256 0.000581395349f, 0.000581057525f, 0.000580720093f, 0.000580383053f, 0.000580046404f, 0.000579710145f, 0.000579374276f, 0.000579038796f,
257 0.000578703704f, 0.000578368999f, 0.000578034682f, 0.000577700751f, 0.000577367206f, 0.000577034045f, 0.000576701269f, 0.000576368876f,
258 0.000576036866f, 0.000575705239f, 0.000575373993f, 0.000575043128f, 0.000574712644f, 0.000574382539f, 0.000574052813f, 0.000573723465f,
259 0.000573394495f, 0.000573065903f, 0.000572737686f, 0.000572409845f, 0.00057208238f, 0.000571755289f, 0.000571428571f, 0.000571102227f,
260 0.000570776256f, 0.000570450656f, 0.000570125428f, 0.00056980057f, 0.000569476082f, 0.000569151964f, 0.000568828214f, 0.000568504832f,
261 0.000568181818f, 0.000567859171f, 0.00056753689f, 0.000567214974f, 0.000566893424f, 0.000566572238f, 0.000566251416f, 0.000565930956f,
262 0.00056561086f, 0.000565291125f, 0.000564971751f, 0.000564652739f, 0.000564334086f, 0.000564015792f, 0.000563697858f, 0.000563380282f,
263 0.000563063063f, 0.000562746201f, 0.000562429696f, 0.000562113547f, 0.000561797753f, 0.000561482313f, 0.000561167228f, 0.000560852496f,
264 0.000560538117f, 0.00056022409f, 0.000559910414f, 0.00055959709f, 0.000559284116f, 0.000558971492f, 0.000558659218f, 0.000558347292f,
265 0.000558035714f, 0.000557724484f, 0.000557413601f, 0.000557103064f, 0.000556792873f, 0.000556483027f, 0.000556173526f, 0.000555864369f,
266 0.000555555556f, 0.000555247085f, 0.000554938957f, 0.00055463117f, 0.000554323725f, 0.00055401662f, 0.000553709856f, 0.000553403431f,
267 0.000553097345f, 0.000552791598f, 0.000552486188f, 0.000552181115f, 0.00055187638f, 0.00055157198f, 0.000551267916f, 0.000550964187f,
268 0.000550660793f, 0.000550357733f, 0.000550055006f, 0.000549752611f, 0.000549450549f, 0.000549148819f, 0.00054884742f, 0.000548546352f,
269 0.000548245614f, 0.000547945205f, 0.000547645126f, 0.000547345375f, 0.000547045952f, 0.000546746856f, 0.000546448087f, 0.000546149645f,
270 0.000545851528f, 0.000545553737f, 0.00054525627f, 0.000544959128f, 0.000544662309f, 0.000544365814f, 0.000544069641f, 0.00054377379f,
271 0.000543478261f, 0.000543183053f, 0.000542888165f, 0.000542593597f, 0.000542299349f, 0.00054200542f, 0.000541711809f, 0.000541418517f,
272 0.000541125541f, 0.000540832883f, 0.000540540541f, 0.000540248514f, 0.000539956803f, 0.000539665407f, 0.000539374326f, 0.000539083558f,
273 0.000538793103f, 0.000538502962f, 0.000538213132f, 0.000537923615f, 0.000537634409f, 0.000537345513f, 0.000537056928f, 0.000536768653f,
274 0.000536480687f, 0.000536193029f, 0.000535905681f, 0.00053561864f, 0.000535331906f, 0.000535045479f, 0.000534759358f, 0.000534473544f,
275 0.000534188034f, 0.00053390283f, 0.00053361793f, 0.000533333333f, 0.000533049041f, 0.000532765051f, 0.000532481363f, 0.000532197978f,
276 0.000531914894f, 0.000531632111f, 0.000531349628f, 0.000531067446f, 0.000530785563f, 0.000530503979f, 0.000530222694f, 0.000529941706f,
277 0.000529661017f, 0.000529380625f, 0.000529100529f, 0.00052882073f, 0.000528541226f, 0.000528262018f, 0.000527983105f, 0.000527704485f,
278 0.00052742616f, 0.000527148129f, 0.00052687039f, 0.000526592944f, 0.000526315789f, 0.000526038927f, 0.000525762355f, 0.000525486075f,
279 0.000525210084f, 0.000524934383f, 0.000524658972f, 0.000524383849f, 0.000524109015f, 0.000523834468f, 0.000523560209f, 0.000523286238f,
280 0.000523012552f, 0.000522739153f, 0.00052246604f, 0.000522193211f, 0.000521920668f, 0.000521648409f, 0.000521376434f, 0.000521104742f,
281 0.000520833333f, 0.000520562207f, 0.000520291363f, 0.000520020801f, 0.00051975052f, 0.000519480519f, 0.0005192108f, 0.00051894136f,
282 0.000518672199f, 0.000518403318f, 0.000518134715f, 0.00051786639f, 0.000517598344f, 0.000517330574f, 0.000517063082f, 0.000516795866f,
283 0.000516528926f, 0.000516262261f, 0.000515995872f, 0.000515729758f, 0.000515463918f, 0.000515198351f, 0.000514933059f, 0.000514668039f,
284 0.000514403292f, 0.000514138817f, 0.000513874615f, 0.000513610683f, 0.000513347023f, 0.000513083633f, 0.000512820513f, 0.000512557663f,
285 0.000512295082f, 0.00051203277f, 0.000511770727f, 0.000511508951f, 0.000511247444f, 0.000510986203f, 0.00051072523f, 0.000510464523f,
286 0.000510204082f, 0.000509943906f, 0.000509683996f, 0.00050942435f, 0.000509164969f, 0.000508905852f, 0.000508646999f, 0.000508388409f,
287 0.000508130081f, 0.000507872016f, 0.000507614213f, 0.000507356672f, 0.000507099391f, 0.000506842372f, 0.000506585613f, 0.000506329114f,
288 0.000506072874f, 0.000505816894f, 0.000505561173f, 0.00050530571f, 0.000505050505f, 0.000504795558f, 0.000504540868f, 0.000504286435f,
289 0.000504032258f, 0.000503778338f, 0.000503524673f, 0.000503271263f, 0.000503018109f, 0.000502765209f, 0.000502512563f, 0.000502260171f,
290 0.000502008032f, 0.000501756147f, 0.000501504514f, 0.000501253133f, 0.000501002004f, 0.000500751127f, 0.000500500501f, 0.000500250125f,
291 0.0005f, 0.000499750125f, 0.0004995005f, 0.000499251123f, 0.000499001996f, 0.000498753117f, 0.000498504487f, 0.000498256104f,
292 0.000498007968f, 0.00049776008f, 0.000497512438f, 0.000497265042f, 0.000497017893f, 0.000496770989f, 0.00049652433f, 0.000496277916f,
293 0.000496031746f, 0.000495785821f, 0.000495540139f, 0.0004952947f, 0.000495049505f, 0.000494804552f, 0.000494559842f, 0.000494315373f,
294 0.000494071146f, 0.00049382716f, 0.000493583416f, 0.000493339911f, 0.000493096647f, 0.000492853622f, 0.000492610837f, 0.000492368291f,
295 0.000492125984f, 0.000491883915f, 0.000491642085f, 0.000491400491f, 0.000491159136f, 0.000490918017f, 0.000490677134f, 0.000490436488f,
296 0.000490196078f, 0.000489955904f, 0.000489715965f, 0.00048947626f, 0.000489236791f, 0.000488997555f, 0.000488758553f, 0.000488519785f,
297 0.00048828125f, 0.000488042948f, 0.000487804878f, 0.00048756704f, 0.000487329435f, 0.00048709206f, 0.000486854917f, 0.000486618005f,
298 0.000486381323f, 0.000486144871f, 0.000485908649f, 0.000485672657f, 0.000485436893f, 0.000485201359f, 0.000484966052f, 0.000484730974f,
299 0.000484496124f, 0.000484261501f, 0.000484027106f, 0.000483792937f, 0.000483558994f, 0.000483325278f, 0.000483091787f, 0.000482858522f,
300 0.000482625483f, 0.000482392668f, 0.000482160077f, 0.000481927711f, 0.000481695568f, 0.000481463649f, 0.000481231954f, 0.000481000481f,
301 0.000480769231f, 0.000480538203f, 0.000480307397f, 0.000480076812f, 0.000479846449f, 0.000479616307f, 0.000479386385f, 0.000479156684f,
302 0.000478927203f, 0.000478697942f, 0.0004784689f, 0.000478240077f, 0.000478011472f, 0.000477783086f, 0.000477554919f, 0.000477326969f,
303 0.000477099237f, 0.000476871722f, 0.000476644423f, 0.000476417342f, 0.000476190476f, 0.000475963827f, 0.000475737393f, 0.000475511175f,
304 0.000475285171f, 0.000475059382f, 0.000474833808f, 0.000474608448f, 0.000474383302f, 0.000474158369f, 0.000473933649f, 0.000473709143f,
305 0.000473484848f, 0.000473260767f, 0.000473036897f, 0.000472813239f, 0.000472589792f, 0.000472366556f, 0.000472143532f, 0.000471920717f,
306 0.000471698113f, 0.000471475719f, 0.000471253534f, 0.000471031559f, 0.000470809793f, 0.000470588235f, 0.000470366886f, 0.000470145745f,
307 0.000469924812f, 0.000469704086f, 0.000469483568f, 0.000469263257f, 0.000469043152f, 0.000468823254f, 0.000468603561f, 0.000468384075f,
308 0.000468164794f, 0.000467945718f, 0.000467726848f, 0.000467508181f, 0.00046728972f, 0.000467071462f, 0.000466853408f, 0.000466635558f,
309 0.00046641791f, 0.000466200466f, 0.000465983225f, 0.000465766185f, 0.000465549348f, 0.000465332713f, 0.000465116279f, 0.000464900046f,
310 0.000464684015f, 0.000464468184f, 0.000464252553f, 0.000464037123f, 0.000463821892f, 0.000463606861f, 0.00046339203f, 0.000463177397f,
311 0.000462962963f, 0.000462748727f, 0.00046253469f, 0.000462320851f, 0.000462107209f, 0.000461893764f, 0.000461680517f, 0.000461467467f,
312 0.000461254613f, 0.000461041955f, 0.000460829493f, 0.000460617227f, 0.000460405157f, 0.000460193281f, 0.000459981601f, 0.000459770115f,
313 0.000459558824f, 0.000459347726f, 0.000459136823f, 0.000458926113f, 0.000458715596f, 0.000458505273f, 0.000458295142f, 0.000458085204f,
314 0.000457875458f, 0.000457665904f, 0.000457456542f, 0.000457247371f, 0.000457038391f, 0.000456829603f, 0.000456621005f, 0.000456412597f,
315 0.00045620438f, 0.000455996352f, 0.000455788514f, 0.000455580866f, 0.000455373406f, 0.000455166136f, 0.000454959054f, 0.00045475216f,
316 0.000454545455f, 0.000454338937f, 0.000454132607f, 0.000453926464f, 0.000453720508f, 0.000453514739f, 0.000453309157f, 0.000453103761f,
317 0.000452898551f, 0.000452693526f, 0.000452488688f, 0.000452284034f, 0.000452079566f, 0.000451875282f, 0.000451671183f, 0.000451467269f,
318 0.000451263538f, 0.000451059991f, 0.000450856628f, 0.000450653447f, 0.00045045045f, 0.000450247636f, 0.000450045005f, 0.000449842555f,
319 0.000449640288f, 0.000449438202f, 0.000449236298f, 0.000449034576f, 0.000448833034f, 0.000448631673f, 0.000448430493f, 0.000448229494f,
320 0.000448028674f, 0.000447828034f, 0.000447627574f, 0.000447427293f, 0.000447227191f, 0.000447027269f, 0.000446827525f, 0.000446627959f,
321 0.000446428571f, 0.000446229362f, 0.00044603033f, 0.000445831476f, 0.000445632799f, 0.000445434298f, 0.000445235975f, 0.000445037828f,
322 0.000444839858f, 0.000444642063f, 0.000444444444f, 0.000444247001f, 0.000444049734f, 0.000443852641f, 0.000443655723f, 0.00044345898f,
323 0.000443262411f, 0.000443066017f, 0.000442869796f, 0.000442673749f, 0.000442477876f, 0.000442282176f, 0.000442086649f, 0.000441891295f,
324 0.000441696113f, 0.000441501104f, 0.000441306267f, 0.000441111601f, 0.000440917108f, 0.000440722785f, 0.000440528634f, 0.000440334654f,
325 0.000440140845f, 0.000439947206f, 0.000439753738f, 0.00043956044f, 0.000439367311f, 0.000439174352f, 0.000438981563f, 0.000438788943f,
326 0.000438596491f, 0.000438404209f, 0.000438212095f, 0.000438020149f, 0.000437828371f, 0.000437636761f, 0.000437445319f, 0.000437254045f,
327 0.000437062937f, 0.000436871997f, 0.000436681223f, 0.000436490615f, 0.000436300175f, 0.0004361099f, 0.000435919791f, 0.000435729847f,
328 0.00043554007f, 0.000435350457f, 0.00043516101f, 0.000434971727f, 0.000434782609f, 0.000434593655f, 0.000434404865f, 0.00043421624f,
329 0.000434027778f, 0.000433839479f, 0.000433651344f, 0.000433463372f, 0.000433275563f, 0.000433087917f, 0.000432900433f, 0.000432713111f,
330 0.000432525952f, 0.000432338954f, 0.000432152118f, 0.000431965443f, 0.000431778929f, 0.000431592577f, 0.000431406385f, 0.000431220354f,
331 0.000431034483f, 0.000430848772f, 0.000430663221f, 0.00043047783f, 0.000430292599f, 0.000430107527f, 0.000429922614f, 0.00042973786f,
332 0.000429553265f, 0.000429368828f, 0.000429184549f, 0.000429000429f, 0.000428816467f, 0.000428632662f, 0.000428449015f, 0.000428265525f,
333 0.000428082192f, 0.000427899016f, 0.000427715997f, 0.000427533134f, 0.000427350427f, 0.000427167877f, 0.000426985482f, 0.000426803244f,
334 0.00042662116f, 0.000426439232f, 0.00042625746f, 0.000426075841f, 0.000425894378f, 0.000425713069f, 0.000425531915f, 0.000425350915f,
335 0.000425170068f, 0.000424989375f, 0.000424808836f, 0.00042462845f, 0.000424448217f, 0.000424268137f, 0.00042408821f, 0.000423908436f,
336 0.000423728814f, 0.000423549343f, 0.000423370025f, 0.000423190859f, 0.000423011844f, 0.000422832981f, 0.000422654269f, 0.000422475708f,
337 0.000422297297f, 0.000422119038f, 0.000421940928f, 0.000421762969f, 0.00042158516f, 0.000421407501f, 0.000421229992f, 0.000421052632f,
338 0.000420875421f, 0.000420698359f, 0.000420521447f, 0.000420344683f, 0.000420168067f, 0.0004199916f, 0.000419815281f, 0.00041963911f,
339 0.000419463087f, 0.000419287212f, 0.000419111484f, 0.000418935903f, 0.000418760469f, 0.000418585182f, 0.000418410042f, 0.000418235048f,
340 0.000418060201f, 0.000417885499f, 0.000417710944f, 0.000417536534f, 0.00041736227f, 0.000417188152f, 0.000417014178f, 0.00041684035f,
341 0.000416666667f, 0.000416493128f, 0.000416319734f, 0.000416146484f, 0.000415973378f, 0.000415800416f, 0.000415627598f, 0.000415454923f,
342 0.000415282392f, 0.000415110004f, 0.000414937759f, 0.000414765657f, 0.000414593698f, 0.000414421881f, 0.000414250207f, 0.000414078675f,
343 0.000413907285f, 0.000413736036f, 0.00041356493f, 0.000413393964f, 0.00041322314f, 0.000413052458f, 0.000412881916f, 0.000412711515f,
344 0.000412541254f, 0.000412371134f, 0.000412201154f, 0.000412031314f, 0.000411861614f, 0.000411692054f, 0.000411522634f, 0.000411353353f,
345 0.000411184211f, 0.000411015208f, 0.000410846343f, 0.000410677618f, 0.000410509031f, 0.000410340583f, 0.000410172272f, 0.0004100041f,
346 0.000409836066f, 0.000409668169f, 0.00040950041f, 0.000409332788f, 0.000409165303f, 0.000408997955f, 0.000408830744f, 0.00040866367f,
347 0.000408496732f, 0.000408329931f, 0.000408163265f, 0.000407996736f, 0.000407830343f, 0.000407664085f, 0.000407497963f, 0.000407331976f,
348 0.000407166124f, 0.000407000407f, 0.000406834825f, 0.000406669378f, 0.000406504065f, 0.000406338887f, 0.000406173842f, 0.000406008932f,
349 0.000405844156f, 0.000405679513f, 0.000405515004f, 0.000405350628f, 0.000405186386f, 0.000405022276f, 0.0004048583f, 0.000404694456f,
350 0.000404530744f, 0.000404367165f, 0.000404203719f, 0.000404040404f, 0.000403877221f, 0.00040371417f, 0.000403551251f, 0.000403388463f,
351 0.000403225806f, 0.000403063281f, 0.000402900886f, 0.000402738623f, 0.00040257649f, 0.000402414487f, 0.000402252615f, 0.000402090873f,
352 0.00040192926f, 0.000401767778f, 0.000401606426f, 0.000401445203f, 0.000401284109f, 0.000401123145f, 0.00040096231f, 0.000400801603f,
353 0.000400641026f, 0.000400480577f, 0.000400320256f, 0.000400160064f, 0.0004f, 0.000399840064f, 0.000399680256f, 0.000399520575f,
354 0.000399361022f, 0.000399201597f, 0.000399042298f, 0.000398883127f, 0.000398724083f, 0.000398565165f, 0.000398406375f, 0.00039824771f,
355 0.000398089172f, 0.00039793076f, 0.000397772474f, 0.000397614314f, 0.00039745628f, 0.000397298371f, 0.000397140588f, 0.00039698293f,
356 0.000396825397f, 0.000396667989f, 0.000396510706f, 0.000396353547f, 0.000396196513f, 0.000396039604f, 0.000395882819f, 0.000395726157f,
357 0.00039556962f, 0.000395413207f, 0.000395256917f, 0.000395100751f, 0.000394944708f, 0.000394788788f, 0.000394632991f, 0.000394477318f,
358 0.000394321767f, 0.000394166338f, 0.000394011032f, 0.000393855849f, 0.000393700787f, 0.000393545848f, 0.000393391031f, 0.000393236335f,
359 0.000393081761f, 0.000392927308f, 0.000392772977f, 0.000392618767f, 0.000392464678f, 0.00039231071f, 0.000392156863f, 0.000392003136f,
360 0.00039184953f, 0.000391696044f, 0.000391542678f, 0.000391389432f, 0.000391236307f, 0.000391083301f, 0.000390930414f, 0.000390777648f,
361 0.000390625f, 0.000390472472f, 0.000390320062f, 0.000390167772f, 0.000390015601f, 0.000389863548f, 0.000389711613f, 0.000389559797f,
362 0.0003894081f, 0.00038925652f, 0.000389105058f, 0.000388953715f, 0.000388802488f, 0.00038865138f, 0.000388500389f, 0.000388349515f,
363 0.000388198758f, 0.000388048118f, 0.000387897595f, 0.000387747189f, 0.000387596899f, 0.000387446726f, 0.000387296669f, 0.000387146729f,
364 0.000386996904f, 0.000386847195f, 0.000386697602f, 0.000386548125f, 0.000386398764f, 0.000386249517f, 0.000386100386f, 0.00038595137f,
365 0.000385802469f, 0.000385653683f, 0.000385505012f, 0.000385356455f, 0.000385208012f, 0.000385059684f, 0.00038491147f, 0.000384763371f,
366 0.000384615385f, 0.000384467512f, 0.000384319754f, 0.000384172109f, 0.000384024578f, 0.000383877159f, 0.000383729854f, 0.000383582662f,
367 0.000383435583f, 0.000383288616f, 0.000383141762f, 0.000382995021f, 0.000382848392f, 0.000382701875f, 0.000382555471f, 0.000382409178f,
368 0.000382262997f, 0.000382116928f, 0.00038197097f, 0.000381825124f, 0.000381679389f, 0.000381533766f, 0.000381388253f, 0.000381242852f,
369 0.000381097561f, 0.000380952381f, 0.000380807312f, 0.000380662352f, 0.000380517504f, 0.000380372765f, 0.000380228137f, 0.000380083618f,
370 0.00037993921f, 0.000379794911f, 0.000379650721f, 0.000379506641f, 0.000379362671f, 0.000379218809f, 0.000379075057f, 0.000378931413f,
371 0.000378787879f, 0.000378644453f, 0.000378501136f, 0.000378357927f, 0.000378214826f, 0.000378071834f, 0.000377928949f, 0.000377786173f,
372 0.000377643505f, 0.000377500944f, 0.000377358491f, 0.000377216145f, 0.000377073906f, 0.000376931775f, 0.000376789751f, 0.000376647834f,
373 0.000376506024f, 0.000376364321f, 0.000376222724f, 0.000376081234f, 0.00037593985f, 0.000375798572f, 0.0003756574f, 0.000375516335f,
374 0.000375375375f, 0.000375234522f, 0.000375093773f, 0.000374953131f, 0.000374812594f, 0.000374672162f, 0.000374531835f, 0.000374391614f,
375 0.000374251497f, 0.000374111485f, 0.000373971578f, 0.000373831776f, 0.000373692078f, 0.000373552484f, 0.000373412995f, 0.00037327361f,
376 0.000373134328f, 0.000372995151f, 0.000372856078f, 0.000372717108f, 0.000372578241f, 0.000372439479f, 0.000372300819f, 0.000372162263f,
377 0.00037202381f, 0.000371885459f, 0.000371747212f, 0.000371609067f, 0.000371471025f, 0.000371333086f, 0.000371195249f, 0.000371057514f,
378 0.000370919881f, 0.000370782351f, 0.000370644922f, 0.000370507595f, 0.00037037037f, 0.000370233247f, 0.000370096225f, 0.000369959304f,
379 0.000369822485f, 0.000369685767f, 0.00036954915f, 0.000369412634f, 0.000369276219f, 0.000369139904f, 0.00036900369f, 0.000368867577f,
380 0.000368731563f, 0.000368595651f, 0.000368459838f, 0.000368324125f, 0.000368188513f, 0.000368053f, 0.000367917586f, 0.000367782273f,
381 0.000367647059f, 0.000367511944f, 0.000367376929f, 0.000367242012f, 0.000367107195f, 0.000366972477f, 0.000366837858f, 0.000366703337f,
382 0.000366568915f, 0.000366434591f, 0.000366300366f, 0.000366166239f, 0.000366032211f, 0.00036589828f, 0.000365764448f, 0.000365630713f,
383 0.000365497076f, 0.000365363537f, 0.000365230095f, 0.000365096751f, 0.000364963504f, 0.000364830354f, 0.000364697301f, 0.000364564346f,
384 0.000364431487f, 0.000364298725f, 0.00036416606f, 0.000364033491f, 0.000363901019f, 0.000363768643f, 0.000363636364f, 0.00036350418f,
385 0.000363372093f, 0.000363240102f, 0.000363108206f, 0.000362976407f, 0.000362844702f, 0.000362713094f, 0.000362581581f, 0.000362450163f,
386 0.000362318841f, 0.000362187613f, 0.000362056481f, 0.000361925443f, 0.000361794501f, 0.000361663653f, 0.000361532899f, 0.000361402241f,
387 0.000361271676f, 0.000361141206f, 0.00036101083f, 0.000360880549f, 0.000360750361f, 0.000360620267f, 0.000360490267f, 0.00036036036f,
388 0.000360230548f, 0.000360100828f, 0.000359971202f, 0.00035984167f, 0.00035971223f, 0.000359582884f, 0.00035945363f, 0.00035932447f,
389 0.000359195402f, 0.000359066427f, 0.000358937545f, 0.000358808755f, 0.000358680057f, 0.000358551452f, 0.000358422939f, 0.000358294518f,
390 0.000358166189f, 0.000358037952f, 0.000357909807f, 0.000357781753f, 0.000357653791f, 0.000357525921f, 0.000357398142f, 0.000357270454f,
391 0.000357142857f, 0.000357015352f, 0.000356887937f, 0.000356760614f, 0.000356633381f, 0.000356506239f, 0.000356379187f, 0.000356252227f,
392 0.000356125356f, 0.000355998576f, 0.000355871886f, 0.000355745286f, 0.000355618777f, 0.000355492357f, 0.000355366027f, 0.000355239787f,
393 0.000355113636f, 0.000354987575f, 0.000354861604f, 0.000354735722f, 0.000354609929f, 0.000354484225f, 0.000354358611f, 0.000354233085f,
394 0.000354107649f, 0.000353982301f, 0.000353857042f, 0.000353731871f, 0.000353606789f, 0.000353481796f, 0.00035335689f, 0.000353232073f,
395 0.000353107345f, 0.000352982704f, 0.000352858151f, 0.000352733686f, 0.000352609309f, 0.000352485019f, 0.000352360817f, 0.000352236703f,
396 0.000352112676f, 0.000351988736f, 0.000351864884f, 0.000351741119f, 0.00035161744f, 0.000351493849f, 0.000351370344f, 0.000351246927f,
397 0.000351123596f, 0.000351000351f, 0.000350877193f, 0.000350754121f, 0.000350631136f, 0.000350508237f, 0.000350385424f, 0.000350262697f,
398 0.000350140056f, 0.000350017501f, 0.000349895031f, 0.000349772648f, 0.00034965035f, 0.000349528137f, 0.00034940601f, 0.000349283968f,
399 0.000349162011f, 0.00034904014f, 0.000348918353f, 0.000348796652f, 0.000348675035f, 0.000348553503f, 0.000348432056f, 0.000348310693f,
400 0.000348189415f, 0.000348068221f, 0.000347947112f, 0.000347826087f, 0.000347705146f, 0.000347584289f, 0.000347463516f, 0.000347342827f,
401 0.000347222222f, 0.000347101701f, 0.000346981263f, 0.000346860909f, 0.000346740638f, 0.000346620451f, 0.000346500347f, 0.000346380326f,
402 0.000346260388f, 0.000346140533f, 0.000346020761f, 0.000345901072f, 0.000345781466f, 0.000345661943f, 0.000345542502f, 0.000345423143f,
403 0.000345303867f, 0.000345184674f, 0.000345065562f, 0.000344946533f, 0.000344827586f, 0.000344708721f, 0.000344589938f, 0.000344471237f,
404 0.000344352617f, 0.000344234079f, 0.000344115623f, 0.000343997248f, 0.000343878955f, 0.000343760743f, 0.000343642612f, 0.000343524562f,
405 0.000343406593f, 0.000343288706f, 0.000343170899f, 0.000343053173f, 0.000342935528f, 0.000342817964f, 0.00034270048f, 0.000342583076f,
406 0.000342465753f, 0.000342348511f, 0.000342231348f, 0.000342114266f, 0.000341997264f, 0.000341880342f, 0.0003417635f, 0.000341646737f,
407 0.000341530055f, 0.000341413452f, 0.000341296928f, 0.000341180484f, 0.00034106412f, 0.000340947835f, 0.000340831629f, 0.000340715503f,
408 0.000340599455f, 0.000340483487f, 0.000340367597f, 0.000340251786f, 0.000340136054f, 0.000340020401f, 0.000339904827f, 0.000339789331f,
409 0.000339673913f, 0.000339558574f, 0.000339443313f, 0.00033932813f, 0.000339213026f, 0.000339097999f, 0.000338983051f, 0.00033886818f,
410 0.000338753388f, 0.000338638673f, 0.000338524035f, 0.000338409475f, 0.000338294993f, 0.000338180588f, 0.000338066261f, 0.000337952011f,
411 0.000337837838f, 0.000337723742f, 0.000337609723f, 0.000337495781f, 0.000337381916f, 0.000337268128f, 0.000337154417f, 0.000337040782f,
412 0.000336927224f, 0.000336813742f, 0.000336700337f, 0.000336587008f, 0.000336473755f, 0.000336360579f, 0.000336247478f, 0.000336134454f,
413 0.000336021505f, 0.000335908633f, 0.000335795836f, 0.000335683115f, 0.00033557047f, 0.0003354579f, 0.000335345406f, 0.000335232987f,
414 0.000335120643f, 0.000335008375f, 0.000334896182f, 0.000334784064f, 0.000334672021f, 0.000334560054f, 0.000334448161f, 0.000334336342f,
415 0.000334224599f, 0.00033411293f, 0.000334001336f, 0.000333889816f, 0.000333778371f, 0.000333667f, 0.000333555704f, 0.000333444481f,
416 0.000333333333f, 0.000333222259f, 0.000333111259f, 0.000333000333f, 0.000332889481f, 0.000332778702f, 0.000332667997f, 0.000332557366f,
417 0.000332446809f, 0.000332336324f, 0.000332225914f, 0.000332115576f, 0.000332005312f, 0.000331895121f, 0.000331785003f, 0.000331674959f,
418 0.000331564987f, 0.000331455088f, 0.000331345262f, 0.000331235508f, 0.000331125828f, 0.00033101622f, 0.000330906684f, 0.000330797221f,
419 0.000330687831f, 0.000330578512f, 0.000330469266f, 0.000330360093f, 0.000330250991f, 0.000330141961f, 0.000330033003f, 0.000329924117f,
420 0.000329815303f, 0.000329706561f, 0.000329597891f, 0.000329489292f, 0.000329380764f, 0.000329272308f, 0.000329163924f, 0.00032905561f,
421 0.000328947368f, 0.000328839198f, 0.000328731098f, 0.000328623069f, 0.000328515112f, 0.000328407225f, 0.000328299409f, 0.000328191664f,
422 0.00032808399f, 0.000327976386f, 0.000327868852f, 0.00032776139f, 0.000327653997f, 0.000327546675f, 0.000327439424f, 0.000327332242f,
423 0.000327225131f, 0.00032711809f, 0.000327011118f, 0.000326904217f, 0.000326797386f, 0.000326690624f, 0.000326583932f, 0.00032647731f,
424 0.000326370757f, 0.000326264274f, 0.00032615786f, 0.000326051516f, 0.000325945241f, 0.000325839036f, 0.000325732899f, 0.000325626832f,
425 0.000325520833f, 0.000325414904f, 0.000325309044f, 0.000325203252f, 0.000325097529f, 0.000324991875f, 0.00032488629f, 0.000324780773f,
426 0.000324675325f, 0.000324569945f, 0.000324464633f, 0.00032435939f, 0.000324254215f, 0.000324149109f, 0.00032404407f, 0.000323939099f,
427 0.000323834197f, 0.000323729362f, 0.000323624595f, 0.000323519896f, 0.000323415265f, 0.000323310702f, 0.000323206206f, 0.000323101777f,
428 0.000322997416f, 0.000322893122f, 0.000322788896f, 0.000322684737f, 0.000322580645f, 0.00032247662f, 0.000322372663f, 0.000322268772f,
429 0.000322164948f, 0.000322061192f, 0.000321957502f, 0.000321853878f, 0.000321750322f, 0.000321646832f, 0.000321543408f, 0.000321440051f,
430 0.000321336761f, 0.000321233537f, 0.000321130379f, 0.000321027287f, 0.000320924262f, 0.000320821303f, 0.000320718409f, 0.000320615582f,
431 0.000320512821f, 0.000320410125f, 0.000320307495f, 0.000320204931f, 0.000320102433f, 0.00032f, 0.000319897633f, 0.000319795331f,
432 0.000319693095f, 0.000319590924f, 0.000319488818f, 0.000319386777f, 0.000319284802f, 0.000319182892f, 0.000319081047f, 0.000318979266f,
433 0.000318877551f, 0.000318775901f, 0.000318674315f, 0.000318572794f, 0.000318471338f, 0.000318369946f, 0.000318268619f, 0.000318167356f,
434 0.000318066158f, 0.000317965024f, 0.000317863954f, 0.000317762949f, 0.000317662008f, 0.000317561131f, 0.000317460317f, 0.000317359568f,
435 0.000317258883f, 0.000317158262f, 0.000317057705f, 0.000316957211f, 0.000316856781f, 0.000316756414f, 0.000316656111f, 0.000316555872f,
436 0.000316455696f, 0.000316355584f, 0.000316255534f, 0.000316155549f, 0.000316055626f, 0.000315955766f, 0.00031585597f, 0.000315756236f,
437 0.000315656566f, 0.000315556958f, 0.000315457413f, 0.000315357931f, 0.000315258512f, 0.000315159155f, 0.000315059861f, 0.00031496063f,
438 0.000314861461f, 0.000314762354f, 0.00031466331f, 0.000314564328f, 0.000314465409f, 0.000314366551f, 0.000314267756f, 0.000314169023f,
439 0.000314070352f, 0.000313971743f, 0.000313873195f, 0.00031377471f, 0.000313676286f, 0.000313577924f, 0.000313479624f, 0.000313381385f,
440 0.000313283208f, 0.000313185092f, 0.000313087038f, 0.000312989045f, 0.000312891114f, 0.000312793244f, 0.000312695435f, 0.000312597687f,
441 0.0003125f, 0.000312402374f, 0.000312304809f, 0.000312207306f, 0.000312109863f, 0.00031201248f, 0.000311915159f, 0.000311817898f,
442 0.000311720698f, 0.000311623559f, 0.00031152648f, 0.000311429461f, 0.000311332503f, 0.000311235605f, 0.000311138768f, 0.000311041991f,
443 0.000310945274f, 0.000310848617f, 0.00031075202f, 0.000310655483f, 0.000310559006f, 0.000310462589f, 0.000310366232f, 0.000310269935f,
444 0.000310173697f, 0.000310077519f, 0.000309981401f, 0.000309885342f, 0.000309789343f, 0.000309693404f, 0.000309597523f, 0.000309501702f,
445 0.000309405941f, 0.000309310238f, 0.000309214595f, 0.000309119011f, 0.000309023486f, 0.00030892802f, 0.000308832613f, 0.000308737265f,
446 0.000308641975f, 0.000308546745f, 0.000308451573f, 0.00030835646f, 0.000308261406f, 0.00030816641f, 0.000308071473f, 0.000307976594f,
447 0.000307881773f, 0.000307787011f, 0.000307692308f, 0.000307597662f, 0.000307503075f, 0.000307408546f, 0.000307314075f, 0.000307219662f,
448 0.000307125307f, 0.00030703101f, 0.000306936771f, 0.00030684259f, 0.000306748466f, 0.0003066544f, 0.000306560392f, 0.000306466442f,
449 0.000306372549f, 0.000306278714f, 0.000306184936f, 0.000306091215f, 0.000305997552f, 0.000305903946f, 0.000305810398f, 0.000305716906f,
450 0.000305623472f, 0.000305530095f, 0.000305436775f, 0.000305343511f, 0.000305250305f, 0.000305157156f, 0.000305064063f, 0.000304971028f,
451 0.000304878049f, 0.000304785126f, 0.000304692261f, 0.000304599452f, 0.000304506699f, 0.000304414003f, 0.000304321363f, 0.00030422878f,
452 0.000304136253f, 0.000304043782f, 0.000303951368f, 0.000303859009f, 0.000303766707f, 0.000303674461f, 0.000303582271f, 0.000303490137f,
453 0.000303398058f, 0.000303306036f, 0.000303214069f, 0.000303122158f, 0.000303030303f, 0.000302938503f, 0.00030284676f, 0.000302755071f,
454 0.000302663438f, 0.000302571861f, 0.000302480339f, 0.000302388872f, 0.000302297461f, 0.000302206105f, 0.000302114804f, 0.000302023558f,
455 0.000301932367f, 0.000301841232f, 0.000301750151f, 0.000301659125f, 0.000301568154f, 0.000301477238f, 0.000301386377f, 0.000301295571f,
456 0.000301204819f, 0.000301114122f, 0.00030102348f, 0.000300932892f, 0.000300842359f, 0.00030075188f, 0.000300661455f, 0.000300571085f,
457 0.000300480769f, 0.000300390508f, 0.0003003003f, 0.000300210147f, 0.000300120048f, 0.000300030003f, 0.000299940012f, 0.000299850075f,
458 0.000299760192f, 0.000299670363f, 0.000299580587f, 0.000299490866f, 0.000299401198f, 0.000299311583f, 0.000299222023f, 0.000299132516f,
459 0.000299043062f, 0.000298953662f, 0.000298864316f, 0.000298775022f, 0.000298685783f, 0.000298596596f, 0.000298507463f, 0.000298418383f,
460 0.000298329356f, 0.000298240382f, 0.000298151461f, 0.000298062593f, 0.000297973778f, 0.000297885016f, 0.000297796307f, 0.000297707651f,
461 0.000297619048f, 0.000297530497f, 0.000297441999f, 0.000297353553f, 0.000297265161f, 0.00029717682f, 0.000297088532f, 0.000297000297f,
462 0.000296912114f, 0.000296823983f, 0.000296735905f, 0.000296647879f, 0.000296559905f, 0.000296471983f, 0.000296384114f, 0.000296296296f,
463 0.000296208531f, 0.000296120817f, 0.000296033156f, 0.000295945546f, 0.000295857988f, 0.000295770482f, 0.000295683028f, 0.000295595625f,
464 0.000295508274f, 0.000295420975f, 0.000295333727f, 0.000295246531f, 0.000295159386f, 0.000295072293f, 0.000294985251f, 0.00029489826f,
465 0.000294811321f, 0.000294724433f, 0.000294637596f, 0.00029455081f, 0.000294464075f, 0.000294377392f, 0.000294290759f, 0.000294204178f,
466 0.000294117647f, 0.000294031167f, 0.000293944738f, 0.00029385836f, 0.000293772033f, 0.000293685756f, 0.00029359953f, 0.000293513355f,
467 0.00029342723f, 0.000293341156f, 0.000293255132f, 0.000293169159f, 0.000293083236f, 0.000292997363f, 0.000292911541f, 0.000292825769f,
468 0.000292740047f, 0.000292654375f, 0.000292568754f, 0.000292483182f, 0.000292397661f, 0.000292312189f, 0.000292226768f, 0.000292141396f,
469 0.000292056075f, 0.000291970803f, 0.000291885581f, 0.000291800409f, 0.000291715286f, 0.000291630213f, 0.00029154519f, 0.000291460216f,
470 0.000291375291f, 0.000291290417f, 0.000291205591f, 0.000291120815f, 0.000291036088f, 0.000290951411f, 0.000290866783f, 0.000290782204f,
471 0.000290697674f, 0.000290613194f, 0.000290528762f, 0.00029044438f, 0.000290360046f, 0.000290275762f, 0.000290191526f, 0.00029010734f,
472 0.000290023202f, 0.000289939113f, 0.000289855072f, 0.000289771081f, 0.000289687138f, 0.000289603244f, 0.000289519398f, 0.000289435601f,
473 0.000289351852f, 0.000289268152f, 0.0002891845f, 0.000289100896f, 0.000289017341f, 0.000288933834f, 0.000288850376f, 0.000288766965f,
474 0.000288683603f, 0.000288600289f, 0.000288517023f, 0.000288433804f, 0.000288350634f, 0.000288267512f, 0.000288184438f, 0.000288101412f,
475 0.000288018433f, 0.000287935502f, 0.000287852619f, 0.000287769784f, 0.000287686997f, 0.000287604257f, 0.000287521564f, 0.000287438919f,
476 0.000287356322f, 0.000287273772f, 0.000287191269f, 0.000287108814f, 0.000287026406f, 0.000286944046f, 0.000286861733f, 0.000286779467f,
477 0.000286697248f, 0.000286615076f, 0.000286532951f, 0.000286450874f, 0.000286368843f, 0.000286286859f, 0.000286204923f, 0.000286123033f,
478 0.00028604119f, 0.000285959394f, 0.000285877644f, 0.000285795942f, 0.000285714286f, 0.000285632676f, 0.000285551114f, 0.000285469597f,
479 0.000285388128f, 0.000285306705f, 0.000285225328f, 0.000285143998f, 0.000285062714f, 0.000284981476f, 0.000284900285f, 0.00028481914f,
480 0.000284738041f, 0.000284656988f, 0.000284575982f, 0.000284495021f, 0.000284414107f, 0.000284333239f, 0.000284252416f, 0.00028417164f,
481 0.000284090909f, 0.000284010224f, 0.000283929585f, 0.000283848992f, 0.000283768445f, 0.000283687943f, 0.000283607487f, 0.000283527077f,
482 0.000283446712f, 0.000283366393f, 0.000283286119f, 0.000283205891f, 0.000283125708f, 0.00028304557f, 0.000282965478f, 0.000282885431f,
483 0.00028280543f, 0.000282725474f, 0.000282645562f, 0.000282565697f, 0.000282485876f, 0.0002824061f, 0.000282326369f, 0.000282246684f,
484 0.000282167043f, 0.000282087447f, 0.000282007896f, 0.00028192839f, 0.000281848929f, 0.000281769513f, 0.000281690141f, 0.000281610814f,
485 0.000281531532f, 0.000281452294f, 0.000281373101f, 0.000281293952f, 0.000281214848f, 0.000281135789f, 0.000281056773f, 0.000280977803f,
486 0.000280898876f, 0.000280819994f, 0.000280741157f, 0.000280662363f, 0.000280583614f, 0.000280504909f, 0.000280426248f, 0.000280347631f,
487 0.000280269058f, 0.00028019053f, 0.000280112045f, 0.000280033604f, 0.000279955207f, 0.000279876854f, 0.000279798545f, 0.00027972028f,
488 0.000279642058f, 0.00027956388f, 0.000279485746f, 0.000279407656f, 0.000279329609f, 0.000279251606f, 0.000279173646f, 0.00027909573f,
489 0.000279017857f, 0.000278940028f, 0.000278862242f, 0.0002787845f, 0.0002787068f, 0.000278629145f, 0.000278551532f, 0.000278473963f,
490 0.000278396437f, 0.000278318954f, 0.000278241514f, 0.000278164117f, 0.000278086763f, 0.000278009452f, 0.000277932185f, 0.00027785496f,
491 0.000277777778f, 0.000277700639f, 0.000277623542f, 0.000277546489f, 0.000277469478f, 0.00027739251f, 0.000277315585f, 0.000277238703f,
492 0.000277161863f, 0.000277085065f, 0.00027700831f, 0.000276931598f, 0.000276854928f, 0.000276778301f, 0.000276701716f, 0.000276625173f,
493 0.000276548673f, 0.000276472215f, 0.000276395799f, 0.000276319425f, 0.000276243094f, 0.000276166805f, 0.000276090558f, 0.000276014353f,
494 0.00027593819f, 0.000275862069f, 0.00027578599f, 0.000275709953f, 0.000275633958f, 0.000275558005f, 0.000275482094f, 0.000275406224f,
495 0.000275330396f, 0.000275254611f, 0.000275178866f, 0.000275103164f, 0.000275027503f, 0.000274951883f, 0.000274876306f, 0.000274800769f,
496 0.000274725275f, 0.000274649821f, 0.00027457441f, 0.000274499039f, 0.00027442371f, 0.000274348422f, 0.000274273176f, 0.000274197971f,
497 0.000274122807f, 0.000274047684f, 0.000273972603f, 0.000273897562f, 0.000273822563f, 0.000273747605f, 0.000273672687f, 0.000273597811f,
498 0.000273522976f, 0.000273448182f, 0.000273373428f, 0.000273298715f, 0.000273224044f, 0.000273149413f, 0.000273074823f, 0.000273000273f,
499 0.000272925764f, 0.000272851296f, 0.000272776869f, 0.000272702482f, 0.000272628135f, 0.000272553829f, 0.000272479564f, 0.000272405339f,
500 0.000272331155f, 0.000272257011f, 0.000272182907f, 0.000272108844f, 0.00027203482f, 0.000271960838f, 0.000271886895f, 0.000271812993f,
501 0.00027173913f, 0.000271665308f, 0.000271591526f, 0.000271517784f, 0.000271444083f, 0.000271370421f, 0.000271296799f, 0.000271223217f,
502 0.000271149675f, 0.000271076172f, 0.00027100271f, 0.000270929287f, 0.000270855905f, 0.000270782562f, 0.000270709258f, 0.000270635995f,
503 0.000270562771f, 0.000270489586f, 0.000270416441f, 0.000270343336f, 0.00027027027f, 0.000270197244f, 0.000270124257f, 0.00027005131f,
504 0.000269978402f, 0.000269905533f, 0.000269832704f, 0.000269759914f, 0.000269687163f, 0.000269614451f, 0.000269541779f, 0.000269469146f,
505 0.000269396552f, 0.000269323997f, 0.000269251481f, 0.000269179004f, 0.000269106566f, 0.000269034167f, 0.000268961807f, 0.000268889486f,
506 0.000268817204f, 0.000268744961f, 0.000268672757f, 0.000268600591f, 0.000268528464f, 0.000268456376f, 0.000268384326f, 0.000268312316f,
507 0.000268240343f, 0.00026816841f, 0.000268096515f, 0.000268024658f, 0.00026795284f, 0.000267881061f, 0.00026780932f, 0.000267737617f,
508 0.000267665953f, 0.000267594327f, 0.000267522739f, 0.00026745119f, 0.000267379679f, 0.000267308206f, 0.000267236772f, 0.000267165375f,
509 0.000267094017f, 0.000267022697f, 0.000266951415f, 0.000266880171f, 0.000266808965f, 0.000266737797f, 0.000266666667f, 0.000266595575f,
510 0.00026652452f, 0.000266453504f, 0.000266382525f, 0.000266311585f, 0.000266240682f, 0.000266169816f, 0.000266098989f, 0.000266028199f,
511 0.000265957447f, 0.000265886732f, 0.000265816055f, 0.000265745416f, 0.000265674814f, 0.00026560425f, 0.000265533723f, 0.000265463233f,
512 0.000265392781f, 0.000265322367f, 0.000265251989f, 0.000265181649f, 0.000265111347f, 0.000265041081f, 0.000264970853f, 0.000264900662f,
513 0.000264830508f, 0.000264760392f, 0.000264690312f, 0.00026462027f, 0.000264550265f, 0.000264480296f, 0.000264410365f, 0.000264340471f,
514 0.000264270613f, 0.000264200793f, 0.000264131009f, 0.000264061262f, 0.000263991552f, 0.000263921879f, 0.000263852243f, 0.000263782643f,
515 0.00026371308f, 0.000263643554f, 0.000263574064f, 0.000263504611f, 0.000263435195f, 0.000263365815f, 0.000263296472f, 0.000263227165f,
516 0.000263157895f, 0.000263088661f, 0.000263019463f, 0.000262950302f, 0.000262881178f, 0.000262812089f, 0.000262743037f, 0.000262674022f,
517 0.000262605042f, 0.000262536099f, 0.000262467192f, 0.000262398321f, 0.000262329486f, 0.000262260687f, 0.000262191924f, 0.000262123198f,
518 0.000262054507f, 0.000261985853f, 0.000261917234f, 0.000261848651f, 0.000261780105f, 0.000261711594f, 0.000261643119f, 0.00026157468f,
519 0.000261506276f, 0.000261437908f, 0.000261369577f, 0.00026130128f, 0.00026123302f, 0.000261164795f, 0.000261096606f, 0.000261028452f,
520 0.000260960334f, 0.000260892252f, 0.000260824204f, 0.000260756193f, 0.000260688217f, 0.000260620276f, 0.000260552371f, 0.000260484501f,
521 0.000260416667f, 0.000260348867f, 0.000260281104f, 0.000260213375f, 0.000260145682f, 0.000260078023f, 0.0002600104f, 0.000259942813f,
522 0.00025987526f, 0.000259807742f, 0.00025974026f, 0.000259672812f, 0.0002596054f, 0.000259538022f, 0.00025947068f, 0.000259403372f,
523 0.0002593361f, 0.000259268862f, 0.000259201659f, 0.000259134491f, 0.000259067358f, 0.000259000259f, 0.000258933195f, 0.000258866166f,
524 0.000258799172f, 0.000258732212f, 0.000258665287f, 0.000258598397f, 0.000258531541f, 0.00025846472f, 0.000258397933f, 0.000258331181f,
525 0.000258264463f, 0.000258197779f, 0.000258131131f, 0.000258064516f, 0.000257997936f, 0.00025793139f, 0.000257864879f, 0.000257798402f,
526 0.000257731959f, 0.00025766555f, 0.000257599176f, 0.000257532835f, 0.000257466529f, 0.000257400257f, 0.00025733402f, 0.000257267816f,
527 0.000257201646f, 0.00025713551f, 0.000257069409f, 0.000257003341f, 0.000256937307f, 0.000256871307f, 0.000256805342f, 0.000256739409f,
528 0.000256673511f, 0.000256607647f, 0.000256541816f, 0.000256476019f, 0.000256410256f, 0.000256344527f, 0.000256278831f, 0.000256213169f,
529 0.000256147541f, 0.000256081946f, 0.000256016385f, 0.000255950857f, 0.000255885363f, 0.000255819903f, 0.000255754476f, 0.000255689082f,
530 0.000255623722f, 0.000255558395f, 0.000255493102f, 0.000255427842f, 0.000255362615f, 0.000255297421f, 0.000255232261f, 0.000255167134f,
531 0.000255102041f, 0.00025503698f, 0.000254971953f, 0.000254906959f, 0.000254841998f, 0.00025477707f, 0.000254712175f, 0.000254647313f,
532 0.000254582485f, 0.000254517689f, 0.000254452926f, 0.000254388196f, 0.000254323499f, 0.000254258835f, 0.000254194204f, 0.000254129606f,
533 0.000254065041f, 0.000254000508f, 0.000253936008f, 0.000253871541f, 0.000253807107f, 0.000253742705f, 0.000253678336f, 0.000253613999f,
534 0.000253549696f, 0.000253485425f, 0.000253421186f, 0.00025335698f, 0.000253292806f, 0.000253228665f, 0.000253164557f, 0.000253100481f,
535 0.000253036437f, 0.000252972426f, 0.000252908447f, 0.000252844501f, 0.000252780586f, 0.000252716705f, 0.000252652855f, 0.000252589038f,
536 0.000252525253f, 0.0002524615f, 0.000252397779f, 0.00025233409f, 0.000252270434f, 0.00025220681f, 0.000252143217f, 0.000252079657f,
537 0.000252016129f, 0.000251952633f, 0.000251889169f, 0.000251825737f, 0.000251762336f, 0.000251698968f, 0.000251635632f, 0.000251572327f,
538 0.000251509054f, 0.000251445813f, 0.000251382604f, 0.000251319427f, 0.000251256281f, 0.000251193168f, 0.000251130085f, 0.000251067035f,
539 0.000251004016f, 0.000250941029f, 0.000250878073f, 0.000250815149f, 0.000250752257f, 0.000250689396f, 0.000250626566f, 0.000250563768f,
540 0.000250501002f, 0.000250438267f, 0.000250375563f, 0.000250312891f, 0.00025025025f, 0.000250187641f, 0.000250125063f, 0.000250062516f,
541 0.00025f, 0.000249937516f, 0.000249875062f, 0.000249812641f, 0.00024975025f, 0.00024968789f, 0.000249625562f, 0.000249563264f,
542 0.000249500998f, 0.000249438763f, 0.000249376559f, 0.000249314385f, 0.000249252243f, 0.000249190132f, 0.000249128052f, 0.000249066002f,
543 0.000249003984f, 0.000248941997f, 0.00024888004f, 0.000248818114f, 0.000248756219f, 0.000248694355f, 0.000248632521f, 0.000248570718f,
544 0.000248508946f, 0.000248447205f, 0.000248385494f, 0.000248323814f, 0.000248262165f, 0.000248200546f, 0.000248138958f, 0.0002480774f,
545 0.000248015873f, 0.000247954376f, 0.00024789291f, 0.000247831475f, 0.000247770069f, 0.000247708695f, 0.00024764735f, 0.000247586036f,
546 0.000247524752f, 0.000247463499f, 0.000247402276f, 0.000247341083f, 0.000247279921f, 0.000247218789f, 0.000247157687f, 0.000247096615f,
547 0.000247035573f, 0.000246974562f, 0.00024691358f, 0.000246852629f, 0.000246791708f, 0.000246730817f, 0.000246669956f, 0.000246609125f,
548 0.000246548323f, 0.000246487552f, 0.000246426811f, 0.0002463661f, 0.000246305419f, 0.000246244767f, 0.000246184146f, 0.000246123554f,
549 0.000246062992f, 0.00024600246f, 0.000245941958f, 0.000245881485f, 0.000245821042f, 0.000245760629f, 0.000245700246f, 0.000245639892f,
550 0.000245579568f, 0.000245519273f, 0.000245459008f, 0.000245398773f, 0.000245338567f, 0.000245278391f, 0.000245218244f, 0.000245158127f,
551 0.000245098039f, 0.000245037981f, 0.000244977952f, 0.000244917952f, 0.000244857982f, 0.000244798042f, 0.00024473813f, 0.000244678248f,
552 0.000244618395f, 0.000244558572f, 0.000244498778f, 0.000244439012f, 0.000244379277f, 0.00024431957f, 0.000244259893f, 0.000244200244f,
553 0.000244140625f, 0.000244081035f, 0.000244021474f, 0.000243961942f, 0.000243902439f, 0.000243842965f, 0.00024378352f, 0.000243724104f,
554 0.000243664717f, 0.000243605359f, 0.00024354603f, 0.00024348673f, 0.000243427459f, 0.000243368216f, 0.000243309002f, 0.000243249818f,
555 0.000243190661f, 0.000243131534f, 0.000243072436f, 0.000243013366f, 0.000242954325f, 0.000242895312f, 0.000242836328f, 0.000242777373f,
556 0.000242718447f, 0.000242659549f, 0.000242600679f, 0.000242541838f, 0.000242483026f, 0.000242424242f, 0.000242365487f, 0.00024230676f,
557 0.000242248062f, 0.000242189392f, 0.000242130751f, 0.000242072137f, 0.000242013553f, 0.000241954996f, 0.000241896468f, 0.000241837969f,
558 0.000241779497f, 0.000241721054f, 0.000241662639f, 0.000241604252f, 0.000241545894f, 0.000241487563f, 0.000241429261f, 0.000241370987f,
559 0.000241312741f, 0.000241254524f, 0.000241196334f, 0.000241138172f, 0.000241080039f, 0.000241021933f, 0.000240963855f, 0.000240905806f,
560 0.000240847784f, 0.000240789791f, 0.000240731825f, 0.000240673887f, 0.000240615977f, 0.000240558095f, 0.000240500241f, 0.000240442414f,
561 0.000240384615f, 0.000240326845f, 0.000240269101f, 0.000240211386f, 0.000240153698f, 0.000240096038f, 0.000240038406f, 0.000239980802f,
562 0.000239923225f, 0.000239865675f, 0.000239808153f, 0.000239750659f, 0.000239693193f, 0.000239635754f, 0.000239578342f, 0.000239520958f,
563 0.000239463602f, 0.000239406272f, 0.000239348971f, 0.000239291697f, 0.00023923445f, 0.00023917723f, 0.000239120038f, 0.000239062874f,
564 0.000239005736f, 0.000238948626f, 0.000238891543f, 0.000238834488f, 0.000238777459f, 0.000238720458f, 0.000238663484f, 0.000238606538f,
565 0.000238549618f, 0.000238492726f, 0.000238435861f, 0.000238379023f, 0.000238322212f, 0.000238265428f, 0.000238208671f, 0.000238151941f,
566 0.000238095238f, 0.000238038562f, 0.000237981913f, 0.000237925291f, 0.000237868696f, 0.000237812128f, 0.000237755587f, 0.000237699073f,
567 0.000237642586f, 0.000237586125f, 0.000237529691f, 0.000237473284f, 0.000237416904f, 0.000237360551f, 0.000237304224f, 0.000237247924f,
568 0.000237191651f, 0.000237135404f, 0.000237079184f, 0.000237022991f, 0.000236966825f, 0.000236910685f, 0.000236854571f, 0.000236798484f,
569 0.000236742424f, 0.000236686391f
572static FORCE_INLINE
void update_histogram_subtract_edge(uint16_t *histograms, uint16_t *image, uint16_t *mask,
573 int i,
int j,
int width, ptrdiff_t stride, uint16_t pad_size,
574 const uint16_t num_diffs,
575 uint16_t v_band_base, uint16_t v_band_size,
577 if (!mask[(i - pad_size - 1) * stride + j])
return;
578 uint16_t v = image[(i - pad_size - 1) * stride + j];
579 if ((uint16_t)(v - v_band_base) >= v_band_size)
return;
581 uint16_t row = v - v_band_base;
582 dec_range_callback(&histograms[row * width],
MAX(j - pad_size, 0),
MIN(j + pad_size + 1, width));
585static FORCE_INLINE
void update_histogram_subtract(uint16_t *histograms, uint16_t *image, uint16_t *mask,
586 int i,
int j,
int width, ptrdiff_t stride, uint16_t pad_size,
587 const uint16_t num_diffs,
588 uint16_t v_band_base, uint16_t v_band_size,
590 if (!mask[(i - pad_size - 1) * stride + j])
return;
591 uint16_t v = image[(i - pad_size - 1) * stride + j];
592 if ((uint16_t)(v - v_band_base) >= v_band_size)
return;
594 uint16_t row = v - v_band_base;
595 dec_range_callback(&histograms[row * width], j - pad_size, j + pad_size + 1);
598static FORCE_INLINE
void update_histogram_add_edge(uint16_t *histograms, uint16_t *image, uint16_t *mask,
599 int i,
int j,
int width, ptrdiff_t stride, uint16_t pad_size,
600 const uint16_t num_diffs,
601 uint16_t v_band_base, uint16_t v_band_size,
603 if (!mask[(i + pad_size) * stride + j])
return;
604 uint16_t v = image[(i + pad_size) * stride + j];
605 if ((uint16_t)(v - v_band_base) >= v_band_size)
return;
607 uint16_t row = v - v_band_base;
608 inc_range_callback(&histograms[row * width],
MAX(j - pad_size, 0),
MIN(j + pad_size + 1, width));
611static FORCE_INLINE
void update_histogram_add(uint16_t *histograms, uint16_t *image, uint16_t *mask,
612 int i,
int j,
int width, ptrdiff_t stride, uint16_t pad_size,
613 const uint16_t num_diffs,
614 uint16_t v_band_base, uint16_t v_band_size,
616 if (!mask[(i + pad_size) * stride + j])
return;
617 uint16_t v = image[(i + pad_size) * stride + j];
618 if ((uint16_t)(v - v_band_base) >= v_band_size)
return;
620 uint16_t row = v - v_band_base;
621 inc_range_callback(&histograms[row * width], j - pad_size, j + pad_size + 1);
624static FORCE_INLINE
void update_histogram_add_edge_first_pass(uint16_t *histograms, uint16_t *image, uint16_t *mask,
625 int i,
int j,
int width, ptrdiff_t stride, uint16_t pad_size,
626 const uint16_t num_diffs,
627 uint16_t v_band_base, uint16_t v_band_size,
629 if (!mask[i * stride + j])
return;
630 uint16_t v = image[i * stride + j];
631 if ((uint16_t)(v - v_band_base) >= v_band_size)
return;
633 uint16_t row = v - v_band_base;
634 inc_range_callback(&histograms[row * width],
MAX(j - pad_size, 0),
MIN(j + pad_size + 1, width));
637static FORCE_INLINE
void update_histogram_add_first_pass(uint16_t *histograms, uint16_t *image, uint16_t *mask,
638 int i,
int j,
int width, ptrdiff_t stride, uint16_t pad_size,
639 const uint16_t num_diffs,
640 uint16_t v_band_base, uint16_t v_band_size,
642 if (!mask[i * stride + j])
return;
643 uint16_t v = image[i * stride + j];
644 if ((uint16_t)(v - v_band_base) >= v_band_size)
return;
646 uint16_t row = v - v_band_base;
647 inc_range_callback(&histograms[row * width], j - pad_size, j + pad_size + 1);
652static FORCE_INLINE
void uh_slide(
653 uint16_t *histograms, uint16_t *image, uint16_t *mask,
654 int i,
int j,
int width, ptrdiff_t stride, uint16_t pad_size,
655 uint16_t v_band_base, uint16_t v_band_size,
658 bool sub_valid = mask[(i - pad_size - 1) * stride + j];
659 bool add_valid = mask[(i + pad_size) * stride + j];
660 uint16_t v_sub = sub_valid ? image[(i - pad_size - 1) * stride + j] : 0;
661 uint16_t v_add = add_valid ? image[(i + pad_size) * stride + j] : 0;
662 bool sub_in = sub_valid && (uint16_t)(v_sub - v_band_base) < v_band_size;
663 bool add_in = add_valid && (uint16_t)(v_add - v_band_base) < v_band_size;
664 if (sub_in && add_in && v_sub == v_add)
return;
665 if (sub_in) dec_fn(&histograms[(v_sub - v_band_base) * width], j - pad_size, j + pad_size + 1);
666 if (add_in) inc_fn(&histograms[(v_add - v_band_base) * width], j - pad_size, j + pad_size + 1);
670static FORCE_INLINE
void uh_slide_edge(
671 uint16_t *histograms, uint16_t *image, uint16_t *mask,
672 int i,
int j,
int width, ptrdiff_t stride, uint16_t pad_size,
673 uint16_t v_band_base, uint16_t v_band_size,
676 bool sub_valid = mask[(i - pad_size - 1) * stride + j];
677 bool add_valid = mask[(i + pad_size) * stride + j];
678 uint16_t v_sub = sub_valid ? image[(i - pad_size - 1) * stride + j] : 0;
679 uint16_t v_add = add_valid ? image[(i + pad_size) * stride + j] : 0;
680 bool sub_in = sub_valid && (uint16_t)(v_sub - v_band_base) < v_band_size;
681 bool add_in = add_valid && (uint16_t)(v_add - v_band_base) < v_band_size;
682 if (sub_in && add_in && v_sub == v_add)
return;
683 int left =
MAX(j - pad_size, 0), right =
MIN(j + pad_size + 1, width);
684 if (sub_in) dec_fn(&histograms[(v_sub - v_band_base) * width], left, right);
685 if (add_in) inc_fn(&histograms[(v_add - v_band_base) * width], left, right);
void(*) VmafRangeUpdater(uint16_t *arr, int left, int right)
Definition cambi.h:35
#define CAMBI_RECIPROCAL_LUT_SIZE
Definition cambi.h:39
#define MIN(x, y)
Definition cambi.h:32
#define MAX(x, y)
Definition cambi.h:29