Cog/ThirdParty/mpg123/include/libmpg123/l12tabs.h
Christopher Snowhill 32a595222d [OpenMPT / vgmstream] Made libraries pre-built
Made the OpenMPT / legacy OpenMPT and mpg123 libraries pre-built.
Changed the OpenMPT and vgmstream plugins to import the libraries as
they are now. Made mpg123 embedded and imported by the main binary,
since it's now shared by two plugins.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-24 17:09:02 -07:00

1224 lines
71 KiB
C

// l12 MPEG decoding tables
// output of:
// src/libmpg123/calctables l12
#if defined(RUNTIME_TABLES)
#ifdef REAL_IS_FLOAT
// aligned to 16 bytes for vector instructions, e.g. AltiVec
static ALIGNED(16) real layer12_table[27][64];
#endif
static unsigned char grp_3tab[96];
static unsigned char grp_5tab[384];
static unsigned char grp_9tab[3072];
#else
#ifdef REAL_IS_FLOAT
// aligned to 16 bytes for vector instructions, e.g. AltiVec
static const ALIGNED(16) real layer12_table[27][64] =
{
{
0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00
, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00
, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00
, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00
, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00
, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00
, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00
, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00
, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00
, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00
, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00
, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00
, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00
, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00
, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00
, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00
}
, {
-1.33333333e+00, -1.05826737e+00, -8.39947367e-01, -6.66666667e-01
, -5.29133684e-01, -4.19973683e-01, -3.33333333e-01, -2.64566842e-01
, -2.09986842e-01, -1.66666667e-01, -1.32283421e-01, -1.04993421e-01
, -8.33333333e-02, -6.61417105e-02, -5.24967104e-02, -4.16666667e-02
, -3.30708552e-02, -2.62483552e-02, -2.08333333e-02, -1.65354276e-02
, -1.31241776e-02, -1.04166667e-02, -8.26771381e-03, -6.56208880e-03
, -5.20833333e-03, -4.13385691e-03, -3.28104440e-03, -2.60416667e-03
, -2.06692845e-03, -1.64052220e-03, -1.30208333e-03, -1.03346423e-03
, -8.20261100e-04, -6.51041667e-04, -5.16732113e-04, -4.10130550e-04
, -3.25520833e-04, -2.58366057e-04, -2.05065275e-04, -1.62760417e-04
, -1.29183028e-04, -1.02532638e-04, -8.13802083e-05, -6.45915142e-05
, -5.12663188e-05, -4.06901042e-05, -3.22957571e-05, -2.56331594e-05
, -2.03450521e-05, -1.61478785e-05, -1.28165797e-05, -1.01725260e-05
, -8.07393927e-06, -6.40828985e-06, -5.08626302e-06, -4.03696963e-06
, -3.20414492e-06, -2.54313151e-06, -2.01848482e-06, -1.60207246e-06
, -1.27156576e-06, -1.00924241e-06, -8.01036231e-07, 0.00000000e+00
}
, {
1.33333333e+00, 1.05826737e+00, 8.39947367e-01, 6.66666667e-01
, 5.29133684e-01, 4.19973683e-01, 3.33333333e-01, 2.64566842e-01
, 2.09986842e-01, 1.66666667e-01, 1.32283421e-01, 1.04993421e-01
, 8.33333333e-02, 6.61417105e-02, 5.24967104e-02, 4.16666667e-02
, 3.30708552e-02, 2.62483552e-02, 2.08333333e-02, 1.65354276e-02
, 1.31241776e-02, 1.04166667e-02, 8.26771381e-03, 6.56208880e-03
, 5.20833333e-03, 4.13385691e-03, 3.28104440e-03, 2.60416667e-03
, 2.06692845e-03, 1.64052220e-03, 1.30208333e-03, 1.03346423e-03
, 8.20261100e-04, 6.51041667e-04, 5.16732113e-04, 4.10130550e-04
, 3.25520833e-04, 2.58366057e-04, 2.05065275e-04, 1.62760417e-04
, 1.29183028e-04, 1.02532638e-04, 8.13802083e-05, 6.45915142e-05
, 5.12663188e-05, 4.06901042e-05, 3.22957571e-05, 2.56331594e-05
, 2.03450521e-05, 1.61478785e-05, 1.28165797e-05, 1.01725260e-05
, 8.07393927e-06, 6.40828985e-06, 5.08626302e-06, 4.03696963e-06
, 3.20414492e-06, 2.54313151e-06, 2.01848482e-06, 1.60207246e-06
, 1.27156576e-06, 1.00924241e-06, 8.01036231e-07, 0.00000000e+00
}
, {
5.71428571e-01, 4.53543158e-01, 3.59977443e-01, 2.85714286e-01
, 2.26771579e-01, 1.79988721e-01, 1.42857143e-01, 1.13385789e-01
, 8.99943607e-02, 7.14285714e-02, 5.66928947e-02, 4.49971804e-02
, 3.57142857e-02, 2.83464474e-02, 2.24985902e-02, 1.78571429e-02
, 1.41732237e-02, 1.12492951e-02, 8.92857143e-03, 7.08661184e-03
, 5.62464754e-03, 4.46428571e-03, 3.54330592e-03, 2.81232377e-03
, 2.23214286e-03, 1.77165296e-03, 1.40616189e-03, 1.11607143e-03
, 8.85826480e-04, 7.03080943e-04, 5.58035714e-04, 4.42913240e-04
, 3.51540472e-04, 2.79017857e-04, 2.21456620e-04, 1.75770236e-04
, 1.39508929e-04, 1.10728310e-04, 8.78851179e-05, 6.97544643e-05
, 5.53641550e-05, 4.39425589e-05, 3.48772321e-05, 2.76820775e-05
, 2.19712795e-05, 1.74386161e-05, 1.38410387e-05, 1.09856397e-05
, 8.71930804e-06, 6.92051937e-06, 5.49281987e-06, 4.35965402e-06
, 3.46025969e-06, 2.74640993e-06, 2.17982701e-06, 1.73012984e-06
, 1.37320497e-06, 1.08991350e-06, 8.65064922e-07, 6.86602483e-07
, 5.44956752e-07, 4.32532461e-07, 3.43301242e-07, 0.00000000e+00
}
, {
2.66666667e-01, 2.11653474e-01, 1.67989473e-01, 1.33333333e-01
, 1.05826737e-01, 8.39947367e-02, 6.66666667e-02, 5.29133684e-02
, 4.19973683e-02, 3.33333333e-02, 2.64566842e-02, 2.09986842e-02
, 1.66666667e-02, 1.32283421e-02, 1.04993421e-02, 8.33333333e-03
, 6.61417105e-03, 5.24967104e-03, 4.16666667e-03, 3.30708552e-03
, 2.62483552e-03, 2.08333333e-03, 1.65354276e-03, 1.31241776e-03
, 1.04166667e-03, 8.26771381e-04, 6.56208880e-04, 5.20833333e-04
, 4.13385691e-04, 3.28104440e-04, 2.60416667e-04, 2.06692845e-04
, 1.64052220e-04, 1.30208333e-04, 1.03346423e-04, 8.20261100e-05
, 6.51041667e-05, 5.16732113e-05, 4.10130550e-05, 3.25520833e-05
, 2.58366057e-05, 2.05065275e-05, 1.62760417e-05, 1.29183028e-05
, 1.02532638e-05, 8.13802083e-06, 6.45915142e-06, 5.12663188e-06
, 4.06901042e-06, 3.22957571e-06, 2.56331594e-06, 2.03450521e-06
, 1.61478785e-06, 1.28165797e-06, 1.01725260e-06, 8.07393927e-07
, 6.40828985e-07, 5.08626302e-07, 4.03696963e-07, 3.20414492e-07
, 2.54313151e-07, 2.01848482e-07, 1.60207246e-07, 0.00000000e+00
}
, {
1.29032258e-01, 1.02412971e-01, 8.12852290e-02, 6.45161290e-02
, 5.12064855e-02, 4.06426145e-02, 3.22580645e-02, 2.56032428e-02
, 2.03213073e-02, 1.61290323e-02, 1.28016214e-02, 1.01606536e-02
, 8.06451613e-03, 6.40081069e-03, 5.08032681e-03, 4.03225806e-03
, 3.20040535e-03, 2.54016341e-03, 2.01612903e-03, 1.60020267e-03
, 1.27008170e-03, 1.00806452e-03, 8.00101337e-04, 6.35040852e-04
, 5.04032258e-04, 4.00050668e-04, 3.17520426e-04, 2.52016129e-04
, 2.00025334e-04, 1.58760213e-04, 1.26008065e-04, 1.00012667e-04
, 7.93801065e-05, 6.30040323e-05, 5.00063335e-05, 3.96900532e-05
, 3.15020161e-05, 2.50031668e-05, 1.98450266e-05, 1.57510081e-05
, 1.25015834e-05, 9.92251331e-06, 7.87550403e-06, 6.25079169e-06
, 4.96125665e-06, 3.93775202e-06, 3.12539585e-06, 2.48062833e-06
, 1.96887601e-06, 1.56269792e-06, 1.24031416e-06, 9.84438004e-07
, 7.81348962e-07, 6.20157082e-07, 4.92219002e-07, 3.90674481e-07
, 3.10078541e-07, 2.46109501e-07, 1.95337240e-07, 1.55039270e-07
, 1.23054751e-07, 9.76686202e-08, 7.75196352e-08, 0.00000000e+00
}
, {
6.34920635e-02, 5.03936842e-02, 3.99974936e-02, 3.17460317e-02
, 2.51968421e-02, 1.99987468e-02, 1.58730159e-02, 1.25984210e-02
, 9.99937341e-03, 7.93650794e-03, 6.29921052e-03, 4.99968671e-03
, 3.96825397e-03, 3.14960526e-03, 2.49984335e-03, 1.98412698e-03
, 1.57480263e-03, 1.24992168e-03, 9.92063492e-04, 7.87401315e-04
, 6.24960838e-04, 4.96031746e-04, 3.93700658e-04, 3.12480419e-04
, 2.48015873e-04, 1.96850329e-04, 1.56240210e-04, 1.24007937e-04
, 9.84251644e-05, 7.81201048e-05, 6.20039683e-05, 4.92125822e-05
, 3.90600524e-05, 3.10019841e-05, 2.46062911e-05, 1.95300262e-05
, 1.55009921e-05, 1.23031456e-05, 9.76501310e-06, 7.75049603e-06
, 6.15157278e-06, 4.88250655e-06, 3.87524802e-06, 3.07578639e-06
, 2.44125327e-06, 1.93762401e-06, 1.53789319e-06, 1.22062664e-06
, 9.68812004e-07, 7.68946597e-07, 6.10313319e-07, 4.84406002e-07
, 3.84473299e-07, 3.05156659e-07, 2.42203001e-07, 1.92236649e-07
, 1.52578330e-07, 1.21101500e-07, 9.61183246e-08, 7.62891648e-08
, 6.05507502e-08, 4.80591623e-08, 3.81445824e-08, 0.00000000e+00
}
, {
3.14960630e-02, 2.49984418e-02, 1.98412764e-02, 1.57480315e-02
, 1.24992209e-02, 9.92063819e-03, 7.87401575e-03, 6.24961044e-03
, 4.96031909e-03, 3.93700787e-03, 3.12480522e-03, 2.48015955e-03
, 1.96850394e-03, 1.56240261e-03, 1.24007977e-03, 9.84251969e-04
, 7.81201305e-04, 6.20039887e-04, 4.92125984e-04, 3.90600653e-04
, 3.10019943e-04, 2.46062992e-04, 1.95300326e-04, 1.55009972e-04
, 1.23031496e-04, 9.76501631e-05, 7.75049858e-05, 6.15157480e-05
, 4.88250816e-05, 3.87524929e-05, 3.07578740e-05, 2.44125408e-05
, 1.93762465e-05, 1.53789370e-05, 1.22062704e-05, 9.68812323e-06
, 7.68946850e-06, 6.10313520e-06, 4.84406162e-06, 3.84473425e-06
, 3.05156760e-06, 2.42203081e-06, 1.92236713e-06, 1.52578380e-06
, 1.21101540e-06, 9.61183563e-07, 7.62891900e-07, 6.05507702e-07
, 4.80591781e-07, 3.81445950e-07, 3.02753851e-07, 2.40295891e-07
, 1.90722975e-07, 1.51376925e-07, 1.20147945e-07, 9.53614874e-08
, 7.56884627e-08, 6.00739727e-08, 4.76807437e-08, 3.78442314e-08
, 3.00369863e-08, 2.38403719e-08, 1.89221157e-08, 0.00000000e+00
}
, {
1.56862745e-02, 1.24502043e-02, 9.88173372e-03, 7.84313725e-03
, 6.22510216e-03, 4.94086686e-03, 3.92156863e-03, 3.11255108e-03
, 2.47043343e-03, 1.96078431e-03, 1.55627554e-03, 1.23521672e-03
, 9.80392157e-04, 7.78137771e-04, 6.17608358e-04, 4.90196078e-04
, 3.89068885e-04, 3.08804179e-04, 2.45098039e-04, 1.94534443e-04
, 1.54402089e-04, 1.22549020e-04, 9.72672213e-05, 7.72010447e-05
, 6.12745098e-05, 4.86336107e-05, 3.86005224e-05, 3.06372549e-05
, 2.43168053e-05, 1.93002612e-05, 1.53186275e-05, 1.21584027e-05
, 9.65013059e-06, 7.65931373e-06, 6.07920133e-06, 4.82506530e-06
, 3.82965686e-06, 3.03960067e-06, 2.41253265e-06, 1.91482843e-06
, 1.51980033e-06, 1.20626632e-06, 9.57414216e-07, 7.59900167e-07
, 6.03133162e-07, 4.78707108e-07, 3.79950083e-07, 3.01566581e-07
, 2.39353554e-07, 1.89975042e-07, 1.50783290e-07, 1.19676777e-07
, 9.49875208e-08, 7.53916452e-08, 5.98383885e-08, 4.74937604e-08
, 3.76958226e-08, 2.99191942e-08, 2.37468802e-08, 1.88479113e-08
, 1.49595971e-08, 1.18734401e-08, 9.42395565e-09, 0.00000000e+00
}
, {
7.82778865e-03, 6.21291997e-03, 4.93119785e-03, 3.91389432e-03
, 3.10645998e-03, 2.46559892e-03, 1.95694716e-03, 1.55322999e-03
, 1.23279946e-03, 9.78473581e-04, 7.76614996e-04, 6.16399731e-04
, 4.89236791e-04, 3.88307498e-04, 3.08199865e-04, 2.44618395e-04
, 1.94153749e-04, 1.54099933e-04, 1.22309198e-04, 9.70768745e-05
, 7.70499664e-05, 6.11545988e-05, 4.85384373e-05, 3.85249832e-05
, 3.05772994e-05, 2.42692186e-05, 1.92624916e-05, 1.52886497e-05
, 1.21346093e-05, 9.63124579e-06, 7.64432485e-06, 6.06730466e-06
, 4.81562290e-06, 3.82216243e-06, 3.03365233e-06, 2.40781145e-06
, 1.91108121e-06, 1.51682616e-06, 1.20390572e-06, 9.55540607e-07
, 7.58413082e-07, 6.01952862e-07, 4.77770303e-07, 3.79206541e-07
, 3.00976431e-07, 2.38885152e-07, 1.89603271e-07, 1.50488216e-07
, 1.19442576e-07, 9.48016353e-08, 7.52441078e-08, 5.97212879e-08
, 4.74008176e-08, 3.76220539e-08, 2.98606440e-08, 2.37004088e-08
, 1.88110269e-08, 1.49303220e-08, 1.18502044e-08, 9.40551347e-09
, 7.46516099e-09, 5.92510220e-09, 4.70275674e-09, 0.00000000e+00
}
, {
3.91006843e-03, 3.10342337e-03, 2.46318876e-03, 1.95503421e-03
, 1.55171168e-03, 1.23159438e-03, 9.77517107e-04, 7.75855842e-04
, 6.15797190e-04, 4.88758553e-04, 3.87927921e-04, 3.07898595e-04
, 2.44379277e-04, 1.93963960e-04, 1.53949297e-04, 1.22189638e-04
, 9.69819802e-05, 7.69746487e-05, 6.10948192e-05, 4.84909901e-05
, 3.84873243e-05, 3.05474096e-05, 2.42454951e-05, 1.92436622e-05
, 1.52737048e-05, 1.21227475e-05, 9.62183109e-06, 7.63685239e-06
, 6.06137376e-06, 4.81091554e-06, 3.81842620e-06, 3.03068688e-06
, 2.40545777e-06, 1.90921310e-06, 1.51534344e-06, 1.20272889e-06
, 9.54606549e-07, 7.57671720e-07, 6.01364443e-07, 4.77303275e-07
, 3.78835860e-07, 3.00682221e-07, 2.38651637e-07, 1.89417930e-07
, 1.50341111e-07, 1.19325819e-07, 9.47089650e-08, 7.51705554e-08
, 5.96629093e-08, 4.73544825e-08, 3.75852777e-08, 2.98314547e-08
, 2.36772413e-08, 1.87926388e-08, 1.49157273e-08, 1.18386206e-08
, 9.39631942e-09, 7.45786367e-09, 5.91931032e-09, 4.69815971e-09
, 3.72893183e-09, 2.95965516e-09, 2.34907986e-09, 0.00000000e+00
}
, {
1.95407914e-03, 1.55095364e-03, 1.23099272e-03, 9.77039570e-04
, 7.75476821e-04, 6.15496360e-04, 4.88519785e-04, 3.87738410e-04
, 3.07748180e-04, 2.44259893e-04, 1.93869205e-04, 1.53874090e-04
, 1.22129946e-04, 9.69346026e-05, 7.69370451e-05, 6.10649731e-05
, 4.84673013e-05, 3.84685225e-05, 3.05324866e-05, 2.42336506e-05
, 1.92342613e-05, 1.52662433e-05, 1.21168253e-05, 9.61713063e-06
, 7.63312164e-06, 6.05841266e-06, 4.80856532e-06, 3.81656082e-06
, 3.02920633e-06, 2.40428266e-06, 1.90828041e-06, 1.51460317e-06
, 1.20214133e-06, 9.54140205e-07, 7.57301583e-07, 6.01070665e-07
, 4.77070103e-07, 3.78650791e-07, 3.00535332e-07, 2.38535051e-07
, 1.89325396e-07, 1.50267666e-07, 1.19267526e-07, 9.46626978e-08
, 7.51338331e-08, 5.96337628e-08, 4.73313489e-08, 3.75669165e-08
, 2.98168814e-08, 2.36656745e-08, 1.87834583e-08, 1.49084407e-08
, 1.18328372e-08, 9.39172913e-09, 7.45422035e-09, 5.91641861e-09
, 4.69586457e-09, 3.72711018e-09, 2.95820931e-09, 2.34793228e-09
, 1.86355509e-09, 1.47910465e-09, 1.17396614e-09, 0.00000000e+00
}
, {
9.76800977e-04, 7.75287449e-04, 6.15346056e-04, 4.88400488e-04
, 3.87643725e-04, 3.07673028e-04, 2.44200244e-04, 1.93821862e-04
, 1.53836514e-04, 1.22100122e-04, 9.69109311e-05, 7.69182570e-05
, 6.10500611e-05, 4.84554656e-05, 3.84591285e-05, 3.05250305e-05
, 2.42277328e-05, 1.92295643e-05, 1.52625153e-05, 1.21138664e-05
, 9.61478213e-06, 7.63125763e-06, 6.05693320e-06, 4.80739106e-06
, 3.81562882e-06, 3.02846660e-06, 2.40369553e-06, 1.90781441e-06
, 1.51423330e-06, 1.20184777e-06, 9.53907204e-07, 7.57116649e-07
, 6.00923883e-07, 4.76953602e-07, 3.78558325e-07, 3.00461941e-07
, 2.38476801e-07, 1.89279162e-07, 1.50230971e-07, 1.19238400e-07
, 9.46395812e-08, 7.51154854e-08, 5.96192002e-08, 4.73197906e-08
, 3.75577427e-08, 2.98096001e-08, 2.36598953e-08, 1.87788713e-08
, 1.49048001e-08, 1.18299476e-08, 9.38943567e-09, 7.45240003e-09
, 5.91497382e-09, 4.69471784e-09, 3.72620002e-09, 2.95748691e-09
, 2.34735892e-09, 1.86310001e-09, 1.47874346e-09, 1.17367946e-09
, 9.31550004e-10, 7.39371728e-10, 5.86839729e-10, 0.00000000e+00
}
, {
4.88340862e-04, 3.87596399e-04, 3.07635466e-04, 2.44170431e-04
, 1.93798199e-04, 1.53817733e-04, 1.22085215e-04, 9.68990997e-05
, 7.69088664e-05, 6.10426077e-05, 4.84495499e-05, 3.84544332e-05
, 3.05213039e-05, 2.42247749e-05, 1.92272166e-05, 1.52606519e-05
, 1.21123875e-05, 9.61360830e-06, 7.63032597e-06, 6.05619373e-06
, 4.80680415e-06, 3.81516298e-06, 3.02809687e-06, 2.40340208e-06
, 1.90758149e-06, 1.51404843e-06, 1.20170104e-06, 9.53790746e-07
, 7.57024217e-07, 6.00850519e-07, 4.76895373e-07, 3.78512108e-07
, 3.00425260e-07, 2.38447686e-07, 1.89256054e-07, 1.50212630e-07
, 1.19223843e-07, 9.46280271e-08, 7.51063149e-08, 5.96119216e-08
, 4.73140135e-08, 3.75531574e-08, 2.98059608e-08, 2.36570068e-08
, 1.87765787e-08, 1.49029804e-08, 1.18285034e-08, 9.38828936e-09
, 7.45149020e-09, 5.91425169e-09, 4.69414468e-09, 3.72574510e-09
, 2.95712585e-09, 2.34707234e-09, 1.86287255e-09, 1.47856292e-09
, 1.17353617e-09, 9.31436275e-10, 7.39281462e-10, 5.86768085e-10
, 4.65718138e-10, 3.69640731e-10, 2.93384042e-10, 0.00000000e+00
}
, {
2.44155527e-04, 1.93786370e-04, 1.53808344e-04, 1.22077764e-04
, 9.68931851e-05, 7.69041720e-05, 6.10388818e-05, 4.84465926e-05
, 3.84520860e-05, 3.05194409e-05, 2.42232963e-05, 1.92260430e-05
, 1.52597204e-05, 1.21116481e-05, 9.61302150e-06, 7.62986022e-06
, 6.05582407e-06, 4.80651075e-06, 3.81493011e-06, 3.02791204e-06
, 2.40325538e-06, 1.90746506e-06, 1.51395602e-06, 1.20162769e-06
, 9.53732528e-07, 7.56978009e-07, 6.00813844e-07, 4.76866264e-07
, 3.78489004e-07, 3.00406922e-07, 2.38433132e-07, 1.89244502e-07
, 1.50203461e-07, 1.19216566e-07, 9.46222511e-08, 7.51017305e-08
, 5.96082830e-08, 4.73111256e-08, 3.75508652e-08, 2.98041415e-08
, 2.36555628e-08, 1.87754326e-08, 1.49020707e-08, 1.18277814e-08
, 9.38771631e-09, 7.45103537e-09, 5.91389069e-09, 4.69385815e-09
, 3.72551769e-09, 2.95694535e-09, 2.34692908e-09, 1.86275884e-09
, 1.47847267e-09, 1.17346454e-09, 9.31379422e-10, 7.39236337e-10
, 5.86732269e-10, 4.65689711e-10, 3.69618168e-10, 2.93366135e-10
, 2.32844855e-10, 1.84809084e-10, 1.46683067e-10, 0.00000000e+00
}
, {
1.22074038e-04, 9.68902281e-05, 7.69018250e-05, 6.10370190e-05
, 4.84451140e-05, 3.84509125e-05, 3.05185095e-05, 2.42225570e-05
, 1.92254563e-05, 1.52592547e-05, 1.21112785e-05, 9.61272813e-06
, 7.62962737e-06, 6.05563926e-06, 4.80636406e-06, 3.81481368e-06
, 3.02781963e-06, 2.40318203e-06, 1.90740684e-06, 1.51390981e-06
, 1.20159102e-06, 9.53703421e-07, 7.56954907e-07, 6.00795508e-07
, 4.76851711e-07, 3.78477453e-07, 3.00397754e-07, 2.38425855e-07
, 1.89238727e-07, 1.50198877e-07, 1.19212928e-07, 9.46193634e-08
, 7.50994385e-08, 5.96064638e-08, 4.73096817e-08, 3.75497192e-08
, 2.98032319e-08, 2.36548408e-08, 1.87748596e-08, 1.49016160e-08
, 1.18274204e-08, 9.38742981e-09, 7.45080798e-09, 5.91371021e-09
, 4.69371490e-09, 3.72540399e-09, 2.95685511e-09, 2.34685745e-09
, 1.86270199e-09, 1.47842755e-09, 1.17342873e-09, 9.31350997e-10
, 7.39213776e-10, 5.86714363e-10, 4.65675499e-10, 3.69606888e-10
, 2.93357182e-10, 2.32837749e-10, 1.84803444e-10, 1.46678591e-10
, 1.16418875e-10, 9.24017220e-11, 7.33392954e-11, 0.00000000e+00
}
, {
6.10360876e-05, 4.84443748e-05, 3.84503258e-05, 3.05180438e-05
, 2.42221874e-05, 1.92251629e-05, 1.52590219e-05, 1.21110937e-05
, 9.61258144e-06, 7.62951095e-06, 6.05554685e-06, 4.80629072e-06
, 3.81475547e-06, 3.02777343e-06, 2.40314536e-06, 1.90737774e-06
, 1.51388671e-06, 1.20157268e-06, 9.53688869e-07, 7.56943357e-07
, 6.00786340e-07, 4.76844434e-07, 3.78471678e-07, 3.00393170e-07
, 2.38422217e-07, 1.89235839e-07, 1.50196585e-07, 1.19211109e-07
, 9.46179196e-08, 7.50982925e-08, 5.96055543e-08, 4.73089598e-08
, 3.75491463e-08, 2.98027771e-08, 2.36544799e-08, 1.87745731e-08
, 1.49013886e-08, 1.18272399e-08, 9.38728657e-09, 7.45069429e-09
, 5.91361997e-09, 4.69364328e-09, 3.72534714e-09, 2.95680999e-09
, 2.34682164e-09, 1.86267357e-09, 1.47840499e-09, 1.17341082e-09
, 9.31336786e-10, 7.39202497e-10, 5.86705410e-10, 4.65668393e-10
, 3.69601248e-10, 2.93352705e-10, 2.32834196e-10, 1.84800624e-10
, 1.46676353e-10, 1.16417098e-10, 9.24003121e-11, 7.33381763e-11
, 5.82085491e-11, 4.62001560e-11, 3.66690882e-11, 0.00000000e+00
}
, {
-1.60000000e+00, -1.26992084e+00, -1.00793684e+00, -8.00000000e-01
, -6.34960421e-01, -5.03968420e-01, -4.00000000e-01, -3.17480210e-01
, -2.51984210e-01, -2.00000000e-01, -1.58740105e-01, -1.25992105e-01
, -1.00000000e-01, -7.93700526e-02, -6.29960525e-02, -5.00000000e-02
, -3.96850263e-02, -3.14980262e-02, -2.50000000e-02, -1.98425131e-02
, -1.57490131e-02, -1.25000000e-02, -9.92125657e-03, -7.87450656e-03
, -6.25000000e-03, -4.96062829e-03, -3.93725328e-03, -3.12500000e-03
, -2.48031414e-03, -1.96862664e-03, -1.56250000e-03, -1.24015707e-03
, -9.84313320e-04, -7.81250000e-04, -6.20078536e-04, -4.92156660e-04
, -3.90625000e-04, -3.10039268e-04, -2.46078330e-04, -1.95312500e-04
, -1.55019634e-04, -1.23039165e-04, -9.76562500e-05, -7.75098170e-05
, -6.15195825e-05, -4.88281250e-05, -3.87549085e-05, -3.07597913e-05
, -2.44140625e-05, -1.93774542e-05, -1.53798956e-05, -1.22070313e-05
, -9.68872712e-06, -7.68994781e-06, -6.10351563e-06, -4.84436356e-06
, -3.84497391e-06, -3.05175781e-06, -2.42218178e-06, -1.92248695e-06
, -1.52587891e-06, -1.21109089e-06, -9.61243477e-07, 0.00000000e+00
}
, {
-8.00000000e-01, -6.34960421e-01, -5.03968420e-01, -4.00000000e-01
, -3.17480210e-01, -2.51984210e-01, -2.00000000e-01, -1.58740105e-01
, -1.25992105e-01, -1.00000000e-01, -7.93700526e-02, -6.29960525e-02
, -5.00000000e-02, -3.96850263e-02, -3.14980262e-02, -2.50000000e-02
, -1.98425131e-02, -1.57490131e-02, -1.25000000e-02, -9.92125657e-03
, -7.87450656e-03, -6.25000000e-03, -4.96062829e-03, -3.93725328e-03
, -3.12500000e-03, -2.48031414e-03, -1.96862664e-03, -1.56250000e-03
, -1.24015707e-03, -9.84313320e-04, -7.81250000e-04, -6.20078536e-04
, -4.92156660e-04, -3.90625000e-04, -3.10039268e-04, -2.46078330e-04
, -1.95312500e-04, -1.55019634e-04, -1.23039165e-04, -9.76562500e-05
, -7.75098170e-05, -6.15195825e-05, -4.88281250e-05, -3.87549085e-05
, -3.07597913e-05, -2.44140625e-05, -1.93774542e-05, -1.53798956e-05
, -1.22070313e-05, -9.68872712e-06, -7.68994781e-06, -6.10351563e-06
, -4.84436356e-06, -3.84497391e-06, -3.05175781e-06, -2.42218178e-06
, -1.92248695e-06, -1.52587891e-06, -1.21109089e-06, -9.61243477e-07
, -7.62939453e-07, -6.05545445e-07, -4.80621738e-07, 0.00000000e+00
}
, {
8.00000000e-01, 6.34960421e-01, 5.03968420e-01, 4.00000000e-01
, 3.17480210e-01, 2.51984210e-01, 2.00000000e-01, 1.58740105e-01
, 1.25992105e-01, 1.00000000e-01, 7.93700526e-02, 6.29960525e-02
, 5.00000000e-02, 3.96850263e-02, 3.14980262e-02, 2.50000000e-02
, 1.98425131e-02, 1.57490131e-02, 1.25000000e-02, 9.92125657e-03
, 7.87450656e-03, 6.25000000e-03, 4.96062829e-03, 3.93725328e-03
, 3.12500000e-03, 2.48031414e-03, 1.96862664e-03, 1.56250000e-03
, 1.24015707e-03, 9.84313320e-04, 7.81250000e-04, 6.20078536e-04
, 4.92156660e-04, 3.90625000e-04, 3.10039268e-04, 2.46078330e-04
, 1.95312500e-04, 1.55019634e-04, 1.23039165e-04, 9.76562500e-05
, 7.75098170e-05, 6.15195825e-05, 4.88281250e-05, 3.87549085e-05
, 3.07597913e-05, 2.44140625e-05, 1.93774542e-05, 1.53798956e-05
, 1.22070313e-05, 9.68872712e-06, 7.68994781e-06, 6.10351563e-06
, 4.84436356e-06, 3.84497391e-06, 3.05175781e-06, 2.42218178e-06
, 1.92248695e-06, 1.52587891e-06, 1.21109089e-06, 9.61243477e-07
, 7.62939453e-07, 6.05545445e-07, 4.80621738e-07, 0.00000000e+00
}
, {
1.60000000e+00, 1.26992084e+00, 1.00793684e+00, 8.00000000e-01
, 6.34960421e-01, 5.03968420e-01, 4.00000000e-01, 3.17480210e-01
, 2.51984210e-01, 2.00000000e-01, 1.58740105e-01, 1.25992105e-01
, 1.00000000e-01, 7.93700526e-02, 6.29960525e-02, 5.00000000e-02
, 3.96850263e-02, 3.14980262e-02, 2.50000000e-02, 1.98425131e-02
, 1.57490131e-02, 1.25000000e-02, 9.92125657e-03, 7.87450656e-03
, 6.25000000e-03, 4.96062829e-03, 3.93725328e-03, 3.12500000e-03
, 2.48031414e-03, 1.96862664e-03, 1.56250000e-03, 1.24015707e-03
, 9.84313320e-04, 7.81250000e-04, 6.20078536e-04, 4.92156660e-04
, 3.90625000e-04, 3.10039268e-04, 2.46078330e-04, 1.95312500e-04
, 1.55019634e-04, 1.23039165e-04, 9.76562500e-05, 7.75098170e-05
, 6.15195825e-05, 4.88281250e-05, 3.87549085e-05, 3.07597913e-05
, 2.44140625e-05, 1.93774542e-05, 1.53798956e-05, 1.22070313e-05
, 9.68872712e-06, 7.68994781e-06, 6.10351563e-06, 4.84436356e-06
, 3.84497391e-06, 3.05175781e-06, 2.42218178e-06, 1.92248695e-06
, 1.52587891e-06, 1.21109089e-06, 9.61243477e-07, 0.00000000e+00
}
, {
-1.77777778e+00, -1.41102316e+00, -1.11992982e+00, -8.88888889e-01
, -7.05511579e-01, -5.59964911e-01, -4.44444444e-01, -3.52755789e-01
, -2.79982456e-01, -2.22222222e-01, -1.76377895e-01, -1.39991228e-01
, -1.11111111e-01, -8.81889473e-02, -6.99956139e-02, -5.55555556e-02
, -4.40944737e-02, -3.49978069e-02, -2.77777778e-02, -2.20472368e-02
, -1.74989035e-02, -1.38888889e-02, -1.10236184e-02, -8.74945174e-03
, -6.94444444e-03, -5.51180921e-03, -4.37472587e-03, -3.47222222e-03
, -2.75590460e-03, -2.18736293e-03, -1.73611111e-03, -1.37795230e-03
, -1.09368147e-03, -8.68055556e-04, -6.88976151e-04, -5.46840733e-04
, -4.34027778e-04, -3.44488076e-04, -2.73420367e-04, -2.17013889e-04
, -1.72244038e-04, -1.36710183e-04, -1.08506944e-04, -8.61220189e-05
, -6.83550917e-05, -5.42534722e-05, -4.30610094e-05, -3.41775458e-05
, -2.71267361e-05, -2.15305047e-05, -1.70887729e-05, -1.35633681e-05
, -1.07652524e-05, -8.54438646e-06, -6.78168403e-06, -5.38262618e-06
, -4.27219323e-06, -3.39084201e-06, -2.69131309e-06, -2.13609662e-06
, -1.69542101e-06, -1.34565654e-06, -1.06804831e-06, 0.00000000e+00
}
, {
-8.88888889e-01, -7.05511579e-01, -5.59964911e-01, -4.44444444e-01
, -3.52755789e-01, -2.79982456e-01, -2.22222222e-01, -1.76377895e-01
, -1.39991228e-01, -1.11111111e-01, -8.81889473e-02, -6.99956139e-02
, -5.55555556e-02, -4.40944737e-02, -3.49978069e-02, -2.77777778e-02
, -2.20472368e-02, -1.74989035e-02, -1.38888889e-02, -1.10236184e-02
, -8.74945174e-03, -6.94444444e-03, -5.51180921e-03, -4.37472587e-03
, -3.47222222e-03, -2.75590460e-03, -2.18736293e-03, -1.73611111e-03
, -1.37795230e-03, -1.09368147e-03, -8.68055556e-04, -6.88976151e-04
, -5.46840733e-04, -4.34027778e-04, -3.44488076e-04, -2.73420367e-04
, -2.17013889e-04, -1.72244038e-04, -1.36710183e-04, -1.08506944e-04
, -8.61220189e-05, -6.83550917e-05, -5.42534722e-05, -4.30610094e-05
, -3.41775458e-05, -2.71267361e-05, -2.15305047e-05, -1.70887729e-05
, -1.35633681e-05, -1.07652524e-05, -8.54438646e-06, -6.78168403e-06
, -5.38262618e-06, -4.27219323e-06, -3.39084201e-06, -2.69131309e-06
, -2.13609662e-06, -1.69542101e-06, -1.34565654e-06, -1.06804831e-06
, -8.47710503e-07, -6.72828272e-07, -5.34024154e-07, 0.00000000e+00
}
, {
-4.44444444e-01, -3.52755789e-01, -2.79982456e-01, -2.22222222e-01
, -1.76377895e-01, -1.39991228e-01, -1.11111111e-01, -8.81889473e-02
, -6.99956139e-02, -5.55555556e-02, -4.40944737e-02, -3.49978069e-02
, -2.77777778e-02, -2.20472368e-02, -1.74989035e-02, -1.38888889e-02
, -1.10236184e-02, -8.74945174e-03, -6.94444444e-03, -5.51180921e-03
, -4.37472587e-03, -3.47222222e-03, -2.75590460e-03, -2.18736293e-03
, -1.73611111e-03, -1.37795230e-03, -1.09368147e-03, -8.68055556e-04
, -6.88976151e-04, -5.46840733e-04, -4.34027778e-04, -3.44488076e-04
, -2.73420367e-04, -2.17013889e-04, -1.72244038e-04, -1.36710183e-04
, -1.08506944e-04, -8.61220189e-05, -6.83550917e-05, -5.42534722e-05
, -4.30610094e-05, -3.41775458e-05, -2.71267361e-05, -2.15305047e-05
, -1.70887729e-05, -1.35633681e-05, -1.07652524e-05, -8.54438646e-06
, -6.78168403e-06, -5.38262618e-06, -4.27219323e-06, -3.39084201e-06
, -2.69131309e-06, -2.13609662e-06, -1.69542101e-06, -1.34565654e-06
, -1.06804831e-06, -8.47710503e-07, -6.72828272e-07, -5.34024154e-07
, -4.23855252e-07, -3.36414136e-07, -2.67012077e-07, 0.00000000e+00
}
, {
4.44444444e-01, 3.52755789e-01, 2.79982456e-01, 2.22222222e-01
, 1.76377895e-01, 1.39991228e-01, 1.11111111e-01, 8.81889473e-02
, 6.99956139e-02, 5.55555556e-02, 4.40944737e-02, 3.49978069e-02
, 2.77777778e-02, 2.20472368e-02, 1.74989035e-02, 1.38888889e-02
, 1.10236184e-02, 8.74945174e-03, 6.94444444e-03, 5.51180921e-03
, 4.37472587e-03, 3.47222222e-03, 2.75590460e-03, 2.18736293e-03
, 1.73611111e-03, 1.37795230e-03, 1.09368147e-03, 8.68055556e-04
, 6.88976151e-04, 5.46840733e-04, 4.34027778e-04, 3.44488076e-04
, 2.73420367e-04, 2.17013889e-04, 1.72244038e-04, 1.36710183e-04
, 1.08506944e-04, 8.61220189e-05, 6.83550917e-05, 5.42534722e-05
, 4.30610094e-05, 3.41775458e-05, 2.71267361e-05, 2.15305047e-05
, 1.70887729e-05, 1.35633681e-05, 1.07652524e-05, 8.54438646e-06
, 6.78168403e-06, 5.38262618e-06, 4.27219323e-06, 3.39084201e-06
, 2.69131309e-06, 2.13609662e-06, 1.69542101e-06, 1.34565654e-06
, 1.06804831e-06, 8.47710503e-07, 6.72828272e-07, 5.34024154e-07
, 4.23855252e-07, 3.36414136e-07, 2.67012077e-07, 0.00000000e+00
}
, {
8.88888889e-01, 7.05511579e-01, 5.59964911e-01, 4.44444444e-01
, 3.52755789e-01, 2.79982456e-01, 2.22222222e-01, 1.76377895e-01
, 1.39991228e-01, 1.11111111e-01, 8.81889473e-02, 6.99956139e-02
, 5.55555556e-02, 4.40944737e-02, 3.49978069e-02, 2.77777778e-02
, 2.20472368e-02, 1.74989035e-02, 1.38888889e-02, 1.10236184e-02
, 8.74945174e-03, 6.94444444e-03, 5.51180921e-03, 4.37472587e-03
, 3.47222222e-03, 2.75590460e-03, 2.18736293e-03, 1.73611111e-03
, 1.37795230e-03, 1.09368147e-03, 8.68055556e-04, 6.88976151e-04
, 5.46840733e-04, 4.34027778e-04, 3.44488076e-04, 2.73420367e-04
, 2.17013889e-04, 1.72244038e-04, 1.36710183e-04, 1.08506944e-04
, 8.61220189e-05, 6.83550917e-05, 5.42534722e-05, 4.30610094e-05
, 3.41775458e-05, 2.71267361e-05, 2.15305047e-05, 1.70887729e-05
, 1.35633681e-05, 1.07652524e-05, 8.54438646e-06, 6.78168403e-06
, 5.38262618e-06, 4.27219323e-06, 3.39084201e-06, 2.69131309e-06
, 2.13609662e-06, 1.69542101e-06, 1.34565654e-06, 1.06804831e-06
, 8.47710503e-07, 6.72828272e-07, 5.34024154e-07, 0.00000000e+00
}
, {
1.77777778e+00, 1.41102316e+00, 1.11992982e+00, 8.88888889e-01
, 7.05511579e-01, 5.59964911e-01, 4.44444444e-01, 3.52755789e-01
, 2.79982456e-01, 2.22222222e-01, 1.76377895e-01, 1.39991228e-01
, 1.11111111e-01, 8.81889473e-02, 6.99956139e-02, 5.55555556e-02
, 4.40944737e-02, 3.49978069e-02, 2.77777778e-02, 2.20472368e-02
, 1.74989035e-02, 1.38888889e-02, 1.10236184e-02, 8.74945174e-03
, 6.94444444e-03, 5.51180921e-03, 4.37472587e-03, 3.47222222e-03
, 2.75590460e-03, 2.18736293e-03, 1.73611111e-03, 1.37795230e-03
, 1.09368147e-03, 8.68055556e-04, 6.88976151e-04, 5.46840733e-04
, 4.34027778e-04, 3.44488076e-04, 2.73420367e-04, 2.17013889e-04
, 1.72244038e-04, 1.36710183e-04, 1.08506944e-04, 8.61220189e-05
, 6.83550917e-05, 5.42534722e-05, 4.30610094e-05, 3.41775458e-05
, 2.71267361e-05, 2.15305047e-05, 1.70887729e-05, 1.35633681e-05
, 1.07652524e-05, 8.54438646e-06, 6.78168403e-06, 5.38262618e-06
, 4.27219323e-06, 3.39084201e-06, 2.69131309e-06, 2.13609662e-06
, 1.69542101e-06, 1.34565654e-06, 1.06804831e-06, 0.00000000e+00
}
};
#endif
#ifdef REAL_IS_FIXED
static const real layer12_table[27][64] =
{
{
0, 0, 0, 0
, 0, 0, 0, 0
, 0, 0, 0, 0
, 0, 0, 0, 0
, 0, 0, 0, 0
, 0, 0, 0, 0
, 0, 0, 0, 0
, 0, 0, 0, 0
, 0, 0, 0, 0
, 0, 0, 0, 0
, 0, 0, 0, 0
, 0, 0, 0, 0
, 0, 0, 0, 0
, 0, 0, 0, 0
, 0, 0, 0, 0
, 0, 0, 0, 0
}
, {
-1431655765, -1136305934, -901886617, -715827883
, -568152967, -450943309, -357913941, -284076483
, -225471654, -178956971, -142038242, -112735827
, -89478485, -71019121, -56367914, -44739243
, -35509560, -28183957, -22369621, -17754780
, -14091978, -11184811, -8877390, -7045989
, -5592405, -4438695, -3522995, -2796203
, -2219348, -1761497, -1398101, -1109674
, -880749, -699051, -554837, -440374
, -349525, -277418, -220187, -174763
, -138709, -110094, -87381, -69355
, -55047, -43691, -34677, -27523
, -21845, -17339, -13762, -10923
, -8669, -6881, -5461, -4335
, -3440, -2731, -2167, -1720
, -1365, -1084, -860, 0
}
, {
1431655765, 1136305934, 901886617, 715827883
, 568152967, 450943309, 357913941, 284076483
, 225471654, 178956971, 142038242, 112735827
, 89478485, 71019121, 56367914, 44739243
, 35509560, 28183957, 22369621, 17754780
, 14091978, 11184811, 8877390, 7045989
, 5592405, 4438695, 3522995, 2796203
, 2219348, 1761497, 1398101, 1109674
, 880749, 699051, 554837, 440374
, 349525, 277418, 220187, 174763
, 138709, 110094, 87381, 69355
, 55047, 43691, 34677, 27523
, 21845, 17339, 13762, 10923
, 8669, 6881, 5461, 4335
, 3440, 2731, 2167, 1720
, 1365, 1084, 860, 0
}
, {
613566757, 486988257, 386522836, 306783378
, 243494129, 193261418, 153391689, 121747064
, 96630709, 76695845, 60873532, 48315355
, 38347922, 30436766, 24157677, 19173961
, 15218383, 12078839, 9586981, 7609192
, 6039419, 4793490, 3804596, 3019710
, 2396745, 1902298, 1509855, 1198373
, 951149, 754927, 599186, 475574
, 377464, 299593, 237787, 188732
, 149797, 118894, 94366, 74898
, 59447, 47183, 37449, 29723
, 23591, 18725, 14862, 11796
, 9362, 7431, 5898, 4681
, 3715, 2949, 2341, 1858
, 1474, 1170, 929, 737
, 585, 464, 369, 0
}
, {
286331153, 227261187, 180377323, 143165577
, 113630593, 90188662, 71582788, 56815297
, 45094331, 35791394, 28407648, 22547165
, 17895697, 14203824, 11273583, 8947849
, 7101912, 5636791, 4473924, 3550956
, 2818396, 2236962, 1775478, 1409198
, 1118481, 887739, 704599, 559241
, 443870, 352299, 279620, 221935
, 176150, 139810, 110967, 88075
, 69905, 55484, 44037, 34953
, 27742, 22019, 17476, 13871
, 11009, 8738, 6935, 5505
, 4369, 3468, 2752, 2185
, 1734, 1376, 1092, 867
, 688, 546, 433, 344
, 273, 217, 172, 0
}
, {
138547332, 109965090, 87279350, 69273666
, 54982545, 43639675, 34636833, 27491273
, 21819838, 17318417, 13745636, 10909919
, 8659208, 6872818, 5454959, 4329604
, 3436409, 2727480, 2164802, 1718205
, 1363740, 1082401, 859102, 681870
, 541201, 429551, 340935, 270600
, 214776, 170467, 135300, 107388
, 85234, 67650, 53694, 42617
, 33825, 26847, 21308, 16913
, 13423, 10654, 8456, 6712
, 5327, 4228, 3356, 2664
, 2114, 1678, 1332, 1057
, 839, 666, 529, 419
, 333, 264, 210, 166
, 132, 105, 83, 0
}
, {
68174084, 54109806, 42946982, 34087042
, 27054903, 21473491, 17043521, 13527452
, 10736745, 8521761, 6763726, 5368373
, 4260880, 3381863, 2684186, 2130440
, 1690931, 1342093, 1065220, 845466
, 671047, 532610, 422733, 335523
, 266305, 211366, 167762, 133153
, 105683, 83881, 66576, 52842
, 41940, 33288, 26421, 20970
, 16644, 13210, 10485, 8322
, 6605, 5243, 4161, 3303
, 2621, 2081, 1651, 1311
, 1040, 826, 655, 520
, 413, 328, 260, 206
, 164, 130, 103, 82
, 65, 52, 41, 0
}
, {
33818640, 26841872, 21304408, 16909320
, 13420936, 10652204, 8454660, 6710468
, 5326102, 4227330, 3355234, 2663051
, 2113665, 1677617, 1331526, 1056833
, 838809, 665763, 528416, 419404
, 332881, 264208, 209702, 166441
, 132104, 104851, 83220, 66052
, 52426, 41610, 33026, 26213
, 20805, 16513, 13106, 10403
, 8257, 6553, 5201, 4128
, 3277, 2601, 2064, 1638
, 1300, 1032, 819, 650
, 516, 410, 325, 258
, 205, 163, 129, 102
, 81, 65, 51, 41
, 32, 26, 20, 0
}
, {
16843009, 13368305, 10610431, 8421505
, 6684153, 5305215, 4210752, 3342076
, 2652608, 2105376, 1671038, 1326304
, 1052688, 835519, 663152, 526344
, 417760, 331576, 263172, 208880
, 165788, 131586, 104440, 82894
, 65793, 52220, 41447, 32897
, 26110, 20723, 16448, 13055
, 10362, 8224, 6527, 5181
, 4112, 3264, 2590, 2056
, 1632, 1295, 1028, 816
, 648, 514, 408, 324
, 257, 204, 162, 129
, 102, 81, 64, 51
, 40, 32, 25, 20
, 16, 13, 10, 0
}
, {
8405024, 6671072, 5294833, 4202512
, 3335536, 2647417, 2101256, 1667768
, 1323708, 1050628, 833884, 661854
, 525314, 416942, 330927, 262657
, 208471, 165464, 131329, 104236
, 82732, 65664, 52118, 41366
, 32832, 26059, 20683, 16416
, 13029, 10341, 8208, 6515
, 5171, 4104, 3257, 2585
, 2052, 1629, 1293, 1026
, 814, 646, 513, 407
, 323, 257, 204, 162
, 128, 102, 81, 64
, 51, 40, 32, 25
, 20, 16, 13, 10
, 8, 6, 5, 0
}
, {
4198404, 3332275, 2644829, 2099202
, 1666138, 1322414, 1049601, 833069
, 661207, 524801, 416534, 330604
, 262400, 208267, 165302, 131200
, 104134, 82651, 65600, 52067
, 41325, 32800, 26033, 20663
, 16400, 13017, 10331, 8200
, 6508, 5166, 4100, 3254
, 2583, 2050, 1627, 1291
, 1025, 814, 646, 513
, 407, 323, 256, 203
, 161, 128, 102, 81
, 64, 51, 40, 32
, 25, 20, 16, 13
, 10, 8, 6, 5
, 4, 3, 3, 0
}
, {
2098177, 1665324, 1321768, 1049088
, 832662, 660884, 524544, 416331
, 330442, 262272, 208165, 165221
, 131136, 104083, 82611, 65568
, 52041, 41305, 32784, 26021
, 20653, 16392, 13010, 10326
, 8196, 6505, 5163, 4098
, 3253, 2582, 2049, 1626
, 1291, 1025, 813, 645
, 512, 407, 323, 256
, 203, 161, 128, 102
, 81, 64, 51, 40
, 32, 25, 20, 16
, 13, 10, 8, 6
, 5, 4, 3, 3
, 2, 2, 1, 0
}
, {
1048832, 832459, 660723, 524416
, 416229, 330361, 262208, 208115
, 165181, 131104, 104057, 82590
, 65552, 52029, 41295, 32776
, 26014, 20648, 16388, 13007
, 10324, 8194, 6504, 5162
, 4097, 3252, 2581, 2049
, 1626, 1290, 1024, 813
, 645, 512, 406, 323
, 256, 203, 161, 128
, 102, 81, 64, 51
, 40, 32, 25, 20
, 16, 13, 10, 8
, 6, 5, 4, 3
, 3, 2, 2, 1
, 1, 1, 1, 0
}
, {
524352, 416178, 330321, 262176
, 208089, 165161, 131088, 104045
, 82580, 65544, 52022, 41290
, 32772, 26011, 20645, 16386
, 13006, 10323, 8193, 6503
, 5161, 4097, 3251, 2581
, 2048, 1626, 1290, 1024
, 813, 645, 512, 406
, 323, 256, 203, 161
, 128, 102, 81, 64
, 51, 40, 32, 25
, 20, 16, 13, 10
, 8, 6, 5, 4
, 3, 3, 2, 2
, 1, 1, 1, 1
, 1, 0, 0, 0
}
, {
262160, 208077, 165150, 131080
, 104038, 82575, 65540, 52019
, 41288, 32770, 26010, 20644
, 16385, 13005, 10322, 8193
, 6502, 5161, 4096, 3251
, 2580, 2048, 1626, 1290
, 1024, 813, 645, 512
, 406, 323, 256, 203
, 161, 128, 102, 81
, 64, 51, 40, 32
, 25, 20, 16, 13
, 10, 8, 6, 5
, 4, 3, 3, 2
, 2, 1, 1, 1
, 1, 1, 0, 0
, 0, 0, 0, 0
}
, {
131076, 104035, 82573, 65538
, 52018, 41286, 32769, 26009
, 20643, 16385, 13004, 10322
, 8192, 6502, 5161, 4096
, 3251, 2580, 2048, 1626
, 1290, 1024, 813, 645
, 512, 406, 323, 256
, 203, 161, 128, 102
, 81, 64, 51, 40
, 32, 25, 20, 16
, 13, 10, 8, 6
, 5, 4, 3, 3
, 2, 2, 1, 1
, 1, 1, 1, 0
, 0, 0, 0, 0
, 0, 0, 0, 0
}
, {
65537, 52017, 41286, 32769
, 26008, 20643, 16384, 13004
, 10321, 8192, 6502, 5161
, 4096, 3251, 2580, 2048
, 1626, 1290, 1024, 813
, 645, 512, 406, 323
, 256, 203, 161, 128
, 102, 81, 64, 51
, 40, 32, 25, 20
, 16, 13, 10, 8
, 6, 5, 4, 3
, 3, 2, 2, 1
, 1, 1, 1, 1
, 0, 0, 0, 0
, 0, 0, 0, 0
, 0, 0, 0, 0
}
, {
-1717986918, -1363567121, -1082263941, -858993459
, -681783560, -541131970, -429496730, -340891780
, -270565985, -214748365, -170445890, -135282993
, -107374182, -85222945, -67641496, -53687091
, -42611473, -33820748, -26843546, -21305736
, -16910374, -13421773, -10652868, -8455187
, -6710886, -5326434, -4227594, -3355443
, -2663217, -2113797, -1677722, -1331609
, -1056898, -838861, -665804, -528449
, -419430, -332902, -264225, -209715
, -166451, -132112, -104858, -83226
, -66056, -52429, -41613, -33028
, -26214, -20806, -16514, -13107
, -10403, -8257, -6554, -5202
, -4129, -3277, -2601, -2064
, -1638, -1300, -1032, 0
}
, {
-858993459, -681783560, -541131970, -429496730
, -340891780, -270565985, -214748365, -170445890
, -135282993, -107374182, -85222945, -67641496
, -53687091, -42611473, -33820748, -26843546
, -21305736, -16910374, -13421773, -10652868
, -8455187, -6710886, -5326434, -4227594
, -3355443, -2663217, -2113797, -1677722
, -1331609, -1056898, -838861, -665804
, -528449, -419430, -332902, -264225
, -209715, -166451, -132112, -104858
, -83226, -66056, -52429, -41613
, -33028, -26214, -20806, -16514
, -13107, -10403, -8257, -6554
, -5202, -4129, -3277, -2601
, -2064, -1638, -1300, -1032
, -819, -650, -516, 0
}
, {
858993459, 681783560, 541131970, 429496730
, 340891780, 270565985, 214748365, 170445890
, 135282993, 107374182, 85222945, 67641496
, 53687091, 42611473, 33820748, 26843546
, 21305736, 16910374, 13421773, 10652868
, 8455187, 6710886, 5326434, 4227594
, 3355443, 2663217, 2113797, 1677722
, 1331609, 1056898, 838861, 665804
, 528449, 419430, 332902, 264225
, 209715, 166451, 132112, 104858
, 83226, 66056, 52429, 41613
, 33028, 26214, 20806, 16514
, 13107, 10403, 8257, 6554
, 5202, 4129, 3277, 2601
, 2064, 1638, 1300, 1032
, 819, 650, 516, 0
}
, {
1717986918, 1363567121, 1082263941, 858993459
, 681783560, 541131970, 429496730, 340891780
, 270565985, 214748365, 170445890, 135282993
, 107374182, 85222945, 67641496, 53687091
, 42611473, 33820748, 26843546, 21305736
, 16910374, 13421773, 10652868, 8455187
, 6710886, 5326434, 4227594, 3355443
, 2663217, 2113797, 1677722, 1331609
, 1056898, 838861, 665804, 528449
, 419430, 332902, 264225, 209715
, 166451, 132112, 104858, 83226
, 66056, 52429, 41613, 33028
, 26214, 20806, 16514, 13107
, 10403, 8257, 6554, 5202
, 4129, 3277, 2601, 2064
, 1638, 1300, 1032, 0
}
, {
-1908874354, -1515074579, -1202515490, -954437177
, -757537289, -601257745, -477218588, -378768645
, -300628872, -238609294, -189384322, -150314436
, -119304647, -94692161, -75157218, -59652324
, -47346081, -37578609, -29826162, -23673040
, -18789305, -14913081, -11836520, -9394652
, -7456540, -5918260, -4697326, -3728270
, -2959130, -2348663, -1864135, -1479565
, -1174332, -932068, -739783, -587166
, -466034, -369891, -293583, -233017
, -184946, -146791, -116508, -92473
, -73396, -58254, -46236, -36698
, -29127, -23118, -18349, -14564
, -11559, -9174, -7282, -5780
, -4587, -3641, -2890, -2294
, -1820, -1445, -1147, 0
}
, {
-954437177, -757537289, -601257745, -477218588
, -378768645, -300628872, -238609294, -189384322
, -150314436, -119304647, -94692161, -75157218
, -59652324, -47346081, -37578609, -29826162
, -23673040, -18789305, -14913081, -11836520
, -9394652, -7456540, -5918260, -4697326
, -3728270, -2959130, -2348663, -1864135
, -1479565, -1174332, -932068, -739783
, -587166, -466034, -369891, -293583
, -233017, -184946, -146791, -116508
, -92473, -73396, -58254, -46236
, -36698, -29127, -23118, -18349
, -14564, -11559, -9174, -7282
, -5780, -4587, -3641, -2890
, -2294, -1820, -1445, -1147
, -910, -722, -573, 0
}
, {
-477218588, -378768645, -300628872, -238609294
, -189384322, -150314436, -119304647, -94692161
, -75157218, -59652324, -47346081, -37578609
, -29826162, -23673040, -18789305, -14913081
, -11836520, -9394652, -7456540, -5918260
, -4697326, -3728270, -2959130, -2348663
, -1864135, -1479565, -1174332, -932068
, -739783, -587166, -466034, -369891
, -293583, -233017, -184946, -146791
, -116508, -92473, -73396, -58254
, -46236, -36698, -29127, -23118
, -18349, -14564, -11559, -9174
, -7282, -5780, -4587, -3641
, -2890, -2294, -1820, -1445
, -1147, -910, -722, -573
, -455, -361, -287, 0
}
, {
477218588, 378768645, 300628872, 238609294
, 189384322, 150314436, 119304647, 94692161
, 75157218, 59652324, 47346081, 37578609
, 29826162, 23673040, 18789305, 14913081
, 11836520, 9394652, 7456540, 5918260
, 4697326, 3728270, 2959130, 2348663
, 1864135, 1479565, 1174332, 932068
, 739783, 587166, 466034, 369891
, 293583, 233017, 184946, 146791
, 116508, 92473, 73396, 58254
, 46236, 36698, 29127, 23118
, 18349, 14564, 11559, 9174
, 7282, 5780, 4587, 3641
, 2890, 2294, 1820, 1445
, 1147, 910, 722, 573
, 455, 361, 287, 0
}
, {
954437177, 757537289, 601257745, 477218588
, 378768645, 300628872, 238609294, 189384322
, 150314436, 119304647, 94692161, 75157218
, 59652324, 47346081, 37578609, 29826162
, 23673040, 18789305, 14913081, 11836520
, 9394652, 7456540, 5918260, 4697326
, 3728270, 2959130, 2348663, 1864135
, 1479565, 1174332, 932068, 739783
, 587166, 466034, 369891, 293583
, 233017, 184946, 146791, 116508
, 92473, 73396, 58254, 46236
, 36698, 29127, 23118, 18349
, 14564, 11559, 9174, 7282
, 5780, 4587, 3641, 2890
, 2294, 1820, 1445, 1147
, 910, 722, 573, 0
}
, {
1908874354, 1515074579, 1202515490, 954437177
, 757537289, 601257745, 477218588, 378768645
, 300628872, 238609294, 189384322, 150314436
, 119304647, 94692161, 75157218, 59652324
, 47346081, 37578609, 29826162, 23673040
, 18789305, 14913081, 11836520, 9394652
, 7456540, 5918260, 4697326, 3728270
, 2959130, 2348663, 1864135, 1479565
, 1174332, 932068, 739783, 587166
, 466034, 369891, 293583, 233017
, 184946, 146791, 116508, 92473
, 73396, 58254, 46236, 36698
, 29127, 23118, 18349, 14564
, 11559, 9174, 7282, 5780
, 4587, 3641, 2890, 2294
, 1820, 1445, 1147, 0
}
};
#endif
static const unsigned char grp_3tab[96] =
{
1, 1, 1, 0, 1, 1, 2, 1, 1, 1, 0, 1, 0, 0, 1, 2, 0, 1
, 1, 2, 1, 0, 2, 1, 2, 2, 1, 1, 1, 0, 0, 1, 0, 2, 1, 0
, 1, 0, 0, 0, 0, 0, 2, 0, 0, 1, 2, 0, 0, 2, 0, 2, 2, 0
, 1, 1, 2, 0, 1, 2, 2, 1, 2, 1, 0, 2, 0, 0, 2, 2, 0, 2
, 1, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0
};
static const unsigned char grp_5tab[384] =
{
17, 17, 17, 18, 17, 17, 0, 17, 17, 19, 17, 17, 20, 17, 17, 17, 18, 17
, 18, 18, 17, 0, 18, 17, 19, 18, 17, 20, 18, 17, 17, 0, 17, 18, 0, 17
, 0, 0, 17, 19, 0, 17, 20, 0, 17, 17, 19, 17, 18, 19, 17, 0, 19, 17
, 19, 19, 17, 20, 19, 17, 17, 20, 17, 18, 20, 17, 0, 20, 17, 19, 20, 17
, 20, 20, 17, 17, 17, 18, 18, 17, 18, 0, 17, 18, 19, 17, 18, 20, 17, 18
, 17, 18, 18, 18, 18, 18, 0, 18, 18, 19, 18, 18, 20, 18, 18, 17, 0, 18
, 18, 0, 18, 0, 0, 18, 19, 0, 18, 20, 0, 18, 17, 19, 18, 18, 19, 18
, 0, 19, 18, 19, 19, 18, 20, 19, 18, 17, 20, 18, 18, 20, 18, 0, 20, 18
, 19, 20, 18, 20, 20, 18, 17, 17, 0, 18, 17, 0, 0, 17, 0, 19, 17, 0
, 20, 17, 0, 17, 18, 0, 18, 18, 0, 0, 18, 0, 19, 18, 0, 20, 18, 0
, 17, 0, 0, 18, 0, 0, 0, 0, 0, 19, 0, 0, 20, 0, 0, 17, 19, 0
, 18, 19, 0, 0, 19, 0, 19, 19, 0, 20, 19, 0, 17, 20, 0, 18, 20, 0
, 0, 20, 0, 19, 20, 0, 20, 20, 0, 17, 17, 19, 18, 17, 19, 0, 17, 19
, 19, 17, 19, 20, 17, 19, 17, 18, 19, 18, 18, 19, 0, 18, 19, 19, 18, 19
, 20, 18, 19, 17, 0, 19, 18, 0, 19, 0, 0, 19, 19, 0, 19, 20, 0, 19
, 17, 19, 19, 18, 19, 19, 0, 19, 19, 19, 19, 19, 20, 19, 19, 17, 20, 19
, 18, 20, 19, 0, 20, 19, 19, 20, 19, 20, 20, 19, 17, 17, 20, 18, 17, 20
, 0, 17, 20, 19, 17, 20, 20, 17, 20, 17, 18, 20, 18, 18, 20, 0, 18, 20
, 19, 18, 20, 20, 18, 20, 17, 0, 20, 18, 0, 20, 0, 0, 20, 19, 0, 20
, 20, 0, 20, 17, 19, 20, 18, 19, 20, 0, 19, 20, 19, 19, 20, 20, 19, 20
, 17, 20, 20, 18, 20, 20, 0, 20, 20, 19, 20, 20, 20, 20, 20, 0, 0, 0
, 0, 0, 0, 0, 0, 0
};
static const unsigned char grp_9tab[3072] =
{
21, 21, 21, 1, 21, 21, 22, 21, 21, 23, 21, 21, 0, 21, 21, 24, 21, 21
, 25, 21, 21, 2, 21, 21, 26, 21, 21, 21, 1, 21, 1, 1, 21, 22, 1, 21
, 23, 1, 21, 0, 1, 21, 24, 1, 21, 25, 1, 21, 2, 1, 21, 26, 1, 21
, 21, 22, 21, 1, 22, 21, 22, 22, 21, 23, 22, 21, 0, 22, 21, 24, 22, 21
, 25, 22, 21, 2, 22, 21, 26, 22, 21, 21, 23, 21, 1, 23, 21, 22, 23, 21
, 23, 23, 21, 0, 23, 21, 24, 23, 21, 25, 23, 21, 2, 23, 21, 26, 23, 21
, 21, 0, 21, 1, 0, 21, 22, 0, 21, 23, 0, 21, 0, 0, 21, 24, 0, 21
, 25, 0, 21, 2, 0, 21, 26, 0, 21, 21, 24, 21, 1, 24, 21, 22, 24, 21
, 23, 24, 21, 0, 24, 21, 24, 24, 21, 25, 24, 21, 2, 24, 21, 26, 24, 21
, 21, 25, 21, 1, 25, 21, 22, 25, 21, 23, 25, 21, 0, 25, 21, 24, 25, 21
, 25, 25, 21, 2, 25, 21, 26, 25, 21, 21, 2, 21, 1, 2, 21, 22, 2, 21
, 23, 2, 21, 0, 2, 21, 24, 2, 21, 25, 2, 21, 2, 2, 21, 26, 2, 21
, 21, 26, 21, 1, 26, 21, 22, 26, 21, 23, 26, 21, 0, 26, 21, 24, 26, 21
, 25, 26, 21, 2, 26, 21, 26, 26, 21, 21, 21, 1, 1, 21, 1, 22, 21, 1
, 23, 21, 1, 0, 21, 1, 24, 21, 1, 25, 21, 1, 2, 21, 1, 26, 21, 1
, 21, 1, 1, 1, 1, 1, 22, 1, 1, 23, 1, 1, 0, 1, 1, 24, 1, 1
, 25, 1, 1, 2, 1, 1, 26, 1, 1, 21, 22, 1, 1, 22, 1, 22, 22, 1
, 23, 22, 1, 0, 22, 1, 24, 22, 1, 25, 22, 1, 2, 22, 1, 26, 22, 1
, 21, 23, 1, 1, 23, 1, 22, 23, 1, 23, 23, 1, 0, 23, 1, 24, 23, 1
, 25, 23, 1, 2, 23, 1, 26, 23, 1, 21, 0, 1, 1, 0, 1, 22, 0, 1
, 23, 0, 1, 0, 0, 1, 24, 0, 1, 25, 0, 1, 2, 0, 1, 26, 0, 1
, 21, 24, 1, 1, 24, 1, 22, 24, 1, 23, 24, 1, 0, 24, 1, 24, 24, 1
, 25, 24, 1, 2, 24, 1, 26, 24, 1, 21, 25, 1, 1, 25, 1, 22, 25, 1
, 23, 25, 1, 0, 25, 1, 24, 25, 1, 25, 25, 1, 2, 25, 1, 26, 25, 1
, 21, 2, 1, 1, 2, 1, 22, 2, 1, 23, 2, 1, 0, 2, 1, 24, 2, 1
, 25, 2, 1, 2, 2, 1, 26, 2, 1, 21, 26, 1, 1, 26, 1, 22, 26, 1
, 23, 26, 1, 0, 26, 1, 24, 26, 1, 25, 26, 1, 2, 26, 1, 26, 26, 1
, 21, 21, 22, 1, 21, 22, 22, 21, 22, 23, 21, 22, 0, 21, 22, 24, 21, 22
, 25, 21, 22, 2, 21, 22, 26, 21, 22, 21, 1, 22, 1, 1, 22, 22, 1, 22
, 23, 1, 22, 0, 1, 22, 24, 1, 22, 25, 1, 22, 2, 1, 22, 26, 1, 22
, 21, 22, 22, 1, 22, 22, 22, 22, 22, 23, 22, 22, 0, 22, 22, 24, 22, 22
, 25, 22, 22, 2, 22, 22, 26, 22, 22, 21, 23, 22, 1, 23, 22, 22, 23, 22
, 23, 23, 22, 0, 23, 22, 24, 23, 22, 25, 23, 22, 2, 23, 22, 26, 23, 22
, 21, 0, 22, 1, 0, 22, 22, 0, 22, 23, 0, 22, 0, 0, 22, 24, 0, 22
, 25, 0, 22, 2, 0, 22, 26, 0, 22, 21, 24, 22, 1, 24, 22, 22, 24, 22
, 23, 24, 22, 0, 24, 22, 24, 24, 22, 25, 24, 22, 2, 24, 22, 26, 24, 22
, 21, 25, 22, 1, 25, 22, 22, 25, 22, 23, 25, 22, 0, 25, 22, 24, 25, 22
, 25, 25, 22, 2, 25, 22, 26, 25, 22, 21, 2, 22, 1, 2, 22, 22, 2, 22
, 23, 2, 22, 0, 2, 22, 24, 2, 22, 25, 2, 22, 2, 2, 22, 26, 2, 22
, 21, 26, 22, 1, 26, 22, 22, 26, 22, 23, 26, 22, 0, 26, 22, 24, 26, 22
, 25, 26, 22, 2, 26, 22, 26, 26, 22, 21, 21, 23, 1, 21, 23, 22, 21, 23
, 23, 21, 23, 0, 21, 23, 24, 21, 23, 25, 21, 23, 2, 21, 23, 26, 21, 23
, 21, 1, 23, 1, 1, 23, 22, 1, 23, 23, 1, 23, 0, 1, 23, 24, 1, 23
, 25, 1, 23, 2, 1, 23, 26, 1, 23, 21, 22, 23, 1, 22, 23, 22, 22, 23
, 23, 22, 23, 0, 22, 23, 24, 22, 23, 25, 22, 23, 2, 22, 23, 26, 22, 23
, 21, 23, 23, 1, 23, 23, 22, 23, 23, 23, 23, 23, 0, 23, 23, 24, 23, 23
, 25, 23, 23, 2, 23, 23, 26, 23, 23, 21, 0, 23, 1, 0, 23, 22, 0, 23
, 23, 0, 23, 0, 0, 23, 24, 0, 23, 25, 0, 23, 2, 0, 23, 26, 0, 23
, 21, 24, 23, 1, 24, 23, 22, 24, 23, 23, 24, 23, 0, 24, 23, 24, 24, 23
, 25, 24, 23, 2, 24, 23, 26, 24, 23, 21, 25, 23, 1, 25, 23, 22, 25, 23
, 23, 25, 23, 0, 25, 23, 24, 25, 23, 25, 25, 23, 2, 25, 23, 26, 25, 23
, 21, 2, 23, 1, 2, 23, 22, 2, 23, 23, 2, 23, 0, 2, 23, 24, 2, 23
, 25, 2, 23, 2, 2, 23, 26, 2, 23, 21, 26, 23, 1, 26, 23, 22, 26, 23
, 23, 26, 23, 0, 26, 23, 24, 26, 23, 25, 26, 23, 2, 26, 23, 26, 26, 23
, 21, 21, 0, 1, 21, 0, 22, 21, 0, 23, 21, 0, 0, 21, 0, 24, 21, 0
, 25, 21, 0, 2, 21, 0, 26, 21, 0, 21, 1, 0, 1, 1, 0, 22, 1, 0
, 23, 1, 0, 0, 1, 0, 24, 1, 0, 25, 1, 0, 2, 1, 0, 26, 1, 0
, 21, 22, 0, 1, 22, 0, 22, 22, 0, 23, 22, 0, 0, 22, 0, 24, 22, 0
, 25, 22, 0, 2, 22, 0, 26, 22, 0, 21, 23, 0, 1, 23, 0, 22, 23, 0
, 23, 23, 0, 0, 23, 0, 24, 23, 0, 25, 23, 0, 2, 23, 0, 26, 23, 0
, 21, 0, 0, 1, 0, 0, 22, 0, 0, 23, 0, 0, 0, 0, 0, 24, 0, 0
, 25, 0, 0, 2, 0, 0, 26, 0, 0, 21, 24, 0, 1, 24, 0, 22, 24, 0
, 23, 24, 0, 0, 24, 0, 24, 24, 0, 25, 24, 0, 2, 24, 0, 26, 24, 0
, 21, 25, 0, 1, 25, 0, 22, 25, 0, 23, 25, 0, 0, 25, 0, 24, 25, 0
, 25, 25, 0, 2, 25, 0, 26, 25, 0, 21, 2, 0, 1, 2, 0, 22, 2, 0
, 23, 2, 0, 0, 2, 0, 24, 2, 0, 25, 2, 0, 2, 2, 0, 26, 2, 0
, 21, 26, 0, 1, 26, 0, 22, 26, 0, 23, 26, 0, 0, 26, 0, 24, 26, 0
, 25, 26, 0, 2, 26, 0, 26, 26, 0, 21, 21, 24, 1, 21, 24, 22, 21, 24
, 23, 21, 24, 0, 21, 24, 24, 21, 24, 25, 21, 24, 2, 21, 24, 26, 21, 24
, 21, 1, 24, 1, 1, 24, 22, 1, 24, 23, 1, 24, 0, 1, 24, 24, 1, 24
, 25, 1, 24, 2, 1, 24, 26, 1, 24, 21, 22, 24, 1, 22, 24, 22, 22, 24
, 23, 22, 24, 0, 22, 24, 24, 22, 24, 25, 22, 24, 2, 22, 24, 26, 22, 24
, 21, 23, 24, 1, 23, 24, 22, 23, 24, 23, 23, 24, 0, 23, 24, 24, 23, 24
, 25, 23, 24, 2, 23, 24, 26, 23, 24, 21, 0, 24, 1, 0, 24, 22, 0, 24
, 23, 0, 24, 0, 0, 24, 24, 0, 24, 25, 0, 24, 2, 0, 24, 26, 0, 24
, 21, 24, 24, 1, 24, 24, 22, 24, 24, 23, 24, 24, 0, 24, 24, 24, 24, 24
, 25, 24, 24, 2, 24, 24, 26, 24, 24, 21, 25, 24, 1, 25, 24, 22, 25, 24
, 23, 25, 24, 0, 25, 24, 24, 25, 24, 25, 25, 24, 2, 25, 24, 26, 25, 24
, 21, 2, 24, 1, 2, 24, 22, 2, 24, 23, 2, 24, 0, 2, 24, 24, 2, 24
, 25, 2, 24, 2, 2, 24, 26, 2, 24, 21, 26, 24, 1, 26, 24, 22, 26, 24
, 23, 26, 24, 0, 26, 24, 24, 26, 24, 25, 26, 24, 2, 26, 24, 26, 26, 24
, 21, 21, 25, 1, 21, 25, 22, 21, 25, 23, 21, 25, 0, 21, 25, 24, 21, 25
, 25, 21, 25, 2, 21, 25, 26, 21, 25, 21, 1, 25, 1, 1, 25, 22, 1, 25
, 23, 1, 25, 0, 1, 25, 24, 1, 25, 25, 1, 25, 2, 1, 25, 26, 1, 25
, 21, 22, 25, 1, 22, 25, 22, 22, 25, 23, 22, 25, 0, 22, 25, 24, 22, 25
, 25, 22, 25, 2, 22, 25, 26, 22, 25, 21, 23, 25, 1, 23, 25, 22, 23, 25
, 23, 23, 25, 0, 23, 25, 24, 23, 25, 25, 23, 25, 2, 23, 25, 26, 23, 25
, 21, 0, 25, 1, 0, 25, 22, 0, 25, 23, 0, 25, 0, 0, 25, 24, 0, 25
, 25, 0, 25, 2, 0, 25, 26, 0, 25, 21, 24, 25, 1, 24, 25, 22, 24, 25
, 23, 24, 25, 0, 24, 25, 24, 24, 25, 25, 24, 25, 2, 24, 25, 26, 24, 25
, 21, 25, 25, 1, 25, 25, 22, 25, 25, 23, 25, 25, 0, 25, 25, 24, 25, 25
, 25, 25, 25, 2, 25, 25, 26, 25, 25, 21, 2, 25, 1, 2, 25, 22, 2, 25
, 23, 2, 25, 0, 2, 25, 24, 2, 25, 25, 2, 25, 2, 2, 25, 26, 2, 25
, 21, 26, 25, 1, 26, 25, 22, 26, 25, 23, 26, 25, 0, 26, 25, 24, 26, 25
, 25, 26, 25, 2, 26, 25, 26, 26, 25, 21, 21, 2, 1, 21, 2, 22, 21, 2
, 23, 21, 2, 0, 21, 2, 24, 21, 2, 25, 21, 2, 2, 21, 2, 26, 21, 2
, 21, 1, 2, 1, 1, 2, 22, 1, 2, 23, 1, 2, 0, 1, 2, 24, 1, 2
, 25, 1, 2, 2, 1, 2, 26, 1, 2, 21, 22, 2, 1, 22, 2, 22, 22, 2
, 23, 22, 2, 0, 22, 2, 24, 22, 2, 25, 22, 2, 2, 22, 2, 26, 22, 2
, 21, 23, 2, 1, 23, 2, 22, 23, 2, 23, 23, 2, 0, 23, 2, 24, 23, 2
, 25, 23, 2, 2, 23, 2, 26, 23, 2, 21, 0, 2, 1, 0, 2, 22, 0, 2
, 23, 0, 2, 0, 0, 2, 24, 0, 2, 25, 0, 2, 2, 0, 2, 26, 0, 2
, 21, 24, 2, 1, 24, 2, 22, 24, 2, 23, 24, 2, 0, 24, 2, 24, 24, 2
, 25, 24, 2, 2, 24, 2, 26, 24, 2, 21, 25, 2, 1, 25, 2, 22, 25, 2
, 23, 25, 2, 0, 25, 2, 24, 25, 2, 25, 25, 2, 2, 25, 2, 26, 25, 2
, 21, 2, 2, 1, 2, 2, 22, 2, 2, 23, 2, 2, 0, 2, 2, 24, 2, 2
, 25, 2, 2, 2, 2, 2, 26, 2, 2, 21, 26, 2, 1, 26, 2, 22, 26, 2
, 23, 26, 2, 0, 26, 2, 24, 26, 2, 25, 26, 2, 2, 26, 2, 26, 26, 2
, 21, 21, 26, 1, 21, 26, 22, 21, 26, 23, 21, 26, 0, 21, 26, 24, 21, 26
, 25, 21, 26, 2, 21, 26, 26, 21, 26, 21, 1, 26, 1, 1, 26, 22, 1, 26
, 23, 1, 26, 0, 1, 26, 24, 1, 26, 25, 1, 26, 2, 1, 26, 26, 1, 26
, 21, 22, 26, 1, 22, 26, 22, 22, 26, 23, 22, 26, 0, 22, 26, 24, 22, 26
, 25, 22, 26, 2, 22, 26, 26, 22, 26, 21, 23, 26, 1, 23, 26, 22, 23, 26
, 23, 23, 26, 0, 23, 26, 24, 23, 26, 25, 23, 26, 2, 23, 26, 26, 23, 26
, 21, 0, 26, 1, 0, 26, 22, 0, 26, 23, 0, 26, 0, 0, 26, 24, 0, 26
, 25, 0, 26, 2, 0, 26, 26, 0, 26, 21, 24, 26, 1, 24, 26, 22, 24, 26
, 23, 24, 26, 0, 24, 26, 24, 24, 26, 25, 24, 26, 2, 24, 26, 26, 24, 26
, 21, 25, 26, 1, 25, 26, 22, 25, 26, 23, 25, 26, 0, 25, 26, 24, 25, 26
, 25, 25, 26, 2, 25, 26, 26, 25, 26, 21, 2, 26, 1, 2, 26, 22, 2, 26
, 23, 2, 26, 0, 2, 26, 24, 2, 26, 25, 2, 26, 2, 2, 26, 26, 2, 26
, 21, 26, 26, 1, 26, 26, 22, 26, 26, 23, 26, 26, 0, 26, 26, 24, 26, 26
, 25, 26, 26, 2, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
#endif