diff --git a/LICENSE.md b/LICENSE.md index 182bf15..10cf005 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -20,3 +20,29 @@ The StatsFuns.jl package is licensed under the MIT "Expat" License: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Portions are also under the (essentially equivalent) Boost Software License: + +> Boost Software License - Version 1.0 - August 17th, 2003 +> +> Permission is hereby granted, free of charge, to any person or organization +> obtaining a copy of the software and accompanying documentation covered by +> this license (the "Software") to use, reproduce, display, distribute, +> execute, and transmit the Software, and to prepare derivative works of the +> Software, and to permit third-parties to whom the Software is furnished to +> do so, all subject to the following: +> +> The copyright notices in the Software and this entire statement, including +> the above license grant, this restriction and the following disclaimer, +> must be included in all copies of the Software, in whole or in part, and +> all derivative works of the Software, unless such copies or derivative +> works are solely in the form of machine-executable object code generated by +> a source language processor. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +> SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +> FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +> ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +> DEALINGS IN THE SOFTWARE. diff --git a/Project.toml b/Project.toml index 58e58c8..ae01eb8 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "StatsFuns" uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" -version = "2.1.0" +version = "2.2.0" [deps] HypergeometricFunctions = "34004b35-14d8-5ef3-9330-4cdb6864b03a" diff --git a/README.md b/README.md index 5c22877..963965c 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,9 @@ softmax!, # inplace softmax # misc logmvgamma, # logarithm of multivariate gamma function -lstirling_asym +lstirling_asym, + +owens_t # Owen's T function ``` ## Distribution-related functions diff --git a/ext/StatsFunsChainRulesCoreExt.jl b/ext/StatsFunsChainRulesCoreExt.jl index e94e549..78523cf 100644 --- a/ext/StatsFunsChainRulesCoreExt.jl +++ b/ext/StatsFunsChainRulesCoreExt.jl @@ -1,7 +1,8 @@ module StatsFunsChainRulesCoreExt using StatsFuns -using StatsFuns: digamma +using SpecialFunctions: digamma, erf + import ChainRulesCore ChainRulesCore.@scalar_rule( @@ -82,4 +83,12 @@ ChainRulesCore.@scalar_rule( ), ) +ChainRulesCore.@scalar_rule( + owens_t(h::Real, a::Real), + ( + normpdf(h) * erf((h * a) * invsqrt2) / -2, + inv2π * exp(-h^2 * (1 + a^2) / 2) / (1 + a^2), + ), +) + end # module diff --git a/src/StatsFuns.jl b/src/StatsFuns.jl index 3a39252..1ce7ed2 100644 --- a/src/StatsFuns.jl +++ b/src/StatsFuns.jl @@ -4,7 +4,7 @@ using Base: Math.@horner using Reexport: @reexport using Rmath: Rmath using SpecialFunctions: beta_inc, beta_inc_inv, digamma, - erfc, erfcinv, erfcx, gamma_inc, gamma_inc_inv, logbeta, loggamma + erf, erfc, erfcinv, erfcx, gamma_inc, gamma_inc_inv, logbeta, loggamma # reexports @reexport using IrrationalConstants: @@ -260,11 +260,15 @@ export logmvbeta, # logarithm of multivariate beta function lstirling_asym, + # owens_t + owens_t, + # tvpack bvncdf # bivariate standard normal cdf ## source files include("misc.jl") +include("owens_t.jl") include("tvpack.jl") include("distrs/beta.jl") diff --git a/src/owens_t.jl b/src/owens_t.jl new file mode 100644 index 0000000..53176d4 --- /dev/null +++ b/src/owens_t.jl @@ -0,0 +1,235 @@ +# Owen's T function +# +# Ported from Boost owen_t.hpp, which is Copyright Benjamin Sobotta 2012 +# Use, modification and distribution are subject to the +# Boost Software License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) +# Port by Steven G. Johnson, also under Boost Software License, Version 1.0. +# +# Algorithm based on Mike Patefield and David Tandy, "Fast and accurate calculation +# of Owen's T-function," Journal of Statistical Software, 5, pp. 1-25 (2000). + +# P(-∞=(h), owens_t_hrange), length(owens_t_hrange) + 1) + iaint = something(findfirst(>=(a), owens_t_arange), length(owens_t_arange) + 1) + return owens_t_select[(iaint - 1) * 15 + ihint] +end + +const owens_t_ord = (2, 3, 4, 5, 7, 10, 12, 18, 10, 20, 30, 0, 4, 7, 8, 20, 0, 0) # 53-bit precision table +function owens_t_get_order(icode::Int, ::Type{Float64}) + return owens_t_ord[icode] +end + +# compute the value of Owen's T function with method T1 from the reference paper +function owens_t_T1(h::Float64, a::Float64, m::Int) + hs = -h * h / 2 + as = a * a + aj = a * inv2π + dj = expm1(hs) + gj = hs * exp(hs) + val = atan(a) * inv2π + j, jj = one(m), oftype(h, 1) + while true + val += dj * aj / jj + m <= j && break + j += one(m) + jj += 2 + aj *= as + dj = gj - dj + gj *= hs / j + end + return val +end + +# compute the value of Owen's T function with method T2 from the reference paper +function owens_t_T2(h::Float64, a::Float64, m::Int, ah::Float64) + maxii = m + m + one(m) + hs = h * h + as = -a * a + y = inv(hs) + ii = one(m) + val = zero(h) + vi = a * normpdf(ah) + z = owens_t_znorm1(ah) / h + while true + val += z + maxii <= ii && break + z = y * (vi - ii * z) + vi *= as + ii += oftype(ii, 2) + end + return val * normpdf(h) +end + +# compute the value of Owen's T function with method T3 from the reference paper +const owens_t_c2 = ( + 0.9999999999999998751, -0.99999999999988796462, 0.99999999998290743652, + -0.99999999896282500134, 0.99999996660459362918, -0.9999993398627247676, + 0.99999125611136965852, -0.99991777624463387686, 0.99942835555870132569, + -0.99697311720723000295, 0.98751448037275303682, -0.95915857980572882813, + 0.89246305511006708555, -0.76893425990463999675, 0.5889352846848469325, + -0.38380345160440256652, 0.20317601701045299653, -0.82813631607004984866e-1, + 0.24167984735759576523e-1, -0.44676566663971825242e-2, 0.39141169402373836468e-3, +) +function owens_t_T3(h::Float64, a::Float64, ah::Float64) + as = a * a + hs = h * h + y = inv(hs) + ii = one(h) + vi = a * normpdf(ah) + zi = owens_t_znorm1(ah) / h + val = zero(h) + i = 1 + while true + val += zi * owens_t_c2[i] + i == lastindex(owens_t_c2) && break + i += 1 + zi = y * (ii * zi - vi) + vi *= as + ii += 2 + end + return val * normpdf(h) +end + +# compute the value of Owen's T function with method T4 from the reference paper +function owens_t_T4(h::Float64, a::Float64, m::Int) + maxii = m + m + one(m) + hs = h * h + as = -a * a + ii = 1 + ai = a * exp(-hs * (1 - as) / 2) * inv2π + yi = one(h) + val = zero(h) + while true + val += ai * yi + maxii <= ii && break + ii += 2 + yi = (1 - hs * yi) / ii + ai *= as + end + return val +end + +# compute the value of Owen's T function with method T5 from the reference paper +const owens_t_pts = ( + 0.35082039676451715489e-2, 0.3127904233803075374e-1, 0.8526682628321945109e-1, + 0.16245071730812277011, 0.25851196049125434828, 0.36807553840697533536, + 0.48501092905604697475, 0.60277514152618576821, 0.71477884217753226516, + 0.81475510988760098605, 0.89711029755948965867, 0.95723808085944261843, 0.99178832974629703586, +) +const owens_t_wts = ( + 0.18831438115323502887e-1, 0.18567086243977649478e-1, 0.18042093461223385584e-1, + 0.17263829606398753364e-1, 0.1624321997598985673e-1, 0.14994592034116704829e-1, + 0.13535474469662088392e-1, 0.11886351605820165233e-1, 0.10070377242777431897e-1, + 0.81130545742299586629e-2, 0.60419009528470238773e-2, 0.38862217010742057883e-2, 0.16793031084546090448e-2, +) +#= + NOTICE: + - The pts[] array contains the squares (!) of the abscissas, i.e. the roots of the Legendre + polynomial P_n(x), instead of the plain roots as required in Gauss-Legendre + quadrature, because T5(h,a,m) contains only x^2 terms. + - The wts[] array contains the weights for Gauss-Legendre quadrature scaled with a factor + of 1/(2*pi) according to T5(h,a,m). +=# +function owens_t_T5(h::Float64, a::Float64) + as = a * a + hs = -h * h / 2 + r = 1 .+ as .* owens_t_pts + return sum(owens_t_wts .* exp.(hs .* r) ./ r) * a +end + +# compute the value of Owen's T function with method T6 from the reference paper +function owens_t_T6(h::Float64, a::Float64) + normh = normccdf(h) + y = 1 - a + r = atan(y, 1 + a) + val = normh * (1 - normh) / 2 + !iszero(r) && (val -= r * exp(-y * h * h / 2r) * inv2π) + return val +end + +# This routine dispatches the call to one of six subroutines, depending on the values of h and a. +# preconditions: h >= 0, 0<=a<=1, ah=a*h. +# Simple main case for 64-bit precision or less, this is as per the Patefield-Tandy paper: +function owens_t_dispatch(h::Float64, a::Float64, ah::Float64) + # Handle some special cases first, these are from + # page 1077 of Owen's original paper: + iszero(h) && return atan(a) * inv2π + iszero(a) && return zero(h) + a == 1 && return normccdf(-h) * normccdf(h) / 2 + @assert a <= 1 # when a>1 we call this routine with 1/a: + + icode = owens_t_compute_code(h, a) + m = owens_t_get_order(icode, typeof(h)) + meth = (1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 4, 4, 4, 4, 5, 6) # 18 entries + method = meth[icode] + + # determine the appropriate method, T1 ... T6 + method == 1 && return owens_t_T1(h, a, m) + method == 2 && return owens_t_T2(h, a, m, ah) + method == 3 && return owens_t_T3(h, a, ah) + method == 4 && return owens_t_T4(h, a, m) + method == 5 && return owens_t_T5(h, a) + return owens_t_T6(h, a) +end + +# compute Owen's T function, T(h,a), for arbitrary values of h and a +function _owens_t(h::Float64, a::Float64) + # exploit that T(-h,a) == T(h,a) + h = abs(h) + + # Use equation (2) in the paper to remap the arguments + # such that h>=0 and 0<=a<=1 for the call of the actual + # computation routine. + abs_a = abs(a) + abs_ah = abs_a * h + + val = if abs_a <= 1 + owens_t_dispatch(h, abs_a, abs_ah) + elseif !isfinite(abs_a) + isnan(abs_a) ? oftype(h, NaN) : normcdf(-h) / 2 + elseif h <= oftype(h, 0.67) + normh = owens_t_znorm1(h) + normah = owens_t_znorm1(abs_ah) + 1 // 4 - normh * normah - owens_t_dispatch(abs_ah, inv(abs_a), h) + else + normh = normccdf(h) + normah = normccdf(abs_ah) + (normh + normah) / 2 - normh * normah - owens_t_dispatch(abs_ah, inv(abs_a), h) + end + return copysign(val, a) # exploit that T(h,-a) == -T(h,a) +end + +_owens_t(h::Float32, a::Float32) = Float32(owens_t(Float64(h), Float64(a))) +_owens_t(h::Float16, a::Float16) = Float16(owens_t(Float64(h), Float64(a))) + +""" + owens_t(h::Real, a::Real) + +Return [Owen's T function](https://en.wikipedia.org/wiki/Owen%27s_T_function) + +```math +T(h, a) = \\frac{1}{2\\pi} \\int_0^a \\frac{e^{-h^2(1+x^2)/2}}{1 + x^2} \\, dx +``` + +This is the probability of ``X > h`` and ``0 < Y < aX``, where ``X`` and ``Y`` are +i.i.d. standard normal random variables. +""" +owens_t(h::Real, a::Real) = _owens_t(map(float, promote(h, a))...) diff --git a/test/chainrules.jl b/test/chainrules.jl index d59b5ea..2945f85 100644 --- a/test/chainrules.jl +++ b/test/chainrules.jl @@ -50,4 +50,9 @@ using Random _, pb = rrule(poislogpdf, 0.0, 1) _, x̄1, _ = pb(1) @test x̄1 == Inf + + h = randn() + a = randn() + test_frule(owens_t, h, a) + test_rrule(owens_t, h, a) end diff --git a/test/owens_t.jl b/test/owens_t.jl new file mode 100644 index 0000000..740be87 --- /dev/null +++ b/test/owens_t.jl @@ -0,0 +1,456 @@ +using Test, StatsFuns + +# test data (h, a, exact) from https://github.com/boostorg/math/blob/13c0bc89632d745b991a1920c9bd697edaf6f60d/test/owens_t.ipp +owens_t_test_data(T) = [ + (parse(T, "1.9508080482482910156250000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.7540378570556640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e-02"), parse(T, "2.2942365980155351117754771526378292708740231264960539316842063696200884829628237039895484898529192823e-03")), + (parse(T, "1.9508080482482910156250000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "1.2698680162429809570312500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.9680322689154555657058017082736661495213677947212098762543622722763825563827711568131850564334565506e-03")), + (parse(T, "1.9508080482482910156250000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "1.3547700643539428710937500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.1597654248037660387449520543820166351754668510505531823382492970457382200077558044792256804713386129e-03")), + (parse(T, "1.9508080482482910156250000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "1.8838196992874145507812500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.3232953135233836153944327583670440589476418747370390302105974330237550687887327299360596774532791101e-03")), + (parse(T, "1.9508080482482910156250000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "2.2103404998779296875000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.0100550889644229746912561152386170907268949874219104978095620802138249447202878889126283209658742296e-03")), + (parse(T, "1.9508080482482910156250000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "2.7849817276000976562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "6.1497543339940146251856615610147485246423382395107105527248575888794201708943383385544040841893167983e-03")), + (parse(T, "1.9508080482482910156250000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "3.0816698074340820312500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "6.7002307780595028311848002054681870716943983498717211440016321757838493256869247382910637200137362515e-03")), + (parse(T, "1.9508080482482910156250000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "5.4688143730163574218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.0087628098924846553420452991323128540455257919474718546084030038511341392097627616477463678020520866e-02")), + (parse(T, "1.9508080482482910156250000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "5.4722046852111816406250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.0091132928374177373986149936548570045661635017241761865456752105413011145950758665503631981469962091e-02")), + (parse(T, "1.9508080482482910156250000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "6.3235926628112792968750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.0865842961288026187893734175479235962324504288027096290482416005557459196544605743966959957549259912e-02")), + (parse(T, "1.9508080482482910156250000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "8.1472349166870117187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.1928879205559397161128411536383665386049060100190891105612351797899324440156577849032776806264950516e-02")), + (parse(T, "1.9508080482482910156250000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "8.3500838279724121093750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.2007404932089150629318599721043926151201252590201116565157838995615594563567446592356739043515060955e-02")), + (parse(T, "1.9508080482482910156250000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.0579175949096679687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.2234231937902890618076422454559854736034641208834938001805660215261543653258044507100832640227607205e-02")), + (parse(T, "1.9508080482482910156250000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.1337585449218750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.2254641258057330150164973433843452155232009681583050905550399458557126941497853232806334014703269603e-02")), + (parse(T, "1.9508080482482910156250000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.5750665664672851562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.2360475720884925881580539738830093572012024162485856485613974712653546627243019666702904836835836072e-02")), + (parse(T, "1.9508080482482910156250000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.6488833427429199218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.2376176601227851086722830167717452814836846810367599158215995631280835335070487840750421239628452270e-02")), + (parse(T, "1.9508080482482910156250000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.6769475936889648437500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.2382005445939933843659988418503656684093356069262317993257524956338275590041101050569009428193352371e-02")), + (parse(T, "1.9508080482482910156250000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.6886777877807617187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.2384419169235315605535269562348458006973333200556008698543822798769741450130359222839946856017776574e-02")), + (parse(T, "1.9508080482482910156250000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.9288129806518554687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.2431007739121873243331263486394085638096884194270101674004097829060031548768693191305694357247777346e-02")), + (parse(T, "1.9508080482482910156250000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.9646115303039550781250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.2437508801776841503931807680295142938639719448531279010032010195899482047937342387190771017427394090e-02")), + (parse(T, "2.5397357940673828125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.7540378570556640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e-02"), parse(T, "6.0892598894871013831450310453855577024940199295839498702191855220058998766969059376364952526465284021e-04")), + (parse(T, "2.5397357940673828125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "1.2698680162429809570312500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "7.8552477503066093316653283632946784434348752481643564867235309304982560891773412550717031568541075705e-04")), + (parse(T, "2.5397357940673828125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "1.3547700643539428710937500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "8.3547481001847470306205437554767680175926460100401487634312607482107121403542105369607597913620486228e-04")), + (parse(T, "2.5397357940673828125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "1.8838196992874145507812500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.1349538807683529766754432045661620867376550973436541105753149427481686354171267899610423696075448149e-03")), + (parse(T, "2.5397357940673828125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "2.2103404998779296875000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.3081149058186992317938095276814421293879284969724144515996421560499787699936613174360343582962295740e-03")), + (parse(T, "2.5397357940673828125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "2.7849817276000976562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.5878048364081975081251891304217167013312099142666376506423788580505618186158232170549422219934783478e-03")), + (parse(T, "2.5397357940673828125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "3.0816698074340820312500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7187428864034126218093390684607934848342548100346115458866508939353555304950555823644799745834099854e-03")), + (parse(T, "2.5397357940673828125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "5.4688143730163574218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4341415275418323804965250950312187178896787958041667325921433680168800975724752491267519263702206171e-03")), + (parse(T, "2.5397357940673828125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "5.4722046852111816406250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4347703667517973497589772453954356420155380457362917154615271851092638128618543252129405995381120823e-03")), + (parse(T, "2.5397357940673828125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "6.3235926628112792968750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.5654934061729800585071531711732581992665178577119680937850556665600001416830920923998758996250562572e-03")), + (parse(T, "2.5397357940673828125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "8.1472349166870117187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.7102222130256680778082229506054624600298089640008649867810816174099490266589359223735451239228867695e-03")), + (parse(T, "2.5397357940673828125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "8.3500838279724121093750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.7187366890979789886994424919757198431063606086845524871086681826444014144546460885653698813171873483e-03")), + (parse(T, "2.5397357940673828125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.0579175949096679687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.7410410391314317327235243808230003063641913370466248328606151566540037142368309640948307733089157819e-03")), + (parse(T, "2.5397357940673828125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.1337585449218750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.7428627024087233594744881207353300006000606524950207103958084731385200535788238988081899365708614181e-03")), + (parse(T, "2.5397357940673828125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.5750665664672851562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.7517497927491308313460905871910944558439108965006558155874933342489541271005569828949406095203595635e-03")), + (parse(T, "2.5397357940673828125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.6488833427429199218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.7529832238099327981448373487368565869894878389079013255254799787854521106511736100337800130550804734e-03")), + (parse(T, "2.5397357940673828125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.6769475936889648437500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.7534351959075352602930158286289964102877576582018338135138282398495212502293273181665468958443704470e-03")), + (parse(T, "2.5397357940673828125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.6886777877807617187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.7536214058405533351145775811408280041522270716058519266403220051159633550918364954505859587344152318e-03")), + (parse(T, "2.5397357940673828125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.9288129806518554687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.7571031476501931637301192852028739334678122250513760833401608355268943614593156536569593782544447721e-03")), + (parse(T, "2.5397357940673828125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.9646115303039550781250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.7575714835398346014438296247850916003189300937943203722758437029746167717384652465698091284467773426e-03")), + (parse(T, "2.7095394134521484375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.7540378570556640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e-02"), parse(T, "3.8940745658072282978586957911412357454682765821749814836616564829173079872316409867511611976849736342e-04")), + (parse(T, "2.7095394134521484375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "1.2698680162429809570312500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.0186385594150413563720938913340836408702098697405640386356529741412088880349476855118149225684014609e-04")), + (parse(T, "2.7095394134521484375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "1.3547700643539428710937500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.3360688311466125005252448740101520538894144350836290391278541005037227186243743866548835757888360652e-04")), + (parse(T, "2.7095394134521484375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "1.8838196992874145507812500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "7.2315251382848029096683072707480453985912558126336386527573914363988514243246183770185987113387535199e-04")), + (parse(T, "2.7095394134521484375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "2.2103404998779296875000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "8.3199073192490712799823192285677346980855542442974978897968476665958917076394761827303266241868465945e-04")), + (parse(T, "2.7095394134521484375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "2.7849817276000976562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.0061931119630268484487805082491564032326296367388733517020254570427572736254423687590778649658249096e-03")), + (parse(T, "2.7095394134521484375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "3.0816698074340820312500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.0868916378637619572097460390852201239462222301832643217934940452073593117086045031650946336775855746e-03")), + (parse(T, "2.7095394134521484375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "5.4688143730163574218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.5110157901412780741426775042567283935747358445902234201572377288834365228433712285342965544034552748e-03")), + (parse(T, "2.7095394134521484375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "5.4722046852111816406250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.5113682118315831201987371760486649534073487093876992748945139050826988248442989305885337043132393817e-03")), + (parse(T, "2.7095394134521484375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "6.3235926628112792968750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.5831528976658829836997327286231731322089686134330528543291733473197710170079359571431768003494423563e-03")), + (parse(T, "2.7095394134521484375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "8.1472349166870117187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.6572169749096491924163109159921676881944978277595840159403244566950242974512385079665033273622688991e-03")), + (parse(T, "2.7095394134521484375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "8.3500838279724121093750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.6612439279967586957140138359964883821502208376509603557655255441681481125629988563423959385188161538e-03")), + (parse(T, "2.7095394134521484375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.0579175949096679687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.6714556308336217753171381866996443084243736381286418638347445677213682261251532342583937566992717151e-03")), + (parse(T, "2.7095394134521484375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.1337585449218750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.6722624778808367977995147046858444258418194435715990872903875603765262594625732015411127293228438280e-03")), + (parse(T, "2.7095394134521484375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.5750665664672851562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.6761194157103371816977416998275297565936901461474020543117311175561531089768156284177404752935904542e-03")), + (parse(T, "2.7095394134521484375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.6488833427429199218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.6766427142893238870847770149294261771614928728592535910825570178997635000494936535762378417100148802e-03")), + (parse(T, "2.7095394134521484375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.6769475936889648437500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.6768336273317476132692430228896823497998904505689956143241080664792267056877546782871997727242873305e-03")), + (parse(T, "2.7095394134521484375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.6886777877807617187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.6769121473395352511439294614727282817917740041746229730216052226350101174826166507927773552375821411e-03")), + (parse(T, "2.7095394134521484375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.9288129806518554687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.6783647772686101175352741425631004867886590069983287539588393296574776707132752277341266060793888350e-03")), + (parse(T, "2.7095394134521484375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.9646115303039550781250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.6785577567585352522054366157450458673679852116453227468817677148275864001413569620692407110648965204e-03")), + (parse(T, "3.7676391601562500000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.7540378570556640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e-02"), parse(T, "1.2518193788012443276795851413120299200269753997134839357414725807078453807852895413177074062574459983e-05")), + (parse(T, "3.7676391601562500000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "1.2698680162429809570312500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.6017131192524860484653082904755463144319056578755543254049199604315320256409581129889188220100675332e-05")), + (parse(T, "3.7676391601562500000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "1.3547700643539428710937500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.6989418601481680794687088928083346446849308182951652497815914609838435509719352355142254677347425136e-05")), + (parse(T, "3.7676391601562500000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "1.8838196992874145507812500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.2617448922082963500482262139429377748232234486484760599464489111515664263171638244401828016950900851e-05")), + (parse(T, "3.7676391601562500000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "2.2103404998779296875000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.5680868969244219676880291885841322486944409686726018103997641845899952216815685193158880402629881057e-05")), + (parse(T, "3.7676391601562500000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "2.7849817276000976562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.0254184588420069376985146070357611482226487762093208257139496170242814911605619352622304008788192493e-05")), + (parse(T, "3.7676391601562500000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "3.0816698074340820312500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.2207273623191260761088765135977300240322665707700512664514826740445391367247755658749793012689910504e-05")), + (parse(T, "3.7676391601562500000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "5.4688143730163574218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.9980013151843328316784780978726240749247498721094099058633257828017096023953684879039103434727008834e-05")), + (parse(T, "3.7676391601562500000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "5.4722046852111816406250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.9984119657785781958597459132238262869844521352087962029561547500368164131441225118862815429710046814e-05")), + (parse(T, "3.7676391601562500000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "6.3235926628112792968750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.0703260862041728370659576245908686787340052179469221347721760937789064179808343467245853254198249600e-05")), + (parse(T, "3.7676391601562500000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "8.1472349166870117187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.1147106923546465821832629249598115340084824540694339394996905180128533667920775236850142274275546847e-05")), + (parse(T, "3.7676391601562500000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "8.3500838279724121093750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.1159840387915100980276614980911990292210811285718215208881956050949671986950287955450032701627341956e-05")), + (parse(T, "3.7676391601562500000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.0579175949096679687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.1185183534259483672043200518429630599245739717501612364496270816510674841376889686418335119606276445e-05")), + (parse(T, "3.7676391601562500000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.1337585449218750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.1186723241864493000461681837415605766631698783237824272352823729491004303200599388172978998493572651e-05")), + (parse(T, "3.7676391601562500000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.5750665664672851562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.1193039962933989775526962502866835653430470157954273763944875994151168345750596821315210645837667418e-05")), + (parse(T, "3.7676391601562500000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.6488833427429199218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.1193757269936849748788484329732735888257788787846146823686095516612698454403755737711021450244241599e-05")), + (parse(T, "3.7676391601562500000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.6769475936889648437500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.1194010233859503504247168257429313033415928042666688891493941858088030867029591583372085048334685616e-05")), + (parse(T, "3.7676391601562500000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.6886777877807617187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.1194112907232908025377411561252030769570977187989123896650298150849929960956301508451077920663478632e-05")), + (parse(T, "3.7676391601562500000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.9288129806518554687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.1195865360805797845274899238563356388625040862289059993505673216344813926110513226705057878442105470e-05")), + (parse(T, "3.7676391601562500000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.9646115303039550781250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.1196076674394984851538474558472743623860206363509657114025490053760777584315419851187233731464042438e-05")), + (parse(T, "4.4206809997558593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.7540378570556640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e-02"), parse(T, "8.5662690242005774274767130763707987993528614801742630335496566146370209271417514083126669616045461378e-07")), + (parse(T, "4.4206809997558593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "1.2698680162429809570312500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.0900281236140833756897189028063017301014220942723434005933613489872783427002407037974019771608384060e-06")), + (parse(T, "4.4206809997558593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "1.3547700643539428710937500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.1540959777806153242771392362703918124972741485847217929394945593368156829224819270759240498193571458e-06")), + (parse(T, "4.4206809997558593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "1.8838196992874145507812500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.5161312090736233561747852036937116557541672344057323423670271062124905049026637976919709047052458961e-06")), + (parse(T, "4.4206809997558593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "2.2103404998779296875000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7051270424905783025169542049149536395219935839363294071812407155551077040466668316457303522859329106e-06")), + (parse(T, "4.4206809997558593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "2.7849817276000976562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.9724678715769244037482092123571540306374663788479049674123607978555309734130726868523015755392533938e-06")), + (parse(T, "4.4206809997558593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "3.0816698074340820312500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.0795817040191398043424263567962191757037472557255519022522204349902753651852146850591820170442500692e-06")), + (parse(T, "4.4206809997558593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "5.4688143730163574218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4307191833605178385606229862116130668615521090413565873903877255305352710538700254685484649102589455e-06")), + (parse(T, "4.4206809997558593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "5.4722046852111816406250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4308464823678394633503600746862040097797404288873150122619431488682018956825321826951515224453585976e-06")), + (parse(T, "4.4206809997558593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "6.3235926628112792968750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4507909664589498684163894464363182048040475915401762307161708089639852502457384047804102187882115633e-06")), + (parse(T, "4.4206809997558593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "8.1472349166870117187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4592943951673925464215111613277430692495068574835217790794700282048468965909763402584862560218606037e-06")), + (parse(T, "4.4206809997558593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "8.3500838279724121093750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4594371774547568713304228368508918341624751042093476031145648482511337600502368516401315321516733267e-06")), + (parse(T, "4.4206809997558593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.0579175949096679687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4596745545140070090072972474469645578592472707194982133265553909128070361671871607799023388858245632e-06")), + (parse(T, "4.4206809997558593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.1337585449218750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4596861896172713045944422749671444283555256313260790032383140759138793198269327615599681117232709029e-06")), + (parse(T, "4.4206809997558593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.5750665664672851562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4597287426499747302875201525892595033234741617042217106132812745025669056583827069526914083405987171e-06")), + (parse(T, "4.4206809997558593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.6488833427429199218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4597329298883793432147846277285219262094085625441668149457820171724700380728198669500608258527473911e-06")), + (parse(T, "4.4206809997558593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.6769475936889648437500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4597343678116512840267468713261767008946781648893257725200499732688382416798885811132552634329289869e-06")), + (parse(T, "4.4206809997558593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.6886777877807617187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4597349454353282329105313301767035084970452160206328314378456326037338751004126875652195750901574600e-06")), + (parse(T, "4.4206809997558593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.9288129806518554687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4597442176920724873959364740982546817016926822287351949691166593634226454830661965132715446192496862e-06")), + (parse(T, "4.4206809997558593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.9646115303039550781250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4597452528400781200727773347148578394859756646410141125881596127193754432887855670848518267254914405e-06")), + (parse(T, "5.5699634552001953125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.7540378570556640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e-02"), parse(T, "2.7030512493692108520404961144346910482757936596144325548434739193859124095999160447647324248732281266e-09")), + (parse(T, "5.5699634552001953125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "1.2698680162429809570312500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.4001961204257077999560568337022275896359092582376928409153038184100873098181155743535515656399122892e-09")), + (parse(T, "5.5699634552001953125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "1.3547700643539428710937500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.5865763174010895102088743570945583459801930368357514234365897586603706536239416127639747276368786983e-09")), + (parse(T, "5.5699634552001953125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "1.8838196992874145507812500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.5873127634009519966375741174518731947450227924230517140592882611344586923274579883469815721582054606e-09")), + (parse(T, "5.5699634552001953125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "2.2103404998779296875000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.0647891760575599440059235748049403601867666499386019462653800297362340840531051544072513487623576858e-09")), + (parse(T, "5.5699634552001953125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "2.7849817276000976562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.6671405064280408628729977242101837372670118691707019408685080423381390900852164262010873472586715739e-09")), + (parse(T, "5.5699634552001953125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "3.0816698074340820312500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.8773637797154382587904788259943932410704647830705622500186312401651071993804376441937718444542611799e-09")), + (parse(T, "5.5699634552001953125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "5.4688143730163574218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "6.3586007261371926967730185115181189940789484942140015284401912413759568350541640858830390375625930385e-09")), + (parse(T, "5.5699634552001953125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "5.4722046852111816406250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "6.3586740707374372332973485569090234306280222147671022431220366003790811096796422704344814287495220930e-09")), + (parse(T, "5.5699634552001953125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "6.3235926628112792968750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "6.3678929343758782503016458536052454711146918306294165123428725788945122243573543299366548879178552445e-09")), + (parse(T, "5.5699634552001953125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "8.1472349166870117187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "6.3697976709206138002086123543340622638372997423028603881457519715496080959825644914170216326503727486e-09")), + (parse(T, "5.5699634552001953125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "8.3500838279724121093750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "6.3698069585593568539264402781860053497105855090925791129085334814190289235696195845243511226314456404e-09")), + (parse(T, "5.5699634552001953125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.0579175949096679687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "6.3698177186121812705152138547119870229643429824637830255849426970233652888315459061488269710390158602e-09")), + (parse(T, "5.5699634552001953125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.1337585449218750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "6.3698180423290976796441462551201687428763714400203651359954410145327220849923125039677699250278297860e-09")), + (parse(T, "5.5699634552001953125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.5750665664672851562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "6.3698189792530360249383671785674018906755144165043960816578411052673281929176576333478636456259463444e-09")), + (parse(T, "5.5699634552001953125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.6488833427429199218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "6.3698190461805331284389517966235336271958880314168464031037590439186878677082251760405152644565050685e-09")), + (parse(T, "5.5699634552001953125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.6769475936889648437500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "6.3698190678811146685407344722258200632425754152246640780982319547357149024559736417057200890976142053e-09")), + (parse(T, "5.5699634552001953125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.6886777877807617187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "6.3698190764065844417399072451975022629094360953832047319459489227517739396875795934462159833958319471e-09")), + (parse(T, "5.5699634552001953125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.9288129806518554687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "6.3698191968944703931621011311534948947853449248283107099042811237939152556708133948113594583286703269e-09")), + (parse(T, "5.5699634552001953125000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.9646115303039550781250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "6.3698192082456047804471390740510529275942966670459458767792869159634717710567195690244816393281939508e-09")), + (parse(T, "6.1633396148681640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.7540378570556640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e-02"), parse(T, "8.2307962385446293147850071046224826587132805852272143242479728881172896794860781740349908020844215370e-11")), + (parse(T, "6.1633396148681640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "1.2698680162429809570312500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.0283963277416623201804463973999049414822083348785938125216625919323195393721257543686987937457990009e-10")), + (parse(T, "6.1633396148681640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "1.3547700643539428710937500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.0824132060565853827927990910290994241030457383639324717044353255719802049291298967872069397063967779e-10")), + (parse(T, "6.1633396148681640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "1.8838196992874145507812500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.3637067306879723939356778531945205359591090948707105880052796210528321965355760135823812756446476091e-10")), + (parse(T, "6.1633396148681640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "2.2103404998779296875000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.4907748280031041047512037945282691074168838901476394291803963888017198136855953365863977193964269365e-10")), + (parse(T, "6.1633396148681640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "2.7849817276000976562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.6404519162603652163113937567948520472254042578292347991876153369420867813166210608579270223329187334e-10")), + (parse(T, "6.1633396148681640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "3.0816698074340820312500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.6884629354129612089797429254177374994941601208968768885889005201941965541207489302434302995065797557e-10")), + (parse(T, "6.1633396148681640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "5.4688143730163574218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7796463538981782326836339213416487884550654811220357414306858150337863696312639069477301953675244354e-10")), + (parse(T, "6.1633396148681640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "5.4722046852111816406250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7796543171997010745715805469702186607600802190015449414975905153654849316574711276946688373745954426e-10")), + (parse(T, "6.1633396148681640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "6.3235926628112792968750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7805404152885821942717099292030784173211902572777571416821782925492529084124531349890902977798741421e-10")), + (parse(T, "6.1633396148681640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "8.1472349166870117187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7806623964662454781566924743963930703690998426985131423071504138353834413966206045880875052663629228e-10")), + (parse(T, "6.1633396148681640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "8.3500838279724121093750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7806626655328540939904279113617568641571526302204491552850403802907480189686813981348689238242752520e-10")), + (parse(T, "6.1633396148681640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.0579175949096679687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7806629198364844052218637865246853247568449159852061884943363990597331551623161776219554471086443472e-10")), + (parse(T, "6.1633396148681640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.1337585449218750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7806629254333125009698672806382167409242163977335864576955477879632901157548742771990285337169366691e-10")), + (parse(T, "6.1633396148681640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.5750665664672851562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7806629396040104810604532023373989467501438077268692272228398307156674023660836550476652663147212698e-10")), + (parse(T, "6.1633396148681640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.6488833427429199218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7806629404308586263942384503594964844454580671918598688533381484306094913189987064909013337926319257e-10")), + (parse(T, "6.1633396148681640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.6769475936889648437500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7806629406897213940841350377220148560626236108563851482593678883488715356765508143041510611388964432e-10")), + (parse(T, "6.1633396148681640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.6886777877807617187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7806629407900543504128069412555720511088916750234168183965682839046874403544178165644184639642311920e-10")), + (parse(T, "6.1633396148681640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.9288129806518554687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7806629421064262663864058821730696684245317502298186670580356801987156960562796239048798389148023474e-10")), + (parse(T, "6.1633396148681640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e+00"), parse(T, "9.9646115303039550781250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7806629422179965403723872056775657985224162290477294409748651656860788796972983716944107641204085024e-10")), + (parse(T, "1.0937629699707031250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.7540378570556640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e-02"), parse(T, "1.3669580781844789231318859205091550249740997959753468373446376846248034028456101047437628548246315436e-28")), + (parse(T, "1.0937629699707031250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.2698680162429809570312500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.5967404486401372797243100260300464158116672635998236429276238874434114738891006150057090087842762702e-28")), + (parse(T, "1.0937629699707031250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.3547700643539428710937500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.6466760156070684009586269670997596457359323913134978082307922944799545694295895416327570976727357475e-28")), + (parse(T, "1.0937629699707031250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.8838196992874145507812500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.8321698375844716587008674501164810771773002399055662523502104333023832160916362232464642547970836413e-28")), + (parse(T, "1.0937629699707031250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "2.2103404998779296875000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.8759307737335383399758254031783456791445055801623120234544157960027995573629541976984260396973903010e-28")), + (parse(T, "1.0937629699707031250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "2.7849817276000976562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.9000570285676015845774377685858438216430943496464835165911732699742559550842111985119555069841751269e-28")), + (parse(T, "1.0937629699707031250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "3.0816698074340820312500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.9028328137378034294263372079340678788666407032030921934259038487347727626372463455064970154351662443e-28")), + (parse(T, "1.0937629699707031250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "5.4688143730163574218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.9041294978357685290296060622704927756521069133160611338008330578234961679827745190311024858929051122e-28")), + (parse(T, "1.0937629699707031250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "5.4722046852111816406250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.9041294979092973099744857901960622861433317986525710260036208201617850109781518413611874450280708082e-28")), + (parse(T, "1.0937629699707031250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "6.3235926628112792968750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.9041295010550777553751610875065340427437674185310904860169370609863543615660882943795753155486999482e-28")), + (parse(T, "1.0937629699707031250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "8.1472349166870117187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.9041295010613532817057465452782045710389272370980258343573032510766833159600291118924483360667745084e-28")), + (parse(T, "1.0937629699707031250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "8.3500838279724121093750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.9041295010613532822082452419995266717796119985756107063433937158086204054926729875059835438063538195e-28")), + (parse(T, "1.0937629699707031250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.0579175949096679687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.9041295010613532822828394723339866704841271912806161599337665415177575107487418905738218626912120766e-28")), + (parse(T, "1.0937629699707031250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.1337585449218750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.9041295010613532822828624914906367279334733981245329141705851890712504833122027489034276619817854068e-28")), + (parse(T, "1.0937629699707031250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.5750665664672851562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.9041295010613532822828798355835259833399566220863644887505845105889160804407154431517877325100181398e-28")), + (parse(T, "1.0937629699707031250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6488833427429199218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.9041295010613532822828799017042867403567299966784415039105261955855847165921058462530917692733181598e-28")), + (parse(T, "1.0937629699707031250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6769475936889648437500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.9041295010613532822828799152534296333230515004707762706168184614444934735630878169704521494371056818e-28")), + (parse(T, "1.0937629699707031250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6886777877807617187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.9041295010613532822828799197266779612029779770443204510974618023406248826920962336126781808963586846e-28")), + (parse(T, "1.0937629699707031250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.9288129806518554687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.9041295010613532822828799481835905183520600674347944730883508731563567413646854435472526750350521376e-28")), + (parse(T, "1.0937629699707031250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.9646115303039550781250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.9041295010613532822828799487875263361351187074625316521313683355995917038576424068701364663344970730e-28")), + (parse(T, "1.0944412231445312500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.7540378570556640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e-02"), parse(T, "1.2689362214738440975744230530813840642017366438214402549707342179362193768665974030615174818332323960e-28")), + (parse(T, "1.0944412231445312500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.2698680162429809570312500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.4820871600688099148496946304860385617692694663435417704398233765308489356931528766928937886837462035e-28")), + (parse(T, "1.0944412231445312500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.3547700643539428710937500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.5283921217768466688204835884488635140293079747833136961817886487209690019793121346558124445849406329e-28")), + (parse(T, "1.0944412231445312500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.8838196992874145507812500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7002997885618094418663112283329944302429865243066011745243168463416099919353280213603139074058673097e-28")), + (parse(T, "1.0944412231445312500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "2.2103404998779296875000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7408071415337177747588439840708744441378680021821638872932429990102170826062194946119094954764327183e-28")), + (parse(T, "1.0944412231445312500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "2.7849817276000976562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7631104043423429890544379537658830829055705877173893405249570800747837325370893065434293959679789472e-28")), + (parse(T, "1.0944412231445312500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "3.0816698074340820312500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7656715289867008983986996838808664018779825214200147275358852745822570395579512155006746539433841575e-28")), + (parse(T, "1.0944412231445312500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "5.4688143730163574218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7668656499493656799882818426696713620038319132706932057386922564340989854089202167716899922351664784e-28")), + (parse(T, "1.0944412231445312500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "5.4722046852111816406250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7668656500161361789749132514906392224046356981068760227531902585314778436793359639723285274067281188e-28")), + (parse(T, "1.0944412231445312500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "6.3235926628112792968750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7668656528693694874065304221576121157303085121774231388970112986094444501422229592182099774009597556e-28")), + (parse(T, "1.0944412231445312500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "8.1472349166870117187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7668656528750190206996954456753185240753546405104277431208289524793813700716503716617014163629850580e-28")), + (parse(T, "1.0944412231445312500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "8.3500838279724121093750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7668656528750190211434551044647249184652301621094400273847851601893100236448690271725318553257222813e-28")), + (parse(T, "1.0944412231445312500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.0579175949096679687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7668656528750190212091423973686090102685720495510842139024421254477095600992298619794850256173045604e-28")), + (parse(T, "1.0944412231445312500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.1337585449218750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7668656528750190212091624988508285806112294085042034469009590489519751071885764887670280618301614988e-28")), + (parse(T, "1.0944412231445312500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.5750665664672851562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7668656528750190212091776179522859054167907673770134325639481170756610993075399638966531954712314258e-28")), + (parse(T, "1.0944412231445312500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6488833427429199218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7668656528750190212091776752802319450371695791946295951560695147016725890345373773298652708030690968e-28")), + (parse(T, "1.0944412231445312500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6769475936889648437500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7668656528750190212091776870182983774808826534329109140254154030437666593932220225631381605110486071e-28")), + (parse(T, "1.0944412231445312500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6886777877807617187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7668656528750190212091776908924783113143170712256301664805226802265094764245696413126656359622158170e-28")), + (parse(T, "1.0944412231445312500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.9288129806518554687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7668656528750190212091777155114107479637861421743767225564898980292242558409899940725130730652208333e-28")), + (parse(T, "1.0944412231445312500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.9646115303039550781250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.7668656528750190212091777160324679577601142852684519223834218056774899852747538639850087655326840009e-28")), + (parse(T, "1.2647182464599609375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.7540378570556640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e-02"), parse(T, "2.2770505103391758119559932793619204322213404907603559304691035183460381049418519786519552498913947220e-37")), + (parse(T, "1.2647182464599609375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.2698680162429809570312500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.5913310373742305854948973099826412902412422243181917527791986098943406758550748924825052947700591709e-37")), + (parse(T, "1.2647182464599609375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.3547700643539428710937500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.6533562728906664559656758411974864988422347826034622961209557772614749840151711670498839384876937964e-37")), + (parse(T, "1.2647182464599609375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.8838196992874145507812500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.8510556422268561141235918740979993338644689486362556771311320700208128632710296762348131844674085466e-37")), + (parse(T, "1.2647182464599609375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "2.2103404998779296875000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.8847214733539339240197490164986845175474033070134399303881639952603323077315692549692458103361595423e-37")), + (parse(T, "1.2647182464599609375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "2.7849817276000976562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.8978342028077556742204431797715236201890511484459045899348690693300848043699847668815692980931691601e-37")), + (parse(T, "1.2647182464599609375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "3.0816698074340820312500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.8987240504798525250156023922448342887934728092135408244863927293881972387101672243386486978472905447e-37")), + (parse(T, "1.2647182464599609375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "5.4688143730163574218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.8989802694371870955782034832436956396943073208445904319505185439385041850901217431220210518603326440e-37")), + (parse(T, "1.2647182464599609375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "5.4722046852111816406250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.8989802694374968792321190934511709843700963511595603337229671845229934162325653424198528314502062460e-37")), + (parse(T, "1.2647182464599609375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "6.3235926628112792968750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.8989802694474820292552333686080161459465445552533728944481007903625406727249808867761465178167447887e-37")), + (parse(T, "1.2647182464599609375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "8.1472349166870117187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.8989802694474846506777458089680506753425813092829929114165843341746642846218708304267190145698278379e-37")), + (parse(T, "1.2647182464599609375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "8.3500838279724121093750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.8989802694474846506777469082879060067801608384996798279004447573208223395610478778654041717263413239e-37")), + (parse(T, "1.2647182464599609375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.0579175949096679687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.8989802694474846506777469857848132561940230361461603024093752181331444098117843122658139081376261736e-37")), + (parse(T, "1.2647182464599609375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.1337585449218750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.8989802694474846506777469857871726770292766823377376460131099419982133630007388503158425203497459471e-37")), + (parse(T, "1.2647182464599609375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.5750665664672851562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.8989802694474846506777469857883154105936448281784198334785811781141030186489038831911605263613270295e-37")), + (parse(T, "1.2647182464599609375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6488833427429199218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.8989802694474846506777469857883163793407739745716870170215314065360782442866947737558685724959424131e-37")), + (parse(T, "1.2647182464599609375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6769475936889648437500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.8989802694474846506777469857883165389985145983053088223895299881908771166937953150338200695632808431e-37")), + (parse(T, "1.2647182464599609375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6886777877807617187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.8989802694474846506777469857883165876350007268614373699756833303491402495835015345459783476689786687e-37")), + (parse(T, "1.2647182464599609375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.9288129806518554687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.8989802694474846506777469857883168230383038892430310577849615145810436821539378957311285467240642390e-37")), + (parse(T, "1.2647182464599609375000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.9646115303039550781250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.8989802694474846506777469857883168253616188739390762067648898153841901648303957152481569127187620087e-37")), + (parse(T, "1.6294471740722656250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.7540378570556640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e-02"), parse(T, "2.4019827109851080539564115082482784330129765638075052820901304287067752708102440756805399404365634434e-60")), + (parse(T, "1.6294471740722656250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.2698680162429809570312500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.5986953689988862538052972437743366730756169715711716065325969045294065991953865842876073638881177006e-60")), + (parse(T, "1.6294471740722656250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.3547700643539428710937500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.6286826789856318753559793827573539310556706086243080911069749176759339093606285740471711896222364768e-60")), + (parse(T, "1.6294471740722656250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.8838196992874145507812500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.6952518518698465470647958517151551062898479146931531016736093915914392819292438166183134711144202947e-60")), + (parse(T, "1.6294471740722656250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "2.2103404998779296875000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.7000145299021305892101281855033088829831777925781401728188126884053573689205260566551293122892350094e-60")), + (parse(T, "1.6294471740722656250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "2.7849817276000976562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.7008122062540901975400176745806389733303556547024291631774255617256215859107971683890208816509621443e-60")), + (parse(T, "1.6294471740722656250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "3.0816698074340820312500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.7008251386433437818787796493908228514410011338412569558394939053912490454944147481651521382805485111e-60")), + (parse(T, "1.6294471740722656250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "5.4688143730163574218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.7008264001838319221907854857278497200793714239224307286405852457195979759591596650677391300303121243e-60")), + (parse(T, "1.6294471740722656250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "5.4722046852111816406250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.7008264001838319222420312087476725992185317610809049207531281957880689197553004936257817723097406771e-60")), + (parse(T, "1.6294471740722656250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "6.3235926628112792968750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.7008264001838319232388285365148916194703641481091676978109011476243165787990842422908375428072821384e-60")), + (parse(T, "1.6294471740722656250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "8.1472349166870117187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.7008264001838319232388298390750736263275415332924648258219594982616661509753455193847960431740101396e-60")), + (parse(T, "1.6294471740722656250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "8.3500838279724121093750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.7008264001838319232388298390750736263280566386956254824529685549179941283630933059075956645315497583e-60")), + (parse(T, "1.6294471740722656250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.0579175949096679687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.7008264001838319232388298390750736263280625033470452015421064159591341412106638427352250772166209881e-60")), + (parse(T, "1.6294471740722656250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.1337585449218750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.7008264001838319232388298390750736263280625033473795743733983618608468224192996716796941951652578282e-60")), + (parse(T, "1.6294471740722656250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.5750665664672851562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.7008264001838319232388298390750736263280625033474421536184942614673350519057927723367982448142594553e-60")), + (parse(T, "1.6294471740722656250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6488833427429199218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.7008264001838319232388298390750736263280625033474421544626888102677111140311789076405181980788895016e-60")), + (parse(T, "1.6294471740722656250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6769475936889648437500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.7008264001838319232388298390750736263280625033474421545394077237515246336371967532276179457799793929e-60")), + (parse(T, "1.6294471740722656250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6886777877807617187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.7008264001838319232388298390750736263280625033474421545582675590954463106222861399197285845322149076e-60")), + (parse(T, "1.6294471740722656250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.9288129806518554687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.7008264001838319232388298390750736263280625033474421546112686203106573838122860950191865642365348159e-60")), + (parse(T, "1.6294471740722656250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.9646115303039550781250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.7008264001838319232388298390750736263280625033474421546113283869190062024059478981786014037447271842e-60")), + (parse(T, "1.6700164794921875000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.7540378570556640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e-02"), parse(T, "2.9339321969508820194824162410957321245475751276095254284275486684952702631733123300565451654876560286e-63")), + (parse(T, "1.6700164794921875000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.2698680162429809570312500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.1587028105600101555380088396000772591825405244281735906006754493251111737478103995487015276176939325e-63")), + (parse(T, "1.6700164794921875000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.3547700643539428710937500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.1918433632703015481141253344660898224848253746827650953219731886118277912211195912494801869869034860e-63")), + (parse(T, "1.6700164794921875000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.8838196992874145507812500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.2623744743650812448406117886504232160257887720395925880032425421007367043430595169007652998842911985e-63")), + (parse(T, "1.6700164794921875000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "2.2103404998779296875000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.2668896346970722766209517924464926753262777793899281916655167273259740080375591578482407262514875140e-63")), + (parse(T, "1.6700164794921875000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "2.7849817276000976562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.2675727314784888623134673458878177516507241985447145304880663806909124950225882757205385350077933998e-63")), + (parse(T, "1.6700164794921875000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "3.0816698074340820312500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.2675819320678273051929079409573860828709541978682920090244257259207276397171764876723227853224430995e-63")), + (parse(T, "1.6700164794921875000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "5.4688143730163574218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.2675827221443955788429727047768398972633832465223960687469233384042118226596964999356837310249249421e-63")), + (parse(T, "1.6700164794921875000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "5.4722046852111816406250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.2675827221443955788515456999253713386691661279437214926747508919416830299739309876144334876468342482e-63")), + (parse(T, "1.6700164794921875000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "6.3235926628112792968750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.2675827221443955790102325732514717605057478132145455205102411416195258515682319106760535853525195689e-63")), + (parse(T, "1.6700164794921875000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "8.1472349166870117187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.2675827221443955790102326791168090830898033189882044739341478649365757224279864467719634996190409554e-63")), + (parse(T, "1.6700164794921875000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "8.3500838279724121093750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.2675827221443955790102326791168090830898104919086455115386558410697826337345174209644856720074571280e-63")), + (parse(T, "1.6700164794921875000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.0579175949096679687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.2675827221443955790102326791168090830898105570374832874769079690541854972947308291009263110325930413e-63")), + (parse(T, "1.6700164794921875000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.1337585449218750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.2675827221443955790102326791168090830898105570374849420753064022612813407656148154795396086299554848e-63")), + (parse(T, "1.6700164794921875000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.5750665664672851562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.2675827221443955790102326791168090830898105570374852198412593742539359670771572549989865121761644544e-63")), + (parse(T, "1.6700164794921875000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6488833427429199218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.2675827221443955790102326791168090830898105570374852198434499967719174390345116976100080334632929478e-63")), + (parse(T, "1.6700164794921875000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6769475936889648437500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.2675827221443955790102326791168090830898105570374852198436341534198622242800239351934884440811759396e-63")), + (parse(T, "1.6700164794921875000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6886777877807617187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.2675827221443955790102326791168090830898105570374852198436781928668884596449357570610107817507727354e-63")), + (parse(T, "1.6700164794921875000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.9288129806518554687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.2675827221443955790102326791168090830898105570374852198437951783778012443711385134649162178349604948e-63")), + (parse(T, "1.6700164794921875000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.9646115303039550781250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.2675827221443955790102326791168090830898105570374852198437952773856096479591634871178503416984805049e-63")), + (parse(T, "1.8115837097167968750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.7540378570556640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e-02"), parse(T, "5.5191097659413416120390603603717530958881654160231344923494077130522749174111168055204932246176318447e-74")), + (parse(T, "1.8115837097167968750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.2698680162429809570312500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.8495563676428042732652229494624460257384969660002337832733437605704915962706516648486344099195679848e-74")), + (parse(T, "1.8115837097167968750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.3547700643539428710937500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.8925976298439032475208897274848135814122454692724348652734131471380544131423602275343325142702966336e-74")), + (parse(T, "1.8115837097167968750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.8838196992874145507812500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.9715331370584007247150936906788737328563085358766224392207244315035665385452927231177318228876162757e-74")), + (parse(T, "1.8115837097167968750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "2.2103404998779296875000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.9748822028408810986854506841911127381352642464684912821545808401953346157337564461258280528516262083e-74")), + (parse(T, "1.8115837097167968750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "2.7849817276000976562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.9752333070684903040184169931416751967100427340190275608621374937679061584135487093747373493558092314e-74")), + (parse(T, "1.8115837097167968750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "3.0816698074340820312500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.9752356839769495177195290813393642680754002003223215693314532791688635802102775166637066883893428949e-74")), + (parse(T, "1.8115837097167968750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "5.4688143730163574218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.9752358129013488147841069380452158567573785850829814817698351909514857324486545049777484533814220234e-74")), + (parse(T, "1.8115837097167968750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "5.4722046852111816406250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.9752358129013488147841175899503380678541384074644219060692753922324076141500474128271804708158440820e-74")), + (parse(T, "1.8115837097167968750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "6.3235926628112792968750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.9752358129013488147842847933266096144697959593162905141885533398900847126829894445610080004030737558e-74")), + (parse(T, "1.8115837097167968750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "8.1472349166870117187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.9752358129013488147842847933359938393250458726426983913744216050593101628626574979183629036802766871e-74")), + (parse(T, "1.8115837097167968750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "8.3500838279724121093750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.9752358129013488147842847933359938393250458726436552868715071711210268450358266018308085600765709899e-74")), + (parse(T, "1.8115837097167968750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.0579175949096679687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.9752358129013488147842847933359938393250458726436590760691136190552400127208494766719876030837725551e-74")), + (parse(T, "1.8115837097167968750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.1337585449218750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.9752358129013488147842847933359938393250458726436590760691184622479196716803922941917532539941455104e-74")), + (parse(T, "1.8115837097167968750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.5750665664672851562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.9752358129013488147842847933359938393250458726436590760691190142354255597210224783224792858614728141e-74")), + (parse(T, "1.8115837097167968750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6488833427429199218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.9752358129013488147842847933359938393250458726436590760691190142360210440034821006755320193689189313e-74")), + (parse(T, "1.8115837097167968750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6769475936889648437500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.9752358129013488147842847933359938393250458726436590760691190142360584540717206293361955532932882926e-74")), + (parse(T, "1.8115837097167968750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6886777877807617187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.9752358129013488147842847933359938393250458726436590760691190142360665301500237332177667486724085048e-74")), + (parse(T, "1.8115837097167968750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.9288129806518554687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.9752358129013488147842847933359938393250458726436590760691190142360842654418267485063928057015374736e-74")), + (parse(T, "1.8115837097167968750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.9646115303039550781250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.9752358129013488147842847933359938393250458726436590760691190142360842705780732804935986650912837289e-74")), + (parse(T, "1.8267517089843750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.7540378570556640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e-02"), parse(T, "3.4757541366541816087530043985108154809261469072672370276708713846190319704881986921471511392021329473e-75")), + (parse(T, "1.8267517089843750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.2698680162429809570312500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.6781773605153348367166316756518684268994345067914801675490837737786153676205200691218643675222354366e-75")), + (parse(T, "1.8267517089843750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.3547700643539428710937500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.7041770174749299149158235232218706487195712551348399576202288711877707974285631430131188063968820309e-75")), + (parse(T, "1.8267517089843750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.8838196992874145507812500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.7510994137965218018155250289561790732739962552665520667511661088859562674051101627390829091617767549e-75")), + (parse(T, "1.8267517089843750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "2.2103404998779296875000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.7530002886430463959575876930643074110998409234681366942099052009402027215825745952058162630720569941e-75")), + (parse(T, "1.8267517089843750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "2.7849817276000976562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.7531916776192058002137778773832104570237939538214740762802404044639614290819898441197291804798644328e-75")), + (parse(T, "1.8267517089843750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "3.0816698074340820312500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.7531928767081717242777146788924588254597241446560147238267793354459039112504528311925943642698301688e-75")), + (parse(T, "1.8267517089843750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "5.4688143730163574218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.7531929385342995283939172793874315345890002972093747943813795116181090887154103443540762328223120070e-75")), + (parse(T, "1.8267517089843750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "5.4722046852111816406250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.7531929385342995283939202336539492411838485441190143345976330614422050096048254268951089817544952958e-75")), + (parse(T, "1.8267517089843750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "6.3235926628112792968750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.7531929385342995283939658271491430282784731466212600679568203321898699118009215764282210105817341589e-75")), + (parse(T, "1.8267517089843750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "8.1472349166870117187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.7531929385342995283939658271510825240437323496722368022407716304233137534633200617421755252883180386e-75")), + (parse(T, "1.8267517089843750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "8.3500838279724121093750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.7531929385342995283939658271510825240437323496723323103652504435486817003573719094939210316130109783e-75")), + (parse(T, "1.8267517089843750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.0579175949096679687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.7531929385342995283939658271510825240437323496723326550855718281243537828144681285040311466080277900e-75")), + (parse(T, "1.8267517089843750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.1337585449218750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.7531929385342995283939658271510825240437323496723326550855721430654504871140990453427367161504176686e-75")), + (parse(T, "1.8267517089843750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.5750665664672851562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.7531929385342995283939658271510825240437323496723326550855721774725362073409183283531564640752643518e-75")), + (parse(T, "1.8267517089843750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6488833427429199218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.7531929385342995283939658271510825240437323496723326550855721774725658838182999300371458405492332771e-75")), + (parse(T, "1.8267517089843750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6769475936889648437500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.7531929385342995283939658271510825240437323496723326550855721774725676876138082093136394246206244164e-75")), + (parse(T, "1.8267517089843750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6886777877807617187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.7531929385342995283939658271510825240437323496723326550855721774725680725523918995765964719099269161e-75")), + (parse(T, "1.8267517089843750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.9288129806518554687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.7531929385342995283939658271510825240437323496723326550855721774725689012720962563542884707611803837e-75")), + (parse(T, "1.8267517089843750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.9646115303039550781250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "3.7531929385342995283939658271510825240437323496723326550855721774725689014846625313142358304379682386e-75")), + (parse(T, "1.9150131225585937500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.7540378570556640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e-02"), parse(T, "2.2661704720764430974809869872537009183690664631966473566021853503794936093284495902662257582880935544e-82")), + (parse(T, "1.9150131225585937500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.2698680162429809570312500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.3779690202261065171908418765533295276499181379212493489185457387274481971131380442059557310535424631e-82")), + (parse(T, "1.9150131225585937500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.3547700643539428710937500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.3911691636232112832565826237055836301379850030421759523484907911117240823563979226621182333274448186e-82")), + (parse(T, "1.9150131225585937500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.8838196992874145507812500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4128605292089238358464595759233388498565149619919670031020852909946357381061671588281677140613635326e-82")), + (parse(T, "1.9150131225585937500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "2.2103404998779296875000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4135264499849360643108146181530849284983277473372998454957612577782473640811118419954268667424587882e-82")), + (parse(T, "1.9150131225585937500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "2.7849817276000976562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4135792197319428368845170341234404329321871138818078807445367622455528845931554432697333007096025116e-82")), + (parse(T, "1.9150131225585937500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "3.0816698074340820312500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4135794273865709858864781593891826184127634115252233405318381185560066669709719251364473259195938843e-82")), + (parse(T, "1.9150131225585937500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "5.4688143730163574218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4135794353127537415575320338487908809611811843447900175898278286558724592052961769599158917517806361e-82")), + (parse(T, "1.9150131225585937500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "5.4722046852111816406250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4135794353127537415575320480709468962812682969751190235679919359561670267288804127501307705933914664e-82")), + (parse(T, "1.9150131225585937500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "6.3235926628112792968750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4135794353127537415575322474310893550758897463628304819827402077773972984210322872278476448645463200e-82")), + (parse(T, "1.9150131225585937500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "8.1472349166870117187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4135794353127537415575322474310909698664070368971185945227897238166774454032470776318510018614355563e-82")), + (parse(T, "1.9150131225585937500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "8.3500838279724121093750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4135794353127537415575322474310909698664070368971185955425608296490048150424224830731357766776519227e-82")), + (parse(T, "1.9150131225585937500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.0579175949096679687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4135794353127537415575322474310909698664070368971185955446756159834200959381172789599298592971001458e-82")), + (parse(T, "1.9150131225585937500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.1337585449218750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4135794353127537415575322474310909698664070368971185955446756159836782643541759441951003421558975161e-82")), + (parse(T, "1.9150131225585937500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.5750665664672851562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4135794353127537415575322474310909698664070368971185955446756159837002336761682996580954821583130590e-82")), + (parse(T, "1.9150131225585937500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6488833427429199218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4135794353127537415575322474310909698664070368971185955446756159837002336811182297126761165386938067e-82")), + (parse(T, "1.9150131225585937500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6769475936889648437500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4135794353127537415575322474310909698664070368971185955446756159837002336813647320662401872367189868e-82")), + (parse(T, "1.9150131225585937500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6886777877807617187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4135794353127537415575322474310909698664070368971185955446756159837002336814138142215745094050174683e-82")), + (parse(T, "1.9150131225585937500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.9288129806518554687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4135794353127537415575322474310909698664070368971185955446756159837002336815081326895436377879463431e-82")), + (parse(T, "1.9150131225585937500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.9646115303039550781250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.4135794353127537415575322474310909698664070368971185955446756159837002336815081443354785255124518831e-82")), + (parse(T, "1.9297767639160156250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.7540378570556640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e-02"), parse(T, "1.3191198940585145448581309174518681090051764289807221927708058677248338549641302125264669522357775190e-83")), + (parse(T, "1.9297767639160156250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.2698680162429809570312500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.3823639515808246053080935915351637779086536894797282072388013030658820997983370793847889339670612116e-83")), + (parse(T, "1.9297767639160156250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.3547700643539428710937500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.3897233624946945956483009264900533964243722314365082184999045555548795970863161081157275114904993536e-83")), + (parse(T, "1.9297767639160156250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.8838196992874145507812500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.4016283278298765543709141098595984521280239546946313459052974901416203319425657117997156673106683370e-83")), + (parse(T, "1.9297767639160156250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "2.2103404998779296875000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.4019767591196865638692758494267009596030139649888562924049835323876662452756940643980904472248048814e-83")), + (parse(T, "1.9297767639160156250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "2.7849817276000976562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.4020032664018558896713654724416555987943423778321901265922273760008339933790517742849551009757067669e-83")), + (parse(T, "1.9297767639160156250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "3.0816698074340820312500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.4020033626749832112055433990456565935418431804898311500858256663463497038484070211736088546674516379e-83")), + (parse(T, "1.9297767639160156250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "5.4688143730163574218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.4020033661659135489906039772914664768213205100652410030305851196090064712264964027203233196416711536e-83")), + (parse(T, "1.9297767639160156250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "5.4722046852111816406250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.4020033661659135489906039808518827504624362365801346125780841233377854813276177901585903478991039558e-83")), + (parse(T, "1.9297767639160156250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "6.3235926628112792968750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.4020033661659135489906040299829828181690863861662643260243009561308998561154120696284537429024387395e-83")), + (parse(T, "1.9297767639160156250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "8.1472349166870117187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.4020033661659135489906040299829831174172117625751056596284269666908835044048190697934609873688543754e-83")), + (parse(T, "1.9297767639160156250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "8.3500838279724121093750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.4020033661659135489906040299829831174172117625751056597177989958512360809462582893304451972833973374e-83")), + (parse(T, "1.9297767639160156250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.0579175949096679687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.4020033661659135489906040299829831174172117625751056597179675090061924267512353239466051743901542572e-83")), + (parse(T, "1.9297767639160156250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.1337585449218750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.4020033661659135489906040299829831174172117625751056597179675090062069747141037879585683359028579291e-83")), + (parse(T, "1.9297767639160156250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.5750665664672851562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.4020033661659135489906040299829831174172117625751056597179675090062081612819095485790147441154724248e-83")), + (parse(T, "1.9297767639160156250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6488833427429199218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.4020033661659135489906040299829831174172117625751056597179675090062081612821217035463935811252829624e-83")), + (parse(T, "1.9297767639160156250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6769475936889648437500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.4020033661659135489906040299829831174172117625751056597179675090062081612821319100734608610312292906e-83")), + (parse(T, "1.9297767639160156250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6886777877807617187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.4020033661659135489906040299829831174172117625751056597179675090062081612821339181670850046185308834e-83")), + (parse(T, "1.9297767639160156250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.9288129806518554687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.4020033661659135489906040299829831174172117625751056597179675090062081612821377055108762236212803659e-83")), + (parse(T, "1.9297767639160156250000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.9646115303039550781250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "1.4020033661659135489906040299829831174172117625751056597179675090062081612821377059229951251545745005e-83")), + (parse(T, "1.9353897094726562500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.7540378570556640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e-02"), parse(T, "4.4490393956719026030424824478246800350837744280218290910180597278869150379342865442615594358929646523e-84")), + (parse(T, "1.9353897094726562500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.2698680162429809570312500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.6600273789204641649803094220052639551915788712820451267116468007867395437058695117794482315674579148e-84")), + (parse(T, "1.9353897094726562500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.3547700643539428710937500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.6844427427068621216032668985854229014392861610372711611872070206684973773440138791317811209977696523e-84")), + (parse(T, "1.9353897094726562500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.8838196992874145507812500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.7237030283665899246764140174407580424806024108863172604235560724552924602953196055672061711842974909e-84")), + (parse(T, "1.9353897094726562500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "2.2103404998779296875000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.7248312896491306864998980527199673933841808550598423958906332204905475403120192161958923477722602312e-84")), + (parse(T, "1.9353897094726562500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "2.7849817276000976562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.7249157978283023663928615368836783505092015309052729307940032878083778409457174890572739349589092501e-84")), + (parse(T, "1.9353897094726562500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "3.0816698074340820312500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.7249160954910707798394202462405978434875086134477969406649339579916384495990395980060843448849083144e-84")), + (parse(T, "1.9353897094726562500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "5.4688143730163574218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.7249161060751634884465882718461512044401772026732334807183013324654929814180626685532914518705846189e-84")), + (parse(T, "1.9353897094726562500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "5.4722046852111816406250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.7249161060751634884465882805441194749716910849204709764102168782981538112639127570624737937426674967e-84")), + (parse(T, "1.9353897094726562500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "6.3235926628112792968750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.7249161060751634884465883998588687550735336402643048045424606345263232453375273923998030478480680653e-84")), + (parse(T, "1.9353897094726562500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "8.1472349166870117187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.7249161060751634884465883998588694067791889850573198778488217878470089531437804153550454829371039629e-84")), + (parse(T, "1.9353897094726562500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "8.3500838279724121093750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.7249161060751634884465883998588694067791889850573198779950130821260070025031930459267864046961719810e-84")), + (parse(T, "1.9353897094726562500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.0579175949096679687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.7249161060751634884465883998588694067791889850573198779952788843985217051654150388533122791975375536e-84")), + (parse(T, "1.9353897094726562500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.1337585449218750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.7249161060751634884465883998588694067791889850573198779952788843985418054487383657663529579342519320e-84")), + (parse(T, "1.9353897094726562500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.5750665664672851562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.7249161060751634884465883998588694067791889850573198779952788843985434185693964071187683583562031625e-84")), + (parse(T, "1.9353897094726562500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6488833427429199218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.7249161060751634884465883998588694067791889850573198779952788843985434185696604235040993536822658340e-84")), + (parse(T, "1.9353897094726562500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6769475936889648437500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.7249161060751634884465883998588694067791889850573198779952788843985434185696729582223222091828400472e-84")), + (parse(T, "1.9353897094726562500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6886777877807617187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.7249161060751634884465883998588694067791889850573198779952788843985434185696754131157006320411133980e-84")), + (parse(T, "1.9353897094726562500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.9288129806518554687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.7249161060751634884465883998588694067791889850573198779952788843985434185696800104369383645196363960e-84")), + (parse(T, "1.9353897094726562500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.9646115303039550781250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "4.7249161060751634884465883998588694067791889850573198779952788843985434185696800109135789609793731663e-84")), + (parse(T, "1.9377349853515625000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.7540378570556640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e-02"), parse(T, "2.8225136662191486900863465575916865952448280708241267714474912083204296123805108858681506777806378759e-84")), + (parse(T, "1.9377349853515625000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.2698680162429809570312500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.9557556195357063262512619003514625185274064353472423178852901024452656999875624280416702137634510411e-84")), + (parse(T, "1.9377349853515625000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.3547700643539428710937500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.9711383594166934108442295450013310087042386864109339727024865071317022776707090728884446523962787645e-84")), + (parse(T, "1.9377349853515625000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.8838196992874145507812500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.9958123636720670973175150415830455711860298251347131063221017373645805033650407448114562509323599727e-84")), + (parse(T, "1.9377349853515625000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "2.2103404998779296875000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.9965160415736516114878224347652616441248570285776481929165777330223006625884208523539045865887558752e-84")), + (parse(T, "1.9377349853515625000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "2.7849817276000976562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.9965684058224165658161286419653486321755854347243722330668087364377287599082208927609190552770092082e-84")), + (parse(T, "1.9377349853515625000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "3.0816698074340820312500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.9965685879119483199246815080233994718401425290544426432012588216816363985450917188567201782535543745e-84")), + (parse(T, "1.9377349853515625000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "5.4688143730163574218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.9965685943337075842128708134324770240552814009291817788672782289495375208444995930791831628871692958e-84")), + (parse(T, "1.9377349853515625000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "5.4722046852111816406250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.9965685943337075842128708182535373738479552224447024588312191943603493971261067796621953246822802129e-84")), + (parse(T, "1.9377349853515625000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "6.3235926628112792968750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.9965685943337075842128708842230283305376995684464705428352619057921842285607957649468157621467100551e-84")), + (parse(T, "1.9377349853515625000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "8.1472349166870117187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.9965685943337075842128708842230286747995771257955557983986067545054455535764305523146436193245438972e-84")), + (parse(T, "1.9377349853515625000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "8.3500838279724121093750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.9965685943337075842128708842230286747995771257955557984671106045775646675393816309229880068844981389e-84")), + (parse(T, "1.9377349853515625000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.0579175949096679687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.9965685943337075842128708842230286747995771257955557984672332748137646619043980790696360140601523723e-84")), + (parse(T, "1.9377349853515625000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.1337585449218750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.9965685943337075842128708842230286747995771257955557984672332748137734378693387067492189594857428585e-84")), + (parse(T, "1.9377349853515625000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.5750665664672851562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.9965685943337075842128708842230286747995771257955557984672332748137741374220592630824583003278594369e-84")), + (parse(T, "1.9377349853515625000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6488833427429199218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.9965685943337075842128708842230286747995771257955557984672332748137741374221695961308557179059573598e-84")), + (parse(T, "1.9377349853515625000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6769475936889648437500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.9965685943337075842128708842230286747995771257955557984672332748137741374221748054871592455334798295e-84")), + (parse(T, "1.9377349853515625000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6886777877807617187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.9965685943337075842128708842230286747995771257955557984672332748137741374221758237725405813638158493e-84")), + (parse(T, "1.9377349853515625000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.9288129806518554687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.9965685943337075842128708842230286747995771257955557984672332748137741374221777251000447793495163427e-84")), + (parse(T, "1.9377349853515625000000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.9646115303039550781250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.9965685943337075842128708842230286747995771257955557984672332748137741374221777252932176829112981831e-84")), + (parse(T, "1.9857620239257812500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.7540378570556640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e-02"), parse(T, "2.2438222857362642328721666762700670180512280358418254668975233507745332654116410436011453686965583320e-88")), + (parse(T, "1.9857620239257812500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.2698680162429809570312500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.3401498546424510733553760760713089220194411374612244753632571325026025609278414016278426420435941406e-88")), + (parse(T, "1.9857620239257812500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.3547700643539428710937500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.3507442475443941769350296619070755923978988367103893932068275511001366418117131564067482107360261256e-88")), + (parse(T, "1.9857620239257812500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.8838196992874145507812500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.3668902899384734364002740136245246666651297141478626576353623717333057222726571690487782253713815225e-88")), + (parse(T, "1.9857620239257812500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "2.2103404998779296875000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.3672831316167632657724475029929234130566491646454665814596085474916464739333870332873695536029518534e-88")), + (parse(T, "1.9857620239257812500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "2.7849817276000976562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.3673086849227167312500038271366885158855725283973352461790290342204550385443187547817889150752632821e-88")), + (parse(T, "1.9857620239257812500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "3.0816698074340820312500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.3673087529822476518694748438059077395092889307169444313706384386840282580125934385201938096902673118e-88")), + (parse(T, "1.9857620239257812500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "5.4688143730163574218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.3673087550081705781915964023061439759020768926901365903615834775454723918691011603336032390489329245e-88")), + (parse(T, "1.9857620239257812500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "5.4722046852111816406250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.3673087550081705781915964025388629094045959345392418522712094481659886036526141496643680018703855331e-88")), + (parse(T, "1.9857620239257812500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "6.3235926628112792968750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.3673087550081705781915964055675774880697034171474958911013883381096078358602101190347072844155446614e-88")), + (parse(T, "1.9857620239257812500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "8.1472349166870117187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.3673087550081705781915964055675774942048518999361543210821948933436165328793679693511805322280998218e-88")), + (parse(T, "1.9857620239257812500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "8.3500838279724121093750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.3673087550081705781915964055675774942048518999361543210822965157609037677948877689026250186946015566e-88")), + (parse(T, "1.9857620239257812500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.0579175949096679687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.3673087550081705781915964055675774942048518999361543210822966484600396400657620575715736093645266310e-88")), + (parse(T, "1.9857620239257812500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.1337585449218750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.3673087550081705781915964055675774942048518999361543210822966484600396430678144795337231850694662522e-88")), + (parse(T, "1.9857620239257812500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.5750665664672851562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.3673087550081705781915964055675774942048518999361543210822966484600396432759227887237016634150400426e-88")), + (parse(T, "1.9857620239257812500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6488833427429199218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.3673087550081705781915964055675774942048518999361543210822966484600396432759228039403737187181468982e-88")), + (parse(T, "1.9857620239257812500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6769475936889648437500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.3673087550081705781915964055675774942048518999361543210822966484600396432759228045805603597866088641e-88")), + (parse(T, "1.9857620239257812500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6886777877807617187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.3673087550081705781915964055675774942048518999361543210822966484600396432759228047008093771242206679e-88")), + (parse(T, "1.9857620239257812500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.9288129806518554687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.3673087550081705781915964055675774942048518999361543210822966484600396432759228049122323413146794407e-88")), + (parse(T, "1.9857620239257812500000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.9646115303039550781250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "2.3673087550081705781915964055675774942048518999361543210822966484600396432759228049122464370425725085e-88")), + (parse(T, "1.9929222106933593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.7540378570556640625000000000000000000000000000000000000000000000000000000000000000000000000000000000e-02"), parse(T, "5.3852419933543575619020334768361375203594870664698871979558343050954133295912121894695215466342458640e-89")), + (parse(T, "1.9929222106933593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.2698680162429809570312500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.6131327913383104785242885720800568183822747879375527761193112141461299087908931132220004173820217320e-89")), + (parse(T, "1.9929222106933593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.3547700643539428710937500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.6380132109203215953682341142006484163028723876320845280985884437990702987939134369984972274801723921e-89")), + (parse(T, "1.9929222106933593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "1.8838196992874145507812500000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.6756432225141755716181254364578838398260084711471148446038558395555151245520302395698427479909090188e-89")), + (parse(T, "1.9929222106933593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "2.2103404998779296875000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.6765370329975020887578693197006018491279730057642519497656614145617760862881464201058169472650265027e-89")), + (parse(T, "1.9929222106933593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "2.7849817276000976562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.6765940072383066005097652539757437078433621689726193895722238525223712942947787019057651330175067344e-89")), + (parse(T, "1.9929222106933593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "3.0816698074340820312500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.6765941529819362163555178434780673589908418376638967134553680595361500546239249492182079654295352261e-89")), + (parse(T, "1.9929222106933593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "5.4688143730163574218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.6765941572108102929182392355720017900893213514144857837052426624327588242025916320562922691572615536e-89")), + (parse(T, "1.9929222106933593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "5.4722046852111816406250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.6765941572108102929182392359376746516400752338011814009982639136654163659015328286598007640951121062e-89")), + (parse(T, "1.9929222106933593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "6.3235926628112792968750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.6765941572108102929182392406617201965462427239939549761682717880384292426173011499264309557470010809e-89")), + (parse(T, "1.9929222106933593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "8.1472349166870117187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.6765941572108102929182392406617202048399346202690008425364176650068311070333103178533019023731342326e-89")), + (parse(T, "1.9929222106933593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "8.3500838279724121093750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.6765941572108102929182392406617202048399346202690008425365120016320727925714718349788376825053245493e-89")), + (parse(T, "1.9929222106933593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.0579175949096679687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.6765941572108102929182392406617202048399346202690008425365121190758925890311477970813572027755455370e-89")), + (parse(T, "1.9929222106933593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.1337585449218750000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.6765941572108102929182392406617202048399346202690008425365121190758925912633751741867242391943135847e-89")), + (parse(T, "1.9929222106933593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.5750665664672851562500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.6765941572108102929182392406617202048399346202690008425365121190758925914149018322974493002246798279e-89")), + (parse(T, "1.9929222106933593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6488833427429199218750000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.6765941572108102929182392406617202048399346202690008425365121190758925914149018421601995655864249226e-89")), + (parse(T, "1.9929222106933593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6769475936889648437500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.6765941572108102929182392406617202048399346202690008425365121190758925914149018425679363648779892917e-89")), + (parse(T, "1.9929222106933593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.6886777877807617187500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.6765941572108102929182392406617202048399346202690008425365121190758925914149018426440620859348118110e-89")), + (parse(T, "1.9929222106933593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.9288129806518554687500000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.6765941572108102929182392406617202048399346202690008425365121190758925914149018427767218487038675738e-89")), + (parse(T, "1.9929222106933593750000000000000000000000000000000000000000000000000000000000000000000000000000000000e+01"), parse(T, "9.9646115303039550781250000000000000000000000000000000000000000000000000000000000000000000000000000000e-01"), parse(T, "5.6765941572108102929182392406617202048399346202690008425365121190758925914149018427767301460804161903e-89")), +] + +@testset "owens_t" begin + for (h, a, exact) in owens_t_test_data(Float64) + @test owens_t(h, a) ≈ exact rtol = 1.0e-15 + end + + # more test cases to exercise code not covered by Boost unit tests (grrr), + # with exact values provided by Mathematica OwenT function + for (h, a, exact) in [ + (0.25, 1.0, 0.1201285306350882961916795008052213635794162711915703756065857717), + (0.125, 0.75, 0.1014881460301621857323787075087569394576179047696021721280270281), + (17 // 10, 0.75, 0.0194899019245137729112457194853956485135759661247399901776078745), + (12345 // 10^4, 99998 // 10^5, 0.0483667868485178158304070810789517218809603201932323103522462037), + (12345 // 10^4, 999991 // 10^6, 0.0483669775430142794579631531206838574627160460689072131897602482), + (66 // 100, 1.25, 0.1056698620377354634862871538372326581457639488972136894838517701), + (68 // 100, 1.25, 0.1037649136099534946378771146515761537424414280327623051479952043), + (0, Inf, 0.25), + (0, 1.0e300, 0.25), + (0.1, Inf, 0.2300860813614855092672976908804089584929688581551144836657589839), + (0.1, 1.0e300, 0.2300860813614855092672976908804089584929688581551144836657589839), + (37, 1 // 10, 2.862174895018181354817391600340565355765740911010979654675e-300), + ] + @test owens_t(h, a) ≈ exact rtol = 1.0e-15 + end + + # type stability + @inferred owens_t(0.1, 0.2) + + # extremes: + @test owens_t(Inf, Inf) === 0.0 + @test owens_t(1.0e300, 1.0e300) === 0.0 + @test owens_t(Inf, -Inf) === -0.0 + @test owens_t(-Inf, Inf) === 0.0 + @test owens_t(-Inf, -Inf) === -0.0 + @test owens_t(0, NaN) === NaN + @test owens_t(Inf, NaN) === NaN + for h in (NaN, Inf, 0.0, 0.1) + @test owens_t(h, 0.0) === 0.0 + @test owens_t(h, -0.0) === -0.0 + end + for a in (-0.1, 0.1) + @test owens_t(0, a) ≈ atan(a) / 2π rtol = 1.0e-15 + end + @test owens_t(38, 0.1) ≈ 1.442507616809223311703254728848229952266052672515225305781e-316 rtol = 1.0e-7 # subnormal + + # Float32 and Float16 + @test owens_t(0.25f0, 0.5f0) == Float32(owens_t(0.25, 0.5)) + @test owens_t(Float16(0.25), Float16(0.5)) == Float16(owens_t(0.25, 0.5)) + @test owens_t(1, 2)::Float64 ≈ 0.0784681869930840963449419956315630528597353240494991328142744082 rtol = 1.0e-15 + @test owens_t(1, 2.0f0)::Float32 ≈ 0.07846819f0 rtol = 1.0e-7 +end diff --git a/test/runtests.jl b/test/runtests.jl index 0cd38a1..dbf7258 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,4 +1,4 @@ -tests = ["rmath", "generic", "misc", "chainrules", "inverse", "tvpack", "qa"] +tests = ["owens_t", "rmath", "generic", "misc", "chainrules", "inverse", "tvpack", "qa"] for t in tests fp = "$t.jl"