Use albedo-scaling correction for "multiscattering" GGX closures

This commit is contained in:
2022-07-04 23:31:47 +02:00
parent 0b89f591b4
commit 690f7c1831
4 changed files with 733 additions and 0 deletions

View File

@@ -67,6 +67,25 @@ ccl_device_forceinline void bsdf_microfacet_fresnel_color(ccl_private const Shad
bsdf->sample_weight *= average(bsdf->extra->fresnel_color);
}
ccl_device_inline float3 microfacet_ggx_albedo_scaling(ccl_private const MicrofacetBsdf *bsdf,
ccl_private const ShaderData *sd,
const float3 Fss)
{
float mu = dot(sd->I, bsdf->N);
float rough = sqrtf(sqrtf(bsdf->alpha_x * bsdf->alpha_y));
float E = microfacet_ggx_E(mu, rough);
float E_avg = microfacet_ggx_E_avg(rough);
/* Fms here is based on the appendix of
* https://blog.selfshadow.com/publications/s2017-shading-course/imageworks/s2017_pbs_imageworks_slides_v2.pdf,
* with one Fss cancelled out since this is just a multiplier on top of
* the single-scattering BSDF, which already contains one bounce of Fresnel. */
float3 Fms = Fss * E_avg / (one_float3() - Fss * (1.0f - E_avg));
return one_float3() + Fms * ((1.0f - E) / E);
/* TODO: Ensure that increase in weight does not mess up glossy color, albedo etc. passes */
}
ccl_device int bsdf_microfacet_ggx_setup(ccl_private MicrofacetBsdf *bsdf)
{
bsdf->extra = NULL;
@@ -91,6 +110,7 @@ ccl_device int bsdf_microfacet_multi_ggx_setup(ccl_private MicrofacetBsdf *bsdf,
ccl_private const ShaderData *sd,
const float3 color)
{
bsdf->weight *= microfacet_ggx_albedo_scaling(bsdf, sd, saturate(color));
return bsdf_microfacet_ggx_setup(bsdf);
}
@@ -112,6 +132,8 @@ ccl_device int bsdf_microfacet_ggx_fresnel_setup(ccl_private MicrofacetBsdf *bsd
ccl_device int bsdf_microfacet_multi_ggx_fresnel_setup(ccl_private MicrofacetBsdf *bsdf,
ccl_private const ShaderData *sd)
{
float3 Fss = schlick_fresnel_Fss(bsdf->extra->cspec0);
bsdf->weight *= microfacet_ggx_albedo_scaling(bsdf, sd, Fss);
return bsdf_microfacet_ggx_fresnel_setup(bsdf, sd);
}

View File

@@ -5,6 +5,24 @@
CCL_NAMESPACE_BEGIN
ccl_device_inline float3 microfacet_ggx_glass_albedo_scaling(
ccl_private const ShaderData *sd, ccl_private const MicrofacetBsdf *bsdf, const float3 Fss)
{
float mu = dot(sd->I, bsdf->N);
float rough = sqrtf(sqrtf(bsdf->alpha_x * bsdf->alpha_y));
float E = microfacet_ggx_glass_E(mu, rough, bsdf->ior);
/* Close enough for glass, coloring here is unphysical anyways and it's unclear how to
* approximate it better. */
float3 Fms = Fss;
return one_float3() + Fms * ((1.0f - E) / E);
/* TODO: Ensure that increase in weight does not mess up glossy color, albedo etc. passes */
}
/* Currently no non-albedo-scaled version is implemented, could easily be added
* but would still break compatibility with the old glass due to the microfacet Fresnel. */
ccl_device int bsdf_microfacet_multi_ggx_glass_setup(ccl_private MicrofacetBsdf *bsdf,
ccl_private const ShaderData *sd,
const float3 color)
@@ -16,6 +34,8 @@ ccl_device int bsdf_microfacet_multi_ggx_glass_setup(ccl_private MicrofacetBsdf
bsdf->type = CLOSURE_BSDF_MICROFACET_MULTI_GGX_GLASS_ID;
bsdf->weight *= microfacet_ggx_glass_albedo_scaling(sd, bsdf, saturate(color));
return SD_BSDF | SD_BSDF_HAS_EVAL | SD_BSDF_NEEDS_LCG;
}
@@ -31,6 +51,9 @@ ccl_device int bsdf_microfacet_multi_ggx_glass_fresnel_setup(ccl_private Microfa
bsdf_microfacet_fresnel_color(sd, bsdf);
float3 Fss = schlick_fresnel_Fss(bsdf->extra->cspec0);
bsdf->weight *= microfacet_ggx_glass_albedo_scaling(sd, bsdf, Fss);
return SD_BSDF | SD_BSDF_HAS_EVAL | SD_BSDF_NEEDS_LCG;
}

View File

@@ -76,4 +76,70 @@ ccl_device_forceinline float3 microfacet_ggx_sample_vndf(
return normalize(make_float3(alpha_x * Mh.x, alpha_y * Mh.y, max(0.0f, Mh.z)));
}
/* Albedo correction.
* TODO: Use proper lookup table code for this data. */
ccl_device_forceinline float microfacet_ggx_glass_E(float mu, float rough, float ior)
{
bool inv_table = (ior < 1.0f);
if (inv_table) {
ior = 1.0f / ior;
}
rough = saturatef(1 - rough) * 16.0f;
mu = saturatef(mu) * 16.0f;
ior = saturatef(sqrtf(0.5f * (ior - 1.0f))) * 16.0f;
int rough_i = min(15, (int)rough);
int rough_i1 = min(15, rough_i + 1);
int mu_i = min(15, (int)mu);
int mu_i1 = min(15, mu_i + 1);
int ior_i = min(15, (int)ior);
int ior_i1 = min(15, ior_i + 1);
rough -= rough_i;
mu -= mu_i;
ior -= ior_i;
auto &table = inv_table ? table_ggx_glass_inv_E : table_ggx_glass_E;
float a = lerp(table[ior_i][rough_i][mu_i], table[ior_i][rough_i][mu_i1], mu);
float b = lerp(table[ior_i][rough_i1][mu_i], table[ior_i][rough_i1][mu_i1], mu);
float c = lerp(table[ior_i1][rough_i][mu_i], table[ior_i1][rough_i][mu_i1], mu);
float d = lerp(table[ior_i1][rough_i1][mu_i], table[ior_i1][rough_i1][mu_i1], mu);
return lerp(lerp(a, b, rough), lerp(c, d, rough), ior);
}
ccl_device_forceinline float microfacet_ggx_E(float mu, float rough)
{
rough = saturatef(1 - rough) * 32.0f;
mu = saturatef(mu) * 32.0f;
int rough_i = min(31, (int)rough);
int rough_i1 = min(31, rough_i + 1);
int mu_i = min(31, (int)mu);
int mu_i1 = min(31, mu_i + 1);
rough -= rough_i;
mu -= mu_i;
float a = lerp(table_ggx_E[rough_i][mu_i], table_ggx_E[rough_i][mu_i1], mu);
float b = lerp(table_ggx_E[rough_i1][mu_i], table_ggx_E[rough_i1][mu_i1], mu);
return lerp(a, b, rough);
}
ccl_device_forceinline float microfacet_ggx_E_avg(float rough)
{
rough = saturatef(1 - rough) * 32.0f;
int rough_i = min(31, (int)rough);
int rough_i1 = min(31, rough_i + 1);
rough -= rough_i;
return lerp(table_ggx_E_avg[rough_i], table_ggx_E_avg[rough_i1], rough);
}
ccl_device_inline float3 schlick_fresnel_Fss(float3 F0)
{
return (one_float3() + 20.0f * saturate(F0)) * (1.0f / 21.0f);
}
CCL_NAMESPACE_END

View File

@@ -63,4 +63,626 @@ ccl_inline_constant float cie_colour_match[][3] = {
{0.0001f, 0.0000f, 0.0000f}, {0.0001f, 0.0000f, 0.0000f}, {0.0000f, 0.0000f, 0.0000f}
};
static const float table_ggx_E[32][32] = {
{0.938993f, 0.858736f, 0.800571f, 0.753374f, 0.713238f, 0.678442f, 0.647723f, 0.620302f, 0.595405f, 0.573038f, 0.552392f, 0.533285f, 0.515945f, 0.499677f, 0.484473f, 0.470426f, 0.457164f, 0.444816f, 0.433116f, 0.422004f, 0.411722f, 0.401847f, 0.392444f, 0.383611f, 0.375193f, 0.367147f, 0.359387f, 0.352163f, 0.345223f, 0.338525f, 0.332036f, 0.325866f},
{0.942738f, 0.866279f, 0.811134f, 0.766195f, 0.727883f, 0.694788f, 0.665388f, 0.639283f, 0.615624f, 0.594017f, 0.574515f, 0.556419f, 0.539656f, 0.524166f, 0.509889f, 0.496369f, 0.483729f, 0.471968f, 0.460875f, 0.450365f, 0.440542f, 0.431178f, 0.422252f, 0.41389f, 0.405924f, 0.398354f, 0.391047f, 0.384224f, 0.377665f, 0.371384f, 0.365363f, 0.359468f},
{0.946178f, 0.873743f, 0.821452f, 0.778574f, 0.742257f, 0.710809f, 0.682893f, 0.657944f, 0.635623f, 0.615179f, 0.596415f, 0.579404f, 0.56365f, 0.548923f, 0.535197f, 0.522582f, 0.510837f, 0.499666f, 0.489196f, 0.479435f, 0.470211f, 0.461503f, 0.4532f, 0.445456f, 0.438062f, 0.431058f, 0.424383f, 0.418092f, 0.412088f, 0.406399f, 0.40087f, 0.39569f},
{0.949756f, 0.881149f, 0.831485f, 0.790608f, 0.756361f, 0.726391f, 0.7001f, 0.676466f, 0.655176f, 0.636031f, 0.618395f, 0.602169f, 0.587374f, 0.573694f, 0.560934f, 0.549078f, 0.537966f, 0.52764f, 0.518107f, 0.509184f, 0.500732f, 0.492642f, 0.485138f, 0.478096f, 0.471514f, 0.465218f, 0.459228f, 0.453642f, 0.448353f, 0.443399f, 0.438603f, 0.434138f},
{0.953417f, 0.888246f, 0.840978f, 0.802406f, 0.770036f, 0.741652f, 0.716727f, 0.694556f, 0.674474f, 0.656312f, 0.639932f, 0.624841f, 0.610947f, 0.598109f, 0.586429f, 0.575584f, 0.565512f, 0.556085f, 0.547336f, 0.539137f, 0.531419f, 0.524487f, 0.517923f, 0.511844f, 0.506034f, 0.500635f, 0.495476f, 0.49075f, 0.486239f, 0.482136f, 0.478268f, 0.474605f},
{0.956708f, 0.895075f, 0.849858f, 0.813821f, 0.783021f, 0.756452f, 0.732847f, 0.711996f, 0.6933f, 0.67629f, 0.660854f, 0.646985f, 0.634265f, 0.622532f, 0.61175f, 0.601824f, 0.592715f, 0.584454f, 0.576767f, 0.569631f, 0.563046f, 0.556973f, 0.551345f, 0.546069f, 0.541248f, 0.536783f, 0.532655f, 0.528942f, 0.525551f, 0.52244f, 0.519561f, 0.516886f},
{0.959787f, 0.901339f, 0.858526f, 0.824767f, 0.795491f, 0.770587f, 0.748376f, 0.728728f, 0.71134f, 0.695646f, 0.681395f, 0.6685f, 0.656868f, 0.646354f, 0.636793f, 0.628025f, 0.620035f, 0.612715f, 0.606052f, 0.599955f, 0.594453f, 0.589562f, 0.585089f, 0.581059f, 0.577338f, 0.574072f, 0.5711f, 0.568439f, 0.566075f, 0.563943f, 0.562054f, 0.560442f},
{0.962795f, 0.906868f, 0.866905f, 0.835062f, 0.807402f, 0.783716f, 0.763213f, 0.744831f, 0.728521f, 0.714133f, 0.701219f, 0.689528f, 0.679048f, 0.669662f, 0.661165f, 0.653617f, 0.646934f, 0.640853f, 0.635463f, 0.630651f, 0.626301f, 0.622531f, 0.619196f, 0.616271f, 0.613734f, 0.611499f, 0.609711f, 0.608151f, 0.606875f, 0.605871f, 0.605133f, 0.604569f},
{0.965348f, 0.911877f, 0.87486f, 0.844371f, 0.818636f, 0.796204f, 0.77703f, 0.760093f, 0.745008f, 0.731726f, 0.719978f, 0.709726f, 0.700525f, 0.692423f, 0.68525f, 0.678907f, 0.673372f, 0.668563f, 0.664407f, 0.660819f, 0.657808f, 0.655239f, 0.653235f, 0.651498f, 0.65022f, 0.649273f, 0.648646f, 0.648209f, 0.648093f, 0.648143f, 0.648444f, 0.648997f},
{0.967272f, 0.916721f, 0.882236f, 0.852898f, 0.829009f, 0.807843f, 0.789712f, 0.774205f, 0.76051f, 0.748502f, 0.738002f, 0.728893f, 0.721084f, 0.714364f, 0.708633f, 0.703726f, 0.699584f, 0.696126f, 0.693243f, 0.691071f, 0.689301f, 0.688063f, 0.687214f, 0.686732f, 0.686602f, 0.686769f, 0.68723f, 0.687961f, 0.688866f, 0.689989f, 0.691226f, 0.692645f},
{0.968586f, 0.921257f, 0.88888f, 0.860793f, 0.838269f, 0.81852f, 0.80152f, 0.787156f, 0.77494f, 0.764349f, 0.755223f, 0.747519f, 0.741015f, 0.735657f, 0.731289f, 0.727743f, 0.725038f, 0.722978f, 0.721559f, 0.720651f, 0.720252f, 0.720234f, 0.720618f, 0.721337f, 0.722343f, 0.723618f, 0.725022f, 0.726747f, 0.728463f, 0.730413f, 0.732549f, 0.734727f},
{0.96923f, 0.925381f, 0.894794f, 0.867815f, 0.846234f, 0.828091f, 0.812338f, 0.799121f, 0.788072f, 0.779052f, 0.77153f, 0.765368f, 0.760397f, 0.756556f, 0.753644f, 0.751631f, 0.750357f, 0.749694f, 0.749655f, 0.750052f, 0.75089f, 0.7521f, 0.75363f, 0.755437f, 0.757483f, 0.759655f, 0.762073f, 0.764543f, 0.767111f, 0.769751f, 0.772424f, 0.775168f},
{0.969888f, 0.929051f, 0.899625f, 0.873925f, 0.853099f, 0.8364f, 0.822071f, 0.810155f, 0.800452f, 0.792754f, 0.786807f, 0.782287f, 0.779027f, 0.776843f, 0.775539f, 0.775069f, 0.775222f, 0.775969f, 0.777249f, 0.778874f, 0.78081f, 0.783044f, 0.785524f, 0.78813f, 0.790932f, 0.793787f, 0.79679f, 0.799823f, 0.802886f, 0.806013f, 0.809039f, 0.812126f},
{0.970458f, 0.93208f, 0.903415f, 0.878958f, 0.858946f, 0.843321f, 0.830534f, 0.82017f, 0.812067f, 0.806002f, 0.801686f, 0.798794f, 0.797162f, 0.796612f, 0.796887f, 0.797904f, 0.799518f, 0.801557f, 0.804076f, 0.806862f, 0.809902f, 0.813101f, 0.816464f, 0.819846f, 0.823393f, 0.826865f, 0.830303f, 0.833696f, 0.837071f, 0.840289f, 0.843405f, 0.846271f},
{0.97093f, 0.934339f, 0.906008f, 0.882733f, 0.863623f, 0.849053f, 0.837939f, 0.829376f, 0.823131f, 0.818944f, 0.816482f, 0.815457f, 0.815624f, 0.816719f, 0.818588f, 0.8211f, 0.824063f, 0.827308f, 0.830801f, 0.83448f, 0.838211f, 0.841892f, 0.845532f, 0.849179f, 0.852736f, 0.856301f, 0.859794f, 0.863242f, 0.866589f, 0.869835f, 0.872989f, 0.87607f},
{0.97133f, 0.935814f, 0.907571f, 0.885251f, 0.867183f, 0.853836f, 0.844417f, 0.837916f, 0.833826f, 0.831748f, 0.83136f, 0.832276f, 0.834192f, 0.836898f, 0.840127f, 0.843696f, 0.847553f, 0.851545f, 0.855775f, 0.85999f, 0.864261f, 0.868476f, 0.872636f, 0.876703f, 0.880618f, 0.884471f, 0.888169f, 0.891631f, 0.894991f, 0.898211f, 0.90118f, 0.903876f},
{0.971498f, 0.936194f, 0.907977f, 0.886424f, 0.869635f, 0.857961f, 0.850455f, 0.846173f, 0.844434f, 0.844569f, 0.846203f, 0.84897f, 0.852535f, 0.856708f, 0.861232f, 0.866047f, 0.870964f, 0.875868f, 0.880772f, 0.885482f, 0.890095f, 0.894455f, 0.89851f, 0.902212f, 0.905444f, 0.908352f, 0.911154f, 0.91382f, 0.916322f, 0.918733f, 0.921009f, 0.923178f},
{0.971515f, 0.935335f, 0.907242f, 0.886387f, 0.871259f, 0.861767f, 0.856719f, 0.855001f, 0.855742f, 0.858309f, 0.862141f, 0.866832f, 0.872116f, 0.877706f, 0.883307f, 0.888897f, 0.894213f, 0.899182f, 0.903721f, 0.907694f, 0.911501f, 0.915135f, 0.9186f, 0.921904f, 0.92507f, 0.927995f, 0.93078f, 0.933424f, 0.935897f, 0.938226f, 0.940385f, 0.942486f},
{0.971233f, 0.933273f, 0.90534f, 0.885326f, 0.872522f, 0.865959f, 0.863968f, 0.865225f, 0.868804f, 0.873881f, 0.879788f, 0.886066f, 0.892447f, 0.898536f, 0.904109f, 0.909139f, 0.914005f, 0.918666f, 0.923149f, 0.927344f, 0.93132f, 0.935081f, 0.938582f, 0.941808f, 0.944912f, 0.947718f, 0.950344f, 0.952816f, 0.95506f, 0.957285f, 0.959182f, 0.961045f},
{0.970675f, 0.929771f, 0.902079f, 0.883688f, 0.874158f, 0.871353f, 0.873055f, 0.877692f, 0.883998f, 0.891128f, 0.898349f, 0.90501f, 0.911219f, 0.917302f, 0.923128f, 0.928714f, 0.933918f, 0.93875f, 0.943234f, 0.947359f, 0.951162f, 0.954644f, 0.957807f, 0.960532f, 0.963028f, 0.96502f, 0.966619f, 0.967709f, 0.968388f, 0.968743f, 0.968939f, 0.969107f},
{0.969797f, 0.924729f, 0.89772f, 0.882373f, 0.877356f, 0.879119f, 0.884863f, 0.892627f, 0.900849f, 0.908641f, 0.916223f, 0.923627f, 0.930675f, 0.937267f, 0.943249f, 0.948668f, 0.953548f, 0.957771f, 0.961262f, 0.963879f, 0.965795f, 0.967087f, 0.967986f, 0.968618f, 0.969112f, 0.969598f, 0.97003f, 0.970412f, 0.970806f, 0.971111f, 0.971429f, 0.971676f},
{0.968571f, 0.918364f, 0.892897f, 0.882602f, 0.883448f, 0.890303f, 0.899597f, 0.908982f, 0.91838f, 0.92749f, 0.936094f, 0.943872f, 0.950714f, 0.956491f, 0.96096f, 0.964088f, 0.966142f, 0.967554f, 0.968578f, 0.969451f, 0.970231f, 0.970983f, 0.971692f, 0.972324f, 0.972884f, 0.973405f, 0.973905f, 0.974357f, 0.974748f, 0.975061f, 0.975408f, 0.975663f},
{0.965173f, 0.910926f, 0.889046f, 0.886257f, 0.893902f, 0.905002f, 0.916487f, 0.928009f, 0.93872f, 0.948183f, 0.95588f, 0.961395f, 0.964914f, 0.967118f, 0.968655f, 0.969977f, 0.97117f, 0.9723f, 0.973341f, 0.97427f, 0.975106f, 0.975873f, 0.976565f, 0.977188f, 0.977768f, 0.978231f, 0.978716f, 0.979142f, 0.97947f, 0.979811f, 0.980083f, 0.980371f},
{0.958495f, 0.903049f, 0.888471f, 0.895308f, 0.908717f, 0.923329f, 0.937428f, 0.949533f, 0.95859f, 0.964045f, 0.967168f, 0.96929f, 0.971163f, 0.97285f, 0.974399f, 0.97577f, 0.976987f, 0.978069f, 0.979037f, 0.97987f, 0.980611f, 0.9813f, 0.981886f, 0.982413f, 0.982955f, 0.983354f, 0.983723f, 0.984063f, 0.984398f, 0.984652f, 0.984856f, 0.985063f},
{0.948964f, 0.895629f, 0.894262f, 0.910481f, 0.929203f, 0.946257f, 0.958732f, 0.965248f, 0.968749f, 0.971476f, 0.973909f, 0.976056f, 0.977916f, 0.979486f, 0.980913f, 0.982035f, 0.983087f, 0.983982f, 0.984791f, 0.985417f, 0.986015f, 0.98649f, 0.987023f, 0.987391f, 0.98782f, 0.988115f, 0.988375f, 0.988643f, 0.988798f, 0.989001f, 0.98932f, 0.989353f},
{0.937118f, 0.893165f, 0.908694f, 0.93326f, 0.954062f, 0.964852f, 0.969648f, 0.973401f, 0.976567f, 0.979253f, 0.981432f, 0.983268f, 0.984715f, 0.985961f, 0.98706f, 0.987867f, 0.988676f, 0.989308f, 0.989769f, 0.990333f, 0.990721f, 0.991062f, 0.991439f, 0.9917f, 0.991872f, 0.992123f, 0.992216f, 0.99251f, 0.992717f, 0.992757f, 0.9929f, 0.993009f},
{0.924708f, 0.901613f, 0.933658f, 0.959845f, 0.969049f, 0.974478f, 0.978882f, 0.982268f, 0.984778f, 0.986833f, 0.988426f, 0.989638f, 0.990686f, 0.991441f, 0.99211f, 0.992683f, 0.993142f, 0.993536f, 0.993918f, 0.994134f, 0.994405f, 0.994602f, 0.994731f, 0.994885f, 0.995065f, 0.995196f, 0.995408f, 0.995475f, 0.995622f, 0.995727f, 0.995661f, 0.995728f},
{0.915237f, 0.924971f, 0.962986f, 0.973159f, 0.979981f, 0.984688f, 0.987889f, 0.989996f, 0.991679f, 0.992878f, 0.993788f, 0.994514f, 0.994998f, 0.995501f, 0.995976f, 0.996148f, 0.996387f, 0.996635f, 0.996847f, 0.996874f, 0.997059f, 0.997253f, 0.997307f, 0.997327f, 0.99745f, 0.9975f, 0.997533f, 0.997708f, 0.997762f, 0.997759f, 0.997849f, 0.997848f},
{0.916255f, 0.96181f, 0.977531f, 0.985756f, 0.990294f, 0.992823f, 0.994433f, 0.99559f, 0.996311f, 0.996834f, 0.997191f, 0.997456f, 0.997787f, 0.997998f, 0.998229f, 0.998384f, 0.998457f, 0.998433f, 0.998494f, 0.998608f, 0.998846f, 0.998789f, 0.998969f, 0.998877f, 0.999104f, 0.999046f, 0.99894f, 0.998958f, 0.998896f, 0.999038f, 0.99902f, 0.999228f},
{0.938232f, 0.980496f, 0.99117f, 0.995037f, 0.996819f, 0.997623f, 0.998332f, 0.99847f, 0.998858f, 0.999061f, 0.99919f, 0.999076f, 0.999342f, 0.999446f, 0.999543f, 0.99948f, 0.999434f, 0.999576f, 0.999513f, 0.999568f, 0.999704f, 0.999605f, 0.999723f, 0.999585f, 0.999633f, 0.999681f, 0.999639f, 0.999761f, 0.999682f, 0.999801f, 0.999803f, 0.999778f},
{0.969782f, 0.995572f, 0.998327f, 0.999031f, 0.999409f, 0.999456f, 0.999751f, 0.999859f, 0.999893f, 0.999819f, 0.999782f, 0.999831f, 0.999837f, 0.999896f, 0.999957f, 0.999955f, 0.999955f, 0.999942f, 0.999964f, 0.999976f, 0.999957f, 0.999954f, 0.999962f, 0.999964f, 0.999982f, 0.999974f, 0.999968f, 0.999979f, 0.999807f, 0.999926f, 0.999962f, 0.99998f},
{0.989677f, 0.999757f, 0.999788f, 0.999983f, 0.999994f, 0.999992f, 0.999994f, 0.999994f, 0.999999f, 0.999993f, 1.0f, 1.0f, 1.0f, 1.0f, 0.999998f, 0.999998f, 1.0f, 1.0f, 1.0f, 1.0f, 0.999996f, 0.999996f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f}
};
static const float table_ggx_E_avg[32] = {
0.422975f, 0.451614f, 0.481159f, 0.511595f, 0.543123f, 0.575053f, 0.60744f, 0.640006f, 0.672404f, 0.704199f, 0.735225f, 0.765683f, 0.794568f, 0.821832f, 0.847303f, 0.871297f, 0.892859f, 0.912368f, 0.929627f, 0.944333f, 0.957303f, 0.968517f, 0.976663f, 0.98424f, 0.989949f, 0.993637f, 0.996464f, 0.99818f, 0.999062f, 1.00023f, 1.00014f, 1.00005f
};
static const float table_ggx_glass_E[16][16][16] = {
{
{0.546145f, 0.554928f, 0.585355f, 0.617174f, 0.649281f, 0.681332f, 0.713313f, 0.744976f, 0.776317f, 0.807153f, 0.837756f, 0.867865f, 0.897538f, 0.926556f, 0.955152f, 0.983269f},
{0.551645f, 0.562942f, 0.597396f, 0.633016f, 0.668497f, 0.703397f, 0.737332f, 0.77021f, 0.801938f, 0.832256f, 0.861463f, 0.889042f, 0.915358f, 0.940463f, 0.964068f, 0.986394f},
{0.558163f, 0.572828f, 0.611968f, 0.651944f, 0.691117f, 0.728661f, 0.764305f, 0.797737f, 0.828922f, 0.857906f, 0.88465f, 0.909353f, 0.932072f, 0.952713f, 0.971759f, 0.989101f},
{0.565942f, 0.584818f, 0.629791f, 0.67474f, 0.717467f, 0.757342f, 0.793846f, 0.826921f, 0.856543f, 0.883185f, 0.906937f, 0.928087f, 0.946762f, 0.963324f, 0.978089f, 0.991121f},
{0.575588f, 0.600003f, 0.651733f, 0.701856f, 0.748046f, 0.789334f, 0.825551f, 0.857055f, 0.884071f, 0.907377f, 0.927335f, 0.944636f, 0.959475f, 0.972171f, 0.983223f, 0.992751f},
{0.587534f, 0.619243f, 0.678746f, 0.734276f, 0.782725f, 0.823985f, 0.858453f, 0.886872f, 0.910116f, 0.929464f, 0.945487f, 0.958873f, 0.970007f, 0.979376f, 0.987371f, 0.994102f},
{0.602621f, 0.644047f, 0.712131f, 0.771979f, 0.821102f, 0.860106f, 0.890869f, 0.914867f, 0.933558f, 0.948679f, 0.960717f, 0.97046f, 0.978469f, 0.985064f, 0.990606f, 0.995082f},
{0.622241f, 0.675982f, 0.752631f, 0.814525f, 0.861237f, 0.89565f, 0.920899f, 0.939713f, 0.953529f, 0.964417f, 0.972942f, 0.979727f, 0.98495f, 0.989355f, 0.992982f, 0.99591f},
{0.647882f, 0.717283f, 0.800443f, 0.860146f, 0.900533f, 0.928044f, 0.946791f, 0.960059f, 0.969236f, 0.976488f, 0.981957f, 0.986275f, 0.989738f, 0.992396f, 0.99457f, 0.996447f},
{0.68242f, 0.76935f, 0.853133f, 0.904615f, 0.935514f, 0.954804f, 0.967174f, 0.975482f, 0.980791f, 0.985194f, 0.988401f, 0.990902f, 0.992909f, 0.994567f, 0.995782f, 0.996746f},
{0.729096f, 0.830817f, 0.905183f, 0.943073f, 0.963073f, 0.974575f, 0.981729f, 0.986219f, 0.988659f, 0.990971f, 0.992639f, 0.993905f, 0.995049f, 0.995809f, 0.996428f, 0.996998f},
{0.789156f, 0.895256f, 0.948956f, 0.971336f, 0.981801f, 0.987517f, 0.990816f, 0.99266f, 0.993256f, 0.994337f, 0.995166f, 0.995713f, 0.99628f, 0.99667f, 0.996902f, 0.997157f},
{0.859066f, 0.949326f, 0.978616f, 0.988459f, 0.99247f, 0.99464f, 0.995801f, 0.99628f, 0.995737f, 0.996129f, 0.996486f, 0.996763f, 0.996855f, 0.997043f, 0.997051f, 0.997208f},
{0.923198f, 0.983437f, 0.99374f, 0.996554f, 0.997289f, 0.997815f, 0.998037f, 0.997932f, 0.996729f, 0.99701f, 0.997112f, 0.997122f, 0.997151f, 0.997181f, 0.99723f, 0.997244f},
{0.967523f, 0.997301f, 0.998877f, 0.999232f, 0.998936f, 0.99887f, 0.998817f, 0.998544f, 0.997149f, 0.99719f, 0.997292f, 0.997176f, 0.997165f, 0.997177f, 0.997329f, 0.99722f},
{0.993657f, 0.999821f, 0.999725f, 0.999639f, 0.999132f, 0.998963f, 0.998883f, 0.998629f, 0.997223f, 0.997127f, 0.997255f, 0.997299f, 0.997234f, 0.997171f, 0.997179f, 0.997287f}
},
{
{0.631613f, 0.585535f, 0.60389f, 0.63012f, 0.658841f, 0.688715f, 0.719004f, 0.749476f, 0.779917f, 0.810074f, 0.839943f, 0.869533f, 0.898583f, 0.927148f, 0.955291f, 0.982522f},
{0.643297f, 0.597422f, 0.618572f, 0.647969f, 0.679661f, 0.71191f, 0.743979f, 0.775505f, 0.806121f, 0.835601f, 0.863966f, 0.891141f, 0.917079f, 0.941526f, 0.9647f, 0.98657f},
{0.656436f, 0.611642f, 0.636216f, 0.668916f, 0.703763f, 0.738348f, 0.771739f, 0.803497f, 0.8336f, 0.861669f, 0.887586f, 0.911674f, 0.933799f, 0.954275f, 0.97294f, 0.989745f},
{0.671787f, 0.628907f, 0.657412f, 0.69396f, 0.731665f, 0.767909f, 0.801987f, 0.83317f, 0.861465f, 0.887144f, 0.910067f, 0.930601f, 0.948912f, 0.965124f, 0.979652f, 0.992398f},
{0.689418f, 0.649953f, 0.683015f, 0.723425f, 0.763416f, 0.800574f, 0.833967f, 0.863372f, 0.889006f, 0.911341f, 0.930665f, 0.947338f, 0.961831f, 0.974299f, 0.985131f, 0.994478f},
{0.710308f, 0.675785f, 0.713876f, 0.757741f, 0.79883f, 0.835433f, 0.866612f, 0.892936f, 0.914899f, 0.933343f, 0.948684f, 0.961643f, 0.972544f, 0.981751f, 0.989502f, 0.996116f},
{0.734531f, 0.707423f, 0.750347f, 0.796438f, 0.836942f, 0.870809f, 0.898257f, 0.920374f, 0.938042f, 0.952242f, 0.963848f, 0.973335f, 0.981043f, 0.987507f, 0.992916f, 0.99742f},
{0.763463f, 0.745538f, 0.792477f, 0.83811f, 0.875748f, 0.904854f, 0.927199f, 0.944194f, 0.957484f, 0.967775f, 0.975886f, 0.982365f, 0.987617f, 0.991907f, 0.995436f, 0.998383f},
{0.797243f, 0.790409f, 0.838764f, 0.880622f, 0.912262f, 0.935119f, 0.951644f, 0.96379f, 0.972864f, 0.979631f, 0.984944f, 0.989097f, 0.992341f, 0.995011f, 0.997214f, 0.998982f},
{0.835707f, 0.839576f, 0.884783f, 0.919588f, 0.943649f, 0.959666f, 0.970729f, 0.978468f, 0.984043f, 0.98819f, 0.991292f, 0.993741f, 0.995631f, 0.99718f, 0.998433f, 0.9994f},
{0.87631f, 0.887301f, 0.926002f, 0.951959f, 0.967963f, 0.977871f, 0.984215f, 0.988547f, 0.991591f, 0.993787f, 0.995463f, 0.996735f, 0.997747f, 0.998521f, 0.999191f, 0.999696f},
{0.911712f, 0.927518f, 0.958425f, 0.975578f, 0.984504f, 0.989532f, 0.992666f, 0.994708f, 0.996143f, 0.997182f, 0.997949f, 0.998526f, 0.998986f, 0.999337f, 0.999623f, 0.999866f},
{0.933586f, 0.957793f, 0.981399f, 0.990218f, 0.994028f, 0.996008f, 0.997254f, 0.998024f, 0.998572f, 0.998947f, 0.999234f, 0.999449f, 0.999618f, 0.999754f, 0.999868f, 0.999953f},
{0.943785f, 0.982754f, 0.994593f, 0.997301f, 0.998376f, 0.998932f, 0.999247f, 0.999475f, 0.999609f, 0.999713f, 0.999788f, 0.999845f, 0.999898f, 0.999926f, 0.999963f, 0.999987f},
{0.963548f, 0.997089f, 0.999224f, 0.999595f, 0.999763f, 0.999841f, 0.99989f, 0.999923f, 0.999943f, 0.999958f, 0.99997f, 0.999978f, 0.999985f, 0.99999f, 0.999994f, 0.999997f},
{0.992398f, 0.999883f, 0.999938f, 0.99995f, 0.99995f, 0.999961f, 0.999968f, 0.999957f, 0.999972f, 0.999978f, 0.999969f, 0.999965f, 0.999976f, 0.999972f, 0.999972f, 0.999975f}
},
{
{0.7033f, 0.624366f, 0.628578f, 0.647018f, 0.670764f, 0.697179f, 0.724674f, 0.752952f, 0.781676f, 0.810399f, 0.838951f, 0.867394f, 0.895481f, 0.923f, 0.950124f, 0.975904f},
{0.71783f, 0.640314f, 0.646483f, 0.667403f, 0.693574f, 0.721948f, 0.750909f, 0.779952f, 0.808798f, 0.836672f, 0.863665f, 0.889655f, 0.914717f, 0.938198f, 0.960705f, 0.981332f},
{0.73379f, 0.658809f, 0.667588f, 0.691082f, 0.719766f, 0.749734f, 0.779826f, 0.808921f, 0.83682f, 0.863278f, 0.887645f, 0.910721f, 0.932106f, 0.951828f, 0.969822f, 0.985843f},
{0.751787f, 0.680693f, 0.692507f, 0.718771f, 0.749456f, 0.780616f, 0.810739f, 0.838952f, 0.864925f, 0.888953f, 0.910546f, 0.929958f, 0.947602f, 0.963301f, 0.977202f, 0.989426f},
{0.771632f, 0.706199f, 0.721422f, 0.750329f, 0.782343f, 0.813589f, 0.842857f, 0.869098f, 0.892508f, 0.913093f, 0.931231f, 0.947079f, 0.960913f, 0.972917f, 0.983348f, 0.992309f},
{0.794009f, 0.736069f, 0.754824f, 0.785859f, 0.817909f, 0.848151f, 0.874727f, 0.898082f, 0.917887f, 0.934733f, 0.949146f, 0.9615f, 0.971885f, 0.980801f, 0.988265f, 0.994553f},
{0.81858f, 0.770343f, 0.792317f, 0.823838f, 0.854519f, 0.882076f, 0.905208f, 0.924371f, 0.940351f, 0.953406f, 0.964235f, 0.973197f, 0.980488f, 0.986779f, 0.992066f, 0.996382f},
{0.84565f, 0.808161f, 0.832237f, 0.862468f, 0.890477f, 0.91359f, 0.93242f, 0.947124f, 0.959126f, 0.96853f, 0.976047f, 0.982215f, 0.987344f, 0.991477f, 0.994879f, 0.997734f},
{0.874026f, 0.847531f, 0.872048f, 0.89919f, 0.922681f, 0.940799f, 0.954911f, 0.96549f, 0.973778f, 0.980043f, 0.985121f, 0.988998f, 0.992127f, 0.994722f, 0.996887f, 0.998578f},
{0.901745f, 0.88446f, 0.90746f, 0.930681f, 0.949353f, 0.962582f, 0.972388f, 0.979433f, 0.984484f, 0.988402f, 0.991401f, 0.993684f, 0.995532f, 0.997017f, 0.998276f, 0.999172f},
{0.92477f, 0.913415f, 0.936122f, 0.956473f, 0.970167f, 0.979084f, 0.985043f, 0.989036f, 0.99183f, 0.993909f, 0.995522f, 0.996708f, 0.997708f, 0.998436f, 0.999098f, 0.999583f},
{0.937524f, 0.934214f, 0.959427f, 0.976221f, 0.985122f, 0.990088f, 0.993034f, 0.994956f, 0.996266f, 0.997246f, 0.997978f, 0.998526f, 0.998961f, 0.999307f, 0.999597f, 0.999814f},
{0.938082f, 0.95327f, 0.979643f, 0.99008f, 0.994165f, 0.996258f, 0.997424f, 0.998121f, 0.99862f, 0.998978f, 0.999263f, 0.999442f, 0.999613f, 0.999743f, 0.999853f, 0.999932f},
{0.937776f, 0.978551f, 0.993783f, 0.997285f, 0.998457f, 0.998989f, 0.999303f, 0.999512f, 0.999633f, 0.999719f, 0.999798f, 0.999849f, 0.999891f, 0.999916f, 0.999962f, 0.999985f},
{0.959602f, 0.996313f, 0.999131f, 0.999611f, 0.999778f, 0.999847f, 0.9999f, 0.999932f, 0.999941f, 0.999959f, 0.999973f, 0.999979f, 0.999985f, 0.999988f, 0.999993f, 0.999997f},
{0.992047f, 0.999866f, 0.999938f, 0.999952f, 0.99995f, 0.999963f, 0.999969f, 0.999957f, 0.999972f, 0.999977f, 0.999969f, 0.999965f, 0.999976f, 0.999972f, 0.999972f, 0.999975f}
},
{
{0.755135f, 0.661173f, 0.653773f, 0.664733f, 0.683312f, 0.705748f, 0.730117f, 0.755903f, 0.782496f, 0.809353f, 0.836357f, 0.863372f, 0.889953f, 0.916305f, 0.942201f, 0.966181f},
{0.770474f, 0.680031f, 0.674374f, 0.68761f, 0.708103f, 0.732226f, 0.757874f, 0.784137f, 0.810612f, 0.836641f, 0.862026f, 0.886647f, 0.910527f, 0.932779f, 0.954265f, 0.973625f},
{0.787016f, 0.701255f, 0.698294f, 0.713503f, 0.736268f, 0.761355f, 0.787675f, 0.813929f, 0.839407f, 0.863906f, 0.886723f, 0.90856f, 0.928769f, 0.94772f, 0.964805f, 0.979988f},
{0.805089f, 0.725584f, 0.725517f, 0.743068f, 0.767051f, 0.79318f, 0.819282f, 0.84439f, 0.867851f, 0.890054f, 0.910067f, 0.928265f, 0.945076f, 0.960184f, 0.973426f, 0.984878f},
{0.824429f, 0.75299f, 0.756091f, 0.775729f, 0.800469f, 0.826213f, 0.851312f, 0.874399f, 0.895384f, 0.914253f, 0.931078f, 0.945795f, 0.95901f, 0.970548f, 0.980428f, 0.989062f},
{0.845338f, 0.783391f, 0.789807f, 0.810953f, 0.83533f, 0.859928f, 0.882298f, 0.902505f, 0.920366f, 0.935538f, 0.948974f, 0.9606f, 0.970496f, 0.979028f, 0.986278f, 0.992331f},
{0.867308f, 0.816128f, 0.825491f, 0.846774f, 0.869557f, 0.891891f, 0.911074f, 0.92777f, 0.942154f, 0.953901f, 0.964055f, 0.97258f, 0.97956f, 0.98555f, 0.99069f, 0.99478f},
{0.889951f, 0.84958f, 0.86063f, 0.880855f, 0.901829f, 0.920435f, 0.936239f, 0.94922f, 0.960077f, 0.968704f, 0.97578f, 0.981723f, 0.9867f, 0.990652f, 0.993934f, 0.996712f},
{0.911502f, 0.880738f, 0.892697f, 0.911203f, 0.929411f, 0.944558f, 0.956842f, 0.966517f, 0.974198f, 0.980015f, 0.984958f, 0.988685f, 0.991689f, 0.994284f, 0.99634f, 0.99798f},
{0.929911f, 0.906006f, 0.918487f, 0.936132f, 0.952085f, 0.963857f, 0.973151f, 0.979774f, 0.984648f, 0.988398f, 0.991266f, 0.993529f, 0.995307f, 0.996735f, 0.997922f, 0.99883f},
{0.941852f, 0.922287f, 0.938595f, 0.956946f, 0.970284f, 0.979251f, 0.985269f, 0.989209f, 0.991919f, 0.993943f, 0.995489f, 0.996642f, 0.997589f, 0.998321f, 0.99894f, 0.999411f},
{0.943856f, 0.932884f, 0.956896f, 0.974835f, 0.98458f, 0.990057f, 0.993057f, 0.995044f, 0.996328f, 0.997257f, 0.997959f, 0.998468f, 0.998932f, 0.999239f, 0.999538f, 0.99973f},
{0.936692f, 0.948081f, 0.976888f, 0.989024f, 0.993894f, 0.996212f, 0.997452f, 0.998183f, 0.998637f, 0.999004f, 0.999262f, 0.999414f, 0.999597f, 0.999716f, 0.999827f, 0.999902f},
{0.933786f, 0.975358f, 0.99277f, 0.997021f, 0.998414f, 0.999009f, 0.999327f, 0.999521f, 0.999655f, 0.99972f, 0.999794f, 0.999843f, 0.999884f, 0.999913f, 0.999955f, 0.999978f},
{0.957595f, 0.99572f, 0.998989f, 0.999584f, 0.999779f, 0.999853f, 0.999905f, 0.999931f, 0.999945f, 0.999959f, 0.999972f, 0.999978f, 0.999982f, 0.999987f, 0.999992f, 0.999997f},
{0.991893f, 0.999849f, 0.999935f, 0.999951f, 0.999951f, 0.999963f, 0.99997f, 0.999957f, 0.999972f, 0.999978f, 0.999969f, 0.999965f, 0.999976f, 0.999972f, 0.999972f, 0.999975f}
},
{
{0.791906f, 0.69219f, 0.676114f, 0.680855f, 0.694521f, 0.713153f, 0.73442f, 0.757596f, 0.78181f, 0.806742f, 0.831895f, 0.85727f, 0.882394f, 0.907418f, 0.931743f, 0.95388f},
{0.807178f, 0.7128f, 0.698837f, 0.7056f, 0.721143f, 0.741125f, 0.763599f, 0.78701f, 0.811022f, 0.835147f, 0.858726f, 0.881888f, 0.904514f, 0.925531f, 0.945875f, 0.963777f},
{0.823371f, 0.735468f, 0.724418f, 0.733205f, 0.750747f, 0.771528f, 0.794286f, 0.81766f, 0.840677f, 0.863166f, 0.884389f, 0.904885f, 0.923826f, 0.941856f, 0.958073f, 0.972386f},
{0.840628f, 0.760701f, 0.752903f, 0.763847f, 0.782368f, 0.803786f, 0.826433f, 0.848464f, 0.869604f, 0.890026f, 0.908455f, 0.92551f, 0.941246f, 0.955699f, 0.968406f, 0.979107f},
{0.858634f, 0.788152f, 0.783764f, 0.796474f, 0.815666f, 0.836682f, 0.858106f, 0.878444f, 0.897133f, 0.914273f, 0.929764f, 0.943545f, 0.956074f, 0.967169f, 0.976656f, 0.984778f},
{0.877468f, 0.817314f, 0.81627f, 0.830435f, 0.849078f, 0.869064f, 0.888216f, 0.905613f, 0.921754f, 0.935558f, 0.948009f, 0.95891f, 0.968269f, 0.976576f, 0.98354f, 0.989235f},
{0.896459f, 0.847072f, 0.848977f, 0.863348f, 0.880767f, 0.89896f, 0.915259f, 0.930031f, 0.942873f, 0.953876f, 0.963239f, 0.971341f, 0.977941f, 0.983842f, 0.988733f, 0.99273f},
{0.914979f, 0.875448f, 0.879065f, 0.892873f, 0.909259f, 0.92472f, 0.938542f, 0.950336f, 0.960267f, 0.968481f, 0.975098f, 0.980933f, 0.985738f, 0.989508f, 0.992699f, 0.995372f},
{0.931148f, 0.899453f, 0.904363f, 0.91789f, 0.932976f, 0.94634f, 0.957716f, 0.966746f, 0.974081f, 0.979724f, 0.984545f, 0.988115f, 0.991066f, 0.993629f, 0.995614f, 0.997218f},
{0.943403f, 0.916273f, 0.923181f, 0.937849f, 0.952534f, 0.963889f, 0.972977f, 0.979645f, 0.984447f, 0.988114f, 0.990997f, 0.993144f, 0.994956f, 0.996364f, 0.997543f, 0.998404f},
{0.948976f, 0.92477f, 0.93797f, 0.955598f, 0.969266f, 0.978649f, 0.984972f, 0.988992f, 0.991794f, 0.993823f, 0.995345f, 0.996493f, 0.997425f, 0.998145f, 0.99875f, 0.999192f},
{0.945591f, 0.930181f, 0.953883f, 0.972831f, 0.983563f, 0.989624f, 0.992798f, 0.995004f, 0.996312f, 0.99721f, 0.997915f, 0.99841f, 0.998874f, 0.999167f, 0.999462f, 0.999627f},
{0.935111f, 0.944096f, 0.974462f, 0.987866f, 0.993441f, 0.996016f, 0.997409f, 0.998169f, 0.998633f, 0.998991f, 0.999237f, 0.999409f, 0.999569f, 0.999698f, 0.99979f, 0.999856f},
{0.931369f, 0.973258f, 0.991863f, 0.996672f, 0.99832f, 0.998987f, 0.999325f, 0.999515f, 0.999664f, 0.999726f, 0.999793f, 0.999838f, 0.999886f, 0.99991f, 0.99995f, 0.999968f},
{0.956476f, 0.995341f, 0.998866f, 0.999534f, 0.999764f, 0.999849f, 0.999913f, 0.99993f, 0.999946f, 0.999962f, 0.999972f, 0.999976f, 0.999982f, 0.999986f, 0.999991f, 0.999997f},
{0.991809f, 0.999835f, 0.999933f, 0.999951f, 0.999952f, 0.999964f, 0.99997f, 0.999957f, 0.999972f, 0.999978f, 0.999969f, 0.999965f, 0.999976f, 0.999972f, 0.999972f, 0.999975f}
},
{
{0.818297f, 0.717114f, 0.694785f, 0.694342f, 0.703768f, 0.718837f, 0.73701f, 0.757527f, 0.779494f, 0.802509f, 0.825628f, 0.849226f, 0.872765f, 0.896291f, 0.918974f, 0.939604f},
{0.833133f, 0.73869f, 0.718909f, 0.720566f, 0.731697f, 0.748196f, 0.767401f, 0.788233f, 0.809931f, 0.831982f, 0.853779f, 0.875361f, 0.896604f, 0.916442f, 0.935584f, 0.952167f},
{0.848657f, 0.762005f, 0.745546f, 0.74926f, 0.762459f, 0.77941f, 0.799137f, 0.819719f, 0.8407f, 0.861063f, 0.880752f, 0.899775f, 0.91747f, 0.934615f, 0.949879f, 0.963377f},
{0.8649f, 0.787208f, 0.774337f, 0.780339f, 0.79444f, 0.812079f, 0.831559f, 0.850965f, 0.869981f, 0.888585f, 0.905668f, 0.921563f, 0.936315f, 0.950173f, 0.961989f, 0.972198f},
{0.881461f, 0.813868f, 0.804703f, 0.812521f, 0.827306f, 0.844582f, 0.862949f, 0.880905f, 0.897513f, 0.913121f, 0.927539f, 0.940462f, 0.952246f, 0.962898f, 0.971853f, 0.979696f},
{0.898292f, 0.841163f, 0.835515f, 0.844687f, 0.859203f, 0.875685f, 0.892135f, 0.907546f, 0.922038f, 0.934734f, 0.946206f, 0.956606f, 0.965452f, 0.973447f, 0.980231f, 0.985548f},
{0.914692f, 0.867788f, 0.865073f, 0.874899f, 0.88842f, 0.903681f, 0.917781f, 0.930989f, 0.942727f, 0.953001f, 0.961885f, 0.969526f, 0.975935f, 0.981647f, 0.986401f, 0.990233f},
{0.929949f, 0.891663f, 0.890753f, 0.900625f, 0.913808f, 0.927174f, 0.939617f, 0.950495f, 0.959815f, 0.967745f, 0.97412f, 0.979688f, 0.984353f, 0.988026f, 0.991205f, 0.99376f},
{0.942335f, 0.910169f, 0.911015f, 0.921508f, 0.934511f, 0.946868f, 0.957644f, 0.96641f, 0.973551f, 0.979036f, 0.983774f, 0.987343f, 0.990262f, 0.992766f, 0.994742f, 0.9963f},
{0.950568f, 0.921421f, 0.925018f, 0.937993f, 0.95199f, 0.963241f, 0.97238f, 0.979133f, 0.983967f, 0.987701f, 0.990597f, 0.992658f, 0.99448f, 0.99588f, 0.997082f, 0.997929f},
{0.952355f, 0.925186f, 0.936368f, 0.953857f, 0.967893f, 0.977715f, 0.98436f, 0.988623f, 0.991479f, 0.993643f, 0.995152f, 0.996288f, 0.9972f, 0.997897f, 0.998529f, 0.998941f},
{0.94611f, 0.927807f, 0.951216f, 0.970995f, 0.982455f, 0.98904f, 0.992455f, 0.994849f, 0.996185f, 0.997122f, 0.997852f, 0.998356f, 0.998788f, 0.9991f, 0.999364f, 0.999519f},
{0.933846f, 0.941313f, 0.972597f, 0.986844f, 0.992965f, 0.995775f, 0.997297f, 0.998112f, 0.998611f, 0.998967f, 0.99921f, 0.999397f, 0.999559f, 0.999665f, 0.999759f, 0.999818f},
{0.929792f, 0.971804f, 0.9912f, 0.996412f, 0.998198f, 0.998926f, 0.999303f, 0.999503f, 0.999663f, 0.999722f, 0.999787f, 0.999828f, 0.999879f, 0.999902f, 0.999943f, 0.999962f},
{0.955791f, 0.995089f, 0.998764f, 0.999497f, 0.999757f, 0.99984f, 0.999911f, 0.999932f, 0.999947f, 0.999961f, 0.999973f, 0.999977f, 0.999981f, 0.999986f, 0.999991f, 0.999997f},
{0.991759f, 0.999829f, 0.99993f, 0.999949f, 0.999952f, 0.999964f, 0.99997f, 0.999957f, 0.999973f, 0.999978f, 0.999969f, 0.999965f, 0.999976f, 0.999972f, 0.999972f, 0.999975f}
},
{
{0.837568f, 0.736764f, 0.709849f, 0.705015f, 0.710682f, 0.722521f, 0.737955f, 0.755885f, 0.775532f, 0.796539f, 0.817642f, 0.839382f, 0.861295f, 0.883276f, 0.90439f, 0.923577f},
{0.851897f, 0.758842f, 0.734871f, 0.73241f, 0.739817f, 0.753067f, 0.769543f, 0.787812f, 0.807201f, 0.827387f, 0.847468f, 0.867395f, 0.887248f, 0.905785f, 0.92365f, 0.939144f},
{0.866683f, 0.782236f, 0.762028f, 0.761779f, 0.771356f, 0.785082f, 0.802074f, 0.820286f, 0.839085f, 0.857472f, 0.875618f, 0.893432f, 0.909954f, 0.925939f, 0.940416f, 0.953019f},
{0.881964f, 0.80704f, 0.7908f, 0.792982f, 0.803513f, 0.81806f, 0.834788f, 0.851956f, 0.868991f, 0.886045f, 0.901641f, 0.916558f, 0.930315f, 0.943545f, 0.954579f, 0.964278f},
{0.89721f, 0.832614f, 0.820307f, 0.824408f, 0.835767f, 0.850102f, 0.865923f, 0.881883f, 0.896692f, 0.911183f, 0.924448f, 0.936468f, 0.947692f, 0.957893f, 0.966472f, 0.97384f},
{0.91236f, 0.858027f, 0.849325f, 0.855072f, 0.866327f, 0.880159f, 0.894367f, 0.908095f, 0.921258f, 0.932981f, 0.943819f, 0.953623f, 0.962047f, 0.969655f, 0.976175f, 0.981335f},
{0.926661f, 0.881858f, 0.876134f, 0.882654f, 0.893459f, 0.906491f, 0.919034f, 0.930944f, 0.941911f, 0.951492f, 0.960017f, 0.967281f, 0.973553f, 0.979014f, 0.983618f, 0.987414f},
{0.939432f, 0.902195f, 0.898327f, 0.905337f, 0.916347f, 0.928334f, 0.939728f, 0.950069f, 0.958818f, 0.966544f, 0.97279f, 0.978102f, 0.982752f, 0.986367f, 0.989486f, 0.991995f},
{0.94915f, 0.916778f, 0.914804f, 0.923318f, 0.934978f, 0.946658f, 0.957017f, 0.965635f, 0.972581f, 0.978128f, 0.98279f, 0.986356f, 0.989299f, 0.991747f, 0.993668f, 0.995274f},
{0.954756f, 0.924187f, 0.925547f, 0.937439f, 0.950997f, 0.962317f, 0.971588f, 0.978375f, 0.983398f, 0.987116f, 0.99004f, 0.992146f, 0.993989f, 0.995358f, 0.996568f, 0.997328f},
{0.954147f, 0.925019f, 0.934841f, 0.952223f, 0.966499f, 0.976747f, 0.983714f, 0.988143f, 0.991088f, 0.993349f, 0.994842f, 0.996048f, 0.99692f, 0.997617f, 0.998236f, 0.998646f},
{0.946214f, 0.925955f, 0.94916f, 0.969447f, 0.981469f, 0.988432f, 0.992094f, 0.994611f, 0.995991f, 0.99696f, 0.997723f, 0.998246f, 0.998684f, 0.999001f, 0.99924f, 0.999398f},
{0.932942f, 0.939385f, 0.971199f, 0.986025f, 0.99254f, 0.995547f, 0.997144f, 0.998025f, 0.998559f, 0.998917f, 0.999172f, 0.999366f, 0.999509f, 0.999617f, 0.999716f, 0.99978f},
{0.928768f, 0.970817f, 0.990749f, 0.996191f, 0.998091f, 0.998875f, 0.999269f, 0.999488f, 0.999653f, 0.99972f, 0.999775f, 0.999821f, 0.999874f, 0.999901f, 0.99993f, 0.999951f},
{0.955373f, 0.994929f, 0.998696f, 0.999463f, 0.999746f, 0.999838f, 0.999911f, 0.999931f, 0.999944f, 0.999957f, 0.999974f, 0.999975f, 0.99998f, 0.999981f, 0.99999f, 0.999995f},
{0.991732f, 0.999822f, 0.999925f, 0.999948f, 0.999952f, 0.999963f, 0.99997f, 0.999956f, 0.999973f, 0.999978f, 0.999969f, 0.999965f, 0.999976f, 0.999972f, 0.999972f, 0.999975f}
},
{
{0.85191f, 0.752165f, 0.721625f, 0.713215f, 0.715498f, 0.724355f, 0.737179f, 0.752576f, 0.77016f, 0.788946f, 0.808239f, 0.828107f, 0.84855f, 0.868878f, 0.88846f, 0.906357f},
{0.865727f, 0.774365f, 0.747303f, 0.741452f, 0.745659f, 0.755961f, 0.76993f, 0.785771f, 0.803074f, 0.82141f, 0.839566f, 0.857874f, 0.876447f, 0.893873f, 0.910485f, 0.92501f},
{0.879868f, 0.797708f, 0.774755f, 0.771317f, 0.777804f, 0.788724f, 0.803228f, 0.8192f, 0.836097f, 0.852658f, 0.869432f, 0.885904f, 0.901257f, 0.916297f, 0.929892f, 0.941638f},
{0.894244f, 0.821913f, 0.803222f, 0.802407f, 0.810018f, 0.8219f, 0.836243f, 0.851391f, 0.866821f, 0.882399f, 0.89684f, 0.91055f, 0.923487f, 0.935716f, 0.946383f, 0.955528f},
{0.908373f, 0.846412f, 0.831867f, 0.833086f, 0.841702f, 0.853661f, 0.867427f, 0.881556f, 0.894904f, 0.908275f, 0.920452f, 0.931773f, 0.942417f, 0.952063f, 0.960263f, 0.967193f},
{0.92214f, 0.870102f, 0.859242f, 0.862387f, 0.871067f, 0.882995f, 0.895399f, 0.90759f, 0.919726f, 0.930629f, 0.940753f, 0.950036f, 0.958083f, 0.965459f, 0.971662f, 0.976646f},
{0.934798f, 0.891635f, 0.883776f, 0.887833f, 0.89659f, 0.90792f, 0.919242f, 0.93025f, 0.940464f, 0.949541f, 0.957803f, 0.964716f, 0.970839f, 0.976081f, 0.980542f, 0.984205f},
{0.945751f, 0.909202f, 0.903245f, 0.908314f, 0.917707f, 0.928643f, 0.939202f, 0.949014f, 0.95737f, 0.965008f, 0.971122f, 0.976303f, 0.980901f, 0.984408f, 0.98755f, 0.989931f},
{0.953568f, 0.920956f, 0.917039f, 0.92407f, 0.934846f, 0.946049f, 0.956046f, 0.964541f, 0.97153f, 0.977085f, 0.981669f, 0.985233f, 0.988217f, 0.990532f, 0.992517f, 0.994095f},
{0.95738f, 0.925791f, 0.925588f, 0.936673f, 0.949962f, 0.961212f, 0.970718f, 0.977523f, 0.98271f, 0.986362f, 0.989429f, 0.991495f, 0.993414f, 0.994776f, 0.995943f, 0.996728f},
{0.955269f, 0.924717f, 0.933603f, 0.950835f, 0.965321f, 0.975741f, 0.983004f, 0.987605f, 0.990657f, 0.993001f, 0.994559f, 0.995741f, 0.99661f, 0.997318f, 0.997923f, 0.998364f},
{0.946206f, 0.924639f, 0.947637f, 0.968275f, 0.980654f, 0.987918f, 0.991721f, 0.994359f, 0.995761f, 0.996839f, 0.997585f, 0.998139f, 0.998558f, 0.998847f, 0.999114f, 0.999243f},
{0.93236f, 0.938071f, 0.970254f, 0.985425f, 0.992197f, 0.995335f, 0.997029f, 0.997938f, 0.998507f, 0.998883f, 0.999142f, 0.999319f, 0.999465f, 0.999566f, 0.999677f, 0.999732f},
{0.928146f, 0.970182f, 0.990407f, 0.996019f, 0.997988f, 0.998821f, 0.99923f, 0.999469f, 0.99964f, 0.999708f, 0.999764f, 0.999811f, 0.999852f, 0.999895f, 0.999915f, 0.999942f},
{0.955102f, 0.994825f, 0.998663f, 0.999436f, 0.999734f, 0.999831f, 0.99991f, 0.999931f, 0.999941f, 0.999956f, 0.999968f, 0.999977f, 0.999979f, 0.999978f, 0.999989f, 0.999994f},
{0.991717f, 0.999819f, 0.999924f, 0.999948f, 0.999952f, 0.999963f, 0.99997f, 0.999956f, 0.999973f, 0.999978f, 0.999969f, 0.999965f, 0.999976f, 0.999972f, 0.999972f, 0.999975f}
},
{
{0.862765f, 0.764131f, 0.730767f, 0.71916f, 0.718559f, 0.724679f, 0.734864f, 0.747932f, 0.763527f, 0.780125f, 0.797611f, 0.815649f, 0.834437f, 0.853295f, 0.871492f, 0.888073f},
{0.876161f, 0.786441f, 0.7568f, 0.748214f, 0.749576f, 0.757164f, 0.768726f, 0.782487f, 0.797808f, 0.814241f, 0.830614f, 0.847528f, 0.864641f, 0.880858f, 0.896205f, 0.909985f},
{0.889704f, 0.809539f, 0.784458f, 0.77839f, 0.78223f, 0.790624f, 0.802965f, 0.816864f, 0.831972f, 0.846996f, 0.862222f, 0.87733f, 0.891487f, 0.905617f, 0.918321f, 0.9293f},
{0.903333f, 0.833197f, 0.812552f, 0.809429f, 0.81449f, 0.824023f, 0.836431f, 0.849617f, 0.863587f, 0.877736f, 0.890918f, 0.903733f, 0.915767f, 0.927275f, 0.937303f, 0.945977f},
{0.916547f, 0.856672f, 0.840394f, 0.839349f, 0.845756f, 0.855676f, 0.867619f, 0.880224f, 0.892195f, 0.904545f, 0.915742f, 0.926409f, 0.936397f, 0.94549f, 0.953309f, 0.960093f},
{0.929187f, 0.878868f, 0.866405f, 0.867496f, 0.874109f, 0.884379f, 0.895274f, 0.906445f, 0.917646f, 0.927798f, 0.937218f, 0.945975f, 0.953684f, 0.960716f, 0.966682f, 0.971462f},
{0.940571f, 0.898566f, 0.889132f, 0.891334f, 0.898481f, 0.908476f, 0.918869f, 0.929053f, 0.938655f, 0.947249f, 0.955117f, 0.961841f, 0.967646f, 0.972712f, 0.977213f, 0.980699f},
{0.950149f, 0.914091f, 0.906597f, 0.910123f, 0.918333f, 0.928365f, 0.938377f, 0.947729f, 0.955746f, 0.963175f, 0.969199f, 0.974311f, 0.978849f, 0.982284f, 0.98537f, 0.987785f},
{0.956598f, 0.923775f, 0.918477f, 0.924327f, 0.93444f, 0.945162f, 0.95504f, 0.963363f, 0.970294f, 0.975916f, 0.980461f, 0.983947f, 0.986924f, 0.989259f, 0.991279f, 0.992857f},
{0.959154f, 0.926795f, 0.925535f, 0.935964f, 0.94903f, 0.960231f, 0.969742f, 0.976657f, 0.981907f, 0.985621f, 0.988734f, 0.990863f, 0.992689f, 0.994138f, 0.995236f, 0.996008f},
{0.955995f, 0.924468f, 0.932689f, 0.94973f, 0.964333f, 0.974929f, 0.982326f, 0.98703f, 0.990202f, 0.992629f, 0.994181f, 0.995418f, 0.996343f, 0.996968f, 0.997568f, 0.997996f},
{0.946252f, 0.923783f, 0.946605f, 0.967366f, 0.97998f, 0.987421f, 0.991385f, 0.994093f, 0.995561f, 0.996672f, 0.997433f, 0.998012f, 0.998422f, 0.998715f, 0.998984f, 0.999102f},
{0.932012f, 0.937248f, 0.969594f, 0.984982f, 0.991926f, 0.995169f, 0.996916f, 0.997861f, 0.998446f, 0.998839f, 0.999085f, 0.999278f, 0.999434f, 0.999522f, 0.999622f, 0.999682f},
{0.92778f, 0.969808f, 0.990195f, 0.995894f, 0.997922f, 0.998769f, 0.999198f, 0.999453f, 0.999629f, 0.999694f, 0.999755f, 0.999796f, 0.999837f, 0.999883f, 0.999902f, 0.999933f},
{0.954945f, 0.994752f, 0.99863f, 0.999412f, 0.999724f, 0.999824f, 0.999909f, 0.999931f, 0.999941f, 0.999956f, 0.999967f, 0.999976f, 0.999978f, 0.999976f, 0.999985f, 0.999991f},
{0.991706f, 0.999817f, 0.999923f, 0.999948f, 0.999952f, 0.999963f, 0.99997f, 0.999956f, 0.999973f, 0.999978f, 0.999969f, 0.999965f, 0.999976f, 0.999972f, 0.999972f, 0.999974f}
},
{
{0.87117f, 0.773478f, 0.737746f, 0.723257f, 0.72006f, 0.723647f, 0.73159f, 0.742279f, 0.755881f, 0.77029f, 0.786075f, 0.802347f, 0.819384f, 0.836806f, 0.853569f, 0.869326f},
{0.884158f, 0.795796f, 0.764103f, 0.752993f, 0.751808f, 0.757047f, 0.766419f, 0.778018f, 0.791387f, 0.806107f, 0.820874f, 0.836148f, 0.851992f, 0.867051f, 0.881087f, 0.894105f},
{0.897193f, 0.818653f, 0.791824f, 0.783455f, 0.784951f, 0.791205f, 0.801575f, 0.813517f, 0.826859f, 0.840245f, 0.854066f, 0.867971f, 0.881108f, 0.894085f, 0.905971f, 0.916447f},
{0.910219f, 0.841752f, 0.819608f, 0.814407f, 0.817329f, 0.824996f, 0.835448f, 0.846951f, 0.85955f, 0.872219f, 0.884421f, 0.896327f, 0.907341f, 0.918095f, 0.927445f, 0.935841f},
{0.922657f, 0.864426f, 0.846726f, 0.843736f, 0.848332f, 0.8565f, 0.866924f, 0.878112f, 0.888836f, 0.900162f, 0.910612f, 0.920476f, 0.929843f, 0.93849f, 0.945881f, 0.952372f},
{0.934391f, 0.885423f, 0.871598f, 0.870985f, 0.875979f, 0.884842f, 0.894438f, 0.904629f, 0.914874f, 0.924299f, 0.933131f, 0.94145f, 0.948769f, 0.955549f, 0.961276f, 0.965885f},
{0.944813f, 0.903683f, 0.892907f, 0.893655f, 0.899506f, 0.908364f, 0.917845f, 0.927402f, 0.936392f, 0.944634f, 0.952183f, 0.958657f, 0.964227f, 0.969092f, 0.973609f, 0.976964f},
{0.953322f, 0.917611f, 0.908865f, 0.911234f, 0.918508f, 0.927746f, 0.937292f, 0.946151f, 0.954015f, 0.961192f, 0.967056f, 0.972082f, 0.97663f, 0.979991f, 0.982995f, 0.985403f},
{0.958765f, 0.92578f, 0.919436f, 0.924414f, 0.933929f, 0.944303f, 0.953903f, 0.962076f, 0.968977f, 0.97452f, 0.979117f, 0.982571f, 0.985534f, 0.987818f, 0.989918f, 0.991516f},
{0.960459f, 0.927539f, 0.925494f, 0.93535f, 0.948172f, 0.95928f, 0.968789f, 0.975776f, 0.980982f, 0.984789f, 0.987955f, 0.990108f, 0.991955f, 0.993384f, 0.994493f, 0.995297f},
{0.956553f, 0.924392f, 0.932135f, 0.948955f, 0.963575f, 0.974228f, 0.981718f, 0.986488f, 0.989738f, 0.992198f, 0.993817f, 0.995048f, 0.996016f, 0.996585f, 0.997211f, 0.997639f},
{0.946362f, 0.923322f, 0.945985f, 0.966732f, 0.979478f, 0.987009f, 0.991067f, 0.993829f, 0.995364f, 0.996483f, 0.997253f, 0.997861f, 0.998278f, 0.998575f, 0.998839f, 0.998956f},
{0.931879f, 0.936811f, 0.969181f, 0.984665f, 0.991706f, 0.995039f, 0.996801f, 0.997769f, 0.998383f, 0.998789f, 0.99904f, 0.999225f, 0.99938f, 0.999481f, 0.999566f, 0.999629f},
{0.927626f, 0.969587f, 0.990047f, 0.995803f, 0.997869f, 0.998725f, 0.99917f, 0.999432f, 0.999612f, 0.999677f, 0.999743f, 0.999784f, 0.99983f, 0.999869f, 0.999892f, 0.999909f},
{0.954886f, 0.994722f, 0.998604f, 0.999405f, 0.999718f, 0.999819f, 0.999901f, 0.999927f, 0.99994f, 0.999955f, 0.999963f, 0.999973f, 0.999975f, 0.999975f, 0.999984f, 0.999989f},
{0.991701f, 0.999816f, 0.999923f, 0.999948f, 0.999952f, 0.999962f, 0.99997f, 0.999956f, 0.999973f, 0.999978f, 0.999969f, 0.999966f, 0.999976f, 0.999972f, 0.999971f, 0.999974f}
},
{
{0.877747f, 0.780883f, 0.742996f, 0.725979f, 0.720276f, 0.721584f, 0.727147f, 0.73577f, 0.74746f, 0.759975f, 0.773773f, 0.78838f, 0.803892f, 0.819738f, 0.835206f, 0.849861f},
{0.890437f, 0.803154f, 0.769619f, 0.756273f, 0.752772f, 0.75586f, 0.763174f, 0.772737f, 0.784325f, 0.797186f, 0.810509f, 0.82418f, 0.838674f, 0.852726f, 0.865502f, 0.877691f},
{0.903016f, 0.825754f, 0.797396f, 0.786968f, 0.7864f, 0.790698f, 0.799182f, 0.809329f, 0.820902f, 0.832886f, 0.845313f, 0.858026f, 0.869922f, 0.881835f, 0.893135f, 0.902931f},
{0.915517f, 0.848335f, 0.824852f, 0.817858f, 0.818912f, 0.824792f, 0.833618f, 0.843552f, 0.854758f, 0.86613f, 0.877177f, 0.888174f, 0.89831f, 0.908404f, 0.917352f, 0.925143f},
{0.927334f, 0.870321f, 0.851424f, 0.846779f, 0.849725f, 0.856368f, 0.865377f, 0.875324f, 0.88497f, 0.895235f, 0.905f, 0.914069f, 0.922817f, 0.931072f, 0.938056f, 0.944178f},
{0.938346f, 0.890327f, 0.875427f, 0.873281f, 0.876998f, 0.884557f, 0.893063f, 0.9022f, 0.911707f, 0.920452f, 0.928671f, 0.936515f, 0.943604f, 0.949998f, 0.955491f, 0.959952f},
{0.947986f, 0.907455f, 0.895621f, 0.895174f, 0.899899f, 0.907895f, 0.916439f, 0.925357f, 0.933864f, 0.941756f, 0.948879f, 0.955232f, 0.960495f, 0.965329f, 0.96974f, 0.972912f},
{0.955697f, 0.920194f, 0.910511f, 0.911946f, 0.918341f, 0.926907f, 0.936032f, 0.94445f, 0.952065f, 0.95907f, 0.964801f, 0.969697f, 0.974137f, 0.977583f, 0.980525f, 0.982781f},
{0.960396f, 0.927293f, 0.92013f, 0.924394f, 0.933401f, 0.943429f, 0.952746f, 0.960788f, 0.967585f, 0.973104f, 0.977618f, 0.981119f, 0.984027f, 0.986349f, 0.988453f, 0.989993f},
{0.961426f, 0.928168f, 0.925529f, 0.934943f, 0.947474f, 0.958464f, 0.967918f, 0.974878f, 0.980124f, 0.983917f, 0.987153f, 0.989318f, 0.991151f, 0.992612f, 0.99371f, 0.994486f},
{0.957033f, 0.924479f, 0.931826f, 0.948434f, 0.962967f, 0.973631f, 0.981151f, 0.985945f, 0.989286f, 0.991776f, 0.993382f, 0.994624f, 0.995601f, 0.996179f, 0.996832f, 0.997288f},
{0.946532f, 0.923184f, 0.945647f, 0.966362f, 0.979097f, 0.986728f, 0.990816f, 0.993564f, 0.995129f, 0.996286f, 0.997077f, 0.997686f, 0.998115f, 0.998438f, 0.998684f, 0.998786f},
{0.931906f, 0.936671f, 0.968964f, 0.984479f, 0.991552f, 0.994907f, 0.996694f, 0.997677f, 0.998291f, 0.998723f, 0.998984f, 0.999165f, 0.99933f, 0.999433f, 0.999522f, 0.99958f},
{0.927624f, 0.969526f, 0.989973f, 0.995746f, 0.997823f, 0.998688f, 0.999141f, 0.999415f, 0.999588f, 0.999669f, 0.999731f, 0.999762f, 0.999818f, 0.999851f, 0.999879f, 0.999897f},
{0.954887f, 0.994707f, 0.998592f, 0.999394f, 0.999713f, 0.999817f, 0.999897f, 0.999924f, 0.999939f, 0.999954f, 0.999962f, 0.999971f, 0.999976f, 0.999973f, 0.999982f, 0.999988f},
{0.991702f, 0.999815f, 0.999923f, 0.999947f, 0.999952f, 0.999962f, 0.99997f, 0.999956f, 0.999973f, 0.999978f, 0.999969f, 0.999966f, 0.999976f, 0.999972f, 0.999971f, 0.999974f}
},
{
{0.882977f, 0.78669f, 0.746894f, 0.727572f, 0.719627f, 0.718709f, 0.722092f, 0.728754f, 0.738316f, 0.749029f, 0.761128f, 0.774097f, 0.787947f, 0.802312f, 0.816624f, 0.830502f},
{0.895358f, 0.808916f, 0.773799f, 0.7584f, 0.752786f, 0.753903f, 0.759079f, 0.766832f, 0.776629f, 0.787813f, 0.799613f, 0.811772f, 0.824958f, 0.83777f, 0.849522f, 0.860857f},
{0.907601f, 0.83135f, 0.801585f, 0.789286f, 0.786795f, 0.789243f, 0.795902f, 0.804415f, 0.814463f, 0.825046f, 0.836104f, 0.847556f, 0.858515f, 0.869251f, 0.879759f, 0.88891f},
{0.919673f, 0.853465f, 0.828784f, 0.820179f, 0.819573f, 0.823793f, 0.831027f, 0.83955f, 0.849394f, 0.859493f, 0.869622f, 0.879553f, 0.888914f, 0.898326f, 0.906568f, 0.914022f},
{0.930956f, 0.874844f, 0.854905f, 0.848788f, 0.85031f, 0.855533f, 0.863259f, 0.871986f, 0.880561f, 0.889948f, 0.898834f, 0.907374f, 0.915474f, 0.923353f, 0.929711f, 0.935547f},
{0.941411f, 0.89408f, 0.87826f, 0.874849f, 0.877281f, 0.883697f, 0.891194f, 0.89953f, 0.90819f, 0.916301f, 0.923914f, 0.931342f, 0.938026f, 0.944281f, 0.949469f, 0.953744f},
{0.950435f, 0.910324f, 0.897619f, 0.896182f, 0.899914f, 0.906985f, 0.914796f, 0.923094f, 0.931078f, 0.938664f, 0.94546f, 0.951465f, 0.956487f, 0.961276f, 0.965436f, 0.968771f},
{0.957518f, 0.922155f, 0.911715f, 0.912334f, 0.918047f, 0.92595f, 0.934652f, 0.942688f, 0.949951f, 0.95679f, 0.962383f, 0.967156f, 0.971493f, 0.974836f, 0.977894f, 0.980128f},
{0.961658f, 0.928481f, 0.920719f, 0.924333f, 0.932857f, 0.942504f, 0.951604f, 0.959438f, 0.966116f, 0.971594f, 0.976043f, 0.979541f, 0.98248f, 0.984776f, 0.986909f, 0.988461f},
{0.962219f, 0.928767f, 0.925655f, 0.934658f, 0.946905f, 0.957694f, 0.967021f, 0.973998f, 0.979208f, 0.983029f, 0.986244f, 0.988426f, 0.990309f, 0.991799f, 0.992883f, 0.993719f},
{0.957482f, 0.924727f, 0.931764f, 0.948101f, 0.962494f, 0.973132f, 0.980627f, 0.985422f, 0.988838f, 0.991293f, 0.992952f, 0.994155f, 0.995162f, 0.995793f, 0.996428f, 0.996872f},
{0.946771f, 0.923294f, 0.945555f, 0.96612f, 0.978828f, 0.986438f, 0.990567f, 0.993354f, 0.994904f, 0.99609f, 0.99689f, 0.997514f, 0.997931f, 0.998266f, 0.998509f, 0.998636f},
{0.932051f, 0.936765f, 0.968918f, 0.984371f, 0.991426f, 0.994804f, 0.996598f, 0.997592f, 0.998227f, 0.998646f, 0.998923f, 0.999101f, 0.999271f, 0.999381f, 0.999454f, 0.999517f},
{0.927743f, 0.969565f, 0.98996f, 0.995715f, 0.997791f, 0.998656f, 0.999114f, 0.999399f, 0.999573f, 0.999649f, 0.999718f, 0.999748f, 0.999803f, 0.999836f, 0.999861f, 0.999883f},
{0.954938f, 0.99471f, 0.99859f, 0.99939f, 0.999708f, 0.999814f, 0.999894f, 0.999923f, 0.999937f, 0.999951f, 0.999959f, 0.999968f, 0.999973f, 0.999971f, 0.999978f, 0.999984f},
{0.991707f, 0.999816f, 0.999923f, 0.999947f, 0.999951f, 0.999962f, 0.99997f, 0.999956f, 0.999973f, 0.999978f, 0.999969f, 0.999966f, 0.999976f, 0.999972f, 0.999971f, 0.999974f}
},
{
{0.88718f, 0.791265f, 0.749686f, 0.728275f, 0.718228f, 0.715162f, 0.716462f, 0.721278f, 0.728961f, 0.737937f, 0.748332f, 0.759736f, 0.771954f, 0.784898f, 0.797953f, 0.810917f},
{0.899343f, 0.813459f, 0.776874f, 0.759595f, 0.751982f, 0.751167f, 0.754454f, 0.760382f, 0.768506f, 0.778075f, 0.788391f, 0.799165f, 0.810982f, 0.82258f, 0.833486f, 0.843918f},
{0.911236f, 0.835741f, 0.804707f, 0.790707f, 0.786512f, 0.787057f, 0.792158f, 0.798957f, 0.807525f, 0.81683f, 0.82656f, 0.836814f, 0.846637f, 0.856566f, 0.866175f, 0.874829f},
{0.922975f, 0.857485f, 0.831744f, 0.821637f, 0.819443f, 0.822148f, 0.82795f, 0.83509f, 0.843705f, 0.852616f, 0.861632f, 0.87066f, 0.879052f, 0.887896f, 0.895586f, 0.902597f},
{0.933824f, 0.878354f, 0.857478f, 0.850105f, 0.850241f, 0.854179f, 0.860704f, 0.868262f, 0.875808f, 0.884313f, 0.892511f, 0.900266f, 0.907834f, 0.915249f, 0.921143f, 0.926654f},
{0.943829f, 0.897002f, 0.880335f, 0.87583f, 0.877105f, 0.882524f, 0.889055f, 0.896473f, 0.904396f, 0.911913f, 0.918998f, 0.925969f, 0.932316f, 0.938166f, 0.943144f, 0.947488f},
{0.95235f, 0.912517f, 0.899088f, 0.896743f, 0.899543f, 0.90584f, 0.91296f, 0.920684f, 0.928102f, 0.935284f, 0.941791f, 0.947552f, 0.952356f, 0.956925f, 0.961032f, 0.964383f},
{0.958953f, 0.923707f, 0.912614f, 0.912528f, 0.917563f, 0.924883f, 0.933114f, 0.940735f, 0.947724f, 0.95444f, 0.959839f, 0.964442f, 0.968741f, 0.972099f, 0.97511f, 0.977389f},
{0.962657f, 0.929478f, 0.92119f, 0.924276f, 0.932297f, 0.941605f, 0.95047f, 0.958f, 0.964579f, 0.969996f, 0.974393f, 0.977923f, 0.980772f, 0.983108f, 0.985188f, 0.986875f},
{0.96288f, 0.929335f, 0.925846f, 0.93448f, 0.946391f, 0.956989f, 0.966176f, 0.973082f, 0.978247f, 0.982056f, 0.98529f, 0.987511f, 0.989395f, 0.990923f, 0.992051f, 0.992859f},
{0.957907f, 0.925126f, 0.931868f, 0.947943f, 0.962145f, 0.972694f, 0.980115f, 0.984894f, 0.988325f, 0.990804f, 0.992483f, 0.993697f, 0.994771f, 0.995353f, 0.996007f, 0.996485f},
{0.947059f, 0.923637f, 0.945659f, 0.966036f, 0.978634f, 0.986174f, 0.990319f, 0.993109f, 0.99469f, 0.995891f, 0.996685f, 0.997324f, 0.997742f, 0.998093f, 0.998319f, 0.99846f},
{0.932316f, 0.937019f, 0.968993f, 0.98433f, 0.991339f, 0.994711f, 0.996512f, 0.997512f, 0.998152f, 0.998564f, 0.998851f, 0.999032f, 0.999202f, 0.999314f, 0.999398f, 0.999459f},
{0.927979f, 0.969703f, 0.989979f, 0.995709f, 0.997768f, 0.998636f, 0.999094f, 0.999377f, 0.999553f, 0.999636f, 0.999704f, 0.999729f, 0.999786f, 0.999821f, 0.999844f, 0.999872f},
{0.955042f, 0.994732f, 0.998592f, 0.999391f, 0.999705f, 0.999812f, 0.999893f, 0.999918f, 0.999934f, 0.99995f, 0.999956f, 0.999966f, 0.999973f, 0.999969f, 0.999977f, 0.999983f},
{0.991714f, 0.999817f, 0.999923f, 0.999947f, 0.999951f, 0.999962f, 0.999969f, 0.999956f, 0.999973f, 0.999978f, 0.999969f, 0.999966f, 0.999976f, 0.999972f, 0.999971f, 0.999974f}
},
{
{0.890624f, 0.794913f, 0.751595f, 0.728315f, 0.716165f, 0.711259f, 0.710489f, 0.713487f, 0.719264f, 0.72661f, 0.735377f, 0.745399f, 0.755902f, 0.767561f, 0.779444f, 0.791432f},
{0.902561f, 0.817053f, 0.779069f, 0.759979f, 0.750559f, 0.747973f, 0.749392f, 0.753796f, 0.760216f, 0.768113f, 0.776937f, 0.786565f, 0.797039f, 0.80733f, 0.817108f, 0.826796f},
{0.914196f, 0.839209f, 0.806955f, 0.791422f, 0.785544f, 0.784497f, 0.787997f, 0.793195f, 0.800421f, 0.808331f, 0.816868f, 0.826063f, 0.83466f, 0.843702f, 0.852359f, 0.860494f},
{0.925655f, 0.860665f, 0.83391f, 0.822388f, 0.818834f, 0.820022f, 0.824499f, 0.830276f, 0.837635f, 0.845529f, 0.853455f, 0.861507f, 0.869202f, 0.877202f, 0.884398f, 0.891023f},
{0.936108f, 0.881133f, 0.85936f, 0.850771f, 0.849623f, 0.852478f, 0.857742f, 0.864299f, 0.870899f, 0.878544f, 0.8859f, 0.893041f, 0.900033f, 0.906907f, 0.91244f, 0.917751f},
{0.945738f, 0.899317f, 0.881803f, 0.876366f, 0.876596f, 0.880928f, 0.886643f, 0.893232f, 0.90038f, 0.907277f, 0.913822f, 0.920371f, 0.926364f, 0.931915f, 0.936756f, 0.94087f},
{0.953892f, 0.914299f, 0.900195f, 0.897005f, 0.89897f, 0.904506f, 0.910921f, 0.918114f, 0.92501f, 0.931694f, 0.937925f, 0.943503f, 0.94808f, 0.952466f, 0.956531f, 0.959867f},
{0.960106f, 0.924951f, 0.913294f, 0.912564f, 0.917012f, 0.923719f, 0.931536f, 0.93876f, 0.94542f, 0.951927f, 0.957144f, 0.961631f, 0.965882f, 0.969256f, 0.972213f, 0.974584f},
{0.963489f, 0.930305f, 0.92158f, 0.924196f, 0.931797f, 0.940695f, 0.949222f, 0.956532f, 0.963004f, 0.968356f, 0.972664f, 0.976165f, 0.979009f, 0.981425f, 0.983548f, 0.985218f},
{0.963473f, 0.92992f, 0.926131f, 0.93442f, 0.946014f, 0.956334f, 0.965333f, 0.972178f, 0.977249f, 0.981065f, 0.984335f, 0.986485f, 0.9884f, 0.98998f, 0.991134f, 0.991982f},
{0.958326f, 0.925614f, 0.93211f, 0.947913f, 0.961902f, 0.972276f, 0.979642f, 0.984396f, 0.987816f, 0.990302f, 0.992003f, 0.993238f, 0.99431f, 0.994931f, 0.995598f, 0.996026f},
{0.947422f, 0.924138f, 0.945912f, 0.966055f, 0.978472f, 0.985964f, 0.990089f, 0.992852f, 0.99445f, 0.995661f, 0.9965f, 0.997122f, 0.99754f, 0.997916f, 0.998136f, 0.998282f},
{0.932675f, 0.937446f, 0.969148f, 0.984324f, 0.9913f, 0.994631f, 0.996427f, 0.997433f, 0.998081f, 0.998488f, 0.998776f, 0.998951f, 0.99912f, 0.999257f, 0.999339f, 0.9994f},
{0.928284f, 0.969893f, 0.990039f, 0.995709f, 0.997756f, 0.998618f, 0.999072f, 0.999362f, 0.999535f, 0.999619f, 0.999689f, 0.999712f, 0.999778f, 0.999807f, 0.99983f, 0.999854f},
{0.955178f, 0.994767f, 0.998607f, 0.999394f, 0.9997f, 0.999809f, 0.999889f, 0.999916f, 0.999933f, 0.999949f, 0.999952f, 0.999963f, 0.999969f, 0.999967f, 0.999977f, 0.999982f},
{0.991724f, 0.999818f, 0.999923f, 0.999947f, 0.999951f, 0.999962f, 0.999969f, 0.999955f, 0.999973f, 0.999978f, 0.999969f, 0.999966f, 0.999976f, 0.999971f, 0.999971f, 0.999974f}
},
{
{0.893434f, 0.797814f, 0.752922f, 0.727812f, 0.713735f, 0.706931f, 0.704372f, 0.705642f, 0.709603f, 0.715397f, 0.722403f, 0.731039f, 0.739981f, 0.750329f, 0.761289f, 0.772331f},
{0.905203f, 0.819884f, 0.780557f, 0.759869f, 0.748764f, 0.74445f, 0.744254f, 0.74695f, 0.751782f, 0.758117f, 0.765638f, 0.773848f, 0.783125f, 0.79231f, 0.801129f, 0.810013f},
{0.916605f, 0.841987f, 0.808558f, 0.791604f, 0.78415f, 0.781576f, 0.783488f, 0.787291f, 0.793066f, 0.79974f, 0.807069f, 0.815146f, 0.822749f, 0.830759f, 0.838712f, 0.846306f},
{0.927836f, 0.863206f, 0.835518f, 0.822659f, 0.817761f, 0.81748f, 0.820596f, 0.825366f, 0.831471f, 0.838282f, 0.845202f, 0.852335f, 0.859172f, 0.866653f, 0.873016f, 0.879285f},
{0.938008f, 0.883324f, 0.860708f, 0.850965f, 0.848699f, 0.850403f, 0.854568f, 0.86014f, 0.865852f, 0.872584f, 0.879233f, 0.885634f, 0.892101f, 0.898517f, 0.90361f, 0.908631f},
{0.947304f, 0.901111f, 0.882892f, 0.876543f, 0.875772f, 0.879161f, 0.883957f, 0.889877f, 0.896303f, 0.902553f, 0.908637f, 0.91475f, 0.920323f, 0.925431f, 0.930243f, 0.934371f},
{0.955132f, 0.915713f, 0.900974f, 0.896986f, 0.898208f, 0.903074f, 0.908749f, 0.915397f, 0.921827f, 0.928078f, 0.934038f, 0.939215f, 0.94377f, 0.947926f, 0.951965f, 0.955321f},
{0.961061f, 0.925986f, 0.913823f, 0.912456f, 0.916355f, 0.9225f, 0.929826f, 0.936681f, 0.943031f, 0.94939f, 0.954417f, 0.958823f, 0.962909f, 0.96627f, 0.969289f, 0.971649f},
{0.964207f, 0.931075f, 0.921945f, 0.924141f, 0.931276f, 0.939751f, 0.947996f, 0.955015f, 0.961373f, 0.96664f, 0.970834f, 0.974377f, 0.977259f, 0.979673f, 0.981779f, 0.983545f},
{0.963978f, 0.930519f, 0.926508f, 0.934408f, 0.945704f, 0.955672f, 0.964484f, 0.971222f, 0.976174f, 0.980013f, 0.983308f, 0.985497f, 0.987412f, 0.989029f, 0.99017f, 0.991111f},
{0.958762f, 0.926217f, 0.932511f, 0.94797f, 0.961684f, 0.971881f, 0.979163f, 0.983856f, 0.987279f, 0.989795f, 0.991492f, 0.992756f, 0.993819f, 0.994449f, 0.99516f, 0.995594f},
{0.947832f, 0.924771f, 0.946249f, 0.966141f, 0.978386f, 0.985761f, 0.989856f, 0.992601f, 0.994222f, 0.995427f, 0.996276f, 0.996921f, 0.997338f, 0.997714f, 0.997952f, 0.998097f},
{0.933114f, 0.93796f, 0.969371f, 0.984371f, 0.991257f, 0.994548f, 0.996345f, 0.997353f, 0.997996f, 0.998405f, 0.998696f, 0.998877f, 0.999051f, 0.999192f, 0.999279f, 0.999336f},
{0.928676f, 0.970165f, 0.990118f, 0.995726f, 0.997746f, 0.998599f, 0.99905f, 0.999336f, 0.999517f, 0.999599f, 0.999669f, 0.999686f, 0.999762f, 0.999791f, 0.999811f, 0.999834f},
{0.955348f, 0.994803f, 0.998615f, 0.999396f, 0.999697f, 0.999803f, 0.999889f, 0.999915f, 0.999931f, 0.999947f, 0.999949f, 0.999962f, 0.999966f, 0.999967f, 0.99997f, 0.999978f},
{0.991734f, 0.999819f, 0.999923f, 0.999947f, 0.999951f, 0.999962f, 0.999969f, 0.999955f, 0.999973f, 0.999978f, 0.999969f, 0.999966f, 0.999976f, 0.999971f, 0.999971f, 0.999974f}
},
{
{0.895766f, 0.800041f, 0.753664f, 0.726898f, 0.711004f, 0.702437f, 0.698171f, 0.697751f, 0.70003f, 0.704347f, 0.7097f, 0.716982f, 0.724742f, 0.733595f, 0.743427f, 0.753685f},
{0.907349f, 0.822096f, 0.781567f, 0.75938f, 0.746575f, 0.74062f, 0.738894f, 0.73996f, 0.743312f, 0.748194f, 0.754427f, 0.761379f, 0.769242f, 0.777495f, 0.785436f, 0.793383f},
{0.918598f, 0.844123f, 0.809641f, 0.791319f, 0.7824f, 0.77837f, 0.778798f, 0.781282f, 0.785739f, 0.791183f, 0.797331f, 0.804284f, 0.810899f, 0.817841f, 0.825218f, 0.832207f},
{0.929631f, 0.865211f, 0.836575f, 0.822486f, 0.816343f, 0.814767f, 0.816643f, 0.820147f, 0.825207f, 0.831048f, 0.837014f, 0.843117f, 0.849265f, 0.855874f, 0.861713f, 0.86756f},
{0.939552f, 0.885097f, 0.861661f, 0.850918f, 0.847426f, 0.848121f, 0.851277f, 0.855917f, 0.860636f, 0.86656f, 0.872519f, 0.878149f, 0.884097f, 0.890198f, 0.894954f, 0.899522f},
{0.948613f, 0.902507f, 0.883647f, 0.876371f, 0.874718f, 0.877191f, 0.881224f, 0.886323f, 0.892109f, 0.897762f, 0.90331f, 0.90898f, 0.914114f, 0.919126f, 0.923574f, 0.927664f},
{0.956161f, 0.916811f, 0.901554f, 0.89681f, 0.897271f, 0.901427f, 0.906562f, 0.91262f, 0.918545f, 0.924355f, 0.929955f, 0.935019f, 0.939407f, 0.943388f, 0.947411f, 0.950763f},
{0.961875f, 0.926812f, 0.914214f, 0.912295f, 0.915596f, 0.921195f, 0.928058f, 0.93455f, 0.940557f, 0.946781f, 0.951559f, 0.955916f, 0.959969f, 0.963305f, 0.966318f, 0.96869f},
{0.964815f, 0.931745f, 0.922315f, 0.924067f, 0.930668f, 0.938737f, 0.946705f, 0.953519f, 0.959637f, 0.964868f, 0.969074f, 0.972498f, 0.975442f, 0.977914f, 0.980016f, 0.981782f},
{0.964467f, 0.931144f, 0.926877f, 0.934474f, 0.945292f, 0.955041f, 0.963646f, 0.970267f, 0.975109f, 0.978975f, 0.982244f, 0.984445f, 0.9864f, 0.988078f, 0.989237f, 0.990188f},
{0.959202f, 0.926855f, 0.932978f, 0.948112f, 0.961503f, 0.97153f, 0.978656f, 0.983336f, 0.986739f, 0.989265f, 0.990959f, 0.992223f, 0.993323f, 0.993972f, 0.994708f, 0.995183f},
{0.948301f, 0.925526f, 0.946736f, 0.966259f, 0.978299f, 0.985574f, 0.989635f, 0.992358f, 0.993987f, 0.995201f, 0.996059f, 0.996718f, 0.997147f, 0.997501f, 0.997776f, 0.997928f},
{0.933641f, 0.938601f, 0.969659f, 0.984442f, 0.991226f, 0.994473f, 0.996258f, 0.997281f, 0.997916f, 0.998332f, 0.998633f, 0.998808f, 0.998971f, 0.999132f, 0.999212f, 0.999281f},
{0.929114f, 0.970469f, 0.990208f, 0.995737f, 0.997744f, 0.99858f, 0.999031f, 0.999318f, 0.999502f, 0.99958f, 0.999644f, 0.999669f, 0.999741f, 0.999768f, 0.999797f, 0.999821f},
{0.955539f, 0.994859f, 0.998629f, 0.999398f, 0.999695f, 0.999801f, 0.999885f, 0.999914f, 0.999925f, 0.999945f, 0.999946f, 0.999959f, 0.999961f, 0.999964f, 0.999968f, 0.999974f},
{0.991748f, 0.99982f, 0.999924f, 0.999947f, 0.999951f, 0.999962f, 0.999969f, 0.999955f, 0.999973f, 0.999978f, 0.999969f, 0.999965f, 0.999976f, 0.999971f, 0.999971f, 0.999972f}
}
};
static const float table_ggx_glass_inv_E[16][16][16] = {
{
{0.467207f, 0.538927f, 0.574659f, 0.608772f, 0.642304f, 0.675257f, 0.707957f, 0.740158f, 0.771917f, 0.803155f, 0.83407f, 0.864431f, 0.894363f, 0.923674f, 0.952321f, 0.980283f},
{0.464609f, 0.544532f, 0.584937f, 0.623371f, 0.660449f, 0.696496f, 0.731308f, 0.764927f, 0.797233f, 0.82808f, 0.85774f, 0.885719f, 0.912446f, 0.937796f, 0.96165f, 0.984053f},
{0.461956f, 0.551493f, 0.597421f, 0.640579f, 0.681798f, 0.720813f, 0.757636f, 0.792069f, 0.824053f, 0.85368f, 0.881081f, 0.906327f, 0.929485f, 0.950494f, 0.969874f, 0.987302f},
{0.45894f, 0.559813f, 0.612552f, 0.661377f, 0.706645f, 0.748464f, 0.786586f, 0.820906f, 0.851626f, 0.879155f, 0.903579f, 0.925338f, 0.944554f, 0.961512f, 0.976562f, 0.989744f},
{0.456133f, 0.570329f, 0.631129f, 0.685976f, 0.73567f, 0.779491f, 0.817903f, 0.850987f, 0.879359f, 0.903643f, 0.924492f, 0.942345f, 0.957678f, 0.970785f, 0.982122f, 0.991754f},
{0.453071f, 0.583454f, 0.65385f, 0.715586f, 0.768731f, 0.813542f, 0.850635f, 0.881055f, 0.905815f, 0.926283f, 0.943045f, 0.957066f, 0.968633f, 0.9783f, 0.986587f, 0.993419f},
{0.451459f, 0.600348f, 0.681926f, 0.750265f, 0.805757f, 0.84933f, 0.883432f, 0.909636f, 0.929928f, 0.946092f, 0.958852f, 0.969084f, 0.977468f, 0.984297f, 0.990051f, 0.994624f},
{0.451195f, 0.62222f, 0.716361f, 0.789977f, 0.845362f, 0.885478f, 0.914407f, 0.935464f, 0.950656f, 0.962478f, 0.971595f, 0.978785f, 0.984267f, 0.988836f, 0.992629f, 0.995593f},
{0.454655f, 0.650514f, 0.757753f, 0.833856f, 0.8855f, 0.91928f, 0.941692f, 0.956897f, 0.967189f, 0.975121f, 0.981058f, 0.985686f, 0.9893f, 0.992086f, 0.99434f, 0.996262f},
{0.466375f, 0.687794f, 0.805606f, 0.879126f, 0.922795f, 0.948203f, 0.963606f, 0.97338f, 0.979543f, 0.984405f, 0.98786f, 0.990528f, 0.992651f, 0.994388f, 0.995646f, 0.996643f},
{0.494072f, 0.736034f, 0.857614f, 0.922007f, 0.954045f, 0.970447f, 0.979529f, 0.985027f, 0.987903f, 0.990558f, 0.992345f, 0.993723f, 0.994905f, 0.995714f, 0.996365f, 0.996948f},
{0.54918f, 0.796767f, 0.91f, 0.957384f, 0.976739f, 0.985349f, 0.989745f, 0.992093f, 0.99292f, 0.994137f, 0.995029f, 0.995624f, 0.996217f, 0.996624f, 0.996871f, 0.997133f},
{0.643871f, 0.870216f, 0.955899f, 0.981825f, 0.990287f, 0.993789f, 0.995402f, 0.996054f, 0.995607f, 0.99605f, 0.996438f, 0.996734f, 0.996834f, 0.997026f, 0.997038f, 0.997198f},
{0.77505f, 0.944715f, 0.986041f, 0.994556f, 0.996691f, 0.99757f, 0.997928f, 0.997881f, 0.996692f, 0.996987f, 0.997098f, 0.997113f, 0.997145f, 0.997175f, 0.997226f, 0.997242f},
{0.910815f, 0.989663f, 0.997687f, 0.998948f, 0.99884f, 0.998825f, 0.998798f, 0.998538f, 0.997143f, 0.997186f, 0.997289f, 0.997175f, 0.997165f, 0.997177f, 0.997328f, 0.99722f},
{0.988773f, 0.999559f, 0.999684f, 0.999632f, 0.999128f, 0.998962f, 0.998883f, 0.998629f, 0.997223f, 0.997127f, 0.997255f, 0.997299f, 0.997234f, 0.997171f, 0.997179f, 0.997287f}
},
{
{0.331776f, 0.492473f, 0.54275f, 0.58052f, 0.615581f, 0.650102f, 0.683863f, 0.717645f, 0.750486f, 0.782911f, 0.814667f, 0.845786f, 0.876317f, 0.905953f, 0.934498f, 0.958563f},
{0.322602f, 0.492259f, 0.548848f, 0.591202f, 0.629944f, 0.667743f, 0.704394f, 0.740062f, 0.774339f, 0.807034f, 0.838191f, 0.867899f, 0.895982f, 0.922349f, 0.947096f, 0.967158f},
{0.313884f, 0.492341f, 0.556257f, 0.603478f, 0.646619f, 0.687837f, 0.727374f, 0.764869f, 0.799831f, 0.832292f, 0.862188f, 0.889588f, 0.914668f, 0.937611f, 0.958241f, 0.974788f},
{0.306584f, 0.492486f, 0.564964f, 0.618144f, 0.665772f, 0.710574f, 0.752767f, 0.791556f, 0.826674f, 0.858133f, 0.886068f, 0.910543f, 0.93235f, 0.951393f, 0.967994f, 0.980979f},
{0.302228f, 0.493724f, 0.575805f, 0.635368f, 0.687856f, 0.736327f, 0.780757f, 0.820176f, 0.854453f, 0.883836f, 0.908819f, 0.930057f, 0.948134f, 0.963338f, 0.97616f, 0.986112f},
{0.302604f, 0.497132f, 0.589276f, 0.65601f, 0.713326f, 0.764997f, 0.810677f, 0.849865f, 0.882233f, 0.908671f, 0.930141f, 0.947615f, 0.961814f, 0.973482f, 0.983032f, 0.990239f},
{0.311866f, 0.503628f, 0.606047f, 0.680282f, 0.742333f, 0.796606f, 0.842505f, 0.880074f, 0.909306f, 0.931619f, 0.949066f, 0.962478f, 0.973166f, 0.981543f, 0.988346f, 0.993396f},
{0.334117f, 0.51637f, 0.627737f, 0.708995f, 0.775339f, 0.83081f, 0.87527f, 0.909366f, 0.933935f, 0.951815f, 0.964865f, 0.974633f, 0.982087f, 0.98786f, 0.992355f, 0.995724f},
{0.37616f, 0.540195f, 0.656277f, 0.743628f, 0.812714f, 0.86728f, 0.907718f, 0.936156f, 0.955518f, 0.968451f, 0.977528f, 0.98398f, 0.988883f, 0.992473f, 0.995349f, 0.997396f},
{0.444909f, 0.580253f, 0.694618f, 0.785468f, 0.854731f, 0.904603f, 0.937922f, 0.959346f, 0.972722f, 0.981115f, 0.986813f, 0.990738f, 0.993523f, 0.99568f, 0.997376f, 0.99854f},
{0.540913f, 0.642909f, 0.747808f, 0.836981f, 0.90045f, 0.940121f, 0.963532f, 0.977101f, 0.985125f, 0.98995f, 0.993016f, 0.995111f, 0.996642f, 0.997782f, 0.99864f, 0.999226f},
{0.655892f, 0.730559f, 0.819629f, 0.895723f, 0.944071f, 0.969216f, 0.98198f, 0.989137f, 0.993044f, 0.995314f, 0.996787f, 0.997799f, 0.998483f, 0.998986f, 0.999396f, 0.999651f},
{0.767441f, 0.835319f, 0.902341f, 0.949704f, 0.976619f, 0.987855f, 0.993068f, 0.995822f, 0.997367f, 0.998242f, 0.998795f, 0.999172f, 0.999436f, 0.999621f, 0.999777f, 0.999871f},
{0.860268f, 0.935274f, 0.966945f, 0.984092f, 0.993497f, 0.996752f, 0.998115f, 0.998871f, 0.999308f, 0.999513f, 0.999674f, 0.999771f, 0.999844f, 0.999896f, 0.999942f, 0.999961f},
{0.939241f, 0.989576f, 0.994816f, 0.997406f, 0.999071f, 0.999539f, 0.999731f, 0.999832f, 0.999896f, 0.999931f, 0.999949f, 0.999969f, 0.999977f, 0.999986f, 0.99999f, 0.999995f},
{0.990906f, 0.999677f, 0.999807f, 0.999874f, 0.99993f, 0.999952f, 0.999963f, 0.999954f, 0.99997f, 0.999978f, 0.999968f, 0.999965f, 0.999976f, 0.999972f, 0.999972f, 0.999975f}
},
{
{0.256904f, 0.424754f, 0.496329f, 0.541f, 0.577161f, 0.610539f, 0.643f, 0.675636f, 0.708369f, 0.741092f, 0.773355f, 0.80506f, 0.835457f, 0.864645f, 0.89056f, 0.90455f},
{0.256637f, 0.421044f, 0.498777f, 0.548196f, 0.58799f, 0.624202f, 0.659399f, 0.694031f, 0.728631f, 0.762539f, 0.795678f, 0.827183f, 0.857095f, 0.884656f, 0.909124f, 0.923263f},
{0.260348f, 0.418234f, 0.501961f, 0.556894f, 0.600553f, 0.639889f, 0.6775f, 0.71432f, 0.750706f, 0.785707f, 0.81925f, 0.850363f, 0.878689f, 0.904429f, 0.926475f, 0.940143f},
{0.270219f, 0.418368f, 0.50699f, 0.567241f, 0.615318f, 0.657666f, 0.697777f, 0.736644f, 0.774409f, 0.810466f, 0.84373f, 0.873585f, 0.899967f, 0.923266f, 0.942284f, 0.954443f},
{0.288652f, 0.424105f, 0.515123f, 0.58019f, 0.632592f, 0.678303f, 0.720819f, 0.76136f, 0.800106f, 0.836255f, 0.868657f, 0.896684f, 0.920475f, 0.940283f, 0.956331f, 0.966379f},
{0.318977f, 0.436583f, 0.527232f, 0.596754f, 0.653232f, 0.701882f, 0.746601f, 0.78854f, 0.827661f, 0.863311f, 0.893631f, 0.918971f, 0.939366f, 0.955602f, 0.968137f, 0.976146f},
{0.363206f, 0.460856f, 0.546377f, 0.618231f, 0.677949f, 0.729701f, 0.776126f, 0.818725f, 0.857302f, 0.890705f, 0.918218f, 0.939441f, 0.955885f, 0.96848f, 0.977766f, 0.983681f},
{0.424515f, 0.501089f, 0.575559f, 0.646174f, 0.708432f, 0.762509f, 0.810299f, 0.852203f, 0.888208f, 0.917752f, 0.940618f, 0.957515f, 0.969877f, 0.978848f, 0.98533f, 0.989367f},
{0.502553f, 0.557605f, 0.618782f, 0.683938f, 0.746765f, 0.802128f, 0.849225f, 0.888143f, 0.919084f, 0.942748f, 0.960251f, 0.972378f, 0.980698f, 0.986699f, 0.990911f, 0.993465f},
{0.592986f, 0.631644f, 0.678726f, 0.734988f, 0.7948f, 0.848594f, 0.891821f, 0.924174f, 0.94746f, 0.964093f, 0.975778f, 0.983457f, 0.988777f, 0.992312f, 0.994813f, 0.996281f},
{0.687377f, 0.714248f, 0.753773f, 0.800942f, 0.852108f, 0.898733f, 0.933333f, 0.955821f, 0.97041f, 0.980304f, 0.986956f, 0.99124f, 0.994077f, 0.996003f, 0.997313f, 0.998074f},
{0.770882f, 0.79523f, 0.83876f, 0.87676f, 0.911536f, 0.944101f, 0.966593f, 0.978906f, 0.986079f, 0.990761f, 0.993961f, 0.995955f, 0.997319f, 0.998217f, 0.998788f, 0.999133f},
{0.835431f, 0.873433f, 0.92092f, 0.944318f, 0.960154f, 0.976041f, 0.987186f, 0.992157f, 0.994831f, 0.996532f, 0.997669f, 0.998502f, 0.998984f, 0.999324f, 0.999555f, 0.999681f},
{0.886285f, 0.948097f, 0.976424f, 0.98447f, 0.987702f, 0.992719f, 0.99661f, 0.997933f, 0.998634f, 0.999061f, 0.999395f, 0.999581f, 0.999729f, 0.999819f, 0.999886f, 0.99992f},
{0.944359f, 0.99137f, 0.996669f, 0.99791f, 0.998076f, 0.998807f, 0.999526f, 0.999714f, 0.999805f, 0.999864f, 0.999907f, 0.99994f, 0.999961f, 0.999967f, 0.999978f, 0.999993f},
{0.991143f, 0.999719f, 0.999863f, 0.999898f, 0.999893f, 0.999925f, 0.999958f, 0.999949f, 0.999969f, 0.999976f, 0.999967f, 0.999965f, 0.999976f, 0.999972f, 0.999972f, 0.999975f}
},
{
{0.264585f, 0.380989f, 0.454393f, 0.503716f, 0.54096f, 0.573291f, 0.602941f, 0.631997f, 0.660964f, 0.690201f, 0.719512f, 0.748977f, 0.777784f, 0.803781f, 0.821673f, 0.826875f},
{0.277732f, 0.383596f, 0.457525f, 0.509819f, 0.550482f, 0.585225f, 0.617104f, 0.647916f, 0.678334f, 0.708938f, 0.739772f, 0.770601f, 0.800401f, 0.827885f, 0.848226f, 0.858468f},
{0.297496f, 0.390598f, 0.463136f, 0.517902f, 0.56183f, 0.5992f, 0.633399f, 0.665758f, 0.697656f, 0.729799f, 0.761682f, 0.793706f, 0.824544f, 0.852764f, 0.874231f, 0.887592f},
{0.326267f, 0.404597f, 0.473285f, 0.529043f, 0.57572f, 0.615744f, 0.651933f, 0.685996f, 0.719357f, 0.752568f, 0.78587f, 0.818445f, 0.849566f, 0.877518f, 0.89911f, 0.912971f},
{0.364065f, 0.427977f, 0.489784f, 0.544678f, 0.593086f, 0.635453f, 0.673594f, 0.709267f, 0.744133f, 0.77849f, 0.812188f, 0.844951f, 0.875402f, 0.901525f, 0.921826f, 0.934905f},
{0.413338f, 0.462718f, 0.51532f, 0.566394f, 0.614844f, 0.658715f, 0.699065f, 0.736491f, 0.772566f, 0.807468f, 0.841022f, 0.872546f, 0.901018f, 0.9245f, 0.9418f, 0.953305f},
{0.47433f, 0.510329f, 0.552084f, 0.596886f, 0.643299f, 0.687754f, 0.729747f, 0.768691f, 0.80548f, 0.8399f, 0.871764f, 0.900638f, 0.925231f, 0.944736f, 0.958796f, 0.967747f},
{0.544959f, 0.570248f, 0.601173f, 0.637774f, 0.679581f, 0.723945f, 0.766767f, 0.806354f, 0.842948f, 0.875258f, 0.903389f, 0.927466f, 0.947312f, 0.962232f, 0.972586f, 0.978895f},
{0.6222f, 0.638229f, 0.661379f, 0.690631f, 0.72677f, 0.768451f, 0.810514f, 0.849477f, 0.883368f, 0.911109f, 0.93332f, 0.951218f, 0.965418f, 0.975785f, 0.982781f, 0.987031f},
{0.699547f, 0.708814f, 0.728904f, 0.755107f, 0.786019f, 0.821987f, 0.859796f, 0.894699f, 0.922949f, 0.943679f, 0.958869f, 0.970413f, 0.979505f, 0.98593f, 0.990077f, 0.992511f},
{0.770313f, 0.772954f, 0.797454f, 0.826894f, 0.854083f, 0.880596f, 0.909153f, 0.936118f, 0.956346f, 0.96926f, 0.977842f, 0.984166f, 0.989052f, 0.992586f, 0.994846f, 0.996153f},
{0.825324f, 0.829644f, 0.86696f, 0.898979f, 0.920101f, 0.934728f, 0.950628f, 0.967633f, 0.979593f, 0.986058f, 0.989888f, 0.992809f, 0.995032f, 0.996639f, 0.997636f, 0.998231f},
{0.863698f, 0.888044f, 0.93283f, 0.956652f, 0.968193f, 0.973147f, 0.978605f, 0.986924f, 0.992497f, 0.994971f, 0.996334f, 0.997324f, 0.99812f, 0.99872f, 0.999111f, 0.999357f},
{0.896649f, 0.951907f, 0.979323f, 0.988331f, 0.991859f, 0.992727f, 0.993374f, 0.996207f, 0.998059f, 0.998683f, 0.999045f, 0.999279f, 0.999495f, 0.999651f, 0.999771f, 0.999839f},
{0.946504f, 0.991866f, 0.997096f, 0.998411f, 0.998961f, 0.999007f, 0.998924f, 0.999404f, 0.999715f, 0.999807f, 0.999858f, 0.999894f, 0.999925f, 0.999948f, 0.99997f, 0.999976f},
{0.991229f, 0.999729f, 0.999872f, 0.99992f, 0.999927f, 0.999937f, 0.999938f, 0.999939f, 0.999966f, 0.999974f, 0.999966f, 0.999961f, 0.999976f, 0.999972f, 0.999972f, 0.999973f}
},
{
{0.317672f, 0.379772f, 0.434995f, 0.478433f, 0.513252f, 0.543012f, 0.569608f, 0.594619f, 0.618758f, 0.642435f, 0.665975f, 0.688625f, 0.710007f, 0.726249f, 0.732969f, 0.737468f},
{0.34194f, 0.393822f, 0.444657f, 0.487584f, 0.52402f, 0.555426f, 0.583729f, 0.610112f, 0.635474f, 0.660523f, 0.68545f, 0.710145f, 0.734133f, 0.754925f, 0.768756f, 0.781315f},
{0.372936f, 0.41426f, 0.459314f, 0.500417f, 0.53751f, 0.570438f, 0.600301f, 0.628293f, 0.654918f, 0.681319f, 0.70749f, 0.734155f, 0.760681f, 0.785337f, 0.804356f, 0.822369f},
{0.412386f, 0.443328f, 0.480816f, 0.518452f, 0.554844f, 0.588701f, 0.619944f, 0.649243f, 0.677332f, 0.704851f, 0.732926f, 0.761178f, 0.789821f, 0.816979f, 0.839927f, 0.860467f},
{0.459182f, 0.480803f, 0.510698f, 0.543466f, 0.577691f, 0.611229f, 0.643044f, 0.674001f, 0.703592f, 0.732581f, 0.761858f, 0.791634f, 0.82104f, 0.849167f, 0.873217f, 0.893996f},
{0.514798f, 0.528562f, 0.550377f, 0.576799f, 0.606945f, 0.638741f, 0.671324f, 0.703154f, 0.734342f, 0.764995f, 0.795377f, 0.825267f, 0.854095f, 0.880996f, 0.903836f, 0.922661f},
{0.576429f, 0.583964f, 0.599092f, 0.619577f, 0.644143f, 0.673295f, 0.705428f, 0.73839f, 0.77082f, 0.802373f, 0.832844f, 0.861325f, 0.887556f, 0.911092f, 0.930845f, 0.94606f},
{0.642323f, 0.645034f, 0.655166f, 0.670406f, 0.690854f, 0.716584f, 0.747033f, 0.780057f, 0.812784f, 0.843988f, 0.872615f, 0.897819f, 0.91928f, 0.937816f, 0.953006f, 0.964439f},
{0.707651f, 0.705863f, 0.713653f, 0.727617f, 0.746742f, 0.769487f, 0.796892f, 0.82727f, 0.85825f, 0.886988f, 0.911665f, 0.931306f, 0.946921f, 0.959863f, 0.970274f, 0.977884f},
{0.768305f, 0.761011f, 0.770667f, 0.788632f, 0.809512f, 0.830379f, 0.852541f, 0.877292f, 0.90318f, 0.926979f, 0.945545f, 0.958815f, 0.968652f, 0.976559f, 0.982819f, 0.987355f},
{0.819533f, 0.807633f, 0.825012f, 0.851067f, 0.874615f, 0.893058f, 0.907921f, 0.923517f, 0.941923f, 0.959031f, 0.970957f, 0.978474f, 0.983602f, 0.98763f, 0.99097f, 0.99347f},
{0.856481f, 0.848157f, 0.88085f, 0.911788f, 0.932947f, 0.946153f, 0.953749f, 0.959831f, 0.970164f, 0.980711f, 0.986951f, 0.99046f, 0.992739f, 0.994419f, 0.995858f, 0.996993f},
{0.879455f, 0.895342f, 0.938113f, 0.961698f, 0.973822f, 0.979847f, 0.982648f, 0.983368f, 0.987279f, 0.992764f, 0.995312f, 0.996578f, 0.997372f, 0.997933f, 0.998501f, 0.998916f},
{0.902488f, 0.953905f, 0.980707f, 0.989527f, 0.99321f, 0.994913f, 0.995672f, 0.995206f, 0.996094f, 0.998062f, 0.998778f, 0.999099f, 0.999288f, 0.999444f, 0.999577f, 0.999716f},
{0.947838f, 0.99217f, 0.997259f, 0.998559f, 0.999105f, 0.999327f, 0.999431f, 0.99931f, 0.999346f, 0.999717f, 0.99982f, 0.999867f, 0.999898f, 0.999922f, 0.999947f, 0.999962f},
{0.991276f, 0.999736f, 0.999882f, 0.999921f, 0.999937f, 0.999945f, 0.999952f, 0.999937f, 0.999953f, 0.999971f, 0.999965f, 0.99996f, 0.999975f, 0.99997f, 0.99997f, 0.999973f}
},
{
{0.389232f, 0.4106f, 0.441287f, 0.471024f, 0.498133f, 0.522389f, 0.544754f, 0.564854f, 0.583887f, 0.601715f, 0.61798f, 0.632338f, 0.641487f, 0.642305f, 0.642109f, 0.645058f},
{0.419866f, 0.433959f, 0.459285f, 0.486614f, 0.512656f, 0.537534f, 0.56031f, 0.581903f, 0.602083f, 0.621111f, 0.639131f, 0.655627f, 0.669362f, 0.677087f, 0.685536f, 0.69844f},
{0.457074f, 0.464442f, 0.483894f, 0.506939f, 0.531485f, 0.556034f, 0.579539f, 0.601915f, 0.623243f, 0.643633f, 0.663162f, 0.682512f, 0.700151f, 0.714379f, 0.729927f, 0.750548f},
{0.500718f, 0.502026f, 0.515138f, 0.534071f, 0.555887f, 0.578839f, 0.602149f, 0.625411f, 0.647713f, 0.6697f, 0.6915f, 0.713411f, 0.734647f, 0.753837f, 0.775004f, 0.799966f},
{0.549321f, 0.546636f, 0.554598f, 0.56844f, 0.58618f, 0.606839f, 0.62957f, 0.653197f, 0.6769f, 0.700492f, 0.724456f, 0.748843f, 0.772559f, 0.795413f, 0.819034f, 0.845355f},
{0.603212f, 0.59682f, 0.600127f, 0.610079f, 0.623859f, 0.641501f, 0.66259f, 0.686419f, 0.711285f, 0.736487f, 0.762277f, 0.788308f, 0.813579f, 0.837172f, 0.860793f, 0.885258f},
{0.659187f, 0.650636f, 0.651303f, 0.657924f, 0.668481f, 0.683561f, 0.70242f, 0.725576f, 0.751116f, 0.777973f, 0.804939f, 0.831435f, 0.855943f, 0.877751f, 0.898556f, 0.919262f},
{0.71551f, 0.704609f, 0.703716f, 0.708983f, 0.718526f, 0.732501f, 0.75024f, 0.771848f, 0.796942f, 0.823383f, 0.850091f, 0.875083f, 0.896821f, 0.914699f, 0.930683f, 0.946116f},
{0.768218f, 0.754625f, 0.753729f, 0.761135f, 0.773317f, 0.788683f, 0.80554f, 0.8244f, 0.846324f, 0.870275f, 0.894278f, 0.915623f, 0.932582f, 0.945417f, 0.956229f, 0.966498f},
{0.815168f, 0.796799f, 0.799071f, 0.812766f, 0.830588f, 0.848294f, 0.864463f, 0.879108f, 0.895118f, 0.913632f, 0.932964f, 0.949149f, 0.960601f, 0.968452f, 0.974828f, 0.980732f},
{0.852166f, 0.829841f, 0.841897f, 0.865298f, 0.888307f, 0.9063f, 0.919384f, 0.92889f, 0.937434f, 0.948938f, 0.962664f, 0.973255f, 0.979758f, 0.983791f, 0.986941f, 0.990001f},
{0.876614f, 0.859595f, 0.888882f, 0.918553f, 0.939569f, 0.953198f, 0.961563f, 0.966168f, 0.968709f, 0.97368f, 0.982199f, 0.988093f, 0.991157f, 0.992837f, 0.994129f, 0.995457f},
{0.889616f, 0.899825f, 0.941002f, 0.964038f, 0.976181f, 0.982571f, 0.986116f, 0.987916f, 0.987746f, 0.988747f, 0.993139f, 0.995725f, 0.996832f, 0.997418f, 0.997862f, 0.998328f},
{0.906243f, 0.95518f, 0.981506f, 0.990171f, 0.993785f, 0.995553f, 0.996545f, 0.996982f, 0.996721f, 0.996453f, 0.998093f, 0.998888f, 0.999156f, 0.999327f, 0.999409f, 0.999539f},
{0.948599f, 0.992358f, 0.99739f, 0.998668f, 0.999176f, 0.999406f, 0.999541f, 0.999591f, 0.999568f, 0.999408f, 0.999713f, 0.999839f, 0.999881f, 0.999901f, 0.999926f, 0.999939f},
{0.991309f, 0.999739f, 0.999888f, 0.999919f, 0.999936f, 0.999947f, 0.999957f, 0.999945f, 0.999963f, 0.999961f, 0.999962f, 0.99996f, 0.999975f, 0.999969f, 0.999969f, 0.999972f}
},
{
{0.464607f, 0.455732f, 0.464628f, 0.479669f, 0.495949f, 0.512354f, 0.528314f, 0.542978f, 0.556498f, 0.567824f, 0.576463f, 0.580128f, 0.575605f, 0.568531f, 0.562623f, 0.559205f},
{0.498542f, 0.485636f, 0.490143f, 0.501702f, 0.516224f, 0.531793f, 0.54759f, 0.562699f, 0.577045f, 0.589905f, 0.600538f, 0.607645f, 0.609028f, 0.609586f, 0.612334f, 0.618659f},
{0.537333f, 0.521767f, 0.521981f, 0.529418f, 0.541199f, 0.55568f, 0.570931f, 0.586192f, 0.601126f, 0.615273f, 0.628334f, 0.639068f, 0.646205f, 0.653576f, 0.664226f, 0.679003f},
{0.58039f, 0.563085f, 0.559246f, 0.563593f, 0.572154f, 0.583834f, 0.597981f, 0.613261f, 0.629026f, 0.644943f, 0.660698f, 0.675112f, 0.687528f, 0.701108f, 0.717599f, 0.738633f},
{0.626902f, 0.608143f, 0.602518f, 0.603236f, 0.608819f, 0.618142f, 0.63031f, 0.645141f, 0.662034f, 0.679491f, 0.697664f, 0.715681f, 0.732767f, 0.751152f, 0.771428f, 0.795163f},
{0.674906f, 0.656073f, 0.64876f, 0.647692f, 0.650566f, 0.657853f, 0.668736f, 0.682954f, 0.700176f, 0.719539f, 0.739842f, 0.760707f, 0.781203f, 0.802008f, 0.82361f, 0.846272f},
{0.723717f, 0.704351f, 0.696222f, 0.694352f, 0.696957f, 0.703334f, 0.713785f, 0.727349f, 0.744532f, 0.764707f, 0.786484f, 0.809047f, 0.830832f, 0.851582f, 0.871387f, 0.890878f},
{0.770417f, 0.74989f, 0.741971f, 0.741f, 0.745419f, 0.753661f, 0.764643f, 0.778067f, 0.79442f, 0.813643f, 0.835382f, 0.857523f, 0.878316f, 0.896853f, 0.912706f, 0.927042f},
{0.812279f, 0.789808f, 0.7826f, 0.785788f, 0.79504f, 0.807f, 0.820062f, 0.833465f, 0.847781f, 0.863701f, 0.882574f, 0.902333f, 0.920185f, 0.934458f, 0.945346f, 0.954754f},
{0.848046f, 0.821273f, 0.818615f, 0.829032f, 0.845226f, 0.861958f, 0.876709f, 0.88927f, 0.899701f, 0.910298f, 0.92378f, 0.939469f, 0.952959f, 0.962471f, 0.968968f, 0.974084f},
{0.874714f, 0.844976f, 0.852751f, 0.874465f, 0.896205f, 0.914235f, 0.927761f, 0.937383f, 0.943498f, 0.948295f, 0.955712f, 0.966655f, 0.975661f, 0.980913f, 0.984102f, 0.986657f},
{0.890484f, 0.867243f, 0.894007f, 0.922732f, 0.943369f, 0.956978f, 0.965632f, 0.971131f, 0.974095f, 0.975102f, 0.977362f, 0.984168f, 0.989293f, 0.99165f, 0.993033f, 0.994062f},
{0.896619f, 0.902953f, 0.942851f, 0.965488f, 0.977382f, 0.98389f, 0.987623f, 0.989862f, 0.9908f, 0.9906f, 0.990299f, 0.993846f, 0.996119f, 0.997008f, 0.997498f, 0.997813f},
{0.908873f, 0.955985f, 0.982049f, 0.990586f, 0.994125f, 0.995898f, 0.996901f, 0.997459f, 0.997764f, 0.997618f, 0.996962f, 0.998277f, 0.998985f, 0.999217f, 0.999302f, 0.999407f},
{0.949116f, 0.992473f, 0.997458f, 0.99872f, 0.999217f, 0.999448f, 0.999588f, 0.999656f, 0.999694f, 0.999686f, 0.999497f, 0.999741f, 0.999857f, 0.999887f, 0.999913f, 0.999924f},
{0.991334f, 0.999745f, 0.999889f, 0.999921f, 0.999937f, 0.999949f, 0.999954f, 0.999949f, 0.999967f, 0.999973f, 0.999954f, 0.999956f, 0.999974f, 0.999969f, 0.999969f, 0.99997f}
},
{
{0.535644f, 0.50519f, 0.496654f, 0.497589f, 0.503236f, 0.510989f, 0.519873f, 0.527879f, 0.535008f, 0.539309f, 0.539252f, 0.531167f, 0.519742f, 0.509007f, 0.49861f, 0.487933f},
{0.570331f, 0.538577f, 0.527508f, 0.525756f, 0.528668f, 0.535016f, 0.543254f, 0.551359f, 0.558994f, 0.565094f, 0.567923f, 0.56429f, 0.559234f, 0.55558f, 0.553574f, 0.551784f},
{0.608133f, 0.576666f, 0.563094f, 0.558455f, 0.559389f, 0.563998f, 0.570572f, 0.578631f, 0.586698f, 0.594588f, 0.59993f, 0.601645f, 0.602898f, 0.606063f, 0.611528f, 0.61833f},
{0.648542f, 0.617661f, 0.602755f, 0.596267f, 0.595127f, 0.597269f, 0.602791f, 0.610193f, 0.618942f, 0.628369f, 0.636854f, 0.643649f, 0.65072f, 0.660298f, 0.672199f, 0.686181f},
{0.690624f, 0.660779f, 0.645878f, 0.638184f, 0.634787f, 0.635821f, 0.640049f, 0.646755f, 0.656027f, 0.66701f, 0.678948f, 0.690056f, 0.70241f, 0.717372f, 0.734148f, 0.751897f},
{0.732596f, 0.704246f, 0.689645f, 0.68144f, 0.677921f, 0.678025f, 0.682047f, 0.689125f, 0.698744f, 0.711014f, 0.725492f, 0.74041f, 0.756919f, 0.775316f, 0.794663f, 0.813491f},
{0.773768f, 0.746302f, 0.731699f, 0.72453f, 0.722755f, 0.724264f, 0.729055f, 0.736672f, 0.747245f, 0.760346f, 0.776148f, 0.793309f, 0.811932f, 0.831565f, 0.850666f, 0.86747f},
{0.811941f, 0.784254f, 0.770546f, 0.765597f, 0.766766f, 0.772039f, 0.77987f, 0.789017f, 0.800264f, 0.813001f, 0.828234f, 0.845605f, 0.864049f, 0.882742f, 0.898867f, 0.911758f},
{0.845093f, 0.815462f, 0.803637f, 0.803392f, 0.810509f, 0.820776f, 0.832867f, 0.844459f, 0.855457f, 0.866203f, 0.878509f, 0.893151f, 0.909659f, 0.925137f, 0.937169f, 0.945601f},
{0.872363f, 0.839073f, 0.832138f, 0.8403f, 0.854991f, 0.871149f, 0.885615f, 0.897785f, 0.907383f, 0.914778f, 0.922322f, 0.932492f, 0.945472f, 0.956909f, 0.964608f, 0.969221f},
{0.891443f, 0.85558f, 0.860369f, 0.880426f, 0.901355f, 0.919079f, 0.932875f, 0.942666f, 0.949403f, 0.953541f, 0.956108f, 0.961355f, 0.970612f, 0.978002f, 0.982078f, 0.984329f},
{0.900528f, 0.872783f, 0.8976f, 0.925454f, 0.94568f, 0.959191f, 0.967968f, 0.973783f, 0.977401f, 0.979213f, 0.979158f, 0.980373f, 0.986408f, 0.990353f, 0.992219f, 0.993144f},
{0.901743f, 0.905093f, 0.944182f, 0.966457f, 0.978205f, 0.98465f, 0.9884f, 0.990632f, 0.992106f, 0.992708f, 0.992145f, 0.991677f, 0.994772f, 0.996532f, 0.997214f, 0.997501f},
{0.910784f, 0.956624f, 0.982355f, 0.990847f, 0.994321f, 0.996039f, 0.997124f, 0.997692f, 0.998021f, 0.99817f, 0.998013f, 0.997404f, 0.998577f, 0.999088f, 0.999224f, 0.999337f},
{0.949535f, 0.992566f, 0.99751f, 0.998743f, 0.999234f, 0.999473f, 0.999598f, 0.999686f, 0.999714f, 0.999748f, 0.99974f, 0.999573f, 0.999796f, 0.99987f, 0.999902f, 0.99991f},
{0.99135f, 0.999749f, 0.999893f, 0.999923f, 0.999936f, 0.999949f, 0.99996f, 0.999951f, 0.999967f, 0.999974f, 0.999963f, 0.999951f, 0.999973f, 0.999968f, 0.999969f, 0.999968f}
},
{
{0.59973f, 0.552818f, 0.530643f, 0.520157f, 0.516116f, 0.51552f, 0.516777f, 0.51803f, 0.518346f, 0.514724f, 0.504512f, 0.49003f, 0.476615f, 0.463236f, 0.449735f, 0.435024f},
{0.632997f, 0.587111f, 0.564079f, 0.55199f, 0.545828f, 0.543759f, 0.544237f, 0.545366f, 0.546202f, 0.544842f, 0.53818f, 0.529142f, 0.521583f, 0.51462f, 0.508502f, 0.501598f},
{0.668169f, 0.624811f, 0.601631f, 0.587864f, 0.580326f, 0.576726f, 0.576042f, 0.577016f, 0.578406f, 0.578992f, 0.57605f, 0.572798f, 0.570656f, 0.570384f, 0.571488f, 0.572872f},
{0.705117f, 0.664106f, 0.641318f, 0.62698f, 0.618315f, 0.613663f, 0.612384f, 0.61263f, 0.614626f, 0.617233f, 0.618782f, 0.620316f, 0.624132f, 0.630072f, 0.637842f, 0.646764f},
{0.742334f, 0.703971f, 0.68226f, 0.668393f, 0.658955f, 0.654337f, 0.652719f, 0.653158f, 0.656184f, 0.66065f, 0.665755f, 0.671911f, 0.680942f, 0.692708f, 0.706068f, 0.719966f},
{0.778325f, 0.742889f, 0.722235f, 0.70907f, 0.70122f, 0.69721f, 0.6965f, 0.698327f, 0.702251f, 0.708926f, 0.716871f, 0.727084f, 0.740321f, 0.75591f, 0.772929f, 0.789173f},
{0.81242f, 0.778793f, 0.759492f, 0.748279f, 0.742735f, 0.741557f, 0.743404f, 0.747793f, 0.753545f, 0.761827f, 0.771555f, 0.783946f, 0.799266f, 0.816835f, 0.83493f, 0.850679f},
{0.843431f, 0.810221f, 0.792039f, 0.783845f, 0.782521f, 0.78594f, 0.791957f, 0.799556f, 0.808191f, 0.817271f, 0.827202f, 0.839323f, 0.854523f, 0.87179f, 0.888237f, 0.901303f},
{0.869961f, 0.834643f, 0.819008f, 0.816238f, 0.821508f, 0.83095f, 0.84206f, 0.853057f, 0.863007f, 0.871636f, 0.880071f, 0.889763f, 0.902333f, 0.917331f, 0.930631f, 0.93963f},
{0.890577f, 0.85214f, 0.841829f, 0.848149f, 0.861853f, 0.877146f, 0.891448f, 0.903829f, 0.913532f, 0.920373f, 0.925714f, 0.931231f, 0.939873f, 0.951653f, 0.960918f, 0.966293f},
{0.903713f, 0.8635f, 0.866053f, 0.884673f, 0.905078f, 0.922462f, 0.936053f, 0.945959f, 0.953258f, 0.957631f, 0.960226f, 0.961587f, 0.96635f, 0.974725f, 0.980311f, 0.983058f},
{0.908067f, 0.876709f, 0.900129f, 0.927439f, 0.947228f, 0.960614f, 0.969409f, 0.975195f, 0.978983f, 0.981397f, 0.982261f, 0.98159f, 0.983296f, 0.988598f, 0.991442f, 0.992607f},
{0.905559f, 0.906706f, 0.945145f, 0.967146f, 0.978792f, 0.985152f, 0.988866f, 0.991238f, 0.992573f, 0.993521f, 0.993828f, 0.993031f, 0.992871f, 0.995809f, 0.996953f, 0.997356f},
{0.912211f, 0.957039f, 0.982562f, 0.990982f, 0.994478f, 0.996159f, 0.997183f, 0.997758f, 0.99816f, 0.998377f, 0.998465f, 0.998245f, 0.997787f, 0.998881f, 0.999157f, 0.999302f},
{0.949831f, 0.99262f, 0.997544f, 0.998773f, 0.999238f, 0.999496f, 0.999626f, 0.999703f, 0.999743f, 0.999767f, 0.999784f, 0.999767f, 0.999643f, 0.999844f, 0.999891f, 0.999905f},
{0.991361f, 0.999754f, 0.999893f, 0.999924f, 0.999936f, 0.999951f, 0.999959f, 0.999951f, 0.999969f, 0.999973f, 0.999964f, 0.999959f, 0.999968f, 0.999967f, 0.999968f, 0.999968f}
},
{
{0.654676f, 0.59532f, 0.562607f, 0.54273f, 0.530577f, 0.52264f, 0.517073f, 0.511514f, 0.504402f, 0.491501f, 0.475258f, 0.459301f, 0.444324f, 0.429177f, 0.414139f, 0.398977f},
{0.686151f, 0.629447f, 0.597385f, 0.577208f, 0.563557f, 0.5543f, 0.548279f, 0.542757f, 0.536421f, 0.526823f, 0.514555f, 0.503255f, 0.493831f, 0.484346f, 0.475693f, 0.46729f},
{0.717895f, 0.665604f, 0.635024f, 0.614131f, 0.600309f, 0.590793f, 0.583714f, 0.578272f, 0.573119f, 0.56593f, 0.558015f, 0.551866f, 0.547493f, 0.544452f, 0.542585f, 0.541624f},
{0.751169f, 0.702484f, 0.673297f, 0.653206f, 0.639342f, 0.62976f, 0.622743f, 0.617912f, 0.613845f, 0.609127f, 0.605943f, 0.604379f, 0.605509f, 0.608557f, 0.613293f, 0.619877f},
{0.783237f, 0.738911f, 0.711777f, 0.692944f, 0.679718f, 0.670958f, 0.664668f, 0.661096f, 0.658669f, 0.657331f, 0.657487f, 0.660671f, 0.666855f, 0.675339f, 0.686082f, 0.698414f},
{0.81389f, 0.773134f, 0.748038f, 0.730966f, 0.719877f, 0.712763f, 0.709313f, 0.707496f, 0.707847f, 0.709368f, 0.713043f, 0.719855f, 0.729735f, 0.742554f, 0.757318f, 0.773124f},
{0.842615f, 0.804118f, 0.780557f, 0.766424f, 0.758346f, 0.754852f, 0.75494f, 0.757283f, 0.760534f, 0.765159f, 0.771012f, 0.779851f, 0.791974f, 0.806569f, 0.823433f, 0.839688f},
{0.86778f, 0.829723f, 0.80825f, 0.797446f, 0.794359f, 0.796189f, 0.80129f, 0.807893f, 0.815203f, 0.822077f, 0.829476f, 0.83815f, 0.849642f, 0.864134f, 0.880192f, 0.894549f},
{0.888723f, 0.849193f, 0.830428f, 0.825644f, 0.829293f, 0.838161f, 0.848673f, 0.859429f, 0.868781f, 0.877112f, 0.883703f, 0.890558f, 0.899185f, 0.911532f, 0.925323f, 0.935976f},
{0.904265f, 0.861773f, 0.849084f, 0.853769f, 0.866609f, 0.881528f, 0.895544f, 0.907821f, 0.917513f, 0.924602f, 0.929705f, 0.933389f, 0.938068f, 0.947244f, 0.957673f, 0.964536f},
{0.912919f, 0.869358f, 0.870041f, 0.88768f, 0.907484f, 0.924736f, 0.938087f, 0.947975f, 0.955366f, 0.960351f, 0.963268f, 0.964553f, 0.965688f, 0.971382f, 0.97857f, 0.982323f},
{0.913656f, 0.879634f, 0.901988f, 0.928741f, 0.948291f, 0.961506f, 0.970343f, 0.976191f, 0.980038f, 0.982511f, 0.983914f, 0.984118f, 0.9833f, 0.986313f, 0.990643f, 0.99235f},
{0.908461f, 0.907873f, 0.945866f, 0.967611f, 0.979155f, 0.985489f, 0.989231f, 0.991488f, 0.992973f, 0.993936f, 0.99444f, 0.994481f, 0.993323f, 0.994502f, 0.996668f, 0.997279f},
{0.913294f, 0.957376f, 0.982744f, 0.991115f, 0.994583f, 0.99626f, 0.997271f, 0.997831f, 0.99826f, 0.998478f, 0.998631f, 0.998611f, 0.998137f, 0.998381f, 0.99909f, 0.999289f},
{0.950029f, 0.992669f, 0.997573f, 0.998792f, 0.999256f, 0.999498f, 0.99963f, 0.999708f, 0.999759f, 0.999793f, 0.999807f, 0.999807f, 0.99973f, 0.999747f, 0.999879f, 0.999903f},
{0.991379f, 0.999757f, 0.999895f, 0.999925f, 0.999936f, 0.999953f, 0.999958f, 0.99995f, 0.999968f, 0.999973f, 0.999967f, 0.999959f, 0.999972f, 0.999963f, 0.999968f, 0.999968f}
},
{
{0.701283f, 0.631609f, 0.590791f, 0.563657f, 0.544568f, 0.530369f, 0.518693f, 0.506491f, 0.491062f, 0.471977f, 0.453936f, 0.436798f, 0.420917f, 0.405036f, 0.389759f, 0.375973f},
{0.730196f, 0.664903f, 0.625716f, 0.598936f, 0.579934f, 0.564673f, 0.552868f, 0.541584f, 0.527948f, 0.512314f, 0.497918f, 0.485108f, 0.473825f, 0.463099f, 0.453284f, 0.445269f},
{0.75871f, 0.699282f, 0.662597f, 0.636558f, 0.617696f, 0.60309f, 0.591416f, 0.580311f, 0.56901f, 0.556289f, 0.54594f, 0.53783f, 0.531363f, 0.526312f, 0.522932f, 0.521629f},
{0.787871f, 0.733163f, 0.699089f, 0.674943f, 0.656999f, 0.643239f, 0.632021f, 0.622998f, 0.613578f, 0.604161f, 0.598042f, 0.594089f, 0.592947f, 0.59385f, 0.596666f, 0.602704f},
{0.815874f, 0.765978f, 0.735051f, 0.71273f, 0.69632f, 0.684541f, 0.675091f, 0.667648f, 0.661466f, 0.656148f, 0.653631f, 0.654271f, 0.657856f, 0.66402f, 0.672603f, 0.684604f},
{0.841934f, 0.796586f, 0.767979f, 0.748061f, 0.734541f, 0.72515f, 0.71936f, 0.715301f, 0.712778f, 0.711296f, 0.71245f, 0.716704f, 0.723992f, 0.734124f, 0.746976f, 0.762878f},
{0.865935f, 0.823198f, 0.796706f, 0.780209f, 0.770091f, 0.765027f, 0.763333f, 0.764378f, 0.766053f, 0.768751f, 0.773071f, 0.779501f, 0.788486f, 0.800539f, 0.815685f, 0.832755f},
{0.886749f, 0.844826f, 0.820477f, 0.807657f, 0.80303f, 0.803694f, 0.808046f, 0.813893f, 0.8204f, 0.826566f, 0.832809f, 0.83965f, 0.848298f, 0.85991f, 0.874561f, 0.890263f},
{0.903223f, 0.860252f, 0.838974f, 0.832478f, 0.835173f, 0.843307f, 0.853267f, 0.863631f, 0.872986f, 0.880853f, 0.887624f, 0.893368f, 0.899353f, 0.908364f, 0.92135f, 0.933599f},
{0.914895f, 0.869102f, 0.854416f, 0.857914f, 0.869986f, 0.884328f, 0.898298f, 0.910349f, 0.919873f, 0.927424f, 0.932819f, 0.936563f, 0.939487f, 0.94486f, 0.954848f, 0.963392f},
{0.92025f, 0.873787f, 0.873043f, 0.889895f, 0.909314f, 0.926297f, 0.939483f, 0.949355f, 0.956715f, 0.961806f, 0.965408f, 0.96719f, 0.967507f, 0.969543f, 0.976742f, 0.981854f},
{0.917948f, 0.881872f, 0.903407f, 0.929708f, 0.949123f, 0.962271f, 0.970883f, 0.976753f, 0.980604f, 0.983267f, 0.984823f, 0.985719f, 0.985322f, 0.984983f, 0.989636f, 0.992183f},
{0.910636f, 0.908797f, 0.946414f, 0.967988f, 0.979453f, 0.985659f, 0.989433f, 0.991682f, 0.99316f, 0.994164f, 0.994788f, 0.99502f, 0.994648f, 0.993706f, 0.996244f, 0.997233f},
{0.914078f, 0.95762f, 0.982874f, 0.991184f, 0.994643f, 0.996325f, 0.997353f, 0.997903f, 0.99829f, 0.99851f, 0.998671f, 0.99875f, 0.998692f, 0.998057f, 0.998976f, 0.999278f},
{0.950208f, 0.992704f, 0.997595f, 0.9988f, 0.999282f, 0.999503f, 0.999644f, 0.999721f, 0.999751f, 0.999793f, 0.999808f, 0.999814f, 0.999826f, 0.999707f, 0.999862f, 0.999902f},
{0.991386f, 0.999757f, 0.999895f, 0.999926f, 0.999937f, 0.999953f, 0.99996f, 0.999951f, 0.999968f, 0.999975f, 0.999967f, 0.999959f, 0.999976f, 0.999961f, 0.999967f, 0.999968f}
},
{
{0.739778f, 0.661981f, 0.614519f, 0.581398f, 0.557306f, 0.537236f, 0.519877f, 0.501546f, 0.47938f, 0.458089f, 0.438817f, 0.421047f, 0.404398f, 0.388427f, 0.374196f, 0.361575f},
{0.766009f, 0.6941f, 0.649217f, 0.617718f, 0.593578f, 0.573984f, 0.557176f, 0.539899f, 0.52048f, 0.502346f, 0.486733f, 0.472533f, 0.460112f, 0.448827f, 0.439189f, 0.431442f},
{0.791642f, 0.726574f, 0.684914f, 0.654938f, 0.63208f, 0.613643f, 0.597698f, 0.581789f, 0.565231f, 0.550402f, 0.538079f, 0.528682f, 0.520661f, 0.514542f, 0.5106f, 0.509097f},
{0.817359f, 0.757799f, 0.719905f, 0.692383f, 0.671033f, 0.654384f, 0.639872f, 0.626648f, 0.61344f, 0.601787f, 0.593969f, 0.588313f, 0.585293f, 0.584608f, 0.586594f, 0.591851f},
{0.841507f, 0.787679f, 0.75347f, 0.728337f, 0.70957f, 0.694878f, 0.683113f, 0.673125f, 0.663414f, 0.656921f, 0.652573f, 0.651336f, 0.652872f, 0.657233f, 0.664633f, 0.675853f},
{0.864067f, 0.814815f, 0.783425f, 0.761238f, 0.745584f, 0.734387f, 0.726839f, 0.720942f, 0.716462f, 0.713896f, 0.713758f, 0.716234f, 0.721376f, 0.729465f, 0.74094f, 0.756301f},
{0.884084f, 0.838008f, 0.808943f, 0.790538f, 0.778836f, 0.772328f, 0.769884f, 0.769473f, 0.770142f, 0.77224f, 0.776124f, 0.780973f, 0.787884f, 0.797596f, 0.811259f, 0.828174f},
{0.901344f, 0.856394f, 0.829732f, 0.815137f, 0.809389f, 0.809136f, 0.812727f, 0.817882f, 0.823857f, 0.830124f, 0.836163f, 0.842295f, 0.84916f, 0.858317f, 0.871217f, 0.887319f},
{0.914526f, 0.868599f, 0.84526f, 0.837525f, 0.839408f, 0.846857f, 0.856456f, 0.866433f, 0.875764f, 0.883618f, 0.890695f, 0.896488f, 0.901232f, 0.907641f, 0.918784f, 0.931855f},
{0.922982f, 0.874709f, 0.858501f, 0.861113f, 0.872533f, 0.886545f, 0.900127f, 0.911956f, 0.921509f, 0.929207f, 0.935147f, 0.939275f, 0.941776f, 0.944701f, 0.952789f, 0.962454f},
{0.925782f, 0.877133f, 0.875308f, 0.891519f, 0.910631f, 0.927329f, 0.940375f, 0.950293f, 0.957518f, 0.96278f, 0.966636f, 0.968953f, 0.969842f, 0.969839f, 0.975088f, 0.981411f},
{0.921248f, 0.883587f, 0.90448f, 0.93043f, 0.949709f, 0.962698f, 0.971276f, 0.977072f, 0.981011f, 0.983684f, 0.985523f, 0.986612f, 0.986854f, 0.985561f, 0.988429f, 0.992005f},
{0.912277f, 0.909461f, 0.946828f, 0.968264f, 0.979653f, 0.985861f, 0.989548f, 0.991826f, 0.993265f, 0.994305f, 0.994896f, 0.995299f, 0.995359f, 0.994336f, 0.995546f, 0.997175f},
{0.914709f, 0.957806f, 0.98299f, 0.99125f, 0.994695f, 0.996377f, 0.997389f, 0.997929f, 0.998325f, 0.998541f, 0.998718f, 0.998825f, 0.99885f, 0.998436f, 0.998697f, 0.999265f},
{0.950336f, 0.992723f, 0.99761f, 0.998802f, 0.999296f, 0.999519f, 0.999649f, 0.999722f, 0.999762f, 0.9998f, 0.999822f, 0.999833f, 0.999837f, 0.999763f, 0.999808f, 0.9999f},
{0.99139f, 0.999757f, 0.999897f, 0.999926f, 0.999938f, 0.999952f, 0.999961f, 0.999951f, 0.999968f, 0.999974f, 0.999967f, 0.99996f, 0.999976f, 0.999964f, 0.999965f, 0.999968f}
},
{
{0.770998f, 0.686931f, 0.634265f, 0.596254f, 0.567331f, 0.543185f, 0.520343f, 0.495714f, 0.470991f, 0.448555f, 0.428511f, 0.410107f, 0.393342f, 0.378156f, 0.36469f, 0.352596f},
{0.795015f, 0.717653f, 0.668339f, 0.632841f, 0.604974f, 0.581209f, 0.560113f, 0.537314f, 0.515121f, 0.496039f, 0.479315f, 0.464286f, 0.451354f, 0.440024f, 0.430609f, 0.422883f},
{0.817973f, 0.7482f, 0.702787f, 0.669535f, 0.643446f, 0.621934f, 0.602381f, 0.582128f, 0.563082f, 0.547239f, 0.533819f, 0.523213f, 0.514104f, 0.507522f, 0.503359f, 0.501306f},
{0.840778f, 0.777305f, 0.736223f, 0.705801f, 0.682064f, 0.662551f, 0.645414f, 0.628567f, 0.613626f, 0.601269f, 0.592265f, 0.585321f, 0.580982f, 0.57963f, 0.580866f, 0.585123f},
{0.8619f, 0.804678f, 0.767553f, 0.740228f, 0.719376f, 0.702886f, 0.68916f, 0.676527f, 0.665539f, 0.658178f, 0.652959f, 0.650719f, 0.650971f, 0.654012f, 0.660239f, 0.670351f},
{0.881182f, 0.828897f, 0.795305f, 0.771161f, 0.753987f, 0.741464f, 0.73213f, 0.724484f, 0.71928f, 0.71662f, 0.715945f, 0.71725f, 0.721061f, 0.727652f, 0.737836f, 0.752075f},
{0.898328f, 0.849545f, 0.818445f, 0.798279f, 0.78526f, 0.777848f, 0.774228f, 0.772896f, 0.773319f, 0.775384f, 0.778796f, 0.783347f, 0.789071f, 0.797256f, 0.809091f, 0.8251f},
{0.912492f, 0.865099f, 0.836682f, 0.820873f, 0.813947f, 0.813045f, 0.816107f, 0.820657f, 0.82658f, 0.832902f, 0.839364f, 0.845288f, 0.851083f, 0.858572f, 0.869737f, 0.885193f},
{0.923206f, 0.875112f, 0.850108f, 0.841381f, 0.842447f, 0.849294f, 0.858589f, 0.868246f, 0.877387f, 0.885927f, 0.893229f, 0.899232f, 0.903716f, 0.908704f, 0.917536f, 0.930437f},
{0.929416f, 0.879031f, 0.861479f, 0.863345f, 0.874394f, 0.888073f, 0.901441f, 0.913068f, 0.922679f, 0.930421f, 0.936747f, 0.94131f, 0.944077f, 0.946029f, 0.951657f, 0.961578f},
{0.929961f, 0.879713f, 0.877021f, 0.892717f, 0.91156f, 0.928023f, 0.940969f, 0.950753f, 0.958077f, 0.963495f, 0.967515f, 0.970119f, 0.97154f, 0.971433f, 0.973997f, 0.980923f},
{0.923813f, 0.88494f, 0.905293f, 0.930999f, 0.950162f, 0.963021f, 0.971522f, 0.977304f, 0.981213f, 0.984018f, 0.985846f, 0.987192f, 0.987814f, 0.986963f, 0.987549f, 0.991779f},
{0.913577f, 0.909968f, 0.947136f, 0.968498f, 0.979824f, 0.98596f, 0.989639f, 0.991884f, 0.993358f, 0.994389f, 0.995062f, 0.995502f, 0.995694f, 0.995242f, 0.994964f, 0.997095f},
{0.915225f, 0.957948f, 0.983091f, 0.991314f, 0.994726f, 0.996395f, 0.9974f, 0.997954f, 0.998351f, 0.998569f, 0.99875f, 0.998843f, 0.99892f, 0.998785f, 0.998458f, 0.999245f},
{0.950438f, 0.99275f, 0.997626f, 0.998808f, 0.9993f, 0.999522f, 0.999649f, 0.999722f, 0.999765f, 0.9998f, 0.999817f, 0.999832f, 0.999842f, 0.999849f, 0.999771f, 0.999898f},
{0.991403f, 0.999757f, 0.999897f, 0.999927f, 0.999939f, 0.999952f, 0.999961f, 0.999951f, 0.999969f, 0.999972f, 0.999966f, 0.99996f, 0.999974f, 0.999965f, 0.999964f, 0.999968f}
},
{
{0.79705f, 0.707087f, 0.650125f, 0.608325f, 0.575656f, 0.547339f, 0.519517f, 0.490858f, 0.465293f, 0.442303f, 0.421886f, 0.403233f, 0.38683f, 0.372037f, 0.359003f, 0.347211f},
{0.818406f, 0.736522f, 0.683598f, 0.644745f, 0.613662f, 0.5868f, 0.561474f, 0.535419f, 0.51204f, 0.492423f, 0.474782f, 0.459397f, 0.446089f, 0.434972f, 0.42572f, 0.417781f},
{0.838915f, 0.76538f, 0.71697f, 0.680901f, 0.652404f, 0.627981f, 0.604879f, 0.582095f, 0.562335f, 0.545635f, 0.53178f, 0.520098f, 0.510837f, 0.503805f, 0.499364f, 0.496573f},
{0.859427f, 0.792616f, 0.748843f, 0.71611f, 0.690565f, 0.66897f, 0.649153f, 0.630161f, 0.614583f, 0.601802f, 0.592015f, 0.584405f, 0.579516f, 0.577337f, 0.577881f, 0.581019f},
{0.877941f, 0.817762f, 0.778341f, 0.74933f, 0.726722f, 0.70854f, 0.693008f, 0.678967f, 0.667968f, 0.660119f, 0.654418f, 0.651497f, 0.650648f, 0.653018f, 0.658252f, 0.666947f},
{0.894946f, 0.839848f, 0.804323f, 0.778658f, 0.760117f, 0.746318f, 0.735719f, 0.727265f, 0.721936f, 0.718995f, 0.718274f, 0.719192f, 0.722341f, 0.727937f, 0.736645f, 0.749427f},
{0.90937f, 0.858314f, 0.825635f, 0.804151f, 0.790096f, 0.781706f, 0.777206f, 0.775328f, 0.775831f, 0.7781f, 0.781525f, 0.785871f, 0.791006f, 0.798083f, 0.808513f, 0.823113f},
{0.921259f, 0.871938f, 0.842067f, 0.825098f, 0.817405f, 0.815975f, 0.818193f, 0.822737f, 0.828566f, 0.83501f, 0.841897f, 0.847892f, 0.853643f, 0.860164f, 0.869398f, 0.883714f},
{0.930002f, 0.880092f, 0.853777f, 0.84416f, 0.844764f, 0.851092f, 0.859958f, 0.869441f, 0.878832f, 0.887484f, 0.89514f, 0.901397f, 0.906208f, 0.9106f, 0.917304f, 0.929364f},
{0.93434f, 0.882394f, 0.863801f, 0.865045f, 0.875658f, 0.889041f, 0.902161f, 0.913795f, 0.9235f, 0.931512f, 0.937785f, 0.942816f, 0.946137f, 0.948175f, 0.951499f, 0.960778f},
{0.933288f, 0.881678f, 0.878297f, 0.893636f, 0.912242f, 0.928599f, 0.9414f, 0.951132f, 0.958467f, 0.963995f, 0.968187f, 0.971034f, 0.972905f, 0.973151f, 0.973816f, 0.980384f},
{0.925808f, 0.885998f, 0.905907f, 0.931442f, 0.950453f, 0.963263f, 0.971733f, 0.977432f, 0.981437f, 0.984181f, 0.986101f, 0.987512f, 0.988453f, 0.988142f, 0.987422f, 0.991483f},
{0.914584f, 0.910362f, 0.947376f, 0.968621f, 0.979921f, 0.986048f, 0.989702f, 0.991953f, 0.993416f, 0.994454f, 0.995204f, 0.995643f, 0.995904f, 0.995802f, 0.994945f, 0.996973f},
{0.915627f, 0.958056f, 0.98316f, 0.991351f, 0.994752f, 0.996424f, 0.997426f, 0.997968f, 0.998351f, 0.998579f, 0.99877f, 0.998878f, 0.998955f, 0.998924f, 0.998463f, 0.999213f},
{0.950525f, 0.99277f, 0.997636f, 0.998811f, 0.999304f, 0.999523f, 0.999655f, 0.999724f, 0.999768f, 0.999796f, 0.999833f, 0.999839f, 0.999859f, 0.999856f, 0.999769f, 0.999893f},
{0.991407f, 0.999758f, 0.999897f, 0.999927f, 0.999939f, 0.999952f, 0.999961f, 0.999951f, 0.999969f, 0.999973f, 0.999967f, 0.99996f, 0.999976f, 0.999968f, 0.999965f, 0.999968f}
},
{
{0.817657f, 0.723241f, 0.662787f, 0.617806f, 0.581707f, 0.549774f, 0.517554f, 0.487769f, 0.461541f, 0.43842f, 0.417691f, 0.399079f, 0.383059f, 0.368634f, 0.355749f, 0.34413f},
{0.837002f, 0.751305f, 0.695682f, 0.653945f, 0.620295f, 0.590505f, 0.56115f, 0.534408f, 0.510693f, 0.490235f, 0.472319f, 0.45677f, 0.443685f, 0.432378f, 0.422948f, 0.414752f},
{0.855837f, 0.77891f, 0.727936f, 0.689818f, 0.658997f, 0.632206f, 0.606236f, 0.582562f, 0.562559f, 0.545354f, 0.530933f, 0.518986f, 0.509504f, 0.502321f, 0.497312f, 0.493854f},
{0.87425f, 0.804615f, 0.758634f, 0.724153f, 0.696774f, 0.673192f, 0.65101f, 0.631897f, 0.615946f, 0.602754f, 0.592606f, 0.584959f, 0.57949f, 0.57674f, 0.576506f, 0.578649f},
{0.890419f, 0.827886f, 0.786812f, 0.756174f, 0.732164f, 0.712579f, 0.695441f, 0.681054f, 0.669964f, 0.66197f, 0.65612f, 0.652777f, 0.651928f, 0.653243f, 0.657598f, 0.664986f},
{0.90543f, 0.848397f, 0.811216f, 0.784383f, 0.764677f, 0.749748f, 0.738095f, 0.729745f, 0.724129f, 0.721272f, 0.720688f, 0.721413f, 0.724267f, 0.729195f, 0.736498f, 0.747847f},
{0.918058f, 0.865296f, 0.831113f, 0.808539f, 0.793531f, 0.784463f, 0.779086f, 0.777031f, 0.777935f, 0.780148f, 0.783813f, 0.788206f, 0.793626f, 0.799897f, 0.808777f, 0.821865f},
{0.92817f, 0.877163f, 0.846146f, 0.828246f, 0.819912f, 0.81795f, 0.819629f, 0.824224f, 0.830215f, 0.836919f, 0.843879f, 0.850116f, 0.856108f, 0.862218f, 0.869877f, 0.882704f},
{0.935269f, 0.883777f, 0.856602f, 0.846148f, 0.846328f, 0.852397f, 0.860816f, 0.8704f, 0.880012f, 0.888671f, 0.896505f, 0.903096f, 0.908467f, 0.912619f, 0.91797f, 0.928547f},
{0.938124f, 0.884951f, 0.865568f, 0.866333f, 0.876638f, 0.889789f, 0.902716f, 0.914317f, 0.924097f, 0.932265f, 0.938791f, 0.943975f, 0.947756f, 0.949879f, 0.952018f, 0.960114f},
{0.93579f, 0.883236f, 0.879279f, 0.894274f, 0.912769f, 0.928973f, 0.941669f, 0.951429f, 0.958813f, 0.964351f, 0.968547f, 0.971721f, 0.973799f, 0.974578f, 0.974338f, 0.979852f},
{0.927364f, 0.886746f, 0.906354f, 0.931745f, 0.95066f, 0.963418f, 0.971877f, 0.977557f, 0.981557f, 0.984338f, 0.986312f, 0.987779f, 0.988855f, 0.989031f, 0.987891f, 0.991104f},
{0.915345f, 0.910666f, 0.947524f, 0.968757f, 0.980016f, 0.986115f, 0.989741f, 0.991972f, 0.993453f, 0.994511f, 0.995276f, 0.995723f, 0.996041f, 0.996168f, 0.995255f, 0.996776f},
{0.915938f, 0.958148f, 0.983201f, 0.991381f, 0.99478f, 0.996435f, 0.99744f, 0.997984f, 0.998355f, 0.998594f, 0.998779f, 0.998912f, 0.998993f, 0.999027f, 0.998616f, 0.99915f},
{0.950581f, 0.992777f, 0.997638f, 0.998817f, 0.999309f, 0.999523f, 0.999654f, 0.999726f, 0.999771f, 0.999794f, 0.999827f, 0.999842f, 0.999862f, 0.999874f, 0.999802f, 0.999884f},
{0.991412f, 0.999758f, 0.999897f, 0.999927f, 0.999939f, 0.999952f, 0.999961f, 0.999951f, 0.999969f, 0.999973f, 0.999967f, 0.99996f, 0.999975f, 0.999968f, 0.999966f, 0.999968f}
},
{
{0.834262f, 0.736081f, 0.672702f, 0.625014f, 0.586161f, 0.550531f, 0.516081f, 0.486013f, 0.459502f, 0.435917f, 0.415263f, 0.39704f, 0.38115f, 0.366798f, 0.353983f, 0.342407f},
{0.851862f, 0.763193f, 0.705094f, 0.661069f, 0.625188f, 0.592424f, 0.560815f, 0.533871f, 0.510054f, 0.489451f, 0.471438f, 0.455787f, 0.442738f, 0.431341f, 0.421574f, 0.413145f},
{0.869257f, 0.789477f, 0.736528f, 0.696478f, 0.663679f, 0.634635f, 0.606979f, 0.583289f, 0.563214f, 0.545723f, 0.531246f, 0.519275f, 0.50954f, 0.501924f, 0.496418f, 0.49241f},
{0.885878f, 0.814001f, 0.766181f, 0.730203f, 0.701311f, 0.675861f, 0.652699f, 0.63334f, 0.617329f, 0.604181f, 0.594001f, 0.585954f, 0.580486f, 0.577284f, 0.576186f, 0.577435f},
{0.900284f, 0.835873f, 0.793276f, 0.761237f, 0.736218f, 0.715139f, 0.697124f, 0.682916f, 0.671961f, 0.663839f, 0.657969f, 0.654832f, 0.65357f, 0.654377f, 0.65769f, 0.664005f},
{0.913773f, 0.855093f, 0.816642f, 0.78864f, 0.76792f, 0.751972f, 0.739652f, 0.731461f, 0.726004f, 0.723444f, 0.722722f, 0.723692f, 0.72628f, 0.730495f, 0.737157f, 0.747096f},
{0.924899f, 0.870493f, 0.835283f, 0.811765f, 0.795979f, 0.786153f, 0.780495f, 0.778662f, 0.77946f, 0.782012f, 0.785891f, 0.790644f, 0.795793f, 0.801773f, 0.809674f, 0.821251f},
{0.933694f, 0.881228f, 0.849145f, 0.830641f, 0.821706f, 0.819135f, 0.820668f, 0.825357f, 0.831337f, 0.838222f, 0.845529f, 0.852179f, 0.858367f, 0.864221f, 0.870816f, 0.882142f},
{0.939375f, 0.88676f, 0.858762f, 0.847718f, 0.847456f, 0.853243f, 0.861524f, 0.87118f, 0.880766f, 0.889638f, 0.897678f, 0.90467f, 0.910191f, 0.914583f, 0.918902f, 0.928033f},
{0.941125f, 0.886904f, 0.866931f, 0.867285f, 0.877266f, 0.890242f, 0.903113f, 0.914783f, 0.924603f, 0.932848f, 0.939544f, 0.944953f, 0.948932f, 0.951516f, 0.952998f, 0.959612f},
{0.937776f, 0.884404f, 0.880006f, 0.89478f, 0.91314f, 0.929183f, 0.94187f, 0.951681f, 0.959063f, 0.964666f, 0.968907f, 0.972145f, 0.97442f, 0.975584f, 0.975366f, 0.979376f},
{0.92858f, 0.887323f, 0.906695f, 0.931937f, 0.950831f, 0.963534f, 0.971975f, 0.977659f, 0.981644f, 0.984444f, 0.986487f, 0.988046f, 0.989126f, 0.989509f, 0.988619f, 0.990707f},
{0.915996f, 0.910913f, 0.947682f, 0.968833f, 0.98007f, 0.986144f, 0.98975f, 0.992f, 0.993487f, 0.994564f, 0.995305f, 0.995811f, 0.99615f, 0.996282f, 0.995737f, 0.996513f},
{0.916171f, 0.958214f, 0.983234f, 0.99141f, 0.994796f, 0.996442f, 0.997449f, 0.997982f, 0.998363f, 0.99861f, 0.998803f, 0.998928f, 0.999017f, 0.99905f, 0.998836f, 0.999022f},
{0.950623f, 0.992779f, 0.997641f, 0.998824f, 0.999312f, 0.999527f, 0.999656f, 0.999725f, 0.999771f, 0.999797f, 0.999835f, 0.999839f, 0.999864f, 0.999876f, 0.999835f, 0.999855f},
{0.991415f, 0.999758f, 0.999897f, 0.999927f, 0.999939f, 0.999952f, 0.999961f, 0.999951f, 0.999969f, 0.999973f, 0.999967f, 0.999959f, 0.999976f, 0.999967f, 0.999968f, 0.999967f}
}
};
/* clang-format on */