From 9c82db5966cec7217674c8a1682001b114c4a149 Mon Sep 17 00:00:00 2001 From: Alex Herbert Date: Thu, 3 Sep 2026 18:22:10 +0100 Subject: [PATCH] STATISTICS-100: Use the Hurwitz zeta function in the zipf distribution --- commons-statistics-distribution/pom.xml | 5 + .../statistics/distribution/HurwitzZeta.java | 188 ++ .../distribution/ZipfDistribution.java | 263 +- .../distribution/ExtendedPrecisionTest.java | 23 +- .../distribution/HurwitzZetaTest.java | 695 +++++ .../distribution/ZipfDistributionTest.java | 18 +- .../statistics/distribution/hurwitzzeta.csv | 2447 +++++++++++++++++ .../distribution/test.zipf.3.properties | 2 +- .../distribution/test.zipf.5.properties | 44 + .../distribution/test.zipf.6.properties | 48 + src/changes/changes.xml | 4 + 11 files changed, 3677 insertions(+), 60 deletions(-) create mode 100644 commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/HurwitzZeta.java create mode 100644 commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/HurwitzZetaTest.java create mode 100644 commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/hurwitzzeta.csv create mode 100644 commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.zipf.5.properties create mode 100644 commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.zipf.6.properties diff --git a/commons-statistics-distribution/pom.xml b/commons-statistics-distribution/pom.xml index 578d34ffc..e11328b41 100644 --- a/commons-statistics-distribution/pom.xml +++ b/commons-statistics-distribution/pom.xml @@ -40,6 +40,11 @@ ${statistics.build.outputTimestamp} distribution + + + + 0.999 + 0.999 diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/HurwitzZeta.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/HurwitzZeta.java new file mode 100644 index 000000000..d07635d56 --- /dev/null +++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/HurwitzZeta.java @@ -0,0 +1,188 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.commons.statistics.distribution; + +/** + * Utility class used to compute the + * Hurwitz zeta function. + * + *
+ *                 oo    1
+ * zeta(s, a) = sum    ------
+ *                 k=0      s
+ *                     (k+a)
+ * 
+ * + *

The function is formally defined for complex variable {@code s} with {@code Re(s) > 1} + * and real {@code a != 0, -1, -2, ...}. This series is absolutely convergent for the given + * values of {@code s} and {@code a}. Note the special case zeta(s, 1) is the Riemann zeta function. + * + *

This implementation uses real-valued {@code s > 1} and {@code a >= 1}. + * Specialisation to a smaller domain than any finite {@code a} allows optimisation for + * a {@code double} precision result. + * + *

The implementation is performed by spitting the integral into two parts and using + * the Euler-Maclaurin formula to approximate the second integral {@code I + T + R} + * with a continuous integral {@code I}, a tail {@code T}, and a residual error term + * {@code R} (not computed). + * + *

+ *                 N-1           oo
+ * zeta(s, a) = sum    f(k) + sum    f(k) = S + I + T + R
+ *                 k=0           k=N
+ *
+ *          1
+ * f(k) = ------
+ *             s
+ *        (a+k)
+ *
+ *                            1-s
+ *      ,-oo   1         (a+N)
+ * I =  |    ------ dt = --------
+ *     -' N       s        s-1
+ *           (a+t)
+ *
+ *            /             B     (s)      \
+ *       1    | 1      M     2k      2k-1  |
+ * T = ------ | - + sum    ----- --------- |
+ *          s | 2      k=1 (2k)!      2k-1 |
+ *     (a+N)  \                  (a+N)     /
+ *
+ * B   = Bernoulli number
+ *  2k
+ *
+ *           ___n-1
+ * (s)     = | |    (x+i)    (rising factorial Pochhammer function)
+ *    n      | |i=0
+ * 
+ * + *

These formulas for the real-valued {@code s} are provided in Johansson (2015) as + * equations 5-9. The implementation omits the residual term {@code R}. + * + *

References + *

    + *
  1. Johansson (2015) + * Rigorous high-precision computation of the Hurwitz zeta function and its derivatives + * Numerical Algorithms (69) 253–270
  2. + *
  3. Hurwitz zeta function (Wikipedia)
  4. + *
  5. Riemann zeta function (Wikipedia)
  6. + *
  7. Euler–Maclaurin formula (Wikipedia)
  8. + *
  9. Bernoulli number (Wikipedia)
  10. + *
  11. Rising and falling factorials (Wikipedia)
  12. + *
+ * + * @since 1.4 + */ +final class HurwitzZeta { + /** Number of terms of the series summation S. */ + private static final int N = 8; + /** Convergence epsilon for the sum of the tail function. This prevents summation + * of terms that do not affect the final result. */ + private static final double EPS = 0x1.0p-53; + + /** + * Precomputed factors for {@code k}-th element of the tail function {@code T}. + * Uses {@code 2k!} divided by Bernoulli number {@code B_2k}. + * Provides M=14 terms. The test suite uses max 9 before convergence. + */ + private static final double[] F = { + 12.0, // 2! / (1 / 6) + -720.0, // 4! / (-1 / 30) + 30240.0, // 6! / (1 / 42) + -1209600.0, // 8! / (-1 / 30) + 4.790016E7, // 10! / (5 / 66) + -1.8924375803183792E9, // 12! / (-691 / 2730) + 7.47242496E10, // 14! / (7 / 6) + -2.950130727918164E12, // 16! / (-3617 / 510) + 1.1646782814350067E14, // 18! / (43867 / 798) + -4.597978722407473E15, // 20! / (-174611 / 330) + 1.81521054019435456E17, // 22! / (854513 / 138) + -7.1661652561756672E18, // 24! / (-236364091 / 2730) + 2.82908877253043E20, // 26! / (8553103 / 6) + -1.1168794925000445E22, // 28! / (-23749461029 / 870) + }; + + /** No instances. */ + private HurwitzZeta() {} + + /** + * Compute the value of the Hurwitz zeta function {@code zeta(s, a)}. + * + *
+     *                 oo    1
+     * zeta(s, a) = sum    ------
+     *                 k=0      s
+     *                     (k+a)
+     * 
+ * + *

Warning: No parameter validation is performed. + * The domain of {@code a} is expected to be a positive integer {@code [1, 2^31)}. + * + * @param s Argument {@code s > 1} + * @param a Argument {@code a >= 1} + * @return zeta(s, a) + */ + static double value(double s, double a) { + final double apn = a + N; + double p = Math.pow(apn, -s); + + // Initialise sum with the first tail term + double sum = 0.5 * p; + // S : k in [0, n-1] + for (int k = N - 1; k >= 0; k--) { + // Descending k sums in order of magnitude for increased precision. + // Prevents early exit for large s when the term (a+k)^-s is below + // machine epsilon of the ascending series sum. + sum += Math.pow(a + k, -s); + } + + // I + sum += Math.pow(apn, 1 - s) / (s - 1); + + // T + // The following recycles the power term p: (a+n)^-(2k-1+s). + // This incorporates the factor for T, (a+n)^-s, into the sum terms. + // The first power is (a+n)^-(1+s) not (a+n)^-1. + // When s is large the loop exits before the rising factorial overflows. + + // Rising factorial term : (s)_{2k-1} + double f = s; + // 2k - 1 + double k2 = 1; + // Sum of an alternating series as each F changes sign. + // Sum until terms will not impact the result. + double tsum = 0; + final double stop = sum * EPS; + int i; + for (i = 0; i < F.length; i++) { + // p = (a+n)^-(2k-1+s) + p /= apn; + final double t = f * p / F[i]; + tsum += t; + if (Math.abs(t) <= stop) { + break; + } + p /= apn; + // f = s * (s+1) * (s+2) * ... * (s+2k-2) + f *= s + k2; + k2 += 1.0; + f *= s + k2; + k2 += 1.0; + } + return sum + tsum; + } +} diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ZipfDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ZipfDistribution.java index 713bba402..d026939ab 100644 --- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ZipfDistribution.java +++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ZipfDistribution.java @@ -34,13 +34,26 @@ * * generalized harmonic number of order N of s. * - *

Note: The generalized harmonic number \( H_{N,s} \) is computed - * by direct summation of \( N \) terms. Construction of the distribution, and the first + *

\[ \sum_{k=1}^N \frac{1}{k^s} \] + * + *

Implementation note + * + *

The sum of the power series in harmonic numbers or cumulative + * probability functions may be computed + * using the Hurwitz zeta function + * when \( s \gt 1 \): + * + *

\[ \begin{aligned} + * \sum_{k=a}^b \frac{1}{k^s} &= \sum_{n=0}^\infty \frac{1}{(n+a)^s} - \sum_{n=0}^\infty \frac{1}{(n+b+1)^s} \\ + * &= \zeta(s, a) - \zeta(s, b+1) \end{aligned} \] + * + *

This is performed unless there is significant cancellation in the two zeta terms. + * In all other cases the sum is computed by direct summation of terms with performance + * implications for large \( N \). Construction of the distribution, and the first * call to {@link #getMean()} or {@link #getVariance()}, is \( O(N) \); each call to * {@link #cumulativeProbability(int) cumulativeProbability(x)} or - * {@link #survivalProbability(int) survivalProbability(x)} is \( O(x) \) (the - * partial harmonic sum is not cached between calls); the inverse probability - * functions perform a search using \( O(\log N) \) cumulative probability + * {@link #survivalProbability(int) survivalProbability(x)} is \( O(x) \); the inverse + * probability functions perform a search using \( O(\log N) \) cumulative probability * evaluations. A number of elements of order 231 requires billions of * {@code Math.pow} evaluations for construction alone. Take this run-time cost into * account when the parameters are derived from untrusted input, and bound the number @@ -49,30 +62,167 @@ * on the number of elements. * * @see Zipf distribution (Wikipedia) + * @see Hurwitz zeta function (Wikipedia) */ public final class ZipfDistribution extends AbstractDiscreteDistribution { + /** Minimum number of terms required to use the Hurwitz zeta function for cumulative + * probability functions. Below this level a regular sum of the terms is used. + * Note the evaluation of the Hurwitz zeta function requires multiple calls to + * {@link Math#pow(double, double)}. If the number of probability terms is low it is + * more efficient to sum the terms directly. */ + private static final int MIN_TERMS = 10; + /** Maximum ratio between the small term and large term to avoid significant cancellation + * in the sum {@code large - small}, i.e. {@code small / large <= ratio}. + * Note that the ratio {@code 1 - 2^-b} will lose {@code b - 1} bits in the result. + * This value allows a loss of 2-bits. */ + private static final double MAX_RATIO = 0.875; + /** Number of elements. */ private final int numberOfElements; /** Exponent parameter of the distribution. */ private final double exponent; - /** Cached value of the nth generalized harmonic. */ + /** Cached value of the N-th generalized harmonic. */ private final double nthHarmonic; - /** Cached value of the log of the nth generalized harmonic. */ + /** Cached value of the log of the N-th generalized harmonic. */ private final double logNthHarmonic; - /** Cached value of the nth generalized harmonic using (exponent - 1). */ + /** Cached value of the N-th generalized harmonic using (exponent - 1). */ private double nthHarmonicM1 = Double.NaN; - /** Cached value of the nth generalized harmonic using (exponent - 2). */ + /** Cached value of the N-th generalized harmonic using (exponent - 2). */ private double nthHarmonicM2 = Double.NaN; + /** Function to compute the generalised harmonic series. */ + private final HarmonicSeries genHarmonic; + + /** + * Compute the value of the generalised harmonic series. + *

+     *    b      1
+     * sum      ---
+     *    k=a     s
+     *           k
+     * 
+ */ + @FunctionalInterface + private interface HarmonicSeries { + /** + * Compute the value. + *
+         *    b      1
+         * sum      ---
+         *    k=a     s
+         *           k
+         * 
+ *

The exponent is assumed to be known. + * @param a Lower bound. + * @param b Upper bound. + * @return value + */ + double value(int a, int b); + } + + /** + * Compute the value of the generalised harmonic series using a difference of Hurwitz + * zeta functions. + *

+     *    b      1
+     * sum      ---   = zeta(s, a) - zeta(s, b + 1)
+     *    k=a     s
+     *           k
+     *
+     *                 oo    1
+     * zeta(s, a) = sum    ------
+     *                 k=0      s
+     *                     (k+a)
+     * 
+ * + *

If subtraction of terms results in significant loss of bits then the summation + * uses (b - a + 1) terms of the power series. + * + *

Note: The Hurwitz zeta function is defined for {@code s > 1} where it is absolutely + * convergent. + */ + private static class ZetaHarmonicSeries implements HarmonicSeries { + /** Number of elements parameter. */ + private final int n; + /** Exponent parameter. */ + private final double s; + /** zeta(s, 1) where s is the exponent of the distribution. */ + private final double zeta1; + /** zeta(s, 1 + n) where s is the exponent of the distribution; n is the number of elements. */ + private final double zeta1pN; + /** Cached value of the N-th generalized harmonic. */ + private final double nthHarmonic; + + /** Create an instance. + * @param n Maximum number of elements (n). + * @param exponent Exponent (s). + * @param zeta1 zeta(s, 1) + * @param zeta1pN zeta(s, 1 + n) + */ + ZetaHarmonicSeries(int n, double exponent, + double zeta1, double zeta1pN) { + this.n = n; + this.s = exponent; + this.zeta1 = zeta1; + this.zeta1pN = zeta1pN; + this.nthHarmonic = zeta1 - zeta1pN; + } + + @Override + public double value(int a, int b) { + if (b - a >= MIN_TERMS) { + final double z1 = a == 1 ? zeta1 : HurwitzZeta.value(s, a); + final double z2 = b == n ? zeta1pN : HurwitzZeta.value(s, 1 + b); + if (allowedDifference(z1, z2)) { + return applyBounds(z1 - z2); + } + } + return applyBounds(generalizedHarmonic(a, b, s)); + } + + /** + * Ensure the value is within the bound {@code [0, N-th harmonic]}. Ensures + * probability normalisation by N-th harmonic is in the range [0, 1]. In practice + * this may not be required. + * + *

Note: It should not be possible for the series summation to exceed the N-th + * harmonic. This has been computed using a difference of zeta terms: + * + *

+         *   zeta(s, a) - zeta(s, b+1) <= zeta(s, 1) - zeta(s, N+1)  where a >= 1 and b <= N
+         * 
+ * + *

The zeta difference will only exceed the normalizing constant due to + * floating-point error in the zeta function. + * + *

The series sum may exceed the N-th harmonic if there is an error in the zeta + * function. This may occur as the power terms approach zero (sub-normal + * summation) when s or n are both large. Since n is bounded to an integer the + * value is always suitable for evaluation of k^-s with k in integer [1, n], i.e. + * we never see 1 + n == n as n < 2^53. The only errors are expected when s is + * very large. + * + * @param x Value + * @return bounded value + */ + private double applyBounds(double x) { + return x < nthHarmonic ? x : nthHarmonic; + } + } /** Create an instance. * @param numberOfElements Number of elements. * @param exponent Exponent. + * @param nthHarmonic N-th generalized harmonic number + * @param genHarmonic Function to compute the generalised harmonic series. */ private ZipfDistribution(int numberOfElements, - double exponent) { + double exponent, + double nthHarmonic, + HarmonicSeries genHarmonic) { this.numberOfElements = numberOfElements; this.exponent = exponent; - this.nthHarmonic = generalizedHarmonic(numberOfElements, exponent); + this.nthHarmonic = nthHarmonic; + this.genHarmonic = genHarmonic; logNthHarmonic = Math.log(nthHarmonic); } @@ -101,7 +251,23 @@ public static ZipfDistribution of(int numberOfElements, throw new DistributionException(DistributionException.NEGATIVE, exponent); } - return new ZipfDistribution(numberOfElements, exponent); + + // If s > 1 and the size is non-trivial then use the Hurwitz zeta function + // to compute the harmonic series. Note if size is close to MIN_TERMS then + // the implementation may repeatedly call the zeta function and reject using + // it so the threshold is 4 * MIN_TERMS. + if (exponent > 1 && (numberOfElements >>> 2) > MIN_TERMS) { + final double zeta1 = HurwitzZeta.value(exponent, 1); + final double zeta1pN = HurwitzZeta.value(exponent, 1 + numberOfElements); + if (allowedDifference(zeta1, zeta1pN)) { + return new ZipfDistribution(numberOfElements, exponent, zeta1 - zeta1pN, + new ZetaHarmonicSeries(numberOfElements, exponent, zeta1, zeta1pN)); + } + } + + final double nthHarmonic = generalizedHarmonic(1, numberOfElements, exponent); + return new ZipfDistribution(numberOfElements, exponent, nthHarmonic, + (a, b) -> generalizedHarmonic(a, b, exponent)); } /** @@ -152,7 +318,7 @@ public double probability(int x0, } // Here: 1 <= x0 < x1 < n: // sum(pdf(x)) for x in (x0, x1] - return generalizedHarmonic(x0 + 1, x1, exponent) / nthHarmonic; + return genHarmonic.value(x0 + 1, x1) / nthHarmonic; } /** {@inheritDoc} */ @@ -167,14 +333,14 @@ public double logProbability(int x) { /** {@inheritDoc} */ @Override - public double cumulativeProbability(final int x) { + public double cumulativeProbability(int x) { if (x <= 0) { return 0; } else if (x >= numberOfElements) { return 1; } - return generalizedHarmonic(x, exponent) / nthHarmonic; + return genHarmonic.value(1, x) / nthHarmonic; } /** {@inheritDoc} */ @@ -188,7 +354,7 @@ public double survivalProbability(int x) { // Compute summation of terms omitted in the CDF. // The raw sums in CDF(x) + SF(x) = N-th harmonic - return generalizedHarmonic(x + 1, numberOfElements, exponent) / nthHarmonic; + return genHarmonic.value(x + 1, numberOfElements) / nthHarmonic; } /** @@ -262,31 +428,6 @@ private double nthHarmonicExpMinus2() { return h; } - /** - * Calculates the {@code n}-th generalized harmonic number. - * - *

-     *          1
-     *   sum  -----  for k in [1, n]
-     *         k^m
-     * 
- * - *

Assumes {@code exponent > 0} to arrange the terms to sum from small to large. - * - * @param n Last term in the series to calculate. - * @param m Exponent (special case {@code m = 1} is the harmonic series). - * @return the sum - */ - private static double generalizedHarmonic(final int n, final double m) { - double value = 0; - // Sum small to large - for (int k = n; k >= 2; k--) { - value += Math.pow(k, -m); - } - // 1^-m = 1 - return value + 1.0; - } - /** * Calculates the sum of terms of the * Harmonic @@ -307,7 +448,7 @@ private static double generalizedHarmonic(final int n, final double m) { * @param m Exponent (special case {@code m = 1} is the harmonic series). * @return the sum */ - private static double generalizedHarmonic(final int from, final int to, final double m) { + static double generalizedHarmonic(int from, int to, double m) { double value = 0; // Sum small to large for (int k = to; k >= from; k--) { @@ -325,24 +466,44 @@ private static double generalizedHarmonic(final int from, final int to, final do * @param m Exponent (special case {@code m = 1} is the harmonic series). * @return the nth generalized harmonic number. */ - private static double generalizedHarmonicAscendingSum(final int n, final double m) { - double value; + private static double generalizedHarmonicAscendingSum(int n, double m) { // Sum small to large. // If m < 0 then sum ascending, otherwise descending. // Note: 1^-m = 1 if (m < 0) { - value = 1.0; + double value = 1.0; for (int k = 2; k <= n; k++) { value += Math.pow(k, -m); } - } else { - value = 0; - for (int k = n; k >= 2; k--) { - value += Math.pow(k, -m); + return value; + } + + // If s > 1 and the size is non-trivial then use the Hurwitz zeta function + // to compute the harmonic series. + if (m > 1 && (n >>> 2) > MIN_TERMS) { + final double z1 = HurwitzZeta.value(m, 1); + final double z2 = HurwitzZeta.value(m, 1 + n); + if (allowedDifference(z1, z2)) { + return z1 - z2; } - value += 1.0; } - return value; + + return generalizedHarmonic(1, n, m); + } + + /** + * Check the difference {@code large - small} does not result in cancellation and + * potential loss of significant bits in the result. + * + *

This method is used to test if the difference of zeta functions is suitable + * to avoid the summation of the power series. + * + * @param large the large value + * @param small the small value + * @return true if {@code large - small} is allowed + */ + static boolean allowedDifference(double large, double small) { + return small <= large * MAX_RATIO; } /** diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ExtendedPrecisionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ExtendedPrecisionTest.java index 5a6c48c10..bc747faf4 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ExtendedPrecisionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ExtendedPrecisionTest.java @@ -53,7 +53,7 @@ class ExtendedPrecisionTest { * Class to compute the root mean squared error (RMS). * @see Wikipedia: RMS */ - private static final class RMS { + static final class RMS { private double ss; private double max; private int n; @@ -249,12 +249,28 @@ void testExpmhxxStandardPrecision() { assertPrecision(EXPMHXX_RMS2, 400, 60); } - private static void assertPrecision(RMS rms, double maxError, double rmsError) { + /** + * Assert the precision of the RMS statistics. + * + * @param rms RMS statistics. + * @param maxError Allowed maximum error. + * @param rmsError Allowed RMS error. + */ + static void assertPrecision(RMS rms, double maxError, double rmsError) { Assertions.assertTrue(rms.getMax() < maxError, () -> "max error: " + rms.getMax()); Assertions.assertTrue(rms.getRMS() < rmsError, () -> "rms error: " + rms.getRMS()); } - private static void addError(double z, BigDecimal expected, double e, RMS rms) { + /** + * Adds the error to the RMS statistics. + * + * @param z Value. + * @param expected Expected value. + * @param e Expected value as a double. + * @param rms RMS statistics. + * @return the error in units of least precision (ULPs) + */ + static double addError(double z, BigDecimal expected, double e, RMS rms) { double error; if (z == e) { error = 0; @@ -264,5 +280,6 @@ private static void addError(double z, BigDecimal expected, double e, RMS rms) { .divide(new BigDecimal(Math.ulp(e)), MathContext.DECIMAL64).doubleValue(); } rms.add(error); + return error; } } diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/HurwitzZetaTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/HurwitzZetaTest.java new file mode 100644 index 000000000..47c18a378 --- /dev/null +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/HurwitzZetaTest.java @@ -0,0 +1,695 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.commons.statistics.distribution; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.math.RoundingMode; +import java.util.function.DoubleBinaryOperator; +import java.util.stream.IntStream; +import java.util.stream.Stream; +import org.apache.commons.numbers.fraction.BigFraction; +import org.apache.commons.statistics.distribution.ExtendedPrecisionTest.RMS; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestMethodOrder; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.CsvFileSource; +import org.junit.jupiter.params.provider.MethodSource; + +/** + * Test the {@link HurwitzZeta} function. + */ +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +class HurwitzZetaTest { + /** Table used to create a histogram of the number of steps to converge the tail series. + * Used in the {@link #zeta(double, double, int, int)} implementation. */ + private static final int[] M = new int[53]; + /** Optimal N used to test the zeta function. */ + private static final int N = 8; + /** Minimum N used to test the zeta function. + * Used for reporting RMS errors with varying N. When MIN_N == MAX_N no report is printed. */ + private static final int MIN_N = N; // e.g. 5 + /** Maximum N used to test the zeta function. Used for reporting RMS errors with varying N. */ + private static final int MAX_N = N; // e.g. 12 + /** Flag set when the JVM version is printed. Used for testing. */ + private static boolean jvm = false; + + /** + * Numerators of the even Bernoulli numbers {@code B_{2k}}. + * Taken from: + *

+     * A000367 Numerators of Bernoulli numbers B_2n.
+     * https://oeis.org/A164020/b164020.txt
+     * 
+ * + *

Contains the sequence up to 2k = 106 required for M=53 in the zeta implementation. + * Johansson (2015) suggests N ~ M ~ P for P-bits of precision. + */ + private static final String[] NUM = { + "0 1", + "1 1", + "2 -1", + "3 1", + "4 -1", + "5 5", + "6 -691", + "7 7", + "8 -3617", + "9 43867", + "10 -174611", + "11 854513", + "12 -236364091", + "13 8553103", + "14 -23749461029", + "15 8615841276005", + "16 -7709321041217", + "17 2577687858367", + "18 -26315271553053477373", + "19 2929993913841559", + "20 -261082718496449122051", + "21 1520097643918070802691", + "22 -27833269579301024235023", + "23 596451111593912163277961", + "24 -5609403368997817686249127547", + "25 495057205241079648212477525", + "26 -801165718135489957347924991853", + "27 29149963634884862421418123812691", + "28 -2479392929313226753685415739663229", + "29 84483613348880041862046775994036021", + "30 -1215233140483755572040304994079820246041491", + "31 12300585434086858541953039857403386151", + "32 -106783830147866529886385444979142647942017", + "33 1472600022126335654051619428551932342241899101", + "34 -78773130858718728141909149208474606244347001", + "35 1505381347333367003803076567377857208511438160235", + "36 -5827954961669944110438277244641067365282488301844260429", + "37 34152417289221168014330073731472635186688307783087", + "38 -24655088825935372707687196040585199904365267828865801", + "39 414846365575400828295179035549542073492199375372400483487", + "40 -4603784299479457646935574969019046849794257872751288919656867", + "41 1677014149185145836823154509786269900207736027570253414881613", + "42 -2024576195935290360231131160111731009989917391198090877281083932477", + "43 660714619417678653573847847426261496277830686653388931761996983", + "44 -1311426488674017507995511424019311843345750275572028644296919890574047", + "45 1179057279021082799884123351249215083775254949669647116231545215727922535", + "46 -1295585948207537527989427828538576749659341483719435143023316326829946247", + "47 1220813806579744469607301679413201203958508415202696621436215105284649447", + "48 -211600449597266513097597728109824233673043954389060234150638733420050668349987259", + "49 67908260672905495624051117546403605607342195728504487509073961249992947058239", + "50 -94598037819122125295227433069493721872702841533066936133385696204311395415197247711", + "51 3204019410860907078243020782116241775491817197152717450679002501086861530836678158791", + "52 -319533631363830011287103352796174274671189606078272738327103470162849568365549721224053", + "53 36373903172617414408151820151593427169231298640581690038930816378281879873386202346572901", + }; + + /** + * Denominators of the even Bernoulli numbers {@code B_{2k}}. + * Taken from: + *

+     * A002445 Denominators of Bernoulli numbers B_{2n}.
+     * https://oeis.org/A002445/b002445.txt
+     * 
+ */ + private static final String[] DENOM = { + "0 1", + "1 6", + "2 30", + "3 42", + "4 30", + "5 66", + "6 2730", + "7 6", + "8 510", + "9 798", + "10 330", + "11 138", + "12 2730", + "13 6", + "14 870", + "15 14322", + "16 510", + "17 6", + "18 1919190", + "19 6", + "20 13530", + "21 1806", + "22 690", + "23 282", + "24 46410", + "25 66", + "26 1590", + "27 798", + "28 870", + "29 354", + "30 56786730", + "31 6", + "32 510", + "33 64722", + "34 30", + "35 4686", + "36 140100870", + "37 6", + "38 30", + "39 3318", + "40 230010", + "41 498", + "42 3404310", + "43 6", + "44 61410", + "45 272118", + "46 1410", + "47 6", + "48 4501770", + "49 6", + "50 33330", + "51 4326", + "52 1590", + "53 642", + }; + + /** + * Precomputed factors for {@code k}-th element of the tail function {@code T}. + * Uses {@code 2k!} divided by Bernoulli number {@code B_2k}. + * The table size is suitable for N ~ M ~ P for P-bits of precision (53 entries) + * as stated in Johansson (2015) section 3.1. In practice the result in double + * precision requires lower N & M values. + */ + private static final double[] F = { + 12.0, // 2! / (1 / 6) + -720.0, // 4! / (-1 / 30) + 30240.0, // 6! / (1 / 42) + -1209600.0, // 8! / (-1 / 30) + 4.790016E7, // 10! / (5 / 66) + -1.8924375803183792E9, // 12! / (-691 / 2730) + 7.47242496E10, // 14! / (7 / 6) + -2.950130727918164E12, // 16! / (-3617 / 510) + 1.1646782814350067E14, // 18! / (43867 / 798) + -4.597978722407473E15, // 20! / (-174611 / 330) + 1.81521054019435456E17, // 22! / (854513 / 138) + -7.1661652561756672E18, // 24! / (-236364091 / 2730) + 2.82908877253043E20, // 26! / (8553103 / 6) + -1.1168794925000445E22, // 28! / (-23749461029 / 870) + 4.4092635141854666E23, // 30! / (8615841276005 / 14322) + -1.7407074646225822E25, // 32! / (-7709321041217 / 510) + 6.872037622739274E26, // 34! / (2577687858367 / 6) + -2.7129717107520044E28, // 36! / (-26315271553053477373 / 1919190) + 1.0710383014704457E30, // 38! / (2929993913841559 / 6) + -4.228289733582729E31, // 40! / (-261082718496449122051 / 13530) + 1.669261878547101E33, // 42! / (1520097643918070802691 / 1806) + -6.589981753232787E34, // 44! / (-27833269579301024235023 / 690) + 2.6016205165923062E36, // 46! / (596451111593912163277961 / 282) + -1.0270786120209628E38, // 48! / (-5609403368997817686249127547 / 46410) + 4.054743835786749E39, // 50! / (495057205241079648212477525 / 66) + -1.6007487042788347E41, // 52! / (-801165718135489957347924991853 / 1590) + 6.319502582715391E42, // 54! / (29149963634884862421418123812691 / 798) + -2.4948396201225357E44, // 56! / (-2479392929313226753685415739663229 / 870) + 9.849232037909393E45, // 58! / (84483613348880041862046775994036021 / 354) + -3.888320954748035E47, // 60! / (-1215233140483755572040304994079820246041491 / 56786730) + 1.535047584313167E49, // 62! / (12300585434086858541953039857403386151 / 6) + -6.060124957607529E50, // 64! / (-106783830147866529886385444979142647942017 / 510) + 2.3924414381101893E52, // 66! / (1472600022126335654051619428551932342241899101 / 64722) + -9.444980218768351E53, // 68! / (-78773130858718728141909149208474606244347001 / 30) + 3.728728733414322E55, // 70! / (1505381347333367003803076567377857208511438160235 / 4686) + -1.4720431007109737E57, // 72! / (-5827954961669944110438277244641067365282488301844260429 / 140100870) + 5.811393226148101E58, // 74! / (34152417289221168014330073731472635186688307783087 / 6) + -2.2942460864500874E60, // 76! / (-24655088825935372707687196040585199904365267828865801 / 30) + 9.057320508803927E61, // 78! / (414846365575400828295179035549542073492199375372400483487 / 3318) + -3.575686814230726E63, // 80! / (-4603784299479457646935574969019046849794257872751288919656867 / 230010) + 1.4116245727459505E65, // 82! / (1677014149185145836823154509786269900207736027570253414881613 / 498) + -5.5728704383437275E66, // 84! / (-2024576195935290360231131160111731009989917391198090877281083932477 / 3404310) + 2.2000810641991213E68, // 86! / (660714619417678653573847847426261496277830686653388931761996983 / 6) + -8.685571901589203E69, // 88! / (-1311426488674017507995511424019311843345750275572028644296919890574047 / 61410) + 3.428926346636115E71, // 90! / (1179057279021082799884123351249215083775254949669647116231545215727922535 / 272118) + -1.3536858624708422E73, // 92! / (-1295585948207537527989427828538576749659341483719435143023316326829946247 / 1410) + 5.344137578373867E74, // 94! / (1220813806579744469607301679413201203958508415202696621436215105284649447 / 6) + -2.10978095054183E76, // 96! / (-211600449597266513097597728109824233673043954389060234150638733420050668349987259 / 4501770) + 8.329081341920855E77, // 98! / (67908260672905495624051117546403605607342195728504487509073961249992947058239 / 6) + -3.288189514770133E79, // 100! / (-94598037819122125295227433069493721872702841533066936133385696204311395415197247711 / 33330) + 1.2981251882636475E81, // 102! / (3204019410860907078243020782116241775491817197152717450679002501086861530836678158791 / 4326) + -5.124792828500739E82, // 104! / (-319533631363830011287103352796174274671189606078272738327103470162849568365549721224053 / 1590) + 2.023187114193683E84, // 106! / (36373903172617414408151820151593427169231298640581690038930816378281879873386202346572901 / 642) + }; + + + /** + * Precomputed factors for {@code k}-th element of the tail function {@code T}. + * Uses Bernoulli number {@code B_2k} divided by {@code 2k!}. + * This is the inverse of table {@link #M}. + */ + private static final double[] FM = { + 0.08333333333333333, + -0.001388888888888889, + 3.306878306878307E-5, + -8.267195767195768E-7, + 2.08767569878681E-8, + -5.284190138687493E-10, + 1.3382536530684679E-11, + -3.3896802963225827E-13, + 8.586062056277845E-15, + -2.174868698558062E-16, + 5.5090028283602295E-18, + -1.3954464685812522E-19, + 3.534707039629467E-21, + -8.953517427037546E-23, + 2.267952452337683E-24, + -5.744790668872202E-26, + 1.455172475614865E-27, + -3.6859949406653103E-29, + 9.336734257095045E-31, + -2.36502241570063E-32, + 5.990671762482134E-34, + -1.5174548844682903E-35, + 3.843758125454189E-37, + -9.736353072646691E-39, + 2.466247044200681E-40, + -6.247076741820743E-42, + 1.5824030244644914E-43, + -4.008273685948936E-45, + 1.0153075855569557E-46, + -2.5718041582418717E-48, + 6.514456035233815E-50, + -1.6501309906896525E-51, + 4.179830628539476E-53, + -1.058763466770291E-54, + 2.6818791912607708E-56, + -6.793279351107421E-58, + 1.7207577616681404E-59, + -4.358730329348894E-61, + 1.1040792903684666E-62, + -2.7966655133781345E-64, + 7.084036501679471E-66, + -1.794407408289224E-67, + 4.545287063611096E-69, + -1.1513346631982051E-70, + 2.9163647710923614E-72, + -7.387238263497337E-74, + 1.8712093117637953E-75, + -4.739828557761799E-77, + 1.2006125993354507E-78, + -3.0411872415142924E-80, + 7.703417274705106E-82, + -1.951298390909883E-83, + 4.942696565159462E-85, + }; + + /** RMS error of the test zeta function using different N. */ + private static final RMS[] RMS_ZETA = IntStream.range(0, 54).mapToObj(x -> new RMS()).toArray(RMS[]::new); + /** RMS error of the final zeta function. */ + private static final RMS RMS_ZETA_FINAL = new RMS(); + + // Test zeta implementation + // + // This class contains a parameterized version of the final implementation. + // See STATISTICS-100 for variations tested during development. + // + // Note: The method is sensitive to the initial loop over N to create S. + // Under certain conditions the N cannot be too high if using an ascending + // sum of k as the sum does not converge and later terms are added with + // low precision. + // + // Better results are obtained using descending k. However this prevents + // an early exit if the series is rapidly converging and the term (a+k)^-s + // drops below machine epsilon of the sum. + // + // Summing in extended precision requires a double-double (DD) sum to be used + // throughout. Use in S and then not in the tail T does not lower the RMS. + + /** + * Compute the value of the Hurwitz zeta function {@code zeta(s, a)}. + * See {@link HurwitzZeta} for the formula details. + * + *

Warning: No parameter validation is performed. + * + * @param s Argument {@code s > 1} + * @param a Argument {@code a >= 1} + * @param n Argument {@code N} + * @param m Argument {@code M} + * @return zeta(s, a) + */ + static double zeta(double s, double a, int n, int m) { + // Asymptotic Behavior as a -> inf + // https://dlmf.nist.gov/25.11#E43 + // When a is large the series cannot use a+k. + // This reduces to N=0, the I term and the first term of T. + if (a > 1e15) { + return Math.pow(a, 1 - s) / (s - 1) + Math.pow(a, -s) * 0.5; + } + + final double apn = a + n; + double p = Math.pow(apn, -s); + + // Initialise sum with the first tail term + double sum = 0.5 * p; + // S : k in [0, n-1] + for (int k = n; --k >= 0;) { + // Descending k sums in order of magnitude for increased precision. + // Prevents early exit for large s when the term (a+k)^-s is below + // machine epsilon of the ascending series sum. + sum += Math.pow(a + k, -s); + } + + // I + // Use of (a+n)^(1-s) = (a+n)^-1 * apn to recycle the power lowers precision. + sum += Math.pow(apn, 1 - s) / (s - 1); + + // T + // The following recycles the power term p: (a+n)^-(2k-1+s). + // This incorporates the factor for T into the sum terms. + // This sets the first power as (a+n)^-(1+s) not (a+n)^-1. + // When s is large the loop exits before the rising factorial overflows. + + // Rising factorial term : (s)_{2k-1} + double f = s; + // 2k - 1 + double k2 = 1; + // Sum of an alternating series as each F changes sign. + // Sum until terms will not impact the result. + // Note: if the factor is too small (e.g. 0x1p-63) then the series continues + // further and terms may be less accurate (i.e. add noise to the T sum). + double tsum = 0; + final double stop = sum * 0x1p-53; + int i; + for (i = 0; i < m; i++) { + // p = (a+n)^-(2k-1+s) + p /= apn; + final double t = f * p / F[i]; + tsum += t; + if (Math.abs(t) <= stop) { + break; + } + p /= apn; + // f = s * (s+1) * (s+2) * ... * (s+2k-2) + f *= s + k2; + k2 += 1.0; + f *= s + k2; + k2 += 1.0; + } + // Used to histogram convergence when testing + if (n == N && MIN_N != MAX_N) { + M[i]++; + } + return sum + tsum; + } + + /** + * Test the factors required for the tail sum. These are computed from the numerator + * and denominator of the Bernoulli numbers, and the factorial of 2k. The test asserts + * that using 2k! / B_2k is more accurate than B_2k / 2k! when limited to double precision. + */ + @Test + void testFactors() { + // Factorial of 2k. Initialise at k=0. + BigInteger factorial = BigInteger.ONE; + double sum1 = 0; + double sum2 = 0; + // If this is too small the BigDecimal created by BigFraction is truncated + final int scale = 200; + // Check factors + for (int k = 1; k < NUM.length; k++) { + factorial = factorial.multiply(BigInteger.valueOf(2 * k - 1)).multiply(BigInteger.valueOf(2 * k)); + final BigInteger num = new BigInteger(NUM[k].substring(NUM[k].indexOf(' ') + 1)); + final BigInteger denom = new BigInteger(DENOM[k].substring(DENOM[k].indexOf(' ') + 1)); + + // 2k! / B_2k + final BigFraction factor1 = BigFraction.of(factorial.multiply(denom), num); + final double d1 = factor1.doubleValue(); + // Cross verify BigFraction vs BigDecimal + BigDecimal v = factor1.bigDecimalValue(scale, RoundingMode.HALF_EVEN); + Assertions.assertEquals(v.doubleValue(), d1); + // Find ULP precision + final double e1 = new BigDecimal(d1).subtract(v) + .divide(new BigDecimal(Math.ulp(d1)), scale, RoundingMode.HALF_EVEN).doubleValue(); + sum1 += Math.abs(e1); + + Assertions.assertEquals(d1, F[k - 1]); + + // Format to print the table: + // "%s, // %s! / (%s / %s)%n", d2, 2 * k, num, denom + + // B_2k / 2k! + final BigFraction factor2 = BigFraction.of(num, factorial.multiply(denom)); + final double d2 = factor2.doubleValue(); + // Cross verify BigFraction vs BigDecimal + v = factor2.bigDecimalValue(scale, RoundingMode.HALF_EVEN); + Assertions.assertEquals(v.doubleValue(), d2); + // Find ULP precision + final double e2 = new BigDecimal(d2).subtract(v) + .divide(new BigDecimal(Math.ulp(d2)), scale, RoundingMode.HALF_EVEN).doubleValue(); + sum2 += Math.abs(e2); + + Assertions.assertEquals(d2, FM[k - 1]); + + // Format to print the table: + // "%s, // (%s / %s) / %s!%n", d2, num, denom, 2 * k + + // For any M, the cumulative error is lower using 2k! / B_2k + // as the first 6/7 factors are exact and errors in the later factors + // are comparable. + Assertions.assertTrue(sum1 < sum2, "2k! / B_2k does not have lower combined error"); + } + } + + @ParameterizedTest + @Order(1) + @CsvFileSource(resources = "hurwitzzeta.csv") + void testZeta(double s, double a, BigDecimal expected) { + // Test with varying N. + // Changes to M can be made but since the implementation quickly converges in the + // tail sum M only has to be a small double digit number. + for (int i = MIN_N; i <= MAX_N; i++) { + final int n = i; + assertZeta(s, a, expected, (x, p) -> zeta(x, p, n, 15), n < 6 ? 25 : 4, RMS_ZETA[i]); + } + } + + @Test + void testZetaPrecision() { + // Output the RMS with varying N. + for (int i = 0; i < RMS_ZETA.length; i++) { + reportPrecision(String.format("zeta %-2d", i), RMS_ZETA[i]); + } + ExtendedPrecisionTest.assertPrecision(RMS_ZETA[N], 3.5, 0.60); + } + + @ParameterizedTest + @Order(1) + @CsvFileSource(resources = "hurwitzzeta.csv") + void testZetaFinal(double s, double a, BigDecimal expected) { + assertZeta(s, a, expected, HurwitzZeta::value, 3, RMS_ZETA_FINAL); + } + + @Test + void testZetaFinalPrecision() { + reportPrecision("zeta final", RMS_ZETA_FINAL); + ExtendedPrecisionTest.assertPrecision(RMS_ZETA_FINAL, 3.5, 0.60); + + // Test the formal implementation matches the test implementation + if (!Double.isNaN(RMS_ZETA[N].getRMS())) { + Assertions.assertEquals(RMS_ZETA[N].getMax(), RMS_ZETA_FINAL.getMax(), "Test max != final max"); + Assertions.assertEquals(RMS_ZETA[N].getRMS(), RMS_ZETA_FINAL.getRMS(), "Test rms != final rms"); + } + } + + private static double assertZeta(double s, double a, BigDecimal expected, + DoubleBinaryOperator f, int ulp, RMS rms) { + final double e = expected.doubleValue(); + final double x = f.applyAsDouble(s, a); + TestUtils.assertEquals(e, x, DoubleTolerances.ulps(ulp)); + return ExtendedPrecisionTest.addError(x, expected, e, rms); + } + + private static void reportPrecision(String name, RMS rms) { + // Note: The RMS changes with the JDK due to the use of Math.pow. + + // Eclipse Adoptium 17.0.6+10 + // zeta final max 3.463160912553975 rms 0.581703219550096 + // zeta 5 max 20.5732122922785 rms 2.1416222789789 + // zeta 6 max 3.739011012156354 rms 0.605560612860319 + // zeta 7 max 3.698235736226918 rms 0.5978604595147342 + // zeta 8 max 3.463160912553975 rms 0.581703219550096 + // zeta 9 max 3.739011012156354 rms 0.6009469175550126 + // zeta 10 max 3.463160912553975 rms 0.5855515390508779 + // zeta 11 max 3.78356780754505 rms 0.5916447716325028 + // zeta 12 max 3.78356780754505 rms 0.5910072153542633 + + // Only report implementation precision when testing different N. + if (MAX_N <= MIN_N) { + return; + } + final double v = rms.getRMS(); + if (!Double.isNaN(v)) { + // CHECKSTYLE: stop regex + if (!jvm) { + jvm = true; + System.out.printf("// %s %s%n", + System.getProperty("java.vm.vendor"), + System.getProperty("java.vm.version") + ); + } + System.out.printf("// %-10s max %-25s rms %s%n", name, rms.getMax(), v); + // CHECKSTYLE: resume regex + } + } + + @Test + @Order(2) + void testZetaM() { + // Check the M used to converge the tail series in the chosen implementation. + // This depends on the epsilon used to stop the sum. + int m = 0; + for (int i = 0; i < M.length; i++) { + if (M[i] != 0) { + m = i + 1; + // This is used for testing. + // CHECKSTYLE: stop regex + System.out.printf("// zeta N=%-2d M=%-2d %d%n", N, m, M[i]); + // CHECKSTYLE: resume regex + } + } + Assertions.assertTrue(m < 15); + } + + /** + * Spot tests for the zeta function to check various points in the domain and extreme values. + */ + @ParameterizedTest + @MethodSource(value = "testZetaSpot") + void testZetaSpot(double s, double a, double z, int ulp) { + final double v = HurwitzZeta.value(s, a); + TestUtils.assertEquals(z, v, DoubleTolerances.ulps(ulp)); + } + + static Stream testZetaSpot() { + return Stream.of( + // Reference values from mpmath version 1.4.1. + // from mpmath import mp, zeta + // mp.dps = 30; mp.pretty = True + // def f(s, a): + // print(f'Arguments.of({s}, {a}, {zeta(s, a)}, 0),') + // f(1.001, 1) etc. + Arguments.of(1.001, 1, 1000.57728847601162684806668989, 0), + Arguments.of(1.001, 3, 999.077634929516400548962369402, 0), + Arguments.of(1.001, 156.78, 994.961087152463264230812967825, 0), + Arguments.of(1.001, 345600, 987.327939500118316838908716646, 1), + Arguments.of(1.001, 100000000.0, 981.747943025003254769065166246, 1), + Arguments.of(1.001, 1000000000.0, 979.48998540929872849188230117, 1), + Arguments.of(1.001, 10000000000.0, 977.237220955969649930501114761, 0), + Arguments.of(1.001, 8.374e+19, 955.1620677642774549247109353, 0), + Arguments.of(1.001, 7.2834e+238, 576.949320020341985622075858479, 0), + Arguments.of(1.1678, 1, 6.54877176355186372373480299218, 1), + Arguments.of(1.1678, 2.5, 5.29477174574315816738362779184, 1), + Arguments.of(1.1678, 5.765, 4.50848224904053531500311915417, 1), + Arguments.of(1.1678, 87698, 0.882622082916184877125466190512, 1), + Arguments.of(1.1678, 1098765, 0.577489707637839655591145476126, 1), + Arguments.of(1.1678, 100000000.0, 0.27089940045667952429754209707, 0), + Arguments.of(1.1678, 1000000000.0, 0.184080609461973448176589687532, 1), + Arguments.of(1.1678, 10000000000.0, 0.125085809513774573322512635067, 1), + Arguments.of(1.1678, 6.786e+70, 7.75645430994177324455600419939e-12, 0), + Arguments.of(1.3567, 1, 3.40603490577277492861753138946, 1), + Arguments.of(1.3567, 12, 1.17295098623816176759602458034, 1), + Arguments.of(1.3567, 267, 0.382340735582659556038655214163, 0), + Arguments.of(1.3567, 100000000.0, 0.00392732544562110257556960028487, 0), + Arguments.of(1.3567, 1000000000.0, 0.0017274158124759523689829065186, 0), + Arguments.of(1.3567, 6780000000.0, 0.000872764873809386121835245990354, 1), + Arguments.of(1.3567, 10000000000.0, 0.000759795803739606906900648768122, 1), + Arguments.of(1.3567, 2.394279e+25, 2.48282011395930739748191376465e-09, 0), + Arguments.of(1.3567, 1.37e+201, 5.03765781298315620677652110278e-72, 0), + Arguments.of(1.9183, 1.234, 1.31039727875809754102393633608, 0), + Arguments.of(1.9183, 2.234, 0.642314727500847848717986207886, 1), + Arguments.of(1.9183, 32, 0.0458231265360237920443268300232, 1), + Arguments.of(1.9183, 189, 0.00886331331419119681212176796288, 0), + Arguments.of(1.9183, 26378, 9.48410976427270589834458588242e-05, 0), + Arguments.of(1.9183, 1484793, 2.34193449523082289840265727697e-06, 1), + Arguments.of(1.9183, 100000000.0, 4.90473353191884545392736492566e-08, 1), + Arguments.of(1.9183, 1000000000.0, 5.91991424826323516752379877396e-09, 1), + Arguments.of(1.9183, 10000000000.0, 7.14521688264220831940065076935e-10, 1), + Arguments.of(1.9183, 7.18923e+79, 5.06551945929778382002806813887e-74, 1), + Arguments.of(1.9183, 2.3423e+159, 4.87385597076733868223619309795e-147, 0), + Arguments.of(1.9183, 3.4535e+303, 1.98532564832533048061338098412e-279, 1), + + // Large s + Arguments.of(1001, 1, 1.0, 0), + Arguments.of(1001, 1.3, 8.76403979411431591130552997055e-115, 0), + Arguments.of(1001, 2, 4.66631809251609439495044772362e-302, 0), + Arguments.of(1001, 3, 0, 0), + + Arguments.of(26783400000000.0, 1.0000000000000002, 0.994070539579705196633883729806, 0), + Arguments.of(26783400000000.0, 1.0000000000002, 0.00470868956401873280652247209542, 0), + Arguments.of(26783400000000.0, 1.0000000002, 0, 0), + + Arguments.of(1e+18, 1, 1.0, 0), + Arguments.of(1e+18, 1.0000000000000002, 3.69192903582901397705695784205e-97, 0), + Arguments.of(1e+18, 1.0000000000000004, 1.36303400055980247979692825583e-193, 1), + + Arguments.of(1e+19, 1, 1.0, 0), + Arguments.of(1e+19, 1.0000000000000002, 0, 0), + + // Requires M=12 when N=9. + // This is largest M noted during development when the RMS error is close to optimal. + Arguments.of(31.76, 8.23, 8.6811830191090714059294777379e-30, 1), + Arguments.of(31.76, 11.23, 4.68180272588528321856530594913e-34, 0), + Arguments.of(31.76, 12.23, 3.17258072050987981477830566397e-35, 0), + Arguments.of(31.76, 13.23, 2.66312289027731475813712555339e-36, 1), + Arguments.of(31.76, 14.23, 2.68377485329827353841985109724e-37, 2), + Arguments.of(31.76, 15.23, 3.1669792006042583105605159352e-38, 1), + Arguments.of(31.76, 17.23, 6.55526711653597399706064463689e-40, 0), + Arguments.of(31.76, 19.23, 2.08909657211945256234757218604e-41, 0), + + Arguments.of(61.76, 30.23, 4.27875492887441652081612955782e-92, 2), + + // s -> large, a == 1 + // Asymptote of Reimann zeta function: 1 + 2^-s + Arguments.of(25.67, 1, 1.00000001873152459253171691257, 0), + Arguments.of(29.67, 1, 1.00000000117069191296622655835, 0), + Arguments.of(39.67, 1, 1.00000000000114324712238181431, 0), + Arguments.of(59.67, 1, 1.00000000000000000109028530523, 0), + Arguments.of(69.67, 1, 1.00000000000000000000106473174, 0), + Arguments.of(89.67, 1, 1.00000000000000000000000000102, 0), + + // ------- + + // Reference values using Matlab R2026a Symbolic Math Toolbox + // vpa(hurwitzZeta(sym(s, 'f'), sym(a, 'f'))) + // Note: The use of 'f' uses the floating-point conversion as N * 2^e + // where N is the mantissa and e is the exponent. + + Arguments.of(1.5, 4789, 0.0289021565574206125831622859402, 0), + Arguments.of(2.345, 12.789, 0.0254390524135780630410689989495, 1), + Arguments.of(1.345, 12.789, 1.2196695365743183226009917322, 1), + Arguments.of(1.345, 1278.9, 0.245686258677206272154248922088, 1), + Arguments.of(4.345, 28697.9, 0.000000000000000366539298049937530342298075842, 1), + Arguments.of(1.345, 1278562927.9, 0.00209103729002248575358360674936, 0), + // large s before underflow + Arguments.of(23.45, 12.789, 0.0000000000000000000000000134520611728481431909082787144, 0), + Arguments.of(23.45, 1278.9, 8.01879331040682555147782226582e-72, 1), + Arguments.of(23.45, 1278562927.9, 1.59541010013538002585127908428e-206, 1), + Arguments.of(234.5, 12.789, 2.7978232305220904641253847499e-260, 0), + Arguments.of(234.5, 17.89, 1.83179298527375942363255194085e-294, 0), + // small s -> 1 + Arguments.of(1.00001, 1.789, 99999.7231466483928005870213366, 1), + Arguments.of(1.00001, 17.89, 99997.1440070978817356297446315, 1), + Arguments.of(1.00001, 1278562927.89, 99979.0331951153772621341875866, 1), + Arguments.of(1.0000000000000002, 1.789, 4503599627370495.72314713725233, 0), + Arguments.of(1.0000000000000002, 1278562927.89, 4503599627370475.03099742881301, 0) + ); + } +} diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ZipfDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ZipfDistributionTest.java index fcb349d59..18a70834d 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ZipfDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ZipfDistributionTest.java @@ -68,12 +68,20 @@ protected double getRelativeTolerance() { @ParameterizedTest @CsvSource({ // Generated using scipy 1.16.3 using scipy.stats.zipfian.stats(exp, n) - "150, 0.512, 52.707637767916495, 1966.9356468021338", - "73, 1.67, 4.937625767687036, 87.76033876340095", - "999, 2.1, 3.5725516349635846, 343.7153292773371", + "150, 0.512, 52.707637767916495, 1966.9356468021338, 2e-15", + "73, 1.67, 4.937625767687036, 87.76033876340095, 1e-15", + "999, 2.1, 3.5725516349635846, 343.7153292773371, 1e-15", + // Attempt to use the zeta function but the two values are close: zeta(s-1, 1) - zeta(s-1, 1+n) + "100, 2.02, 3.080144872398558, 48.00225370319864, 1e-15", + "1000, 2.001, 4.5415154015097565, 584.4277334272527, 1e-15", + // Large n is not practical without the zeta function. + // Ensure n - 2 > 1 to use the zeta function for the variance. + "999999, 3.1, 1.3184365884771752, 5.083318190566237, 1e-15", + "987654321, 3.4, 1.2148826443135665, 1.2508670058966394, 1e-15", + "987654321, 5.4, 1.0312467279214397, 0.045058034902836094, 2e-14", }) - void testAdditionalMoments(int n, double exp, double mean, double variance) { - final DoubleTolerance tolerance = createRelTolerance(1e-14); + void testAdditionalMoments(int n, double exp, double mean, double variance, double eps) { + final DoubleTolerance tolerance = createRelTolerance(eps); final ZipfDistribution dist = ZipfDistribution.of(n, exp); testMoments(dist, mean, variance, tolerance); // Run twice to check the cached N-th harmonic numbers diff --git a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/hurwitzzeta.csv b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/hurwitzzeta.csv new file mode 100644 index 000000000..21bb51ac3 --- /dev/null +++ b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/hurwitzzeta.csv @@ -0,0 +1,2447 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# High-precision test data for the Hurwitz zeta function. +# +# Test (s, a) created using (limited to 50 by Collector.joining): +# static SplittableRandom g = new SplittableRandom(42); +# static Stream range(int a, int b, int n) { +# return g.ints(n, a, b).mapToDouble(x -> x + g.nextDouble()).boxed(); +# } +# String s = Stream.of( +# rng.doubles(8).map(x -> 1 + x * 0.01).boxed(), +# range(1, 2, 8), range(2, 3, 8), range(3, 5, 8), range(5, 25, 16) +# ).flatMap(Function.identity()).sorted() +# .map(String::valueOf).collect(Collectors.joining(",")); +# String a = Stream.of( +# range(1, 5, 10), range(5, 10, 8), range(10, 100, 8), range(100, 10000, 8), +# range(10000, 1000000, 8), range(1000000, 1000000000, 8) +# ).flatMap(Function.identity()).sorted() +# .map(String::valueOf).collect(Collectors.joining(",")); +# +# Matlab R2026a Hurwitz zeta evaluation (requires Symbolic Math Toolbox) +# +# ss = [1.0006167373880737,1.000837831969073,1.0013335008901918,1.0016028781357047,1.007918781538738,1.0092859696644174,1.00932136215088,1.0098210648580728,1.15991039287692,1.2034351093002307,1.3441907165236375,1.4929891857946924,1.52001329960324,1.6184820663561348,1.8006318767135032,1.8682280765465324,2.0730537691034647,2.277567379985672,2.4954986581492435,2.6198190348990975,2.6889463724014133,2.694177574321061,2.7854994594961,2.840516482087527,3.0919669672136787,3.1425018997680585,3.321391289337802,3.3800228685822176,3.774783122268348,3.7821562891438543,4.159054910020286,4.2660528284133425,5.924392435714811,8.308535429890805,8.816805086255101,9.964802685014341,10.032260281541108,12.188497456354446,13.969371237967552,15.623165142423973,16.822502311331153,18.835195189585164,19.672902052767473,20.496411460832384,21.810311386916062,22.32015186103379,23.555964997504226,24.04488824777366]; +# aa = [1.2041330017152543,1.2265460891928393,1.3496515186903868,1.4561891368135123,1.505408944679143,2.7166669767929994,2.726054404097307,2.730289055066077,4.05172768030195,4.212481787507753,6.16172420394647,6.809209225225226,6.823627236462992,7.028332179450887,7.41802758378929,7.604703847746029,8.383906908241919,8.953759909753053,22.445567410957914,34.50882161224855,36.835964339959254,41.993572536077544,50.876045582169034,58.390227406731306,67.10660283843828,72.04866994353,155.018653878391,4114.635962637943,4782.866406950918,5832.707445185928,5833.772069174886,7530.585189204646,9437.17981778131,9714.481644420117,91324.59743878205,204107.607053725,256840.68070942213,350404.8197437515,691957.3706941172,791516.8138645723,882912.7638920178,911565.6220658533,1.2333347534928627E8,1.2402498806286132E8,4.633754213481752E8,7.482264661031605E8,7.511855225150903E8,8.039668683292435E8,9.683359524993379E8,9.77667584000786E8]; +# fileID = fopen('hurwitzzeta.csv', 'w'); +# for i = 1:numel(ss) +# for j = 1:numel(aa) +# s = ss(i); +# a = aa(j); +# fprintf(fileID, '%.17g, %.17g, %s\n', s, a, vpa(hurwitzZeta(sym(s, 'f'), sym(a, 'f')))); +# end +# end +# fclose(fileID); + +1.0006167373880737, 1.2041330017152543, 1621.719473252515312763352702405 +1.0006167373880737, 1.2265460891928393, 1621.691562703148010863568687139 +1.0006167373880737, 1.3496515186903868, 1621.5499505025638698461701440922 +1.0006167373880737, 1.4561891368135123, 1621.4409278977707971125280885662 +1.0006167373880737, 1.505408944679143, 1621.3941158029178515622565953908 +1.0006167373880737, 2.7166669767929994, 1620.6316547775399172030588465003 +1.0006167373880737, 2.7260544040973071, 1620.6274978488730291195233049531 +1.0006167373880737, 2.730289055066077, 1620.6256282304933911994791858949 +1.0006167373880737, 4.0517276803019504, 1620.1654726058177756670543350325 +1.0006167373880737, 4.2124817875077527, 1620.1215142111329951919773122083 +1.0006167373880737, 6.1617242039464699, 1619.7015757475924884667097049307 +1.0006167373880737, 6.8092092252252261, 1619.5936638241372450999487334012 +1.0006167373880737, 6.8236272364629924, 1619.5913885175881447503378483592 +1.0006167373880737, 7.0283321794508868, 1619.5596302892179534832660465785 +1.0006167373880737, 7.4180275837892902, 1619.5018253743599021116444130048 +1.0006167373880737, 7.6047038477460287, 1619.4752757749118150385608027882 +1.0006167373880737, 8.3839069082419186, 1619.3714924711347788725764551927 +1.0006167373880737, 8.9537599097530531, 1619.3018819077904931870577826636 +1.0006167373880737, 22.445567410957914, 1618.3499581093010906550543708198 +1.0006167373880737, 34.508821612248553, 1617.9128464301917888452008917322 +1.0006167373880737, 36.835964339959254, 1617.8468079865745927222611653255 +1.0006167373880737, 41.993572536077544, 1617.7143840019387190331048768859 +1.0006167373880737, 50.876045582169034, 1617.5208712936731467789944026415 +1.0006167373880737, 58.390227406731306, 1617.382184088501627776884936482 +1.0006167373880737, 67.106602838438278, 1617.2422886749851942499557469229 +1.0006167373880737, 72.048669943530001, 1617.1709024046196714862246019045 +1.0006167373880737, 155.01865387839101, 1616.403179285347322066637548796 +1.0006167373880737, 4114.6359626379426, 1613.1348065429878491971520887792 +1.0006167373880737, 4782.8664069509177, 1612.9850773558180361809203945695 +1.0006167373880737, 5832.707445185928, 1612.7876636956393157501122091846 +1.0006167373880737, 5833.7720691748864, 1612.7874821436157706842573640505 +1.0006167373880737, 7530.5851892046458, 1612.5335357082317430952830980016 +1.0006167373880737, 9437.1798177813107, 1612.3090926248273625650353172096 +1.0006167373880737, 9714.4816444201169, 1612.2802938505421970974689413031 +1.0006167373880737, 91324.597438782046, 1610.0536372736031158845933012716 +1.0006167373880737, 204107.60705372499, 1609.2552505633676293281946018657 +1.0006167373880737, 256840.68070942213, 1609.0271839438428337821696504693 +1.0006167373880737, 350404.81974375149, 1608.7189570194459259030083687548 +1.0006167373880737, 691957.37069411715, 1608.0439992835842379458707650121 +1.0006167373880737, 791516.81386457232, 1607.9106881982740661836543600006 +1.0006167373880737, 882912.76389201777, 1607.802328011087001646211094999 +1.0006167373880737, 911565.62206585333, 1607.7706596548565518328226087174 +1.0006167373880737, 123333475.34928627, 1602.911891017323040483068941402 +1.0006167373880737, 124024988.06286132, 1602.9063637088525728781161898661 +1.0006167373880737, 463375421.34817523, 1601.6039010030469492740210342565 +1.0006167373880737, 748226466.1031605, 1601.1306635104621680475843336157 +1.0006167373880737, 751185522.51509035, 1601.126765981519067465637861652 +1.0006167373880737, 803966868.32924354, 1601.0597125138984300199262037224 +1.0006167373880737, 968335952.49933791, 1600.8760396789484704530557810425 +1.0006167373880737, 977667584.00078595, 1600.8665706819814822975471658709 +1.0008378319690729, 1.2041330017152543, 1193.8405469012467722942530057894 +1.0008378319690729, 1.2265460891928393, 1193.812635276768023451628469289 +1.0008378319690729, 1.3496515186903868, 1193.6710199218641994713015803725 +1.0008378319690729, 1.4561891368135123, 1193.5619975501756520203565365182 +1.0008378319690729, 1.505408944679143, 1193.5151862774902858482828813392 +1.0008378319690729, 2.7166669767929994, 1192.7528020986254664072166334247 +1.0008378319690729, 2.7260544040973071, 1192.7486459250969895603125065549 +1.0008378319690729, 2.730289055066077, 1192.7467766475582980354107160691 +1.0008378319690729, 4.0517276803019504, 1192.2867279031098688163594078945 +1.0008378319690729, 4.2124817875077527, 1192.242782129462399518916734886 +1.0008378319690729, 6.1617242039464699, 1191.8229855874105407373591672126 +1.0008378319690729, 6.8092092252252261, 1191.7151163946654750620842358889 +1.0008378319690729, 6.8236272364629924, 1191.7128420167002539140004268442 +1.0008378319690729, 7.0283321794508868, 1191.681096868393831676725448868 +1.0008378319690729, 7.4180275837892902, 1191.6233163318805101078582166393 +1.0008378319690729, 7.6047038477460287, 1191.5967781762258699856431813131 +1.0008378319690729, 8.3839069082419186, 1191.4930410984942041671974422776 +1.0008378319690729, 8.9537599097530531, 1191.4234628721171613029730495468 +1.0008378319690729, 22.445567410957914, 1190.4720887311868458394317022263 +1.0008378319690729, 34.508821612248553, 1190.0352966068949280899789988012 +1.0008378319690729, 36.835964339959254, 1189.9693101187696380313307185133 +1.0008378319690729, 41.993572536077544, 1189.8369932273148212459064698082 +1.0008378319690729, 50.876045582169034, 1189.6436439977838032971113281032 +1.0008378319690729, 58.390227406731306, 1189.5050790556265141171530878048 +1.0008378319690729, 67.106602838438278, 1189.3653112852541861202316293029 +1.0008378319690729, 72.048669943530001, 1189.2939918190654463072885528883 +1.0008378319690729, 155.01865387839101, 1188.5270584852241284812021421089 +1.0008378319690729, 4114.6359626379426, 1185.2635097098545433579922205638 +1.0008378319690729, 4782.8664069509177, 1185.1140582561242004966539614491 +1.0008378319690729, 5832.707445185928, 1184.9170183809330519677843975066 +1.0008378319690729, 5833.7720691748864, 1184.9168371766411909882528200774 +1.0008378319690729, 7530.5851892046458, 1184.6633842909056020162329209678 +1.0008378319690729, 9437.1798177813107, 1184.4393893283785683858367576912 +1.0008378319690729, 9714.4816444201169, 1184.4106488625772168103559642755 +1.0008378319690729, 91324.597438782046, 1182.1890579318614521662602399199 +1.0008378319690729, 204107.60705372499, 1181.3927556995008948113993726228 +1.0008378319690729, 256840.68070942213, 1181.1653105331566700492902798108 +1.0008378319690729, 350404.81974375149, 1180.8579418527567608292463690028 +1.0008378319690729, 691957.37069411715, 1180.1849372414880337853177161203 +1.0008378319690729, 791516.81386457232, 1180.0520238926280186619933559091 +1.0008378319690729, 882912.76389201777, 1179.943989910907800506881717657 +1.0008378319690729, 911565.62206585333, 1179.912417381377190530749887613 +1.0008378319690729, 123333475.34928627, 1175.0709938777017651725213030269 +1.0008378319690729, 124024988.06286132, 1175.0654892932388985326957670745 +1.0008378319690729, 463375421.34817523, 1173.768571060225398020652026013 +1.0008378319690729, 748226466.1031605, 1173.2974417212326934637192617709 +1.0008378319690729, 751185522.51509035, 1173.2935617620320604813225825014 +1.0008378319690729, 803966868.32924354, 1173.2268110961765807214988733532 +1.0008378319690729, 968335952.49933791, 1173.0439728281447893438886571751 +1.0008378319690729, 977667584.00078595, 1173.0345470599444546625136786422 +1.0013335008901918, 1.2041330017152543, 750.1895515489669260288843772866 +1.0013335008901918, 1.2265460891928393, 750.16163751445700426479593753329 +1.0013335008901918, 1.3496515186903868, 750.02001508944552616719271259246 +1.0013335008901918, 1.4561891368135123, 749.91099324150460624991167303321 +1.0013335008901918, 1.505408944679143, 749.86418381242135956830193814197 +1.0013335008901918, 2.7166669767929994, 749.10197188482735074648521993233 +1.0013335008901918, 2.7260544040973071, 749.09781740374584216746523080972 +1.0013335008901918, 2.730289055066077, 749.09594889011291858280815654432 +1.0013335008901918, 4.0517276803019504, 748.6361396682036558505746598442 +1.0013335008901918, 4.2124817875077527, 748.59222217636613354372731094579 +1.0013335008901918, 6.1617242039464699, 748.17274363110053035797799289737 +1.0013335008901918, 6.8092092252252261, 748.0649701742981466189100868953 +1.0013335008901918, 6.8236272364629924, 748.06269787673634264960187444885 +1.0013335008901918, 7.0283321794508868, 748.03098203288331790058408803389 +1.0013335008901918, 7.4180275837892902, 747.97325611250879495229242566286 +1.0013335008901918, 7.6047038477460287, 747.94674359462398209196739144446 +1.0013335008901918, 8.3839069082419186, 747.8431100756347500099288377622 +1.0013335008901918, 8.9537599097530531, 747.77360429049470921936967237696 +1.0013335008901918, 22.445567410957914, 746.8234612535830597731387918339 +1.0013335008901918, 34.508821612248553, 746.38738468495394989058786187077 +1.0013335008901918, 36.835964339959254, 746.32151452663979029965871958595 +1.0013335008901918, 41.993572536077544, 746.18943741126681768355181961231 +1.0013335008901918, 50.876045582169034, 745.99645418067350044658793657186 +1.0013335008901918, 58.390227406731306, 745.85816294671843002041910346824 +1.0013335008901918, 67.106602838438278, 745.7186809146605767329412407469 +1.0013335008901918, 72.048669943530001, 745.64751098874408724486606463509 +1.0013335008901918, 155.01865387839101, 744.88234530608208933608467562252 +1.0013335008901918, 4114.6359626379426, 741.6295849399064932831921747732 +1.0013335008901918, 4782.8664069509177, 741.48075426225832556187515966815 +1.0013335008901918, 5832.707445185928, 741.28454980056298491811478256442 +1.0013335008901918, 5833.7720691748864, 741.28436937342765760343416395542 +1.0013335008901918, 7530.5851892046458, 741.03201948668005046076183666185 +1.0013335008901918, 9437.1798177813107, 740.80902591138231708993984326791 +1.0013335008901918, 9714.4816444201169, 740.78041573792012774699100695795 +1.0013335008901918, 91324.597438782046, 738.57013940626781164470527114049 +1.0013335008901918, 204107.60705372499, 737.77849057307201217375298342096 +1.0013335008901918, 256840.68070942213, 737.55243248718576178829859416155 +1.0013335008901918, 350404.81974375149, 737.2469792176008177903079959541 +1.0013335008901918, 691957.37069411715, 736.57833277138423837357644893963 +1.0013335008901918, 791516.81386457232, 736.44630679545905933211545115202 +1.0013335008901918, 882912.76389201777, 736.33900056517746157328185040987 +1.0013335008901918, 911565.62206585333, 736.30764181580652528722426686107 +1.0013335008901918, 123333475.34928627, 731.5048777365312986510174510073 +1.0013335008901918, 124024988.06286132, 731.49942375779007731539621671464 +1.0013335008901918, 463375421.34817523, 730.21484995043058764284835840555 +1.0013335008901918, 748226466.1031605, 729.74841278583484421592241697116 +1.0013335008901918, 751185522.51509035, 729.74457192871558640091147122929 +1.0013335008901918, 803966868.32924354, 729.67849515019247487910559356052 +1.0013335008901918, 968335952.49933791, 729.4975141318515652049417658397 +1.0013335008901918, 977667584.00078595, 729.48818456181606226100414920992 +1.0016028781357047, 1.2041330017152543, 624.16153258263141375949885936891 +1.0016028781357047, 1.2265460891928393, 624.13361723850401633395442477657 +1.0016028781357047, 1.3496515186903868, 623.99199097203824026439536075499 +1.0016028781357047, 1.4561891368135123, 623.88296940940348475239518762493 +1.0016028781357047, 1.505408944679143, 623.83616098247759909235031080642 +1.0016028781357047, 2.7166669767929994, 623.07404264958349911424595923774 +1.0016028781357047, 2.7260544040973071, 623.06988908799995698509633889172 +1.0016028781357047, 2.730289055066077, 623.06802098939272314030522802491 +1.0016028781357047, 4.0517276803019504, 622.60834188625071610631417579228 +1.0016028781357047, 4.2124817875077527, 622.56443975689546232478642620853 +1.0016028781357047, 6.1617242039464699, 622.14513392931757716287481761341 +1.0016028781357047, 6.8092092252252261, 622.03741246574038337480327927341 +1.0016028781357047, 6.8236272364629924, 622.03514129800112458913230511125 +1.0016028781357047, 7.0283321794508868, 622.00344136866534461716890857509 +1.0016028781357047, 7.4180275837892902, 621.94574510844345932618287834553 +1.0016028781357047, 7.6047038477460287, 621.91924651332850738363047184499 +1.0016028781357047, 8.3839069082419186, 621.81566923122623153829658367729 +1.0016028781357047, 8.9537599097530531, 621.74620278351745304584846486843 +1.0016028781357047, 22.445567410957914, 620.7967281292860308382831041184 +1.0016028781357047, 34.508821612248553, 620.36103994552583559347958305841 +1.0016028781357047, 36.835964339959254, 620.29523292201099328729441466987 +1.0016028781357047, 41.993572536077544, 620.16328593353338984887812802224 +1.0016028781357047, 50.876045582169034, 619.97050131875490762831552166727 +1.0016028781357047, 58.390227406731306, 619.83235860797312302255956276193 +1.0016028781357047, 67.106602838438278, 619.69303161874504554439564362453 +1.0016028781357047, 72.048669943530001, 619.62194283074037885960520046324 +1.0016028781357047, 155.01865387839101, 618.85773608619487448315952366484 +1.0016028781357047, 4114.6359626379426, 615.61082354558272811075671234901 +1.0016028781357047, 4782.8664069509177, 615.46232915401379102746885056143 +1.0016028781357047, 5832.707445185928, 615.26657722128022882392121518371 +1.0016028781357047, 5833.7720691748864, 615.26639721510114230692886708897 +1.0016028781357047, 7530.5851892046458, 615.01464475175708102349146823424 +1.0016028781357047, 9437.1798177813107, 614.79219351344292819539352784246 +1.0016028781357047, 9714.4816444201169, 614.76365390102012733533474603778 +1.0016028781357047, 91324.597438782046, 612.55950234222245209960182515443 +1.0016028781357047, 204107.60705372499, 611.77037103523852117279539429442 +1.0016028781357047, 256840.68070942213, 611.54506322371081446156748223442 +1.0016028781357047, 350404.81974375149, 611.24064589609491012831534723614 +1.0016028781357047, 691957.37069411715, 610.57435609629673770371812022041 +1.0016028781357047, 791516.81386457232, 610.44280988660189352860375213015 +1.0016028781357047, 882912.76389201777, 610.33589710339706937920338759179 +1.0016028781357047, 911565.62206585333, 610.30465392770099648082471364775 +1.0016028781357047, 123333475.34928627, 605.5227691604679140604921608169 +1.0016028781357047, 124024988.06286132, 605.51734248861812422148158701601 +1.0016028781357047, 463375421.34817523, 604.23942803809590442707923651469 +1.0016028781357047, 748226466.1031605, 603.77552126204086309606858395099 +1.0016028781357047, 751185522.51509035, 603.77170148988907269785558676549 +1.0016028781357047, 803966868.32924354, 603.7059880858070273380873257257 +1.0016028781357047, 968335952.49933791, 603.52600848744318879537766761883 +1.0016028781357047, 977667584.00078595, 603.51673078504971497707517304324 +1.007918781538738, 1.2041330017152543, 126.56572605564562558032841719276 +1.007918781538738, 1.2265460891928393, 126.53778003468907196589794432534 +1.007918781538738, 1.3496515186903868, 126.39606387804939637854598265981 +1.007918781538738, 1.4561891368135123, 126.28704913975786516004812331512 +1.007918781538738, 1.505408944679143, 126.24026425600385304521902709111 +1.007918781538738, 2.7166669767929994, 125.48033688096332273786490576709 +1.007918781538738, 2.7260544040973071, 125.47620482126391818805646761109 +1.007918781538738, 2.730289055066077, 125.47434642767394046840372639429 +1.007918781538738, 4.0517276803019504, 125.01770753253552015297782626825 +1.007918781538738, 4.2124817875077527, 124.97416406598636879795300038144 +1.007918781538738, 6.1617242039464699, 124.55888742210007346883882402314 +1.007918781538738, 6.8092092252252261, 124.45237784828608262446477517027 +1.007918781538738, 6.8236272364629924, 124.45013301041839115710882193169 +1.007918781538738, 7.0283321794508868, 124.41880393906000258091400344174 +1.007918781538738, 7.4180275837892902, 124.36179875114080610997325414214 +1.007918781538738, 7.6047038477460287, 124.33562450738470424938094011893 +1.007918781538738, 8.3839069082419186, 124.23335706379340430251397347621 +1.007918781538738, 8.9537599097530531, 124.16480658154861258377229098265 +1.007918781538738, 22.445567410957914, 123.23086753835923112614703740249 +1.007918781538738, 34.508821612248553, 122.80418693140854960151006366528 +1.007918781538738, 36.835964339959254, 122.73984296723155031811676306469 +1.007918781538738, 41.993572536077544, 122.6109104982559765301438618649 +1.007918781538738, 50.876045582169034, 122.42272454645176906185217811167 +1.007918781538738, 58.390227406731306, 122.28801880312627068076037585387 +1.007918781538738, 67.106602838438278, 122.15227801003234170472117848129 +1.007918781538738, 72.048669943530001, 122.08306532116618343126071199144 +1.007918781538738, 155.01865387839101, 121.34100017005765367143188683401 +1.007918781538738, 4114.6359626379426, 118.22816665193566945305556398347 +1.007918781538738, 4782.8664069509177, 118.08734279845286082257409249356 +1.007918781538738, 5832.707445185928, 117.90190697014031769930653842437 +1.007918781538738, 5833.7720691748864, 117.901736557217268441719781442 +1.007918781538738, 7530.5851892046458, 117.6635931933505237863647996914 +1.007918781538738, 9437.1798177813107, 117.453486518740415214458749773 +1.007918781538738, 9714.4816444201169, 117.42655233758923637156687042129 +1.007918781538738, 91324.597438782046, 115.36122154121768760483074156648 +1.007918781538738, 204107.60705372499, 114.62887537458974641733724982531 +1.007918781538738, 256840.68070942213, 114.42046248415632849269188899295 +1.007918781538738, 350404.81974375149, 114.13935232748100298914505536223 +1.007918781538738, 691957.37069411715, 113.52599790851171673198808884279 +1.007918781538738, 791516.81386457232, 113.40521412771673979706248835606 +1.007918781538738, 882912.76389201777, 113.30712391493549343563469617397 +1.007918781538738, 911565.62206585333, 113.27847174422447093151827125928 +1.007918781538738, 123333475.34928627, 108.96076293488309565588504662201 +1.007918781538738, 124024988.06286132, 108.9559387559629148158615348149 +1.007918781538738, 463375421.34817523, 107.8246377776127176732776805901 +1.007918781538738, 748226466.1031605, 107.41628021750611338862055268543 +1.007918781538738, 751185522.51509035, 107.41292296111423611545085664818 +1.007918781538738, 803966868.32924354, 107.35517954448860771422705060342 +1.007918781538738, 968335952.49933791, 107.19715535636837137285978592516 +1.007918781538738, 977667584.00078595, 107.18901445652950973564564339371 +1.0092859696644174, 1.2041330017152543, 107.97299308420543493148053431842 +1.0092859696644174, 1.2265460891928393, 107.94504043000688117770931829747 +1.0092859696644174, 1.3496515186903868, 107.80330485995595150437094200999 +1.0092859696644174, 1.4561891368135123, 107.69429163297289475167475937542 +1.0092859696644174, 1.505408944679143, 107.64751185722229517908133143106 +1.0092859696644174, 2.7166669767929994, 106.88805787253431024760906233048 +1.0092859696644174, 2.7260544040973071, 106.88393045294100104834319731366 +1.0092859696644174, 2.730289055066077, 106.88207415366866133871048371645 +1.0092859696644174, 4.0517276803019504, 106.42609069601783273923188493605 +1.0092859696644174, 4.2124817875077527, 106.38262448304335451728028772703 +1.0092859696644174, 6.1617242039464699, 105.96821489322689865058382425302 +1.0092859696644174, 6.8092092252252261, 105.86196585456316415069965936608 +1.0092859696644174, 6.8236272364629924, 105.85972667597060279468420849727 +1.0092859696644174, 7.0283321794508868, 105.82847731064435802676917885608 +1.0092859696644174, 7.4180275837892902, 105.77162062464447389053322407904 +1.0092859696644174, 7.6047038477460287, 105.74551606824918582846324478107 +1.0092859696644174, 8.3839069082419186, 105.64352997436091308634908213686 +1.0092859696644174, 8.9537599097530531, 105.57517617352489640209214172147 +1.0092859696644174, 22.445567410957914, 104.64456610634504535857033927631 +1.0092859696644174, 34.508821612248553, 104.2198106593995352396631793799 +1.0092859696644174, 36.835964339959254, 104.15577909219948078132160739144 +1.0092859696644174, 41.993572536077544, 104.0274900454926486437679589129 +1.0092859696644174, 50.876045582169034, 103.8402850181044188940994024659 +1.0092859696644174, 58.390227406731306, 103.70631193295593823551327932325 +1.0092859696644174, 67.106602838438278, 103.57133519779357917181812931116 +1.0092859696644174, 72.048669943530001, 103.50252205899901526793588474108 +1.0092859696644174, 155.01865387839101, 102.76516454180483929265188213405 +1.0092859696644174, 4114.6359626379426, 99.680603252267763798688456330767 +1.0092859696644174, 4782.8664069509177, 99.541386931384784468983912611885 +1.0092859696644174, 5832.707445185928, 99.358111613158995811221655854228 +1.0092859696644174, 5833.7720691748864, 99.357943208590249406318982359411 +1.0092859696644174, 7530.5851892046458, 99.122647504008228012455979370336 +1.0092859696644174, 9437.1798177813107, 98.915121487100005193491384304328 +1.0092859696644174, 9714.4816444201169, 98.888522760031468353451418945484 +1.0092859696644174, 91324.597438782046, 96.852067044568882355318000620192 +1.0092859696644174, 204107.60705372499, 96.131464363313221828012764430174 +1.0092859696644174, 256840.68070942213, 95.92653848824423499555496384123 +1.0092859696644174, 350404.81974375149, 95.650233751588157282610212543224 +1.0092859696644174, 691957.37069411715, 95.047772364315211802287920089312 +1.0092859696644174, 791516.81386457232, 94.929199794598547065491974304199 +1.0092859696644174, 882912.76389201777, 94.832921378798132943282344768774 +1.0092859696644174, 911565.62206585333, 94.80480114928212524563329283907 +1.0092859696644174, 123333475.34928627, 90.581437184489857281858262609886 +1.0092859696644174, 124024988.06286132, 90.576734349758277368691395985001 +1.0092859696644174, 463375421.34817523, 89.474884930774246583832617699219 +1.0092859696644174, 748226466.1031605, 89.077647210021492508546005392448 +1.0092859696644174, 751185522.51509035, 89.074382452997279969789687600591 +1.0092859696644174, 803966868.32924354, 89.018232744874566432197718753253 +1.0092859696644174, 968335952.49933791, 88.864596663886403178275297320034 +1.0092859696644174, 977667584.00078595, 88.856682883827815332146430460463 +1.0093213621508801, 1.2041330017152543, 107.56410438119446601987453226103 +1.0093213621508801, 1.2265460891928393, 107.53615155531525000199680384095 +1.0093213621508801, 1.3496515186903868, 107.39441548292025372514761694492 +1.0093213621508801, 1.4561891368135123, 107.28540229522137348744228060089 +1.0093213621508801, 1.505408944679143, 107.23862265175706277374629423732 +1.0093213621508801, 2.7166669767929994, 106.47918091759789638616154413594 +1.0093213621508801, 2.7260544040973071, 106.47505361805561282665754913599 +1.0093213621508801, 2.730289055066077, 106.47319737296833500816604344312 +1.0093213621508801, 4.0517276803019504, 106.0172308700915842502063552278 +1.0093213621508801, 4.2124817875077527, 105.97376665517060024099423519815 +1.0093213621508801, 6.1617242039464699, 105.55937948667488329464875004766 +1.0093213621508801, 6.8092092252252261, 105.45313718403556098271843244462 +1.0093213621508801, 6.8236272364629924, 105.45089815175552802642066871679 +1.0093213621508801, 7.0283321794508868, 105.41965084709098655533105711722 +1.0093213621508801, 7.4180275837892902, 105.36279800023069599585574954134 +1.0093213621508801, 7.6047038477460287, 105.33669524537179546173618525918 +1.0093213621508801, 8.3839069082419186, 105.23471642451556389038132488123 +1.0093213621508801, 8.9537599097530531, 105.16636770768496250585147981997 +1.0093213621508801, 22.445567410957914, 104.23584365843972923685853417403 +1.0093213621508801, 34.508821612248553, 103.81113793255698277618664249712 +1.0093213621508801, 36.835964339959254, 103.7471144322252134348411807397 +1.0093213621508801, 41.993572536077544, 103.61884199912148693393534712938 +1.0093213621508801, 50.876045582169034, 103.43166229696201305789643722064 +1.0093213621508801, 58.390227406731306, 103.29770812516985492566847211489 +1.0093213621508801, 67.106602838438278, 103.16275111200627555313765036337 +1.0093213621508801, 72.048669943530001, 103.09394828570437557075493995469 +1.0093213621508801, 155.01865387839101, 102.35671223704106805943172371808 +1.0093213621508801, 4114.6359626379426, 99.272879343992341909726608958926 +1.0093213621508801, 4782.8664069509177, 99.133704392827357616593860515061 +1.0093213621508801, 5832.707445185928, 98.9504846683277134453978420979 +1.0093213621508801, 5833.7720691748864, 98.950316315433863654303344044545 +1.0093213621508801, 7530.5851892046458, 98.715093874434446729824372283329 +1.0093213621508801, 9437.1798177813107, 98.507634240571939279385318358829 +1.0093213621508801, 9714.4816444201169, 98.481044141721682210078049823027 +1.0093213621508801, 91324.597438782046, 96.445330511131039103635067996417 +1.0093213621508801, 204107.60705372499, 95.725029319627241570171626561394 +1.0093213621508801, 256840.68070942213, 95.520192934178350300446948084374 +1.0093213621508801, 350404.81974375149, 95.244011498793013162573308339893 +1.0093213621508801, 691957.37069411715, 94.641829515758863288175811158812 +1.0093213621508801, 791516.81386457232, 94.523313647044120480784483450497 +1.0093213621508801, 882912.76389201777, 94.427081686284941545572355675344 +1.0093213621508801, 911565.62206585333, 94.398975095230722814740630299415 +1.0093213621508801, 123333475.34928627, 90.178025661068485940445789834731 +1.0093213621508801, 124024988.06286132, 90.173325926717393440099002005821 +1.0093213621508801, 463375421.34817523, 89.072228649985299072597693381744 +1.0093213621508801, 748226466.1031605, 88.675274732233943838715615324508 +1.0093213621508801, 751185522.51509035, 88.672012335598670519154479811969 +1.0093213621508801, 803966868.32924354, 88.615903294528838157177355059464 +1.0093213621508801, 968335952.49933791, 88.462379175929861262297870506152 +1.0093213621508801, 977667584.00078595, 88.454471190425144786402253986903 +1.0098210648580728, 1.2041330017152543, 102.10558998346150450763698614627 +1.0098210648580728, 1.2265460891928393, 102.07763473382734026552069844432 +1.0098210648580728, 1.3496515186903868, 101.93589157003327222500100081198 +1.0098210648580728, 1.4561891368135123, 101.82687893784963582610200958296 +1.0098210648580728, 1.505408944679143, 101.78010116241777418482549117023 +1.0098210648580728, 2.7166669767929994, 101.02083236976953034220430459194 +1.0098210648580728, 2.7260544040973071, 101.01670676485028709196939267038 +1.0098210648580728, 2.730289055066077, 101.01485128463093094335586844061 +1.0098210648580728, 4.0517276803019504, 100.55912409667887573083226185933 +1.0098210648580728, 4.2124817875077527, 100.51568808229311786876886151517 +1.0098210648580728, 6.1617242039464699, 100.10161734798358170920968247251 +1.0098210648580728, 6.8092092252252261, 99.995470104999558885771583682941 +1.0098210648580728, 6.8236272364629924, 99.993233137470884915421254357876 +1.0098210648580728, 7.0283321794508868, 99.962014912576094235009320403259 +1.0098210648580728, 7.4180275837892902, 99.905216242466444129473020767961 +1.0098210648580728, 7.6047038477460287, 99.879138910045851577294578039818 +1.0098210648580728, 8.3839069082419186, 99.77726272101331264266729484166 +1.0098210648580728, 8.9537599097530531, 99.708985744369779510334946677251 +1.0098210648580728, 22.445567410957914, 98.7796753155033362300220907592 +1.0098210648580728, 34.508821612248553, 98.355670974171543842198284192372 +1.0098210648580728, 36.835964339959254, 98.291761260672882649638597194436 +1.0098210648580728, 41.993572536077544, 98.1637231637191191299037782081 +1.0098210648580728, 50.876045582169034, 97.976900660215692282404126342037 +1.0098210648580728, 58.390227406731306, 97.843213239236157241718674925501 +1.0098210648580728, 67.106602838438278, 97.708534371455430242150813694902 +1.0098210648580728, 72.048669943530001, 97.639876981284037497278158255652 +1.0098210648580728, 155.01865387839101, 96.904353794716802879621241936939 +1.0098210648580728, 4114.6359626379426, 93.830786345115170768242119684172 +1.0098210648580728, 4782.8664069509177, 93.692194178118709127574120346122 +1.0098210648580728, 5832.707445185928, 93.509757577902555427537482963468 +1.0098210648580728, 5833.7720691748864, 93.509589952910905577642865120141 +1.0098210648580728, 7530.5851892046458, 93.275399480949292327264879923443 +1.0098210648580728, 9437.1798177813107, 93.068874838836312883452606293535 +1.0098210648580728, 9714.4816444201169, 93.042406262569110110492846041437 +1.0098210648580728, 91324.597438782046, 91.017141119299597057733403626633 +1.0098210648580728, 204107.60705372499, 90.301083185656655419939327925266 +1.0098210648580728, 256840.68070942213, 90.097506131367313415738234530917 +1.0098210648580728, 350404.81974375149, 89.823059711808613602328024916676 +1.0098210648580728, 691957.37069411715, 89.224808801908402832927500083011 +1.0098210648580728, 791516.81386457232, 89.107090600627603136569715022305 +1.0098210648580728, 882912.76389201777, 89.011512146258973747330657165022 +1.0098210648580728, 911565.62206585333, 88.983597410677263479632406165568 +1.0098210648580728, 123333475.34928627, 84.796590386834906734595591403366 +1.0098210648580728, 124024988.06286132, 84.791934208897047107759599632233 +1.0098210648580728, 463375421.34817523, 83.701401691343956956989666303504 +1.0098210648580728, 748226466.1031605, 83.308433183245107337398624566303 +1.0098210648580728, 751185522.51509035, 83.30520393112117347232670756247 +1.0098210648580728, 803966868.32924354, 83.249665930116916609060131309643 +1.0098210648580728, 968335952.49933791, 83.097713915606291007273710325074 +1.0098210648580728, 977667584.00078595, 83.089887291388846667362134119769 +1.1599103928769201, 1.2041330017152543, 6.5343119657028156505591006817456 +1.1599103928769201, 1.2265460891928393, 6.5056445879271335436073142263325 +1.1599103928769201, 1.3496515186903868, 6.3618679511835939562944384284354 +1.1599103928769201, 1.4561891368135123, 6.2530942991021205362561135628326 +1.1599103928769201, 1.505408944679143, 6.2069019994106061415926108470438 +1.1599103928769201, 2.7166669767929994, 5.4977332693594989383652763566607 +1.1599103928769201, 2.7260544040973071, 5.4940870264509030590287801160998 +1.1599103928769201, 2.730289055066077, 5.4924478570237756450506764030751 +1.1599103928769201, 4.0517276803019504, 5.1031715045707972993075503023448 +1.1599103928769201, 4.2124817875077527, 5.0674311120369841034816377011016 +1.1599103928769201, 6.1617242039464699, 4.7382165475078618103513410287039 +1.1599103928769201, 6.8092092252252261, 4.6570949590987895037892104045693 +1.1599103928769201, 6.8236272364629924, 4.6553994347017331812043525903699 +1.1599103928769201, 7.0283321794508868, 4.631797513368868648863767192743 +1.1599103928769201, 7.4180275837892902, 4.58914271333785290943416193234 +1.1599103928769201, 7.6047038477460287, 4.5696824099220553002368436890971 +1.1599103928769201, 8.3839069082419186, 4.4943945426511224466804446727019 +1.1599103928769201, 8.9537599097530531, 4.4445884847594079357868831690712 +1.1599103928769201, 22.445567410957914, 3.8161114280487631244741453493491 +1.1599103928769201, 34.508821612248553, 3.5579758529154971308394175884353 +1.1599103928769201, 36.835964339959254, 3.5205191800236673724280041012595 +1.1599103928769201, 41.993572536077544, 3.4465883089827692799129317712655 +1.1599103928769201, 50.876045582169034, 3.341324590567017794196084514986 +1.1599103928769201, 58.390227406731306, 3.2678597510034631660690516815781 +1.1599103928769201, 67.106602838438278, 3.1953849689145438637217402868937 +1.1599103928769201, 72.048669943530001, 3.1590215549391552256566753935022 +1.1599103928769201, 155.01865387839101, 2.7930735418656444925938339351607 +1.1599103928769201, 4114.6359626379426, 1.6525803795177058488345480103085 +1.1599103928769201, 4782.8664069509177, 1.6132815839887938162870594086177 +1.1599103928769201, 5832.707445185928, 1.5628866482395416799816185144601 +1.1599103928769201, 5833.7720691748864, 1.5628410317898435680017137190137 +1.1599103928769201, 7530.5851892046458, 1.5003159151553408605128707836123 +1.1599103928769201, 9437.1798177813107, 1.4471328649059791828938104365085 +1.1599103928769201, 9714.4816444201169, 1.4404462069823061572596762582109 +1.1599103928769201, 91324.597438782046, 1.0066399251602059359156520762418 +1.1599103928769201, 204107.60705372499, 0.8851600618822607077442902948689 +1.1599103928769201, 256840.68070942213, 0.8532218709847213336322597888555 +1.1599103928769201, 350404.81974375149, 0.81187474199964503520538414829173 +1.1599103928769201, 691957.37069411715, 0.72817200506143938909571658657187 +1.1599103928769201, 791516.81386457232, 0.71268607689949154406386480030207 +1.1599103928769201, 882912.76389201777, 0.70034059111058739808890915128715 +1.1599103928769201, 911565.62206585333, 0.69677300603564829898283533888112 +1.1599103928769201, 123333475.34928627, 0.31788890720073123947965522012543 +1.1599103928769201, 124024988.06286132, 0.31760481294507106423579306032081 +1.1599103928769201, 463375421.34817523, 0.25724714295625795774107090169207 +1.1599103928769201, 748226466.1031605, 0.23827210182502830525032863053339 +1.1599103928769201, 751185522.51509035, 0.23812176143793368903543879345158 +1.1599103928769201, 803966868.32924354, 0.23555003779500163862915372228794 +1.1599103928769201, 968335952.49933791, 0.2286463919736544234075121110381 +1.1599103928769201, 977667584.00078595, 0.22829599903980473889596936927929 +1.2034351093002307, 1.2041330017152543, 5.1955200682086271118969202747012 +1.2034351093002307, 1.2265460891928393, 5.1666521640003524987460143806249 +1.2034351093002307, 1.3496515186903868, 5.0223217344854437535665738810814 +1.2034351093002307, 1.4561891368135123, 4.9136437472513179875204958934985 +1.2034351093002307, 1.505408944679143, 4.867630006866492114241350355855 +1.2034351093002307, 2.7166669767929994, 4.1723248381635785565903729357284 +1.2034351093002307, 2.7260544040973071, 4.1688071043288816688500760614512 +1.2034351093002307, 2.730289055066077, 4.1672259067580810930902315245191 +1.2034351093002307, 4.0517276803019504, 3.795329651883687473940850377978 +1.2034351093002307, 4.2124817875077527, 3.761555141150504127679699714655 +1.2034351093002307, 6.1617242039464699, 3.45350855050088297264465433391 +1.2034351093002307, 6.8092092252252261, 3.3784723234084347929869317253406 +1.2034351093002307, 6.8236272364629924, 3.3769077421785580089986548850792 +1.2034351093002307, 7.0283321794508868, 3.3551446198253743351804239336975 +1.2034351093002307, 7.4180275837892902, 3.3158892830178025856346392496138 +1.2034351093002307, 7.6047038477460287, 3.2980126906696292097077099176069 +1.2034351093002307, 8.3839069082419186, 3.2290468316728430925203789559797 +1.2034351093002307, 8.9537599097530531, 3.1835947251999473712253856000483 +1.2034351093002307, 22.445567410957914, 2.6223331358749609665778137917109 +1.2034351093002307, 34.508821612248553, 2.3987818955096590612858035783127 +1.2034351093002307, 36.835964339959254, 2.3667014304553586468992992335071 +1.2034351093002307, 41.993572536077544, 2.3036548677683350394504780237735 +1.2034351093002307, 50.876045582169034, 2.2145230622469572945547108041905 +1.2034351093002307, 58.390227406731306, 2.1527667584033200965947224485556 +1.2034351093002307, 67.106602838438278, 2.092211847006309276517129253783 +1.2034351093002307, 72.048669943530001, 2.0619691151036116875063851064043 +1.2034351093002307, 155.01865387839101, 1.7630244528942004667392727645168 +1.2034351093002307, 4114.6359626379426, 0.90427999443777815912631605667014 +1.2034351093002307, 4782.8664069509177, 0.87701202554152477066732166717139 +1.2034351093002307, 5832.707445185928, 0.84230902274905048175666718109258 +1.2034351093002307, 5833.7720691748864, 0.84227774662374785692811774901995 +1.2034351093002307, 7530.5851892046458, 0.79964437034523402189470742379895 +1.2034351093002307, 9437.1798177813107, 0.76375894719980848116414656061853 +1.2034351093002307, 9714.4816444201169, 0.75927218824224803514388505675069 +1.2034351093002307, 91324.597438782046, 0.48130110931136088305228445264749 +1.2034351093002307, 204107.60705372499, 0.408660370987152912696250231151 +1.2034351093002307, 256840.68070942213, 0.38999471026939609211398340132842 +1.2034351093002307, 350404.81974375149, 0.36611203127456092719624772164088 +1.2034351093002307, 691957.37069411715, 0.31878433964812638616793312229615 +1.2034351093002307, 791516.81386457232, 0.31018462337090239747413822013101 +1.2034351093002307, 882912.76389201777, 0.3033651628914259226095130314247 +1.2034351093002307, 911565.62206585333, 0.30140054358363453475020693332854 +1.2034351093002307, 123333475.34928627, 0.11106165794230995454008705786785 +1.2034351093002307, 124024988.06286132, 0.11093540322529092311560958776403 +1.2034351093002307, 463375421.34817523, 0.084843596072320365324943420136509 +1.2034351093002307, 748226466.1031605, 0.076963393186526732368403773704527 +1.2034351093002307, 751185522.51509035, 0.07690162020092807531348616048807 +1.2034351093002307, 803966868.32924354, 0.075846578940393348615428478760494 +1.2034351093002307, 968335952.49933791, 0.073029932701257567658150758662387 +1.2034351093002307, 977667584.00078595, 0.072887584990825051144032089776831 +1.3441907165236375, 1.2041330017152543, 3.1824027575977679391755377441366 +1.3441907165236375, 1.2265460891928393, 3.1529051214591507649048505001936 +1.3441907165236375, 1.3496515186903868, 3.0068936998243212316729228825482 +1.3441907165236375, 1.4561891368135123, 2.8986033702297448307991100481633 +1.3441907165236375, 1.505408944679143, 2.8531923996078202657373190687422 +1.3441907165236375, 2.7166669767929994, 2.2007880042522785242383827344214 +1.3441907165236375, 2.7260544040973071, 2.1976562473272303542706234277404 +1.3441907165236375, 2.730289055066077, 2.1962491196748470312244371555296 +1.3441907165236375, 4.0517276803019504, 1.8753915632360455737999444955554 +1.3441907165236375, 4.2124817875077527, 1.8472661995575013167328340881233 +1.3441907165236375, 6.1617242039464699, 1.5987607045292292072713937166461 +1.3441907165236375, 6.8092092252252261, 1.5404504086748940136939459277268 +1.3441907165236375, 6.8236272364629924, 1.5392439748671826743735896146061 +1.3441907165236375, 7.0283321794508868, 1.5225025722765200033646045777691 +1.3441907165236375, 7.4180275837892902, 1.4924940219228311725080591991589 +1.3441907165236375, 7.6047038477460287, 1.4789090888100580775690725670029 +1.3441907165236375, 8.3839069082419186, 1.4269755365906071593482561181742 +1.3441907165236375, 8.9537599097530531, 1.3931634860748101565709739404709 +1.3441907165236375, 22.445567410957914, 1.0034699020003479438087860717046 +1.3441907165236375, 34.508821612248553, 0.86304612247972548717031430636668 +1.3441907165236375, 36.835964339959254, 0.84360880517183253851952665610341 +1.3441907165236375, 41.993572536077544, 0.80593868964196125803647398011336 +1.3441907165236375, 50.876045582169034, 0.75388972705687454480685782563265 +1.3441907165236375, 58.390227406731306, 0.71866415457132706835139787128406 +1.3441907165236375, 67.106602838438278, 0.68479603972912465598301581914335 +1.3441907165236375, 72.048669943530001, 0.6681324586192752410326690435838 +1.3441907165236375, 155.01865387839101, 0.51259408098612019536338888172042 +1.3441907165236375, 4114.6359626379426, 0.16565314755689631460399615786356 +1.3441907165236375, 4782.8664069509177, 0.15729029941426741170255231853971 +1.3441907165236375, 5832.707445185928, 0.14690483898937762848022943047035 +1.3441907165236375, 5833.7720691748864, 0.14689561018883440049171400947081 +1.3441907165236375, 7530.5851892046458, 0.13453717856416580614206632394022 +1.3441907165236375, 9437.1798177813107, 0.12448154564267727034076246398948 +1.3441907165236375, 9714.4816444201169, 0.12324681962542407509715682869199 +1.3441907165236375, 91324.597438782046, 0.056991935761136967050651215019871 +1.3441907165236375, 204107.60705372499, 0.043211264381497351770390498959221 +1.3441907165236375, 256840.68070942213, 0.039925013797737243545209690468095 +1.3441907165236375, 350404.81974375149, 0.035876619556958313398009107827533 +1.3441907165236375, 691957.37069411715, 0.028385716638864445011583069800309 +1.3441907165236375, 791516.81386457232, 0.027102273174093528013137656848209 +1.3441907165236375, 882912.76389201777, 0.026101846173277467450370245852586 +1.3441907165236375, 911565.62206585333, 0.025816493172025294540744994442124 +1.3441907165236375, 123333475.34928627, 0.0047678863183153088430119720470277 +1.3441907165236375, 124024988.06286132, 0.0047587196451156614762480511711835 +1.3441907165236375, 463375421.34817523, 0.0030232019652634638759919135400739 +1.3441907165236375, 748226466.1031605, 0.0025635456075094455744520372035773 +1.3441907165236375, 751185522.51509035, 0.0025600653765709154851789318074331 +1.3441907165236375, 803966868.32924354, 0.0025009243062019361297426099590616 +1.3441907165236375, 968335952.49933791, 0.0023458168447255937712073868699606 +1.3441907165236375, 977667584.00078595, 0.0023380860538455008342143762172781 +1.4929891857946924, 1.2041330017152543, 2.3022068549551663150669176797802 +1.4929891857946924, 1.2265460891928393, 2.2720751175236848369373391145122 +1.4929891857946924, 1.3496515186903868, 2.1244679303348865896720567859088 +1.4929891857946924, 1.4561891368135123, 2.01671261276740710101862630304 +1.4929891857946924, 1.505408944679143, 1.9719781555422390980579097275883 +1.4929891857946924, 2.7166669767929994, 1.3618920528673044804393977917517 +1.4929891857946924, 2.7260544040973071, 1.3591232368763096028857429803088 +1.4929891857946924, 2.730289055066077, 1.3578797179983507944884396458175 +1.4929891857946924, 4.0517276803019504, 1.0833405794493104457947691469364 +1.4929891857946924, 4.2124817875077527, 1.0601660392938021593920847460592 +1.4929891857946924, 6.1617242039464699, 0.86209389382347259146970913344142 +1.4929891857946924, 6.8092092252252261, 0.81743080178025453558620581375397 +1.4929891857946924, 6.8236272364629924, 0.81651428817782904112633958405392 +1.4929891857946924, 7.0283321794508868, 0.80382799384765887355603697741185 +1.4929891857946924, 7.4180275837892902, 0.78123824954803941894296564194729 +1.4929891857946924, 7.6047038477460287, 0.77107570349482783240256736133354 +1.4929891857946924, 8.3839069082419186, 0.73259725051044735280094068783072 +1.4929891857946924, 8.9537599097530531, 0.70786636622990689566403929730512 +1.4929891857946924, 22.445567410957914, 0.44245131704482815374593045483538 +1.4929891857946924, 34.508821612248553, 0.35652747721415214909397071067464 +1.4929891857946924, 36.835964339959254, 0.34508287425016770344558759249579 +1.4929891857946924, 41.993572536077544, 0.32322714132366183868011928897662 +1.4929891857946924, 50.876045582169034, 0.29375096336916597656157861484978 +1.4929891857946924, 58.390227406731306, 0.274292102526089185537995701621 +1.4929891857946924, 67.106602838438278, 0.25596778145907073515126415387186 +1.4929891857946924, 72.048669943530001, 0.24709359625546604899829962670135 +1.4929891857946924, 155.01865387839101, 0.16905115018403413979266293838767 +1.4929891857946924, 4114.6359626379426, 0.033524501021261848064264800088238 +1.4929891857946924, 4782.8664069509177, 0.031127086712770792428695924501952 +1.4929891857946924, 5832.707445185928, 0.028225892337079941604273881111709 +1.4929891857946924, 5833.7720691748864, 0.028223352597532198279038978404888 +1.4929891857946924, 7530.5851892046458, 0.024885260198664867184871804184244 +1.4929891857946924, 9437.1798177813107, 0.022264847060013201488745963637459 +1.4929891857946924, 9714.4816444201169, 0.021949208773857670934957349309457 +1.4929891857946924, 91324.597438782046, 0.0072718959379506959312058943046987 +1.4929891857946924, 204107.60705372499, 0.0048917017782052965446488388542386 +1.4929891857946924, 256840.68070942213, 0.0043677449058639449663900646552996 +1.4929891857946924, 350404.81974375149, 0.0037475706399012279251626413635493 +1.4929891857946924, 691957.37069411715, 0.0026795804670380445145980612033074 +1.4929891857946924, 791516.81386457232, 0.0025077583104979017676569775841137 +1.4929891857946924, 882912.76389201777, 0.0023762359162299714171778010135456 +1.4929891857946924, 911565.62206585333, 0.0023391157950291017441365663783819 +1.4929891857946924, 123333475.34928627, 0.00020813599276398623112091924182689 +1.4929891857946924, 124024988.06286132, 0.00020756307709744745367733735220094 +1.4929891857946924, 463375421.34817523, 0.00010838055152030098727564714143855 +1.4929891857946924, 748226466.1031605, 0.000085577633284593638694928177920554 +1.4929891857946924, 751185522.51509035, 0.000085411277452391442291035931450722 +1.4929891857946924, 803966868.32924354, 0.000082599325648390100197912702666055 +1.4929891857946924, 968335952.49933791, 0.000075361396594645326632629528414377 +1.4929891857946924, 977667584.00078595, 0.000075005923016050200211411179774909 +1.5200132996032401, 1.2041330017152543, 2.1961778645233831667720840760316 +1.5200132996032401, 1.2265460891928393, 2.1659344922720838078410961859453 +1.5200132996032401, 1.3496515186903868, 2.018057313698819858458767216129 +1.5200132996032401, 1.4561891368135123, 1.9104124574242389800399733888604 +1.5200132996032401, 1.505408944679143, 1.8658049135567914357615347211948 +1.5200132996032401, 2.7166669767929994, 1.2630875434308302153126145507483 +1.5200132996032401, 2.7260544040973071, 1.2603800711543383424705785504276 +1.5200132996032401, 2.730289055066077, 1.2591641976602464786955707321248 +1.5200132996032401, 4.0517276803019504, 0.99228511502573895426204662257109 +1.5200132996032401, 4.2124817875077527, 0.96991162731449728990659609018791 +1.5200132996032401, 6.1617242039464699, 0.77982885742123043826279701114328 +1.5200132996032401, 6.8092092252252261, 0.7372771500409456031179301277338 +1.5200132996032401, 6.8236272364629924, 0.73640526676242296820251345600324 +1.5200132996032401, 7.0283321794508868, 0.72434224918406361759481933712659 +1.5200132996032401, 7.4180275837892902, 0.70288814335126577586768371154194 +1.5200132996032401, 7.6047038477460287, 0.6932474708735244333292695962485 +1.5200132996032401, 8.3839069082419186, 0.65680858060283526528539430973564 +1.5200132996032401, 8.9537599097530531, 0.63344337481647219414679905444549 +1.5200132996032401, 22.445567410957914, 0.38586703870922677871949429331253 +1.5200132996032401, 34.508821612248553, 0.30727355963677607373808206811523 +1.5200132996032401, 36.835964339959254, 0.29687859539170758038057288974774 +1.5200132996032401, 41.993572536077544, 0.2770803280700281808622072216422 +1.5200132996032401, 50.876045582169034, 0.25049597747590232514476733891502 +1.5200132996032401, 58.390227406731306, 0.2330253164257282023807112068639 +1.5200132996032401, 67.106602838438278, 0.21663523044699496084321429183597 +1.5200132996032401, 72.048669943530001, 0.20872058139958927904977920057727 +1.5200132996032401, 155.01865387839101, 0.13985750004238857447242022494406 +1.5200132996032401, 4114.6359626379426, 0.025381225451870127656380317945111 +1.5200132996032401, 4782.8664069509177, 0.02347049937379562067887283060886 +1.5200132996032401, 5832.707445185928, 0.02116909654933747282111028118977 +1.5200132996032401, 5833.7720691748864, 0.021167087364870554062835433362534 +1.5200132996032401, 7530.5851892046458, 0.018535232849528948895000363821634 +1.5200132996032401, 9437.1798177813107, 0.016482636875235943391049217850284 +1.5200132996032401, 9714.4816444201169, 0.016236257602074749303612194896861 +1.5200132996032401, 91324.597438782046, 0.0050630844694389615890283995549493 +1.5200132996032401, 204107.60705372499, 0.0033326423108194765871451325065485 +1.5200132996032401, 256840.68070942213, 0.0029572555791897858819492498563759 +1.5200132996032401, 350404.81974375149, 0.0025161451659375116636226111922682 +1.5200132996032401, 691957.37069411715, 0.0017663094183349088900301038267308 +1.5200132996032401, 791516.81386457232, 0.0016470544967806276111407229844197 +1.5200132996032401, 882912.76389201777, 0.0015560707704938424659643641498543 +1.5200132996032401, 911565.62206585333, 0.0015304413182771277523983162764302 +1.5200132996032401, 123333475.34928627, 0.00011926577581282440736011907348024 +1.5200132996032401, 124024988.06286132, 0.00011891951478758547463487893395365 +1.5200132996032401, 463375421.34817523, 0.0000599218397534057005783998400387 +1.5200132996032401, 748226466.1031605, 0.000046705748206224371217095854676839 +1.5200132996032401, 751185522.51509035, 0.000046609984267996368912413545129149 +1.5200132996032401, 803966868.32924354, 0.0000449928262031919744526459047208 +1.5200132996032401, 968335952.49933791, 0.000040844397016383510348170635573511 +1.5200132996032401, 977667584.00078595, 0.000040641202632069821499311608368199 +1.6184820663561348, 1.2041330017152543, 1.8877214095781514834944629178561 +1.6184820663561348, 1.2265460891928393, 1.8570805204352843309232759544012 +1.6184820663561348, 1.3496515186903868, 1.7082706753607647249522844396574 +1.6184820663561348, 1.4561891368135123, 1.6010617191272875625899333972747 +1.6184820663561348, 1.505408944679143, 1.5569265069486417147101117427758 +1.6184820663561348, 2.7166669767929994, 0.98027220567913889643124404624201 +1.6184820663561348, 2.7260544040973071, 0.97777719663549403378087808983493 +1.6184820663561348, 2.730289055066077, 0.97665705455435501425113950559763 +1.6184820663561348, 4.0517276803019504, 0.73591479866845418660937398584122 +1.6184820663561348, 4.2124817875077527, 0.71623360793552572404275535576034 +1.6184820663561348, 6.1617242039464699, 0.55262043917258476770922499321374 +1.6184820663561348, 6.8092092252252261, 0.5169524088984929426504287467665 +1.6184820663561348, 6.8236272364629924, 0.51622554248720852881188500609045 +1.6184820663561348, 7.0283321794508868, 0.50618562324659139233727558671627 +1.6184820663561348, 7.4180275837892902, 0.48840760547521290362561109387567 +1.6184820663561348, 7.6047038477460287, 0.48045189544809790450149643924239 +1.6184820663561348, 8.3839069082419186, 0.45057191874846619572466022362594 +1.6184820663561348, 8.9537599097530531, 0.43157530213063880778748405901287 +1.6184820663561348, 22.445567410957914, 0.2393516073936594120054163671761 +1.6184820663561348, 34.508821612248553, 0.18255566033162345919767988804025 +1.6184820663561348, 36.835964339959254, 0.1752342166024114122648211026745 +1.6184820663561348, 41.993572536077544, 0.16142479494317282161033211963803 +1.6184820663561348, 50.876045582169034, 0.14317615310941119358867598927267 +1.6184820663561348, 58.390227406731306, 0.13137954198476403037221305912181 +1.6184820663561348, 67.106602838438278, 0.1204636639739497656822919206666 +1.6184820663561348, 72.048669943530001, 0.11524750774899927390536997928436 +1.6184820663561348, 155.01865387839101, 0.071585768219766947134773041395478 +1.6184820663561348, 4114.6359626379426, 0.0094038645704500392524162255899277 +1.6184820663561348, 4782.8664069509177, 0.0085680062861077756076078181489883 +1.6184820663561348, 5832.707445185928, 0.0075783164404889275645281430979952 +1.6184820663561348, 5833.7720691748864, 0.0075774609819191052950736345293536 +1.6184820663561348, 7530.5851892046458, 0.0064705572178340999904848790365795 +1.6184820663561348, 9437.1798177813107, 0.005627538619148446653782904068317 +1.6184820663561348, 9714.4816444201169, 0.0055276327386762489644589171066498 +1.6184820663561348, 91324.597438782046, 0.001382419296194195433262788259538 +1.6184820663561348, 204107.60705372499, 0.00084066092666003496290426897826668 +1.6184820663561348, 256840.68070942213, 0.00072927841354878185833459283623427 +1.6184820663561348, 350404.81974375149, 0.00060180545128649162673704748664698 +1.6184820663561348, 691957.37069411715, 0.00039508336592363601323030758363117 +1.6184820663561348, 791516.81386457232, 0.00036356430703204918720701327895307 +1.6184820663561348, 882912.76389201777, 0.00033980480559004915997240626658173 +1.6184820663561348, 911565.62206585333, 0.00033315863726084609295616706695776 +1.6184820663561348, 123333475.34928627, 0.0000160134317378896080507931948159 +1.6184820663561348, 124024988.06286132, 0.000015958152078645493888120705878303 +1.6184820663561348, 463375421.34817523, 0.0000070623419873691293942341621897126 +1.6184820663561348, 748226466.1031605, 0.0000052510068087590592517793927914712 +1.6184820663561348, 751185522.51509035, 0.0000052382040800587533373973097604004 +1.6184820663561348, 803966868.32924354, 0.0000050227642613430229017654999506782 +1.6184820663561348, 968335952.49933791, 0.0000044768951685504564110909755449097 +1.6184820663561348, 977667584.00078595, 0.0000044504184648714051004433272370714 +1.8006318767135032, 1.2041330017152543, 1.5154368986276314922467212157256 +1.8006318767135032, 1.2265460891928393, 1.4840992098417996810733505099621 +1.8006318767135032, 1.3496515186903868, 1.3337731154858723481094870945557 +1.8006318767135032, 1.4561891368135123, 1.2275032291787189865186846536388 +1.8006318767135032, 1.505408944679143, 1.1842797793944866556595563523556 +1.8006318767135032, 2.7166669767929994, 0.65274749828472873579834773968152 +1.8006318767135032, 2.7260544040973071, 0.65060331292673270710953889906455 +1.8006318767135032, 2.730289055066077, 0.64964117824110171397136321184752 +1.8006318767135032, 4.0517276803019504, 0.45065383951785722044131230287986 +1.8006318767135032, 4.2124817875077527, 0.43513048314989694202867404292836 +1.8006318767135032, 6.1617242039464699, 0.31111826907732403345422384390444 +1.8006318767135032, 6.8092092252252261, 0.28538481721021775304142108743078 +1.8006318767135032, 6.8236272364629924, 0.28486567174610541688981775820305 +1.8006318767135032, 7.0283321794508868, 0.27771691080015127047165732029932 +1.8006318767135032, 7.4180275837892902, 0.2651603499660940278862948886732 +1.8006318767135032, 7.6047038477460287, 0.25958421323935455701713564958226 +1.8006318767135032, 8.3839069082419186, 0.23888532156532848475786094583868 +1.8006318767135032, 8.9537599097530531, 0.22593202730015095880555730544281 +1.8006318767135032, 22.445567410957914, 0.10533870372443146402945013598042 +1.8006318767135032, 34.508821612248553, 0.074182852436030529754024001684747 +1.8006318767135032, 36.835964339959254, 0.070354531486666598338335053055174 +1.8006318767135032, 41.993572536077544, 0.063262295426951216038298251418706 +1.8006318767135032, 50.876045582169034, 0.054162910019324922491853420762268 +1.8006318767135032, 58.390227406731306, 0.048457542501598897232997561142919 +1.8006318767135032, 67.106602838438278, 0.043310697479965850218248120240194 +1.8006318767135032, 72.048669943530001, 0.040898642721582043992508131632957 +1.8006318767135032, 155.01865387839101, 0.022079952317642597780116018195179 +1.8006318767135032, 4114.6359626379426, 0.0015953663613868191012798202225606 +1.8006318767135032, 4782.8664069509177, 0.0014142551316814734763363567433636 +1.8006318767135032, 5832.707445185928, 0.001206483007107801436985406791318 +1.8006318767135032, 5833.7720691748864, 0.0012063067096696100856265970373842 +1.8006318767135032, 7530.5851892046458, 0.00098328078204113185281870109758038 +1.8006318767135032, 9437.1798177813107, 0.0008207297021342825375760019900775 +1.8006318767135032, 9714.4816444201169, 0.00080191762016779144113357188868151 +1.8006318767135032, 91324.597438782046, 0.00013334119203934087889949675038817 +1.8006318767135032, 204107.60705372499, 0.000070036662987113048050791777843914 +1.8006318767135032, 256840.68070942213, 0.000058266443366014517704048113810347 +1.8006318767135032, 350404.81974375149, 0.000045436835539488131849975881298924 +1.8006318767135032, 691957.37069411715, 0.000026352006684375031734337887658914 +1.8006318767135032, 791516.81386457232, 0.000023663126578904974473210001218956 +1.8006318767135032, 882912.76389201777, 0.000021680834605479377558517074088602 +1.8006318767135032, 911565.62206585333, 0.000021133484594799447697433386668429 +1.8006318767135032, 123333475.34928627, 0.00000041551794354516586374688057404182 +1.8006318767135032, 124024988.06286132, 0.00000041366203962396955862508099587979 +1.8006318767135032, 463375421.34817523, 0.00000014399417590502287829545886457438 +1.8006318767135032, 748226466.1031605, 0.000000098114540746969790117892085301389 +1.8006318767135032, 751185522.51509035, 0.000000097804982014314802104871371681529 +1.8006318767135032, 803966868.32924354, 0.000000092629557396184105463688143704072 +1.8006318767135032, 968335952.49933791, 0.000000079812004231282587662004930880319 +1.8006318767135032, 977667584.00078595, 0.000000079201509301184887411476300015265 +1.8682280765465324, 1.2041330017152543, 1.4164864128554699842388749958278 +1.8682280765465324, 1.2265460891928393, 1.3849029439998162802560754257818 +1.8682280765465324, 1.3496515186903868, 1.234082209147071784995271320058 +1.8682280765465324, 1.4561891368135123, 1.1282026040067523780467606814703 +1.8682280765465324, 1.505408944679143, 1.0853290117328994803117555689435 +1.8682280765465324, 2.7166669767929994, 0.56957929992828519850583497715899 +1.8682280765465324, 2.7260544040973071, 0.56755260155448066307689246101232 +1.8682280765465324, 2.730289055066077, 0.56664336158739942597201138600357 +1.8682280765465324, 4.0517276803019504, 0.38122618328247550907546125005009 +1.8682280765465324, 4.2124817875077527, 0.36701216440739486200640014846995 +1.8682280765465324, 6.1617242039464699, 0.25510994019287633819224682528554 +1.8682280765465324, 6.8092092252252261, 0.23231292624075915315032865180113 +1.8682280765465324, 6.8236272364629924, 0.23185474293040559208863395379617 +1.8682280765465324, 7.0283321794508868, 0.22555262531256998624653749022234 +1.8682280765465324, 7.4180275837892902, 0.21451631282693752819921577452125 +1.8682280765465324, 7.6047038477460287, 0.20962923131907073844979711095131 +1.8682280765465324, 8.3839069082419186, 0.19156668418517512627353760063531 +1.8682280765465324, 8.9537599097530531, 0.18032932234236247352857225347024 +1.8682280765465324, 22.445567410957914, 0.078833407803611162010192172162846 +1.8682280765465324, 34.508821612248553, 0.053897669576909796287348387562233 +1.8682280765465324, 36.835964339959254, 0.050888051737918656157278751225147 +1.8682280765465324, 41.993572536077544, 0.045349525392722601561719304056299 +1.8682280765465324, 50.876045582169034, 0.038320915533726673715601840398708 +1.8682280765465324, 58.390227406731306, 0.033963625674929781724525931669979 +1.8682280765465324, 67.106602838438278, 0.030069807972690779057659514314806 +1.8682280765465324, 72.048669943530001, 0.028258121714269976227140335401812 +1.8682280765465324, 155.01865387839101, 0.014482057066910192495353488116579 +1.8682280765465324, 4114.6359626379426, 0.00083820062571933748883040192351433 +1.8682280765465324, 4782.8664069509177, 0.00073552415776884708328395226790587 +1.8682280765465324, 5832.707445185928, 0.00061910493129920307246384731451049 +1.8682280765465324, 5833.7720691748864, 0.00061900682716151898865696726568769 +1.8682280765465324, 7530.5851892046458, 0.00049592917991915087563972778186441 +1.8682280765465324, 9437.1798177813107, 0.00040767729801394006368222563237234 +1.8682280765465324, 9714.4816444201169, 0.00039755379571596577809157795385711 +1.8682280765465324, 91324.597438782046, 0.000056812861441365500769679962392845 +1.8682280765465324, 204107.60705372499, 0.000028261698934514434017300713673947 +1.8682280765465324, 256840.68070942213, 0.000023149675182289042772878301872187 +1.8682280765465324, 350404.81974375149, 0.000017677274425245261659751189947051 +1.8682280765465324, 691957.37069411715, 0.0000097914180764045103833047089258857 +1.8682280765465324, 791516.81386457232, 0.0000087127992212691095388852011538688 +1.8682280765465324, 882912.76389201777, 0.0000079241669522568366783889514190579 +1.8682280765465324, 911565.62206585333, 0.0000077074579276487097819869801278403 +1.8682280765465324, 123333475.34928627, 0.00000010875832451805579432803405716667 +1.8682280765465324, 124024988.06286132, 0.00000010823164411670831747387849878589 +1.8682280765465324, 463375421.34817523, 0.000000034463536414677022361444833295879 +1.8682280765465324, 748226466.1031605, 0.000000022734296219583609468197423125833 +1.8682280765465324, 751185522.51509035, 0.000000022656522253824094101094480036848 +1.8682280765465324, 803966868.32924354, 0.000000021359367236270554804400154191929 +1.8682280765465324, 968335952.49933791, 0.000000018173813012712671695885235703335 +1.8682280765465324, 977667584.00078595, 0.000000018023110580353791473615266651776 +2.0730537691034647, 1.2041330017152543, 1.1912719468929945734507825033886 +2.0730537691034647, 1.2265460891928393, 1.1589862308235594106886703651544 +2.0730537691034647, 1.3496515186903868, 1.0068867475562836914270930049425 +2.0730537691034647, 1.4561891368135123, 0.90231903169171493634032884897602 +2.0730537691034647, 1.505408944679143, 0.86053912365972343636824631191262 +2.0730537691034647, 2.7166669767929994, 0.38966540352047771456384461546525 +2.0730537691034647, 2.7260544040973071, 0.38795749182730662178594730991667 +2.0730537691034647, 2.730289055066077, 0.38719171774266273819945423293492 +2.0730537691034647, 4.0517276803019504, 0.237471784103623099107364031563 +2.0730537691034647, 4.2124817875077527, 0.22659027828270809692136654502617 +2.0730537691034647, 6.1617242039464699, 0.14460405690074275346279220848166 +2.0730537691034647, 6.8092092252252261, 0.1288128216162971684895292663609 +2.0730537691034647, 6.8236272364629924, 0.12849903787227334189618799628672 +2.0730537691034647, 7.0283321794508868, 0.1241979218753217068580097905706 +2.0730537691034647, 7.4180275837892902, 0.11673384071300226630500215303451 +2.0730537691034647, 7.6047038477460287, 0.1134570218978893286976359426568 +2.0730537691034647, 8.3839069082419186, 0.10150380838851926508309488215367 +2.0730537691034647, 8.9537599097530531, 0.094198360509980121450225485871712 +2.0730537691034647, 22.445567410957914, 0.033881118145009106846173381250833 +2.0730537691034647, 34.508821612248553, 0.021176959192672929493264238881981 +2.0730537691034647, 36.835964339959254, 0.019725265969847448094524757408584 +2.0730537691034647, 41.993572536077544, 0.017107033805828591114808327395225 +2.0730537691034647, 50.876045582169034, 0.013892637313525991258819767283794 +2.0730537691034647, 58.390227406731306, 0.011967303147496378302789760361022 +2.0730537691034647, 67.106602838438278, 0.010295260702564604378384903064852 +2.0730537691034647, 72.048669943530001, 0.0095341823412787224004846467027313 +2.0730537691034647, 155.01865387839101, 0.0041733288468462273059955872005072 +2.0730537691034647, 4114.6359626379426, 0.00012332842805271585812506561792322 +2.0730537691034647, 4782.8664069509177, 0.00010493585076181959038725178356405 +2.0730537691034647, 5832.707445185928, 0.000084808085579390223059860003727678 +2.0730537691034647, 5833.7720691748864, 0.00008479147671796822535216261566717 +2.0730537691034647, 7530.5851892046458, 0.000064470907208790063033294815275214 +2.0730537691034647, 9437.1798177813107, 0.000050603874476679575619984137238035 +2.0730537691034647, 9714.4816444201169, 0.000049055401728307265690107895729233 +2.0730537691034647, 91324.597438782046, 0.0000044299993988319479075772363164975 +2.0730537691034647, 204107.60705372499, 0.0000018690255522382219987454888194538 +2.0730537691034647, 256840.68070942213, 0.000001460559586286097810812105670544 +2.0730537691034647, 350404.81974375149, 0.0000010465437000767600253870657354256 +2.0730537691034647, 691957.37069411715, 0.00000050426602093273471395252658349052 +2.0730537691034647, 791516.81386457232, 0.00000043652982337365259309597748151262 +2.0730537691034647, 882912.76389201777, 0.00000038823016683973913448656520709276 +2.0730537691034647, 911565.62206585333, 0.00000037515078632396040114853752389105 +2.0730537691034647, 123333475.34928627, 0.0000000019373745355912806183774656393197 +2.0730537691034647, 124024988.06286132, 0.0000000019257857630546723114748882906625 +2.0730537691034647, 463375421.34817523, 0.00000000046812997900758293956645760298447 +2.0730537691034647, 748226466.1031605, 0.00000000027993930976356155843471847659973 +2.0730537691034647, 751185522.51509035, 0.00000000027875618964919921952551480646291 +2.0730537691034647, 803966868.32924354, 0.00000000025916667232090993037088899217273 +2.0730537691034647, 968335952.49933791, 0.00000000021227037468401984771452208123875 +2.0730537691034647, 977667584.00078595, 0.00000000021009704632189424723660186253715 +2.2775673799856722, 1.2041330017152543, 1.0364798855231180945985766134481 +2.2775673799856722, 1.2265460891928393, 1.0035567772601133454324877498426 +2.2775673799856722, 1.3496515186903868, 0.85050218903902805759087274065383 +2.2775673799856722, 1.4561891368135123, 0.74742447823065040753716567969002 +2.2775673799856722, 1.505408944679143, 0.70678022720399992466794833889336 +2.2775673799856722, 2.7166669767929994, 0.2766285227352358896154529559102 +2.2775673799856722, 2.7260544040973071, 0.27518969615304055805736779368429 +2.2775673799856722, 2.730289055066077, 0.27454494643290966797653207725071 +2.2775673799856722, 4.0517276803019504, 0.15357707699425681802640068614534 +2.2775673799856722, 4.2124817875077527, 0.14524533296447908805016669053904 +2.2775673799856722, 6.1617242039464699, 0.085123260591330956740689659939548 +2.2775673799856722, 6.8092092252252261, 0.074179325847734488203691965208105 +2.2775673799856722, 6.8236272364629924, 0.073964327376900878093098629962668 +2.2775673799856722, 7.0283321794508868, 0.071027391090625212735190383840025 +2.2775673799856722, 7.4180275837892902, 0.06597659448558675909710142868074 +2.2775673799856722, 7.6047038477460287, 0.063778274986889137000448015843392 +2.2775673799856722, 8.3839069082419186, 0.055863233800824035569827809037191 +2.2775673799856722, 8.9537599097530531, 0.051110984247605229575698331281118 +2.2775673799856722, 22.445567410957914, 0.015130246398482346143832293891795 +2.2775673799856722, 34.508821612248553, 0.0086468759278586337812569009435717 +2.2775673799856722, 36.835964339959254, 0.0079458627343499306803598936091785 +2.2775673799856722, 41.993572536077544, 0.0067066567833369531107119571465425 +2.2775673799856722, 50.876045582169034, 0.0052346721979442440680428990792406 +2.2775673799856722, 58.390227406731306, 0.0043828186129255630203891634455675 +2.2775673799856722, 67.106602838438278, 0.0036638536645118839697382204377485 +2.2775673799856722, 72.048669943530001, 0.0033437010273616434721975948984038 +2.2775673799856722, 155.01865387839101, 0.0012503838812042112510150703631025 +2.2775673799856722, 4114.6359626379426, 0.000018885639255876092708742912743601 +2.2775673799856722, 4782.8664069509177, 0.000015582047066187726216001744495521 +2.2775673799856722, 5832.707445185928, 0.000012092353429155682226766069229153 +2.2775673799856722, 5833.7720691748864, 0.000012089533957985865477776921059651 +2.2775673799856722, 7530.5851892046458, 0.0000087245514295149491723498124519722 +2.2775673799856722, 9437.1798177813107, 0.0000065390823738443189567024149873721 +2.2775673799856722, 9714.4816444201169, 0.0000063015515146082638428591222737481 +2.2775673799856722, 91324.597438782046, 0.00000035986044049315332487075104821153 +2.2775673799856722, 204107.60705372499, 0.00000012879964020808720133583561475262 +2.2775673799856722, 256840.68070942213, 0.000000096030069332380698222911192278623 +2.2775673799856722, 350404.81974375149, 0.000000064573617713529507110856719658023 +2.2775673799856722, 691957.37069411715, 0.000000027072086277128368457684718539008 +2.2775673799856722, 791516.81386457232, 0.000000022800074329993494338834141853888 +2.2775673799856722, 882912.76389201777, 0.000000019829231379938269318656786043568 +2.2775673799856722, 911565.62206585333, 0.000000019036444120261355544546362046606 +2.2775673799856722, 123333475.34928627, 0.000000000036034215577213045420763804733387 +2.2775673799856722, 124024988.06286132, 0.000000000035777735743471784405863946934664 +2.2775673799856722, 463375421.34817523, 0.0000000000066420612466943281128061881421698 +2.2775673799856722, 748226466.1031605, 0.0000000000036011483450582798889339395110957 +2.2775673799856722, 751185522.51509035, 0.0000000000035830352300243097373468808801776 +2.2775673799856722, 803966868.32924354, 0.0000000000032852952988001118852324721474836 +2.2775673799856722, 968335952.49933791, 0.0000000000025903736882749703931105572218175 +2.2775673799856722, 977667584.00078595, 0.0000000000025588283204577272644872870096646 +2.4954986581492435, 1.2041330017152543, 0.91619395446821110392880379052723 +2.4954986581492435, 1.2265460891928393, 0.88266144971466270611806257438669 +2.4954986581492435, 1.3496515186903868, 0.72892941107211272389668017320864 +2.4954986581492435, 1.4561891368135123, 0.6276177418816366280594609555844 +2.4954986581492435, 1.505408944679143, 0.58822236704715428888504162458671 +2.4954986581492435, 2.7166669767929994, 0.19741489365867534550716328799337 +2.4954986581492435, 2.7260544040973071, 0.19621704940320892807127833154248 +2.4954986581492435, 2.730289055066077, 0.19568061670499212942992931369668 +2.4954986581492435, 4.0517276803019504, 0.099272564467687676798590856759151 +2.4954986581492435, 4.2124817875077527, 0.093005499258274166083891824253058 +2.4954986581492435, 6.1617242039464699, 0.049784907331550667970362638023135 +2.4954986581492435, 6.8092092252252261, 0.042381061572442256367759311954767 +2.4954986581492435, 6.8236272364629924, 0.042237371238473052078754453028592 +2.4954986581492435, 7.0283321794508868, 0.040281680274899938426806377038057 +2.4954986581492435, 7.4180275837892902, 0.036950601026974971080099236277522 +2.4954986581492435, 7.6047038477460287, 0.03551404169638836412485083449181 +2.4954986581492435, 8.3839069082419186, 0.030412934276733920174743816302793 +2.4954986581492435, 8.9537599097530531, 0.027407667395312502825420179444795 +2.4954986581492435, 22.445567410957914, 0.0065931278595633309125527501397944 +2.4954986581492435, 34.508821612248553, 0.0034250147277490048918304318316618 +2.4954986581492435, 36.835964339959254, 0.0031022829800678911149432401931796 +2.4954986581492435, 41.993572536077544, 0.0025438212955419596611044399590516 +2.4954986581492435, 50.876045582169034, 0.0019033276092689107310251681792761 +2.4954986581492435, 58.390227406731306, 0.001546037517181919678293255317248 +2.4954986581492435, 67.106602838438278, 0.0012535195173108311943360224343491 +2.4954986581492435, 72.048669943530001, 0.0011262806675919605676571729565173 +2.4954986581492435, 155.01865387839101, 0.00035611734035395765205968833555464 +2.4954986581492435, 4114.6359626379426, 0.000002630662366750700277257651047074 +2.4954986581492435, 4782.8664069509177, 0.0000021004532947514566843860327707462 +2.4954986581492435, 5832.707445185928, 0.0000015610464550967675093901544356183 +2.4954986581492435, 5833.7720691748864, 0.0000015606203995446553515451935733061 +2.4954986581492435, 7530.5851892046458, 0.00000106528285765328914656519785758 +2.4954986581492435, 9437.1798177813107, 0.00000076011125259660631361520437004749 +2.4954986581492435, 9714.4816444201169, 0.00000072789157406315110389865504889418 +2.4954986581492435, 91324.597438782046, 0.000000025507340508595669015529801197229 +2.4954986581492435, 204107.60705372499, 0.0000000076617551353711820752232229827337 +2.4954986581492435, 256840.68070942213, 0.0000000054333823094937760813347000425183 +2.4954986581492435, 350404.81974375149, 0.0000000034144267298372417253386685677955 +2.4954986581492435, 691957.37069411715, 0.0000000012341945534004177698681518411037 +2.4954986581492435, 791516.81386457232, 0.0000000010094275435232076378518262158642 +2.4954986581492435, 882912.76389201777, 0.00000000085723966088302578737803019096961 +2.4954986581492435, 911565.62206585333, 0.00000000081725853359365061863030565036622 +2.4954986581492435, 123333475.34928627, 0.00000000000053090063180966288047042818743252 +2.4954986581492435, 124024988.06286132, 0.00000000000052647994899447305747235063821588 +2.4954986581492435, 463375421.34817523, 0.000000000000073336944050429663435492656513728 +2.4954986581492435, 748226466.1031605, 0.000000000000035818667896258247851174707240367 +2.4954986581492435, 751185522.51509035, 0.000000000000035607864713119596185175235611204 +2.4954986581492435, 803966868.32924354, 0.000000000000032169348553170185855202626113144 +2.4954986581492435, 968335952.49933791, 0.000000000000024357014954224925938505921869281 +2.4954986581492435, 977667584.00078595, 0.000000000000024010161041329866626791997028942 +2.6198190348990975, 1.2041330017152543, 0.86122602691864791680068556122161 +2.6198190348990975, 1.2265460891928393, 0.82737787370163618683305574365463 +2.6198190348990975, 1.3496515186903868, 0.6734108038647585742686363952909 +2.6198190348990975, 1.4561891368135123, 0.57318115651885164893659517885801 +2.6198190348990975, 1.505408944679143, 0.53451256802766950624502108443911 +2.6198190348990975, 2.7166669767929994, 0.16443941455588885541453953437331 +2.6198190348990975, 2.7260544040973071, 0.163360799915802202731498435753 +2.6198190348990975, 2.730289055066077, 0.16287793128086849398304624777757 +2.6198190348990975, 4.0517276803019504, 0.078165044145829973134549405845093 +2.6198190348990975, 4.2124817875077527, 0.072838275512003888104450954467824 +2.6198190348990975, 6.1617242039464699, 0.037027654917361823581099366496972 +2.6198190348990975, 6.8092092252252261, 0.031103455412754889147479917361297 +2.6198190348990975, 6.8236272364629924, 0.030989279474567898603389487699077 +2.6198190348990975, 7.0283321794508868, 0.029438523012137350142823580808302 +2.6198190348990975, 7.4180275837892902, 0.026811603772184352092691977785072 +2.6198190348990975, 7.6047038477460287, 0.025684647181202009563771479030718 +2.6198190348990975, 8.3839069082419186, 0.021714354596553302467172914628262 +2.6198190348990975, 8.9537599097530531, 0.019400450829037140316566667463239 +2.6198190348990975, 22.445567410957914, 0.004146055243111615284665989431991 +2.6198190348990975, 34.508821612248553, 0.0020396982781173149517264537226987 +2.6198190348990975, 36.835964339959254, 0.0018323662554381895001779289383376 +2.6198190348990975, 41.993572536077544, 0.0014779262623496537807999710309857 +2.6198190348990975, 50.876045582169034, 0.0010794643187919911104157223813852 +2.6198190348990975, 58.390227406731306, 0.00086180507371921127386751018148285 +2.6198190348990975, 67.106602838438278, 0.00068667017975299844984199858568934 +2.6198190348990975, 72.048669943530001, 0.00061150439896637171370472098400976 +2.6198190348990975, 155.01865387839101, 0.00017570225316008703547860156496345 +2.6198190348990975, 4114.6359626379426, 0.00000086309014703088421715312895145756 +2.6198190348990975, 4782.8664069509177, 0.00000067636008986987446843027116773767 +2.6198190348990975, 5832.707445185928, 0.0000004904170763430292740451548001817 +2.6198190348990975, 5833.7720691748864, 0.0000004902721018733287568370639181262 +2.6198190348990975, 7530.5851892046458, 0.00000032420465407259990474388171371485 +2.6198190348990975, 9437.1798177813107, 0.00000022492911180442901699053994573933 +2.6198190348990975, 9714.4816444201169, 0.00000021462064198253389414621218988204 +2.6198190348990975, 91324.597438782046, 0.000000005692235570935238376488719522728 +2.6198190348990975, 204107.60705372499, 0.0000000015471208349381714185034259113293 +2.6198190348990975, 256840.68070942213, 0.0000000010662485554873428215583383189683 +2.6198190348990975, 350404.81974375149, 0.00000000064466540346194897207596309395159 +2.6198190348990975, 691957.37069411715, 0.00000000021412251228044404416124109844517 +2.6198190348990975, 791516.81386457232, 0.00000000017222489435661361772140114777236 +2.6198190348990975, 882912.76389201777, 0.00000000014428562847838881641199894919477 +2.6198190348990975, 911565.62206585333, 0.00000000013701115939880295982534515261677 +2.6198190348990975, 123333475.34928627, 0.000000000000048355573397951135878881408921872 +2.6198190348990975, 124024988.06286132, 0.000000000000047919607618443231096564191252773 +2.6198190348990975, 463375421.34817523, 0.0000000000000056661789174054793152556587369199 +2.6198190348990975, 748226466.1031605, 0.0000000000000026073889809753138356360936418175 +2.6198190348990975, 751185522.51509035, 0.0000000000000025907721734977223445715951940874 +2.6198190348990975, 803966868.32924354, 0.0000000000000023209149915258107217029313382949 +2.6198190348990975, 968335952.49933791, 0.0000000000000017171073510565363715896134667626 +2.6198190348990975, 977667584.00078595, 0.0000000000000016906380672259587040780450183142 +2.6889463724014133, 1.2041330017152543, 0.83390236711638614104716709897163 +2.6889463724014133, 1.2265460891928393, 0.79988866107226254262658750853707 +2.6889463724014133, 1.3496515186903868, 0.64583703943571088802448778094506 +2.6889463724014133, 1.4561891368135123, 0.54623066557524638419391168562129 +2.6889463724014133, 1.505408944679143, 0.50796991785687981585042343581252 +2.6889463724014133, 2.7166669767929994, 0.14892374697012179116098502636181 +2.6889463724014133, 2.7260544040973071, 0.14790630443999095979599822222762 +2.6889463724014133, 2.730289055066077, 0.14745090958449525513211068352756 +2.6889463724014133, 4.0517276803019504, 0.068612437801298546008773145173272 +2.6889463724014133, 4.2124817875077527, 0.063746224711740583216954974646824 +2.6889463724014133, 6.1617242039464699, 0.031489240989567042996897500906624 +2.6889463724014133, 6.8092092252252261, 0.026255819981369298496876506527469 +2.6889463724014133, 6.8236272364629924, 0.02615534768381571831442464823197 +2.6889463724014133, 7.0283321794508868, 0.024792292955711574744570330912738 +2.6889463724014133, 7.4180275837892902, 0.022490357424968244276277542566931 +2.6889463724014133, 7.6047038477460287, 0.021505696580491470342919269754825 +2.6889463724014133, 8.3839069082419186, 0.018051872758355012869087434749574 +2.6889463724014133, 8.9537599097530531, 0.016051038305544258343097902381196 +2.6889463724014133, 22.445567410957914, 0.0032118171317972417791695149256039 +2.6889463724014133, 34.508821612248553, 0.0015329820203347846943573900877183 +2.6889463724014133, 36.835964339959254, 0.0013708720497609562828397096070954 +2.6889463724014133, 41.993572536077544, 0.0010956038969919769482757424096469 +2.6889463724014133, 50.876045582169034, 0.00078956263586920771950665943258883 +2.6889463724014133, 58.390227406731306, 0.0006243295175157891468519003882233 +2.6889463724014133, 67.106602838438278, 0.00049265479738728698777761685823911 +2.6889463724014133, 72.048669943530001, 0.00043656157001557703668368128205918 +2.6889463724014133, 155.01865387839101, 0.00011893490243348908022379502175923 +2.6889463724014133, 4114.6359626379426, 0.00000046565185481906074214539937217754 +2.6889463724014133, 4782.8664069509177, 0.00000036113093980480098308946480789808 +2.6889463724014133, 5832.707445185928, 0.00000025828204460403486753486958543511 +2.6889463724014133, 5833.7720691748864, 0.00000025820243475824365095400044747288 +2.6889463724014133, 7530.5851892046458, 0.00000016775560077416241379787729919655 +2.6889463724014133, 9437.1798177813107, 0.00000011458496506448800151457248671216 +2.6889463724014133, 9714.4816444201169, 0.00000010911487771045027303822421811753 +2.6889463724014133, 91324.597438782046, 0.0000000024786855938177168413198702278211 +2.6889463724014133, 204107.60705372499, 0.00000000063726272755891670776886299438114 +2.6889463724014133, 256840.68070942213, 0.00000000043226840764849064801472103129616 +2.6889463724014133, 350404.81974375149, 0.00000000025580184844404674722493567866498 +2.6889463724014133, 691957.37069411715, 0.000000000081059487680805641950726269461146 +2.6889463724014133, 791516.81386457232, 0.000000000064595421871900701005668209220439 +2.6889463724014133, 882912.76389201777, 0.000000000053709148162354355019283074049685 +2.6889463724014133, 911565.62206585333, 0.000000000050888813329729154506676130432604 +2.6889463724014133, 123333475.34928627, 0.000000000000012793291360368972178211222054175 +2.6889463724014133, 124024988.06286132, 0.000000000000012673050045276334136884965441765 +2.6889463724014133, 463375421.34817523, 0.0000000000000013680061417198193095033160520348 +2.6889463724014133, 748226466.1031605, 0.0000000000000006090012516748461241302074476602 +2.6889463724014133, 751185522.51509035, 0.000000000000000604955025764296464313294651308 +2.6889463724014133, 803966868.32924354, 0.00000000000000053940438006564107369391690738104 +2.6889463724014133, 968335952.49933791, 0.00000000000000039397442431692900434884733045932 +2.6889463724014133, 977667584.00078595, 0.00000000000000038764420797968478800219384597744 +2.6941775743210612, 1.2041330017152543, 0.83191781775142500135690921967889 +2.6941775743210612, 1.2265460891928393, 0.79789187175097699930120349558961 +2.6941775743210612, 1.3496515186903868, 0.64383517265337544423840356579253 +2.6941775743210612, 1.4561891368135123, 0.54427656887567097160248180427191 +2.6941775743210612, 1.505408944679143, 0.506046781806204543008264955311 +2.6941775743210612, 2.7166669767929994, 0.14782093723241478656481489630709 +2.6941775743210612, 2.7260544040973071, 0.14680798268870974961595906271514 +2.6941775743210612, 2.730289055066077, 0.14635460326769790375222895188463 +2.6941775743210612, 4.0517276803019504, 0.067943635866874166874186912081061 +2.6941775743210612, 4.2124817875077527, 0.063110614634960013308074989827142 +2.6941775743210612, 6.1617242039464699, 0.031107676555474626241564134948568 +2.6941775743210612, 6.8092092252252261, 0.025923128230601472260226330806851 +2.6941775743210612, 6.8236272364629924, 0.025823623421424971757036253494989 +2.6941775743210612, 7.0283321794508868, 0.024473812148458047565739802885477 +2.6941775743210612, 7.4180275837892902, 0.022194767645260776175054898031424 +2.6941775743210612, 7.6047038477460287, 0.021220113722990395219166515775437 +2.6941775743210612, 8.3839069082419186, 0.017802522516550684107995165899162 +2.6941775743210612, 8.9537599097530531, 0.015823578901297799807247459558523 +2.6941775743210612, 22.445567410957914, 0.0031505764692686462294528007586383 +2.6941775743210612, 34.508821612248553, 0.0015003119524280694442060726842257 +2.6941775743210612, 36.835964339959254, 0.0013411924584781228492268343647799 +2.6941775743210612, 41.993572536077544, 0.0010711400904570325083635394553253 +2.6941775743210612, 50.876045582169034, 0.00077114967203371150972773506315051 +2.6941775743210612, 58.390227406731306, 0.00060932659197141446485027502720625 +2.6941775743210612, 67.106602838438278, 0.00048046346267881819687792537177719 +2.6941775743210612, 72.048669943530001, 0.00042559895960254131249782615442795 +2.6941775743210612, 155.01865387839101, 0.00011548224907474576819817911941967 +2.6941775743210612, 4114.6359626379426, 0.00000044443806401356760853659685681851 +2.6941775743210612, 4782.8664069509177, 0.00000034440755895462691602389939321257 +2.6941775743210612, 5832.707445185928, 0.00000024606583277297720683746877438227 +2.6941775743210612, 5833.7720691748864, 0.00000024598975343186963389713736888513 +2.6941775743210612, 7530.5851892046458, 0.00000015960762562233158729855129223078 +2.6941775743210612, 9437.1798177813107, 0.00000010889087460191461613391097075083 +2.6941775743210612, 9714.4816444201169, 0.0000001036769043461891739112647999274 +2.6941775743210612, 91324.597438782046, 0.0000000023277082730477616515614614839635 +2.6941775743210612, 204107.60705372499, 0.00000000059593447377203229139669252174231 +2.6941775743210612, 256840.68070942213, 0.0000000004037489336080905089549122496228 +2.6941775743210612, 350404.81974375149, 0.00000000023853705183135503285837063175562 +2.6941775743210612, 691957.37069411715, 0.000000000075319972579588378303705208314154 +2.6941775743210612, 791516.81386457232, 0.000000000059979471629099585491784257876413 +2.6941775743210612, 882912.76389201777, 0.000000000049842624280738306739965178145668 +2.6941775743210612, 911565.62206585333, 0.000000000047217436199885202348622290219518 +2.6941775743210612, 123333475.34928627, 0.000000000000011569461463443697953501934632658 +2.6941775743210612, 124024988.06286132, 0.000000000000011460387448886961802746642372299 +2.6941775743210612, 463375421.34817523, 0.0000000000000012286034574936095842142398366095 +2.6941775743210612, 748226466.1031605, 0.00000000000000054557348799219292283889898068982 +2.6941775743210612, 751185522.51509035, 0.00000000000000054193748870436407088658584570215 +2.6941775743210612, 803966868.32924354, 0.00000000000000048304356518298395903406773982589 +2.6941775743210612, 968335952.49933791, 0.00000000000000035246601154911023202639825124255 +2.6941775743210612, 977667584.00078595, 0.00000000000000034678533619083370196593187919027 +2.7854994594961, 1.2041330017152543, 0.79898270252474518919965119215707 +2.7854994594961, 1.2265460891928393, 0.76474958387318753379892938897957 +2.7854994594961, 1.3496515186903868, 0.61063378675227629079658871464076 +2.7854994594961, 1.4561891368135123, 0.51192233477914324053771531739986 +2.7854994594961, 1.505408944679143, 0.47423504089789425950485422774088 +2.7854994594961, 2.7166669767929994, 0.13001777308105171465158831813887 +2.7854994594961, 2.7260544040973071, 0.1290801054616800137896299641433 +2.7854994594961, 2.730289055066077, 0.12866053065717697975886851186112 +2.7854994594961, 4.0517276803019504, 0.057348044345353451973900873980528 +2.7854994594961, 4.2124817875077527, 0.053059417439032745067026343296102 +2.7854994594961, 6.1617242039464699, 0.025181359668104374150883991667871 +2.7854994594961, 6.8092092252252261, 0.02078012028752789622467224035788 +2.7854994594961, 6.8236272364629924, 0.020696081320419950284331889683204 +2.7854994594961, 7.0283321794508868, 0.019557807003474250038876182779944 +2.7854994594961, 7.4180275837892902, 0.017643640272244502335817010822728 +2.7854994594961, 7.6047038477460287, 0.016828178872664806210578113096718 +2.7854994594961, 8.3839069082419186, 0.013985262365074369692218008870255 +2.7854994594961, 8.9537599097530531, 0.012352111998144670485884533058553 +2.7854994594961, 22.445567410957914, 0.002254652204755692727687138702102 +2.7854994594961, 34.508821612248553, 0.0010315886300254577910643327430787 +2.7854994594961, 36.835964339959254, 0.00091662524879358812838240510109913 +2.7854994594961, 41.993572536077544, 0.0007232428057888313872977240405111 +2.7854994594961, 50.876045582169034, 0.0005115459564737957269699438563209 +2.7854994594961, 58.390227406731306, 0.00039910088808308483146713287999499 +2.7854994594961, 67.106602838438278, 0.00031069257045437122958383874797525 +2.7854994594961, 72.048669943530001, 0.00027342146519056510624705809758714 +2.7854994594961, 155.01865387839101, 0.000069153197399418901085139350387518 +2.7854994594961, 4114.6359626379426, 0.00000019721852818617781846692666083219 +2.7854994594961, 4782.8664069509177, 0.00000015074397338211249148503823750842 +2.7854994594961, 5832.707445185928, 0.00000010576635907904858886417162764843 +2.7854994594961, 5833.7720691748864, 0.0000001057318955174108889487512401189 +2.7854994594961, 7530.5851892046458, 0.000000067021812444389966651663501199268 +2.7854994594961, 9437.1798177813107, 0.000000044792232342498020496785976970957 +2.7854994594961, 9714.4816444201169, 0.000000042534819133721524108051964456144 +2.7854994594961, 91324.597438782046, 0.00000000077824752200978092910819454311335 +2.7854994594961, 204107.60705372499, 0.00000000018513624919589833387832244670589 +2.7854994594961, 256840.68070942213, 0.00000000012282590524873897258937706447121 +2.7854994594961, 350404.81974375149, 0.000000000070536599384762266761357392982419 +2.7854994594961, 691957.37069411715, 0.000000000020930631548583402673118858273044 +2.7854994594961, 791516.81386457232, 0.000000000016464303618286095392897979467491 +2.7854994594961, 882912.76389201777, 0.000000000013545895047447702687709451886331 +2.7854994594961, 911565.62206585333, 0.00000000001279506686636383260455070090554 +2.7854994594961, 123333475.34928627, 0.0000000000000020027169912357624814211949268128 +2.7854994594961, 124024988.06286132, 0.0000000000000019828231871974521860440204747231 +2.7854994594961, 463375421.34817523, 0.00000000000000018846104766844592901441679109165 +2.7854994594961, 748226466.1031605, 0.000000000000000080104891171883362248215701764762 +2.7854994594961, 751185522.51509035, 0.000000000000000079542352762298227398796002863069 +2.7854994594961, 803966868.32924354, 0.000000000000000070459956514644388729612270005544 +2.7854994594961, 968335952.49933791, 0.000000000000000050547026197794146051685329590975 +2.7854994594961, 977667584.00078595, 0.000000000000000049688824291571811651153046170375 +2.8405164820875268, 1.2041330017152543, 0.78057269575941865983110034144447 +2.8405164820875268, 1.2265460891928393, 0.74622067469448027137713556304019 +2.8405164820875268, 1.3496515186903868, 0.59209590564662326917630226076896 +2.8405164820875268, 1.4561891368135123, 0.4939065079106379801000002430468 +2.8405164820875268, 1.505408944679143, 0.45654771154198411490881170662104 +2.8405164820875268, 2.7166669767929994, 0.12049197582233959612055798848035 +2.8405164820875268, 2.7260544040973071, 0.11959698252930945104216634464378 +2.8405164820875268, 2.730289055066077, 0.11919656482160512596663671570244 +2.8405164820875268, 4.0517276803019504, 0.051844867451000650516470214802663 +2.8405164820875268, 4.2124817875077527, 0.047854239573840923672060635611292 +2.8405164820875268, 6.1617242039464699, 0.022198984201102731482866814347212 +2.8405164820875268, 6.8092092252252261, 0.018211336570148232372026103008626 +2.8405164820875268, 6.8236272364629924, 0.018135430007179804113475494348596 +2.8405164820875268, 7.0283321794508868, 0.017108250045596518206786342408048 +2.8405164820875268, 7.4180275837892902, 0.015385082379745245399071603631708 +2.8405164820875268, 7.6047038477460287, 0.014652692126192759906784569508178 +2.8405164820875268, 8.3839069082419186, 0.012108244673671786016024365283518 +2.8405164820875268, 8.9537599097530531, 0.010653536427208950202687303839147 +2.8405164820875268, 22.445567410957914, 0.0018454110287749171551025691920778 +2.8405164820875268, 34.508821612248553, 0.00082425002733239997916099442247174 +2.8405164820875268, 36.835964339959254, 0.00072973178349274364633161716216454 +2.8405164820875268, 41.993572536077544, 0.00057159046122926305214690116403472 +2.8405164820875268, 50.876045582169034, 0.00039999222859402789170970690033053 +2.8405164820875268, 58.390227406731306, 0.00030969061114398777180270605899381 +2.8405164820875268, 67.106602838438278, 0.00023923534901652176873901803209408 +2.8405164820875268, 72.048669943530001, 0.00020970899675405782146745593825035 +2.8405164820875268, 155.01865387839101, 0.000050839453312325164435475613924598 +2.8405164820875268, 4114.6359626379426, 0.00000012103775940424933929060890452102 +2.8405164820875268, 4782.8664069509177, 0.000000091752303578752020244768099938828 +2.8405164820875268, 5832.707445185928, 0.000000063677008025785402606754578369518 +2.8405164820875268, 5833.7720691748864, 0.000000063655619883739308898328048176439 +2.8405164820875268, 7530.5851892046458, 0.000000039787457984930195673455477389161 +2.8405164820875268, 9437.1798177813107, 0.000000026262737959175909110183738383321 +2.8405164820875268, 9714.4816444201169, 0.000000024899457005587334754398705570665 +2.8405164820875268, 91324.597438782046, 0.00000000040273661938096174264696560859338 +2.8405164820875268, 204107.60705372499, 0.000000000091659796426805248029737655007936 +2.8405164820875268, 256840.68070942213, 0.000000000060046325489805606930929026912277 +2.8405164820875268, 350404.81974375149, 0.000000000033899151472154275466108650536885 +2.8405164820875268, 691957.37069411715, 0.0000000000096894379315124404437429140547275 +2.8405164820875268, 791516.81386457232, 0.0000000000075656749506100980972939544039061 +2.8405164820875268, 882912.76389201777, 0.0000000000061872980687387560776891585344451 +2.8405164820875268, 911565.62206585333, 0.000000000005834085605588332718889222032566 +2.8405164820875268, 123333475.34928627, 0.00000000000000069709571013167533178636059534798 +2.8405164820875268, 124024988.06286132, 0.00000000000000068995890288599496977924315356405 +2.8405164820875268, 463375421.34817523, 0.000000000000000060991284782618313565263303991628 +2.8405164820875268, 748226466.1031605, 0.000000000000000025249696900604576615369036314907 +2.8405164820875268, 751185522.51509035, 0.000000000000000025066936455930501609381918559348 +2.8405164820875268, 803966868.32924354, 0.00000000000000002212191372959127760211242629818 +2.8405164820875268, 968335952.49933791, 0.000000000000000015708373667681645998898945560106 +2.8405164820875268, 977667584.00078595, 0.000000000000000015433526775221535934827204474044 +3.0919669672136787, 1.2041330017152543, 0.70752066703262382141109359544464 +3.0919669672136787, 1.2265460891928393, 0.672680996729625994997371662917 +3.0919669672136787, 1.3496515186903868, 0.51876141522634567129047713468306 +3.0919669672136787, 1.4561891368135123, 0.42306034552040691310121618417869 +3.0919669672136787, 1.505408944679143, 0.38721499519211256131426113259261 +3.0919669672136787, 2.7166669767929994, 0.085965174269499191984366311675555 +3.0919669672136787, 2.7260544040973071, 0.085242148903092913729556037400424 +3.0919669672136787, 2.730289055066077, 0.084918896443902509892189499751677 +3.0919669672136787, 4.0517276803019504, 0.033035799648557790459036134794729 +3.0919669672136787, 4.2124817875077527, 0.030165008477541809493230152906216 +3.0919669672136787, 6.1617242039464699, 0.012609617809707431177001096900342 +3.0919669672136787, 6.8092092252252261, 0.010069723981869678368719686169167 +3.0919669672136787, 6.8236272364629924, 0.01002205593075871189051833796802 +3.0919669672136787, 7.0283321794508868, 0.0093797035258002935729876463029566 +3.0919669672136787, 7.4180275837892902, 0.0083139595254075284822027057944804 +3.0919669672136787, 7.6047038477460287, 0.0078657750237320606303592498225178 +3.0919669672136787, 8.3839069082419186, 0.0063331904455406963566684038355641 +3.0919669672136787, 8.9537599097530531, 0.0054759597670192796489346632985245 +3.0919669672136787, 22.445567410957914, 0.00074670516176716653642295245000271 +3.0919669672136787, 34.508821612248553, 0.00029874800768945970736664415850531 +3.0919669672136787, 36.835964339959254, 0.0002601259877712011710594778025441 +3.0919669672136787, 41.993572536077544, 0.0001970673905717010552411541553648 +3.0919669672136787, 50.876045582169034, 0.0001313416691622814678235885556827 +3.0919669672136787, 58.390227406731306, 0.000098197014741526848989620238413139 +3.0919669672136787, 67.106602838438278, 0.000073228624273329677094935977144704 +3.0919669672136787, 72.048669943530001, 0.000063045937066329456502216341726272 +3.0919669672136787, 155.01865387839101, 0.000012594023720700753348072727297856 +3.0919669672136787, 4114.6359626379426, 0.000000013136922724055968525846706829754 +3.0919669672136787, 4782.8664069509177, 0.0000000095885709264992579523959934797142 +3.0919669672136787, 5832.707445185928, 0.0000000063306311647504723780051650624202 +3.0919669672136787, 5833.7720691748864, 0.000000006328214354424898356546467850187 +3.0919669672136787, 7530.5851892046458, 0.0000000037094358767234528431210294234773 +3.0919669672136787, 9437.1798177813107, 0.0000000023134209673566408172047857322433 +3.0919669672136787, 9714.4816444201169, 0.0000000021774178777464735679622462096951 +3.0919669672136787, 91324.597438782046, 0.000000000020047693135377672985887808864922 +3.0919669672136787, 204107.60705372499, 0.000000000003727325965057428174780187370409 +3.0919669672136787, 256840.68070942213, 0.0000000000023046710530742411523621551881797 +3.0919669672136787, 350404.81974375149, 0.0000000000012033418959677811822269129597777 +3.0919669672136787, 691957.37069411715, 0.00000000000028986299096102253957572673466274 +3.0919669672136787, 791516.81386457232, 0.00000000000021880738250212918112168211199371 +3.0919669672136787, 882912.76389201777, 0.00000000000017409330675412215038484856257223 +3.0919669672136787, 911565.62206585333, 0.00000000000016284190612944919270767552347485 +3.0919669672136787, 123333475.34928627, 0.0000000000000000056646236860393394439062784021108 +3.0919669672136787, 124024988.06286132, 0.0000000000000000055987528761728858060508850661592 +3.0919669672136787, 463375421.34817523, 0.00000000000000000035530360580424357758174815946018 +3.0919669672136787, 748226466.1031605, 0.00000000000000000013039505989455283418213225535616 +3.0919669672136787, 751185522.51509035, 0.0000000000000000001293228321162148018120330971205 +3.0919669672136787, 803966868.32924354, 0.00000000000000000011219697022359609207408654954977 +3.0919669672136787, 968335952.49933791, 0.000000000000000000076028338689950744134031392582064 +3.0919669672136787, 977667584.00078595, 0.000000000000000000074518160478914532959308259995494 +3.1425018997680585, 1.2041330017152543, 0.69466817633623285786261287003116 +3.1425018997680585, 1.2265460891928393, 0.6597413972385034047443423899653 +3.1425018997680585, 1.3496515186903868, 0.50591023467632918512909903606063 +3.1425018997680585, 1.4561891368135123, 0.41072786299400265217973085946332 +3.1425018997680585, 1.505408944679143, 0.37518840060521553997385282445932 +3.1425018997680585, 2.7166669767929994, 0.080467063715960605319255820274119 +3.1425018997680585, 2.7260544040973071, 0.079774453693067174014840681543695 +3.1425018997680585, 2.730289055066077, 0.079464843016530937009169283469488 +3.1425018997680585, 4.0517276803019504, 0.030230193627819131092514945503436 +3.1425018997680585, 4.2124817875077527, 0.027543386242734729190393587077791 +3.1425018997680585, 6.1617242039464699, 0.011275583293500693458345790084648 +3.1425018997680585, 6.8092092252252261, 0.008955837867988165235211661149684 +3.1425018997680585, 6.8236272364629924, 0.0089124254803365600253890815388571 +3.1425018997680585, 7.0283321794508868, 0.0083279125987190630298644811921869 +3.1425018997680585, 7.4180275837892902, 0.0073602815059313407290218254860023 +3.1425018997680585, 7.6047038477460287, 0.0069542246953878681046696700257696 +3.1425018997680585, 8.3839069082419186, 0.0055701026018140533900733030832775 +3.1425018997680585, 8.9537599097530531, 0.0047993132343417410097017702667985 +3.1425018997680585, 22.445567410957914, 0.00062371755042262403994629676391538 +3.1425018997680585, 34.508821612248553, 0.00024408192008538041488622169133483 +3.1425018997680585, 36.835964339959254, 0.00021181768452305131207307530731755 +3.1425018997680585, 41.993572536077544, 0.00015939732976016271011506617448199 +3.1425018997680585, 50.876045582169034, 0.00010519920885119349414536125295007 +3.1425018997680585, 58.390227406731306, 0.000078101131587520945893391017070878 +3.1425018997680585, 67.106602838438278, 0.000057831183541273344517480246512161 +3.1425018997680585, 72.048669943530001, 0.000049609815413559340529158717879331 +3.1425018997680585, 155.01865387839101, 0.0000095318656068677881560354037555569 +3.1425018997680585, 4114.6359626379426, 0.0000000084232545374222174915813786981726 +3.1425018997680585, 4782.8664069509177, 0.0000000061015052413590801699120120215363 +3.1425018997680585, 5832.707445185928, 0.0000000039881777237307792404397364941444 +3.1425018997680585, 5833.7720691748864, 0.0000000039866184066006075066673538605002 +3.1425018997680585, 7530.5851892046458, 0.0000000023068940767575595601733842928185 +3.1425018997680585, 9437.1798177813107, 0.0000000014223977384091038776264464200138 +3.1425018997680585, 9714.4816444201169, 0.0000000013368187821652395250857268800266 +3.1425018997680585, 91324.597438782046, 0.000000000010990442158190603772035587145834 +3.1425018997680585, 204107.60705372499, 0.0000000000019619939292782710619032501375176 +3.1425018997680585, 256840.68070942213, 0.0000000000011991281568692172395320868328341 +3.1425018997680585, 350404.81974375149, 0.00000000000061635113655708809139435482812162 +3.1425018997680585, 691957.37069411715, 0.00000000000014344928119919222021270692127669 +3.1425018997680585, 791516.81386457232, 0.00000000000010755170660989393737072888775699 +3.1425018997680585, 882912.76389201777, 0.000000000000085101877010973357796485060709442 +3.1425018997680585, 911565.62206585333, 0.000000000000079473495442347452121903112465191 +3.1425018997680585, 123333475.34928627, 0.0000000000000000021573590947621116418344233564001 +3.1425018997680585, 124024988.06286132, 0.0000000000000000021316699563917962784446137597798 +3.1425018997680585, 463375421.34817523, 0.00000000000000000012656128700637149239125753771788 +3.1425018997680585, 748226466.1031605, 0.000000000000000000045336300957253477388252238622527 +3.1425018997680585, 751185522.51509035, 0.000000000000000000044954536809791092522787946098031 +3.1425018997680585, 803966868.32924354, 0.000000000000000000038867725500935500870862347294937 +3.1425018997680585, 968335952.49933791, 0.000000000000000000026091610517245226701927972654864 +3.1425018997680585, 977667584.00078595, 0.000000000000000000025560952057173908751254550888075 +3.3213912893378019, 1.2041330017152543, 0.65306977711495844211225026425946 +3.3213912893378019, 1.2265460891928393, 0.61786334195252174505402881706969 +3.3213912893378019, 1.3496515186903868, 0.46446628380005269606565499990902 +3.3213912893378019, 1.4561891368135123, 0.37116429461626898088218106099624 +3.3213912893378019, 1.505408944679143, 0.33671000671949609075573049063644 +3.3213912893378019, 2.7166669767929994, 0.063937544391243184244055213687359 +3.3213912893378019, 2.7260544040973071, 0.063342831046008903105415387918868 +3.3213912893378019, 2.730289055066077, 0.063077114328981812285883263202835 +3.3213912893378019, 4.0517276803019504, 0.022172497396955707760245513001672 +3.3213912893378019, 4.2124817875077527, 0.020047477927200050190175343688088 +3.3213912893378019, 6.1617242039464699, 0.0076221456694231960500092704569153 +3.3213912893378019, 6.8092092252252261, 0.005939301351922831301964515344623 +3.3213912893378019, 6.8236272364629924, 0.0059081248907976486815153520484676 +3.3213912893378019, 7.0283321794508868, 0.0054896065224249702456260115077367 +3.3213912893378019, 7.4180275837892902, 0.0048021875353091281425572381855171 +3.3213912893378019, 7.6047038477460287, 0.0045158907313561322519978805661469 +3.3213912893378019, 8.3839069082419186, 0.0035508893013816781872860012942284 +3.3213912893378019, 8.9537599097530531, 0.0030218122981983782763196439545948 +3.3213912893378019, 22.445567410957914, 0.00033126186727446041184872045506353 +3.3213912893378019, 34.508821612248553, 0.00011986922836168324171265720918934 +3.3213912893378019, 36.835964339959254, 0.0001028002129232475904129997200451 +3.3213912893378019, 41.993572536077544, 0.000075544706009410650824596112110479 +3.3213912893378019, 50.876045582169034, 0.000048158011471112834982786545095529 +3.3213912893378019, 58.390227406731306, 0.000034874945423397576717006789874123 +3.3213912893378019, 67.106602838438278, 0.000025183904610716479940466260053801 +3.3213912893378019, 72.048669943530001, 0.000021328901073146298203053032834144 +3.3213912893378019, 155.01865387839101, 0.0000035707921801861218842100515636773 +3.3213912893378019, 4114.6359626379426, 0.0000000017542710202485549317970878240269 +3.3213912893378019, 4782.8664069509177, 0.000000001236974624010422298384752447627 +3.3213912893378019, 5832.707445185928, 0.00000000078033270287612290185090865634572 +3.3213912893378019, 5833.7720691748864, 0.00000000078000213564546385150600745519594 +3.3213912893378019, 7530.5851892046458, 0.00000000043120337671191317371232221726211 +3.3213912893378019, 9437.1798177813107, 0.00000000025535298218880292082880544997142 +3.3213912893378019, 9714.4816444201169, 0.00000000023874942736579805015867405964802 +3.3213912893378019, 91324.597438782046, 0.0000000000013145948847112691160194935032821 +3.3213912893378019, 204107.60705372499, 0.00000000000020323254018163281552213018952469 +3.3213912893378019, 256840.68070942213, 0.00000000000011920848265909588491451731580037 +3.3213912893378019, 350404.81974375149, 0.000000000000057961073673499867021907339948576 +3.3213912893378019, 691957.37069411715, 0.000000000000011943815047263299468476410768441 +3.3213912893378019, 791516.81386457232, 0.0000000000000087421506380384284272864954217653 +3.3213912893378019, 882912.76389201777, 0.0000000000000067834471129601327578261599646855 +3.3213912893378019, 911565.62206585333, 0.0000000000000062987213559081691736552469739378 +3.3213912893378019, 123333475.34928627, 0.000000000000000000071070074360358158127796547393962 +3.3213912893378019, 124024988.06286132, 0.00000000000000000007015359167879976882706198007065 +3.3213912893378019, 463375421.34817523, 0.0000000000000000000032902605056371044398761806966212 +3.3213912893378019, 748226466.1031605, 0.0000000000000000000010818040168886675372246579187666 +3.3213912893378019, 751185522.51509035, 0.0000000000000000000010719373222828164569453976225722 +3.3213912893378019, 803966868.32924354, 0.00000000000000000000091560757121318777951782229259394 +3.3213912893378019, 968335952.49933791, 0.0000000000000000000005945235142606047645268978911788 +3.3213912893378019, 977667584.00078595, 0.0000000000000000000005814335290993956932869665479742 +3.3800228685822176, 1.2041330017152543, 0.64059850170431298913721447526866 +3.3800228685822176, 1.2265460891928393, 0.60531001535953137185081902623318 +3.3800228685822176, 1.3496515186903868, 0.45209514455095441934153699815692 +3.3800228685822176, 1.4561891368135123, 0.35942332396907835440315087498685 +3.3800228685822176, 1.505408944679143, 0.32532506830425185186581314498658 +3.3800228685822176, 2.7166669767929994, 0.059370035633282003936332453966145 +3.3800228685822176, 2.7260544040973071, 0.058804343915209957760954901456694 +3.3800228685822176, 2.730289055066077, 0.058551635097177518215138409505906 +3.3800228685822176, 4.0517276803019504, 0.02005646288840319084642538410632 +3.3800228685822176, 4.2124817875077527, 0.018088769691630766367151322354413 +3.3800228685822176, 6.1617242039464699, 0.0067129490172999161394341599683557 +3.3800228685822176, 6.8092092252252261, 0.005198158883219992005917803556361 +3.3800228685822176, 6.8236272364629924, 0.0051701887710369920971426087269408 +3.3800228685822176, 7.0283321794508868, 0.00479507875360274500252476338917 +3.3800228685822176, 7.4180275837892902, 0.0041805397001009928149628169418041 +3.3800228685822176, 7.6047038477460287, 0.0039252292758110838193570199298714 +3.3800228685822176, 8.3839069082419186, 0.0030678265126737923840109548892157 +3.3800228685822176, 8.9537599097530531, 0.0026001387385909512332063465894582 +3.3800228685822176, 22.445567410957914, 0.00026957576305407210525407278560559 +3.3800228685822176, 34.508821612248553, 0.000095075817883688870944303752215313 +3.3800228685822176, 36.835964339959254, 0.00008122162072947078644233219450572 +3.3800228685822176, 41.993572536077544, 0.00005922471409513535904807345667872 +3.3800228685822176, 50.876045582169034, 0.000037327533828946163844506933034975 +3.3800228685822176, 58.390227406731306, 0.000026812334126612543958228005678545 +3.3800228685822176, 67.106602838438278, 0.000019203183183910584277183402816058 +3.3800228685822176, 72.048669943530001, 0.00001619557234086462760912176311045 +3.3800228685822176, 155.01865387839101, 0.0000025917203220465108396321207633592 +3.3800228685822176, 4114.6359626379426, 0.000000001050395964813611627005776699671 +3.3800228685822176, 4782.8664069509177, 0.00000000073414989224422960931853013058038 +3.3800228685822176, 5832.707445185928, 0.00000000045777312723544871978537754170314 +3.3800228685822176, 5833.7720691748864, 0.00000000045757430692767086948684608505522 +3.3800228685822176, 7530.5851892046458, 0.0000000002491991023120168212663109301819 +3.3800228685822176, 9437.1798177813107, 0.00000000014563247372530466613043515495374 +3.3800228685822176, 9714.4816444201169, 0.0000000001359321416858697323137604077466 +3.3800228685822176, 91324.597438782046, 0.00000000000065631480817982292139520169211893 +3.3800228685822176, 204107.60705372499, 0.000000000000096791027075201919822887059042545 +3.3800228685822176, 256840.68070942213, 0.000000000000056014091650443367179042423311179 +3.3800228685822176, 350404.81974375149, 0.000000000000026743409788280309473117966786307 +3.3800228685822176, 691957.37069411715, 0.0000000000000052953812565805189503351790762812 +3.3800228685822176, 791516.81386457232, 0.0000000000000038454705418247703441075411253356 +3.3800228685822176, 882912.76389201777, 0.0000000000000029648254357007283115483375173074 +3.3800228685822176, 911565.62206585333, 0.0000000000000027478172907517016721747480515235 +3.3800228685822176, 123333475.34928627, 0.000000000000000000023252043961279530297630986389844 +3.3800228685822176, 124024988.06286132, 0.000000000000000000022944674738922210260793630683895 +3.3800228685822176, 463375421.34817523, 0.00000000000000000000099609364171812091482228377152059 +3.3800228685822176, 748226466.1031605, 0.00000000000000000000031843239059025813264544082529996 +3.3800228685822176, 751185522.51509035, 0.00000000000000000000031545508824545138102347169139737 +3.3800228685822176, 803966868.32924354, 0.00000000000000000000026837893139091243880566655763983 +3.3800228685822176, 968335952.49933791, 0.00000000000000000000017237384052648510910349809388262 +3.3800228685822176, 977667584.00078595, 0.00000000000000000000016848381358391450005766178139669 +3.7747831222683481, 1.2041330017152543, 0.56818087717977538284091592929008 +3.7747831222683481, 1.2265460891928393, 0.53245939259523773030616150402584 +3.7747831222683481, 1.3496515186903868, 0.38095041918834563611386718081683 +3.7747831222683481, 1.4561891368135123, 0.29266888763593943562103995832194 +3.7747831222683481, 1.505408944679143, 0.26096103634076774063114930683571 +3.7747831222683481, 2.7166669767929994, 0.036527744924070532440300567191451 +3.7747831222683481, 2.7260544040973071, 0.036124262473638425648791172086195 +3.7747831222683481, 2.730289055066077, 0.035944213024700762374136252167441 +3.7747831222683481, 4.0517276803019504, 0.010352056454949754843360968633813 +3.7747831222683481, 4.2124817875077527, 0.0091803029101137791097126019800272 +3.7747831222683481, 6.1617242039464699, 0.0028952920446479981872520837109422 +3.7747831222683481, 6.8092092252252261, 0.0021494149199648548494351301774708 +3.7747831222683481, 6.8236272364629924, 0.0021359476830203481342579440082614 +3.7747831222683481, 7.0283321794508868, 0.0019565161306788137604835834549367 +3.7747831222683481, 7.4180275837892902, 0.001667589252704708385239776406322 +3.7747831222683481, 7.6047038477460287, 0.0015495408707083762259461641085172 +3.7747831222683481, 8.3839069082419186, 0.0011627505474817573949384650628228 +3.7747831222683481, 8.9537599097530531, 0.00095890971020925231845547068484196 +3.7747831222683481, 22.445567410957914, 0.000068301679306859663868868075798992 +3.7747831222683481, 34.508821612248553, 0.000020266216907193439578156426385184 +3.7747831222683481, 36.835964339959254, 0.000016866755495087908312507579519177 +3.7747831222683481, 41.993572536077544, 0.000011671186579187529193002236957629 +3.7747831222683481, 50.876045582169034, 0.0000068138670743158607710601158024197 +3.7747831222683481, 58.390227406731306, 0.0000046330511464118063075469934601566 +3.7747831222683481, 67.106602838438278, 0.0000031395200182426324547404437374107 +3.7747831222683481, 72.048669943530001, 0.0000025740490282826247604043810301891 +3.7747831222683481, 155.01865387839101, 0.00000030395949673970766753182440492622 +3.7747831222683481, 4114.6359626379426, 0.000000000033723417181149274040983000877465 +3.7747831222683481, 4782.8664069509177, 0.000000000022210589192819518528752483904705 +3.7747831222683481, 5832.707445185928, 0.000000000012805637487635894438212392986555 +3.7747831222683481, 5833.7720691748864, 0.000000000012799153474004698400685200374562 +3.7747831222683481, 7530.5851892046458, 0.0000000000063021981037284535311287111735699 +3.7747831222683481, 9437.1798177813107, 0.0000000000033690671585899801626068304731856 +3.7747831222683481, 9714.4816444201169, 0.0000000000031089109579331340413197499553968 +3.7747831222683481, 91324.597438782046, 0.000000000000006197582868677674914048927026582 +3.7747831222683481, 204107.60705372499, 0.00000000000000066537463778293089195508189620845 +3.7747831222683481, 256840.68070942213, 0.0000000000000003516652523742296688065934853159 +3.7747831222683481, 350404.81974375149, 0.00000000000000014852283198480553571977565408676 +3.7747831222683481, 691957.37069411715, 0.000000000000000022481135427924272357921209378815 +3.7747831222683481, 791516.81386457232, 0.000000000000000015481892934760418349933909546803 +3.7747831222683481, 882912.76389201777, 0.000000000000000011432449548151148980341821745264 +3.7747831222683481, 911565.62206585333, 0.000000000000000010462913464986090444616263142086 +3.7747831222683481, 123333475.34928627, 0.000000000000000000000012757807526578648966850405038014 +3.7747831222683481, 124024988.06286132, 0.000000000000000000000012561405904253891937285405414792 +3.7747831222683481, 463375421.34817523, 0.00000000000000000000000032410545955194503719546117784584 +3.7747831222683481, 748226466.1031605, 0.000000000000000000000000085753879944241224120477416300197 +3.7747831222683481, 751185522.51509035, 0.000000000000000000000000084819831006072837969274903581072 +3.7747831222683481, 803966868.32924354, 0.000000000000000000000000070253252148808408989594712020974 +3.7747831222683481, 968335952.49933791, 0.000000000000000000000000041927360054706068393341763974084 +3.7747831222683481, 977667584.00078595, 0.000000000000000000000000040826307748428354094953861399664 +3.7821562891438543, 1.2041330017152543, 0.56698819357626467369310387131066 +3.7821562891438543, 1.2265460891928393, 0.53126054874075215874829138482739 +3.7821562891438543, 1.3496515186903868, 0.37979097003861445136718547098686 +3.7821562891438543, 1.4561891368135123, 0.29159352588850675481795116414899 +3.7821562891438543, 1.505408944679143, 0.25993008322341755890287796758636 +3.7821562891438543, 2.7166669767929994, 0.036204865874897983200793736137139 +3.7821562891438543, 2.7260544040973071, 0.035803928959096408744670922330644 +3.7821562891438543, 2.730289055066077, 0.03562501905524975260170647511457 +3.7821562891438543, 4.0517276803019504, 0.010227052517599060647161298424329 +3.7821562891438543, 4.2124817875077527, 0.0090665978414595115666860580404224 +3.7821562891438543, 6.1617242039464699, 0.002850766748633812090536426868724 +3.7821562891438543, 6.8092092252252261, 0.0021146958310376833971606250918983 +3.7821562891438543, 6.8236272364629924, 0.0021014112251648828544458389400118 +3.7821562891438543, 7.0283321794508868, 0.0019244345801093867048029079382492 +3.7821562891438543, 7.4180275837892902, 0.001639552457847559881468952514805 +3.7821562891438543, 7.6047038477460287, 0.0015231929473723468929261203230647 +3.7821562891438543, 8.3839069082419186, 0.0011421111299006398600698677891153 +3.7821562891438543, 8.9537599097530531, 0.00094140791730062660082789906864045 +3.7821562891438543, 22.445567410957914, 0.00006658664229000878616981523067153 +3.7821562891438543, 34.508821612248553, 0.000019693675224626706217490510684367 +3.7821562891438543, 36.835964339959254, 0.000016382258915163872876837138002676 +3.7821562891438543, 41.993572536077544, 0.000011324848021138915498033250082525 +3.7821562891438543, 50.876045582169034, 0.0000066022209058110624095120237829893 +3.7821562891438543, 58.390227406731306, 0.0000044845448534858506409927096931899 +3.7821562891438543, 67.106602838438278, 0.0000030357463625775575216619509379512 +3.7821562891438543, 72.048669943530001, 0.0000024876534421918246446945431374129 +3.7821562891438543, 155.01865387839101, 0.00000029209456740719006047699496703822 +3.7821562891438543, 4114.6359626379426, 0.000000000031632274201689952506228984813548 +3.7821562891438543, 4782.8664069509177, 0.00000000002081023477559044788305696030791 +3.7821562891438543, 5832.707445185928, 0.000000000011980711479229022366101426479788 +3.7821562891438543, 5833.7720691748864, 0.00000000001197462904373120950411349866806 +3.7821562891438543, 7530.5851892046458, 0.0000000000058851194117715271508746513736668 +3.7821562891438543, 9437.1798177813107, 0.0000000000031408716096532676793161237784866 +3.7821562891438543, 9714.4816444201169, 0.0000000000028977176043219354868893751047946 +3.7821562891438543, 91324.597438782046, 0.0000000000000056819137867414074500745834726732 +3.7821562891438543, 204107.60705372499, 0.00000000000000060640572652305859510725604150303 +3.7821562891438543, 256840.68070942213, 0.00000000000000031995627476139752909869865859637 +3.7821562891438543, 350404.81974375149, 0.00000000000000013482167143590896910406096609 +3.7821562891438543, 691957.37069411715, 0.000000000000000020305135210455407878233890220976 +3.7821562891438543, 791516.81386457232, 0.000000000000000013969512543730024743684092615151 +3.7821562891438543, 882912.76389201777, 0.000000000000000010307339295653284636720407125616 +3.7821562891438543, 911565.62206585333, 0.0000000000000000094309978389176631510769155796853 +3.7821562891438543, 123333475.34928627, 0.000000000000000000000011090897119918597680711090586899 +3.7821562891438543, 124024988.06286132, 0.000000000000000000000010919706780900738710382744520593 +3.7821562891438543, 463375421.34817523, 0.00000000000000000000000027902203242579646859863744822223 +3.7821562891438543, 748226466.1031605, 0.000000000000000000000000073565056585662348019059791346332 +3.7821562891438543, 751185522.51509035, 0.000000000000000000000000072761653312744749689183386530795 +3.7821562891438543, 803966868.32924354, 0.000000000000000000000000060235725777825052021158169459441 +3.7821562891438543, 968335952.49933791, 0.000000000000000000000000035899596685207996920142281638474 +3.7821562891438543, 977667584.00078595, 0.00000000000000000000000003495436734400901399257529718378 +4.159054910020286, 1.2041330017152543, 0.51193329018364411200363516591717 +4.159054910020286, 1.2265460891928393, 0.47598035924197570948309338814385 +4.159054910020286, 1.3496515186903868, 0.32685914170749899307071345807926 +4.159054910020286, 1.4561891368135123, 0.24303456218688355678541038510168 +4.159054910020286, 1.505408944679143, 0.2136201506372751086739010567314 +4.159054910020286, 2.7166669767929994, 0.023173973771371946537135357160915 +4.159054910020286, 2.7260544040973071, 0.02288409726174646245275963216788 +4.159054910020286, 2.730289055066077, 0.022754879398168685058451817513535 +4.159054910020286, 4.0517276803019504, 0.0055411617587476189934957764215008 +4.159054910020286, 4.2124817875077527, 0.0048342622684453406246435607130439 +4.159054910020286, 6.1617242039464699, 0.0013018585335532778522368056477954 +4.159054910020286, 6.8092092252252261, 0.0009276832339327603173860561219022 +4.159054910020286, 6.8236272364629924, 0.00092107373670071521114096519024812 +4.159054910020286, 7.0283321794508868, 0.00083356942794202061009148157046707 +4.159054910020286, 7.4180275837892902, 0.000695009239473023859185028436863 +4.159054910020286, 7.6047038477460287, 0.00063930975212419822304065338546539 +4.159054910020286, 8.3839069082419186, 0.00046110661446487527275946289871613 +4.159054910020286, 8.9537599097530531, 0.00037029191297553750490261061942958 +4.159054910020286, 22.445567410957914, 0.000018304656746897205981586548375451 +4.159054910020286, 34.508821612248553, 0.0000045904521599678329993682094148118 +4.159054910020286, 36.835964339959254, 0.0000037245478323381753632310911728414 +4.159054910020286, 41.993572536077544, 0.0000024491450475946142296644205731081 +4.159054910020286, 50.876045582169034, 0.000001327180054494829458848667384175 +4.159054910020286, 58.390227406731306, 0.00000085547063831425192120275906520648 +4.159054910020286, 67.106602838438278, 0.00000054928534682927152179158555013471 +4.159054910020286, 72.048669943530001, 0.00000043813526297987137041494928862671 +4.159054910020286, 155.01865387839101, 0.000000038487699842128718865363820674139 +4.159054910020286, 4114.6359626379426, 0.0000000000012098683818817695919649114612508 +4.159054910020286, 4782.8664069509177, 0.00000000000075205397603630131414416031815812 +4.159054910020286, 5832.707445185928, 0.00000000000040176278535313186924932692761675 +4.159054910020286, 5833.7720691748864, 0.00000000000040153119240934401009066060201649 +4.159054910020286, 7530.5851892046458, 0.000000000000179233462606286728760482955914 +4.159054910020286, 9437.1798177813107, 0.000000000000087855842847820018908050961892725 +4.159054910020286, 9714.4816444201169, 0.00000000000008017442831538333861254279159561 +4.159054910020286, 91324.597438782046, 0.00000000000000006755868634647453772065605797582 +4.159054910020286, 204107.60705372499, 0.0000000000000000053248752410345981818535698568312 +4.159054910020286, 256840.68070942213, 0.0000000000000000025764425822420956351887883750964 +4.159054910020286, 350404.81974375149, 0.00000000000000000096570276666286085671071253482236 +4.159054910020286, 691957.37069411715, 0.00000000000000000011254144922244327744088699773596 +4.159054910020286, 791516.81386457232, 0.000000000000000000073601083845545431580124820711142 +4.159054910020286, 882912.76389201777, 0.000000000000000000052115006519051482615151512897149 +4.159054910020286, 911565.62206585333, 0.00000000000000000004711359331290323281557667864131 +4.159054910020286, 123333475.34928627, 0.0000000000000000000000000087151279379886711144373424607819 +4.159054910020286, 124024988.06286132, 0.0000000000000000000000000085625451087834017324764037239215 +4.159054910020286, 463375421.34817523, 0.0000000000000000000000000001331326731652260956071824762 +4.159054910020286, 748226466.1031605, 0.000000000000000000000000000029301179139588556740060335804403 +4.159054910020286, 751185522.51509035, 0.000000000000000000000000000028938100771556840447299375406991 +4.159054910020286, 803966868.32924354, 0.000000000000000000000000000023351055600581385810435411587 +4.159054910020286, 968335952.49933791, 0.000000000000000000000000000012974573479820233780802797645837 +4.159054910020286, 977667584.00078595, 0.000000000000000000000000000012587373637232318829973022561835 +4.2660528284133425, 1.2041330017152543, 0.49810731000833846229373410220763 +4.2660528284133425, 1.2265460891928393, 0.46212138834701001059062462327354 +4.2660528284133425, 1.3496515186903868, 0.31377904945263051784387986545325 +4.2660528284133425, 1.4561891368135123, 0.23121678614961576861606733818285 +4.2660528284133425, 1.505408944679143, 0.20243146963516273477544028520186 +4.2660528284133425, 2.7166669767929994, 0.020466798676872221018096703636272 +4.2660528284133425, 2.7260544040973071, 0.020202499192427536022848967153853 +4.2660528284133425, 2.730289055066077, 0.020084717180699331322784406727842 +4.2660528284133425, 4.0517276803019504, 0.0046684927741277227115065345134693 +4.2660528284133425, 4.2124817875077527, 0.004054466928690462438778607564517 +4.2660528284133425, 6.1617242039464699, 0.0010449568122523490991221127276726 +4.2660528284133425, 6.8092092252252261, 0.00073618234467278528374022723674222 +4.2660528284133425, 6.8236272364629924, 0.00073076138153692796277207898447149 +4.2660528284133425, 7.0283321794508868, 0.00065911887417497983902744477259447 +4.2660528284133425, 7.4180275837892902, 0.00054620258550033170910101792841646 +4.2660528284133425, 7.6047038477460287, 0.00050101669744257147554853803977962 +4.2660528284133425, 8.3839069082419186, 0.00035740293450453747792623076327934 +4.2660528284133425, 8.9537599097530531, 0.00028489663937620713768631032026439 +4.2660528284133425, 22.445567410957914, 0.000012721679556522182335947149414306 +4.2660528284133425, 34.508821612248553, 0.0000030443873217303009783037549384017 +4.2660528284133425, 36.835964339959254, 0.0000024526968152726614255176136932948 +4.2660528284133425, 41.993572536077544, 0.0000015900821054706746045714299036422 +4.2660528284133425, 50.876045582169034, 0.00000084396360892132521798020004754617 +4.2660528284133425, 58.390227406731306, 0.00000053596903050947468677831986572904 +4.2660528284133425, 67.106602838438278, 0.000000339012873256819398036086500974 +4.2660528284133425, 72.048669943530001, 0.00000026834954507792177381167105954688 +4.2660528284133425, 155.01865387839101, 0.000000021708955230900709326516238789227 +4.2660528284133425, 4114.6359626379426, 0.00000000000048034337480799625279136857897095 +4.2660528284133425, 4782.8664069509177, 0.00000000000029381154410743519276770848520832 +4.2660528284133425, 5832.707445185928, 0.00000000000015366232053408497691326700558077 +4.2660528284133425, 5833.7720691748864, 0.00000000000015357074387529609066761721588201 +4.2660528284133425, 7530.5851892046458, 0.000000000000066702720343754211278673724518272 +4.2660528284133425, 9437.1798177813107, 0.000000000000031915910347266025208007837890387 +4.2660528284133425, 9714.4816444201169, 0.000000000000029035321066008147573345462808728 +4.2660528284133425, 91324.597438782046, 0.000000000000000019250537287730958496278218741292 +4.2660528284133425, 204107.60705372499, 0.0000000000000000013921936225421443413008301297489 +4.2660528284133425, 256840.68070942213, 0.00000000000000000065725176541066859618569152068429 +4.2660528284133425, 350404.81974375149, 0.00000000000000000023829781242955689476521002195039 +4.2660528284133425, 691957.37069411715, 0.000000000000000000025820828547950291120122473309254 +4.2660528284133425, 791516.81386457232, 0.000000000000000000016645438922511485222560423410583 +4.2660528284133425, 882912.76389201777, 0.000000000000000000011649196346277031907276053089392 +4.2660528284133425, 911565.62206585333, 0.000000000000000000010495311197332371861906223390558 +4.2660528284133425, 123333475.34928627, 0.0000000000000000000000000011483622709295628513370974191817 +4.2660528284133425, 124024988.06286132, 0.0000000000000000000000000011275821857381021602688911842617 +4.2660528284133425, 463375421.34817523, 0.000000000000000000000000000015225859946118699367639080137543 +4.2660528284133425, 748226466.1031605, 0.0000000000000000000000000000031835817134983532802278608213043 +4.2660528284133425, 751185522.51509035, 0.0000000000000000000000000000031428056029641618624822302267649 +4.2660528284133425, 803966868.32924354, 0.0000000000000000000000000000025176684786336830267399333273878 +4.2660528284133425, 968335952.49933791, 0.000000000000000000000000000001371326842131649958211257514944 +4.2660528284133425, 977667584.00078595, 0.0000000000000000000000000000013290378434573564676332801968171 +5.924392435714811, 1.2041330017152543, 0.34326327870946317395805801522441 +5.924392435714811, 1.2265460891928393, 0.30824016258339515272562999862366 +5.924392435714811, 1.3496515186903868, 0.17660602797380840989640524164828 +5.924392435714811, 1.4561891368135123, 0.113638060916675047916920812633 +5.924392435714811, 1.505408944679143, 0.093744764500377419536536242656872 +5.924392435714811, 2.7166669767929994, 0.0032609950653871997840926127480681 +5.924392435714811, 2.7260544040973071, 0.003198818396250110433903209521758 +5.924392435714811, 2.730289055066077, 0.0031712335934485813617084239806126 +5.924392435714811, 4.0517276803019504, 0.00036143954701066722660049754078268 +5.924392435714811, 4.2124817875077527, 0.0002927397116824060165048908475984 +5.924392435714811, 6.1617242039464699, 0.000038356609747050324354568059866772 +5.924392435714811, 6.8092092252252261, 0.000022662492944829925409754072724312 +5.924392435714811, 6.8236272364629924, 0.000022412154639085047718565730957163 +5.924392435714811, 7.0283321794508868, 0.000019192364517442023977045239317917 +5.924392435714811, 7.4180275837892902, 0.000014468806486310054206187831500628 +5.924392435714811, 7.6047038477460287, 0.000012706881447255010388524028998071 +5.924392435714811, 8.3839069082419186, 0.0000076450044149810493502310231015031 +5.924392435714811, 8.9537599097530531, 0.0000054350333206140820156059437490435 +5.924392435714811, 22.445567410957914, 0.000000050261485786984513929807276784783 +5.924392435714811, 34.508821612248553, 0.0000000058214782764750813958637831605109 +5.924392435714811, 36.835964339959254, 0.0000000042027891148804441992945762592144 +5.924392435714811, 41.993572536077544, 0.0000000021865949587627575805176100997487 +5.924392435714811, 50.876045582169034, 0.00000000084143398264258371696224955164893 +5.924392435714811, 58.390227406731306, 0.00000000042435553862297270476773499402721 +5.924392435714811, 67.106602838438278, 0.00000000021272261147258361393611860663953 +5.924392435714811, 72.048669943530001, 0.00000000014954032553307931475635583882214 +5.924392435714811, 155.01865387839101, 0.0000000000033746145100554371807849826638936 +5.924392435714811, 4114.6359626379426, 0.00000000000000000032323688867841809816818013039166 +5.924392435714811, 4782.8664069509177, 0.00000000000000000015404298269522903405331723940557 +5.924392435714811, 5832.707445185928, 0.000000000000000000057970623574668958016684234708997 +5.924392435714811, 5833.7720691748864, 0.000000000000000000057918541400292883157284593287134 +5.924392435714811, 7530.5851892046458, 0.000000000000000000016472642933893960412043905221666 +5.924392435714811, 9437.1798177813107, 0.0000000000000000000054209779253940923272401298315909 +5.924392435714811, 9714.4816444201169, 0.0000000000000000000047004381502138135877825088884979 +5.924392435714811, 91324.597438782046, 0.000000000000000000000000075819022216445505283173673287066 +5.924392435714811, 204107.60705372499, 0.0000000000000000000000000014448479567679175908129671572186 +5.924392435714811, 256840.68070942213, 0.00000000000000000000000000046595497273923949246391790426941 +5.924392435714811, 350404.81974375149, 0.0000000000000000000000000001009279560976835259646965939975 +5.924392435714811, 691957.37069411715, 0.0000000000000000000000000000035383954270165314153435258725475 +5.924392435714811, 791516.81386457232, 0.000000000000000000000000000001825224021652233557268198221753 +5.924392435714811, 882912.76389201777, 0.0000000000000000000000000000010656533172047221624334175826903 +5.924392435714811, 911565.62206585333, 0.00000000000000000000000000000091057112847525586827455045730431 +5.924392435714811, 123333475.34928627, 2.9106462805282609223969302362742e-41 +5.924392435714811, 124024988.06286132, 2.8315999776314690945892681373745e-41 +5.924392435714811, 463375421.34817523, 4.2972682335865076542578581131423e-44 +5.924392435714811, 748226466.1031605, 4.0590653357267361248287720846556e-45 +5.924392435714811, 751185522.51509035, 3.9809335407687739489063111414319e-45 +5.924392435714811, 803966868.32924354, 2.8494428645092954997278955050918e-45 +5.924392435714811, 968335952.49933791, 1.1400623534568664618604501467166e-45 +5.924392435714811, 977667584.00078595, 1.0874711071482152771158872422341e-45 +8.3085354298908047, 1.2041330017152543, 0.21513277086748198122598188101642 +8.3085354298908047, 1.2265460891928393, 0.18466219741872385534300621781639 +8.3085354298908047, 1.3496515186903868, 0.083680139429714044433735288202597 +8.3085354298908047, 1.4561891368135123, 0.044655984282064577404438396111332 +8.3085354298908047, 1.505408944679143, 0.033935390636573488221296145291773 +8.3085354298908047, 2.7166669767929994, 0.00026918685657320186703713692645825 +8.3085354298908047, 2.7260544040973071, 0.00026176004337918272442965808183962 +8.3085354298908047, 2.730289055066077, 0.00025848571514873136148733029902869 +8.3085354298908047, 4.0517276803019504, 0.000010830239976777894851765737041514 +8.3085354298908047, 4.2124817875077527, 0.0000079478708858930006308497231203311 +8.3085354298908047, 6.1617242039464699, 0.00000039849678928213291919371562214037 +8.3085354298908047, 6.8092092252252261, 0.00000018318988594589797577214920876012 +8.3085354298908047, 6.8236272364629924, 0.00000018020774594435870511772797551223 +8.3085354298908047, 7.0283321794508868, 0.00000014329679986145790025175129300075 +8.3085354298908047, 7.4180275837892902, 0.000000094375079977484402254823485874805 +8.3085354298908047, 7.6047038477460287, 0.000000077887353935218135125892127790009 +8.3085354298908047, 8.3839069082419186, 0.000000036731439750552676249757077039651 +8.3085354298908047, 8.9537599097530531, 0.000000022168284990291598055278197084013 +8.3085354298908047, 22.445567410957914, 0.000000000021409896587761125168382152516653 +8.3085354298908047, 34.508821612248553, 0.00000000000087403635356613000282822410860741 +8.3085354298908047, 36.835964339959254, 0.00000000000053896724204870284744122843452356 +8.3085354298908047, 41.993572536077544, 0.00000000000020439100844239517458176043756682 +8.3085354298908047, 50.876045582169034, 0.000000000000049541820762869086239164929591191 +8.3085354298908047, 58.390227406731306, 0.000000000000017938203726420015648861968434482 +8.3085354298908047, 67.106602838438278, 0.0000000000000064369683289646585574886816817231 +8.3085354298908047, 72.048669943530001, 0.0000000000000038153450073039101998957209390695 +8.3085354298908047, 155.01865387839101, 0.000000000000000013736593418176791686923379514669 +8.3085354298908047, 4114.6359626379426, 0.0000000000000000000000000005261215420455144026819935822731 +8.3085354298908047, 4782.8664069509177, 0.00000000000000000000000000017513360127722026199625557665726 +8.3085354298908047, 5832.707445185928, 0.000000000000000000000000000041062555906855471038804950152878 +8.3085354298908047, 5833.7720691748864, 0.000000000000000000000000000041007815208408999232072329966229 +8.3085354298908047, 7530.5851892046458, 0.0000000000000000000000000000063451263868331339602736869099275 +8.3085354298908047, 9437.1798177813107, 0.0000000000000000000000000000012191651366821147250492822816557 +8.3085354298908047, 9714.4816444201169, 0.00000000000000000000000000000098658690960506491214302045616397 +8.3085354298908047, 91324.597438782046, 7.6129955607866607317687773897217e-38 +8.3085354298908047, 204107.60705372499, 2.1324722723891336232232259649964e-40 +8.3085354298908047, 256840.68070942213, 3.9760898207430177455409234153156e-41 +8.3085354298908047, 350404.81974375149, 4.1066469107630511796202535620566e-42 +8.3085354298908047, 691957.37069411715, 2.8427925510501441490299343779273e-44 +8.3085354298908047, 791516.81386457232, 1.0643064597173808954068934698829e-44 +8.3085354298908047, 882912.76389201777, 4.7887324223424950021340765959058e-45 +8.3085354298908047, 911565.62206585333, 3.7918406937062705639160762739655e-45 +8.3085354298908047, 123333475.34928627, 1.0051195609933111323621487143436e-60 +8.3085354298908047, 124024988.06286132, 9.6487479200608014972935259098761e-61 +8.3085354298908047, 463375421.34817523, 6.3225362420147587768218922357316e-65 +8.3085354298908047, 748226466.1031605, 1.905393052258209904934011977419e-66 +8.3085354298908047, 751185522.51509035, 1.8512143150417448562183821197446e-66 +8.3085354298908047, 803966868.32924354, 1.1269926968807666358716876850261e-66 +8.3085354298908047, 968335952.49933791, 2.8938754514332345618152540417399e-67 +8.3085354298908047, 977667584.00078595, 2.6979793613353788057739290517768e-67 +8.8168050862551013, 1.2041330017152543, 0.19538560624693195694922574149752 +8.8168050862551013, 1.2265460891928393, 0.16612834432036968141663535988936 +8.8168050862551013, 1.3496515186903868, 0.071660679837802282382998520009024 +8.8168050862551013, 1.4561891368135123, 0.036769038732092067062470430235681 +8.8168050862551013, 1.505408944679143, 0.027464883252049255825927333857089 +8.8168050862551013, 2.7166669767929994, 0.00015983412037794274208636114727741 +8.8168050862551013, 2.7260544040973071, 0.00015514007072573896846884107410168 +8.8168050862551013, 2.730289055066077, 0.00015307329018551760795670822030247 +8.8168050862551013, 4.0517276803019504, 0.0000051964204546698787553886931342233 +8.8168050862551013, 4.2124817875077527, 0.0000037349300292052049362666868845251 +8.8168050862551013, 6.1617242039464699, 0.00000015283619683334675373351603712713 +8.8168050862551013, 6.8092092252252261, 0.000000066618021271858304759469045504739 +8.8168050862551013, 6.8236272364629924, 0.000000065459836733889312433048788039165 +8.8168050862551013, 7.0283321794508868, 0.000000051240085559490201832570545362852 +8.8168050862551013, 7.4180275837892902, 0.000000032792569508195491958397515132867 +8.8168050862551013, 7.6047038477460287, 0.000000026708741719325736364378847295097 +8.8168050862551013, 8.3839069082419186, 0.000000011960774360480246310308654892746 +8.8168050862551013, 8.9537599097530531, 0.0000000069716802717809251240609071766874 +8.8168050862551013, 22.445567410957914, 0.0000000000041623965924020563873817417538759 +8.8168050862551013, 34.508821612248553, 0.00000000000013606333103215916821509553875478 +8.8168050862551013, 36.835964339959254, 0.000000000000081129638213289828764231779794874 +8.8168050862551013, 41.993572536077544, 0.000000000000028761152748908003475206819478408 +8.8168050862551013, 50.876045582169034, 0.0000000000000063172172163134808105420395136951 +8.8168050862551013, 58.390227406731306, 0.000000000000002131361110834879319328465488385 +8.8168050862551013, 67.106602838438278, 0.00000000000000071221404231091527169503050229737 +8.8168050862551013, 72.048669943530001, 0.00000000000000040706918953799837578214271146228 +8.8168050862551013, 155.01865387839101, 0.00000000000000000099101751170019233183076243714819 +8.8168050862551013, 4114.6359626379426, 0.0000000000000000000000000000071591092018936777245764375309893 +8.8168050862551013, 4782.8664069509177, 0.000000000000000000000000000002207596719631327161497665944294 +8.8168050862551013, 5832.707445185928, 0.00000000000000000000000000000046793811538803020197466422447403 +8.8168050862551013, 5833.7720691748864, 0.00000000000000000000000000000046727095298720142194650274253737 +8.8168050862551013, 7530.5851892046458, 0.000000000000000000000000000000063501151500966959530321166041386 +8.8168050862551013, 9437.1798177813107, 0.00000000000000000000000000000001087886551902511655652764838131 +8.8168050862551013, 9714.4816444201169, 8.6748780142130709529314391160213e-33 +8.8168050862551013, 91324.597438782046, 2.1430959689824896693176907523098e-40 +8.8168050862551013, 204107.60705372499, 3.9888224094359066527448209648666e-43 +8.8168050862551013, 256840.68070942213, 6.6174355961001684887957716763848e-44 +8.8168050862551013, 350404.81974375149, 5.8364937910526456034317621642575e-45 +8.8168050862551013, 691957.37069411715, 2.8589810905236790691949346138639e-47 +8.8168050862551013, 791516.81386457232, 9.9967677023738812042949925650403e-48 +8.8168050862551013, 882912.76389201777, 4.2549276035417084592058382777095e-48 +8.8168050862551013, 911565.62206585333, 3.3149112882747008335485920917368e-48 +8.8168050862551013, 123333475.34928627, 7.2538380586924727457905753504491e-65 +8.8168050862551013, 124024988.06286132, 6.9436352340254756847630246455671e-65 +8.8168050862551013, 463375421.34817523, 2.3284215847950384389488055249972e-69 +8.8168050862551013, 748226466.1031605, 5.5002688015569227771485496983944e-71 +8.8168050862551013, 751185522.51509035, 5.3331621699311725528229668145048e-71 +8.8168050862551013, 803966868.32924354, 3.1366050724018967819092870362839e-71 +8.8168050862551013, 968335952.49933791, 7.3275119219070953069172222833596e-72 +8.8168050862551013, 977667584.00078595, 6.7982682488725119455169484042752e-72 +9.964802685014341, 1.2041330017152543, 0.15746037385791840960236670750081 +9.964802685014341, 1.2265460891928393, 0.13105482407847196870811839027936 +9.964802685014341, 1.3496515186903868, 0.050599915447115086164785555552136 +9.964802685014341, 1.4561891368135123, 0.02376946820393322812348421115586 +9.964802685014341, 1.505408944679143, 0.017081099580229479608628903348993 +9.964802685014341, 2.7166669767929994, 0.000049618029439346626977109877093645 +9.964802685014341, 2.7260544040973071, 0.000047963520540168045872180444121858 +9.964802685014341, 2.730289055066077, 0.0000472371994133137926423524423889 +9.964802685014341, 4.0517276803019504, 0.00000099992403974506391895533869824026 +9.964802685014341, 4.2124817875077527, 0.00000068587866543420073325666663492844 +9.964802685014341, 6.1617242039464699, 0.000000017771746342904576946031737088076 +9.964802685014341, 6.8092092252252261, 0.0000000068714080376512512316742928591423 +9.964802685014341, 6.8236272364629924, 0.0000000067348492902196166091958804291016 +9.964802685014341, 7.0283321794508868, 0.0000000050883887021032828126921331211393 +9.964802685014341, 7.4180275837892902, 0.0000000030526819602286654091439796431795 +9.964802685014341, 7.6047038477460287, 0.0000000024134756571873788032634033772913 +9.964802685014341, 8.3839069082419186, 0.00000000096185767356142537883513971543676 +9.964802685014341, 8.9537599097530531, 0.00000000051833100737949430169087712861711 +9.964802685014341, 22.445567410957914, 0.00000000000010452178073503257875301777428891 +9.964802685014341, 34.508821612248553, 0.0000000000000020684624065566154647539943942028 +9.964802685014341, 36.835964339959254, 0.0000000000000011432104017958020425001645677212 +9.964802685014341, 41.993572536077544, 0.00000000000000034805073432587730985634176956077 +9.964802685014341, 50.876045582169034, 0.000000000000000061195547159783154365069075112761 +9.964802685014341, 58.390227406731306, 0.00000000000000001760227730875187096513644306528 +9.964802685014341, 67.106602838438278, 0.0000000000000000050075167442453214742358411140498 +9.964802685014341, 72.048669943530001, 0.0000000000000000026363709749616321118896428410003 +9.964802685014341, 155.01865387839101, 0.0000000000000000000026522201595309189475076303133223 +9.964802685014341, 4114.6359626379426, 4.4275585484855780436139544081269e-34 +9.964802685014341, 4782.8664069509177, 1.1486484181869341532003829173232e-34 +9.964802685014341, 5832.707445185928, 1.9386962025141802421058605026447e-35 +9.964802685014341, 5833.7720691748864, 1.9355264973837693879507485065093e-35 +9.964802685014341, 7530.5851892046458, 1.9620640380378948610094729649363e-36 +9.964802685014341, 9437.1798177813107, 2.5941150408461239888703757698098e-37 +9.964802685014341, 9714.4816444201169, 2.000918590288950552858223910954e-37 +9.964802685014341, 91324.597438782046, 3.7738970817917813201823515949129e-46 +9.964802685014341, 204107.60705372499, 2.7901584619144176204557070180458e-49 +9.964802685014341, 256840.68070942213, 3.5554794669210439439812847757079e-50 +9.964802685014341, 350404.81974375149, 2.1952710948775238289382401832485e-51 +9.964802685014341, 691957.37069411715, 4.9238309312910583438682218194866e-54 +9.964802685014341, 791516.81386457232, 1.4754699889208308103252488439427e-54 +9.964802685014341, 882912.76389201777, 5.5396414182129881281183010183054e-55 +9.964802685014341, 911565.62206585333, 4.1604325880405153042577067930725e-55 +9.964802685014341, 123333475.34928627, 3.2547293569908194408201388664642e-74 +9.964802685014341, 124024988.06286132, 3.0956106189470881368481337815331e-74 +9.964802685014341, 463375421.34817523, 2.2860193215446312055830360660124e-79 +9.964802685014341, 748226466.1031605, 3.1153282353906973978533706167208e-81 +9.964802685014341, 751185522.51509035, 3.0070237235589298349877874561632e-81 +9.964802685014341, 803966868.32924354, 1.6358985740610108014794523024114e-81 +9.964802685014341, 968335952.49933791, 3.0868018094993415453125204884659e-82 +9.964802685014341, 977667584.00078595, 2.8324934679541936476987084966507e-82 +10.032260281541108, 1.2041330017152543, 0.15548393559624915148355822559291 +10.032260281541108, 1.2265460891928393, 0.12924798142827463185535152988045 +10.032260281541108, 1.3496515186903868, 0.049579108137758410583426259911642 +10.032260281541108, 1.4561891368135123, 0.023169806972076349560124831782834 +10.032260281541108, 1.505408944679143, 0.016612489427598960970025100940511 +10.032260281541108, 2.7166669767929994, 0.000046334070214790938716505213780364 +10.032260281541108, 2.7260544040973071, 0.000044778311235206807488956587338195 +10.032260281541108, 2.730289055066077, 0.000044095459331512576347914088390028 +10.032260281541108, 4.0517276803019504, 0.00000090797729068481587290573047034701 +10.032260281541108, 4.2124817875077527, 0.00000062110767182895241872745480128571 +10.032260281541108, 6.1617242039464699, 0.000000015668287721415449198645468819618 +10.032260281541108, 6.8092092252252261, 0.000000006015682735603141850395114911767 +10.032260281541108, 6.8236272364629924, 0.000000005895253575362145445341797825331 +10.032260281541108, 7.0283321794508868, 0.0000000044448044449895439409601027196246 +10.032260281541108, 7.4180275837892902, 0.0000000026564869517183558920886238086458 +10.032260281541108, 7.6047038477460287, 0.0000000020965792285229827646695387978666 +10.032260281541108, 8.3839069082419186, 0.000000000829865973310723684140782710685 +10.032260281541108, 8.9537599097530531, 0.00000000044514774649303242639641646969526 +10.032260281541108, 22.445567410957914, 0.00000000000008422077482357665956691606903783 +10.032260281541108, 34.508821612248553, 0.0000000000000016182828922311304894358105595831 +10.032260281541108, 36.835964339959254, 0.00000000000000089042301164149933930906310660903 +10.032260281541108, 41.993572536077544, 0.00000000000000026867564757072065973565138799272 +10.032260281541108, 50.876045582169034, 0.000000000000000046625880101276887894026901905624 +10.032260281541108, 58.390227406731306, 0.000000000000000013286332682555959225210013637788 +10.032260281541108, 67.106602838438278, 0.0000000000000000037441340124409586957564720635143 +10.032260281541108, 72.048669943530001, 0.0000000000000000019617303976311468358617894343702 +10.032260281541108, 155.01865387839101, 0.0000000000000000000018736544563211654690989995654676 +10.032260281541108, 4114.6359626379426, 2.5066751308822466924095432793009e-34 +10.032260281541108, 4782.8664069509177, 6.4374155743087541950552703438758e-35 +10.032260281541108, 5832.707445185928, 1.0720622641614257816191116154503e-35 +10.032260281541108, 5833.7720691748864, 1.0702962989315716817919125036784e-35 +10.032260281541108, 7530.5851892046458, 1.0664435348604468976539800022668e-36 +10.032260281541108, 9437.1798177813107, 1.3886786910197790739308155612117e-37 +10.032260281541108, 9714.4816444201169, 1.0690388131768510258376968091621e-37 +10.032260281541108, 91324.597438782046, 1.7334254785907012355153602255523e-46 +10.032260281541108, 204107.60705372499, 1.2138999481182607704273269056139e-49 +10.032260281541108, 256840.68070942213, 1.5230690894220325890293781508079e-50 +10.032260281541108, 350404.81974375149, 9.2089289276778821891194419258844e-52 +10.032260281541108, 691957.37069411715, 1.9728302964428536956366527392866e-54 +10.032260281541108, 791516.81386457232, 5.8583962803849449314842202042278e-55 +10.032260281541108, 882912.76389201777, 2.1833765308619543563708910175391e-55 +10.032260281541108, 911565.62206585333, 1.636250629028715160330473702062e-55 +10.032260281541108, 123333475.34928627, 9.1929372756222693561442168248549e-75 +10.032260281541108, 124024988.06286132, 8.7402114847792077202254269992373e-75 +10.032260281541108, 463375421.34817523, 5.9052892713304938871034513283519e-80 +10.032260281541108, 748226466.1031605, 7.7916091740528365929226770141512e-82 +10.032260281541108, 751185522.51509035, 7.5187314191239253273671659975409e-82 +10.032260281541108, 803966868.32924354, 4.0716899753267635079269681533571e-82 +10.032260281541108, 968335952.49933791, 7.5871263611029934520270528697023e-83 +10.032260281541108, 977667584.00078595, 6.9575528889634722056393109785418e-83 +12.188497456354446, 1.2041330017152543, 0.10398634443813367120351641183419 +12.188497456354446, 1.2265460891928393, 0.083058346518799317249755246422464 +12.188497456354446, 1.3496515186903868, 0.025900321737640901520120844384452 +12.188497456354446, 1.4561891368135123, 0.010265355148514354647055936565512 +12.188497456354446, 1.505408944679143, 0.0068477336133898437798889728151431 +12.188497456354446, 2.7166669767929994, 0.0000052448734452941191525280480067227 +12.188497456354446, 2.7260544040973071, 0.0000050302715202214513848718080155076 +12.188497456354446, 2.730289055066077, 0.0000049365970467453385892500794216871 +12.188497456354446, 4.0517276803019504, 0.000000042265198187627683413610782398006 +12.188497456354446, 4.2124817875077527, 0.000000026504008075145950919530573893847 +12.188497456354446, 6.1617242039464699, 0.00000000028527077064670000757781318180125 +12.188497456354446, 6.8092092252252261, 0.000000000087558956233661740729891766832831 +12.188497456354446, 6.8236272364629924, 0.000000000085400562212771020825515654656156 +12.188497456354446, 7.0283321794508868, 0.000000000060264778951532706582216359711767 +12.188497456354446, 7.4180275837892902, 0.000000000031919386063629492982790816352658 +12.188497456354446, 7.6047038477460287, 0.000000000023828930255494243562286374203926 +12.188497456354446, 8.3839069082419186, 0.0000000000075835140823673831197644984181023 +12.188497456354446, 8.9537599097530531, 0.0000000000035121688826940466209635089074894 +12.188497456354446, 22.445567410957914, 0.000000000000000086791344676456365903328490385506 +12.188497456354446, 34.508821612248553, 0.0000000000000000006499663879965090214449482500066 +12.188497456354446, 36.835964339959254, 0.00000000000000000031012713935982552615085891366113 +12.188497456354446, 41.993572536077544, 0.00000000000000000007031091200671544833615539754882 +12.188497456354446, 50.876045582169034, 0.0000000000000000000080339128228358691386246804790624 +12.188497456354446, 58.390227406731306, 0.000000000000000000001696633498471249099758738297383 +12.188497456354446, 67.106602838438278, 0.00000000000000000000035338965481263289550331089636561 +12.188497456354446, 72.048669943530001, 0.00000000000000000000015868706880999628155709011424099 +12.188497456354446, 155.01865387839101, 0.000000000000000000000000028821559569018322454645291421327 +12.188497456354446, 4114.6359626379426, 3.25747218711606930873897398543e-42 +12.188497456354446, 4782.8664069509177, 6.047188270285868064953247060552e-43 +12.188497456354446, 5832.707445185928, 6.5647113182591883404081378851007e-44 +12.188497456354446, 5833.7720691748864, 6.5513186331738567408543018032838e-44 +12.188497456354446, 7530.5851892046458, 3.7641115624687726119675994873066e-45 +12.188497456354446, 9437.1798177813107, 3.012821997898389949557615301929e-46 +12.188497456354446, 9714.4816444201169, 2.1789331111170540801163866651095e-46 +12.188497456354446, 91324.597438782046, 2.8166392583473755703131176123289e-57 +12.188497456354446, 204107.60705372499, 3.482523715612651477296284196126e-61 +12.188497456354446, 256840.68070942213, 2.6621215962364111031691574151059e-62 +12.188497456354446, 350404.81974375149, 8.2380994086079786314389958738094e-64 +12.188497456354446, 691957.37069411715, 4.0692924787606310961307525121636e-67 +12.188497456354446, 791516.81386457232, 9.0432591219815359614040220123868e-68 +12.188497456354446, 882912.76389201777, 2.6628386758925640020371558746316e-68 +12.188497456354446, 911565.62206585333, 1.8627677497758688945535078083979e-68 +12.188497456354446, 123333475.34928627, 2.6557635539160765858475532294065e-92 +12.188497456354446, 124024988.06286132, 2.4947166357129909458782947703139e-92 +12.188497456354446, 463375421.34817523, 9.8278603818073385271370038695174e-99 +12.188497456354446, 748226466.1031605, 4.6145765024834818439294740441802e-101 +12.188497456354446, 751185522.51509035, 4.415228270745096469938412781886e-101 +12.188497456354446, 803966868.32924354, 2.0653507972095371720260319398692e-101 +12.188497456354446, 968335952.49933791, 2.5769058830112194654704263769014e-102 +12.188497456354446, 977667584.00078595, 2.3147105197451048431602937036437e-102 +13.969371237967552, 1.2041330017152543, 0.074665906930693485563403327851116 +13.969371237967552, 1.2265460891928393, 0.057709522232479722175440828985004 +13.969371237967552, 1.3496515186903868, 0.015173117001619080459590876902482 +13.969371237967552, 1.4561891368135123, 0.0052510371724315331901491829271359 +13.969371237967552, 1.505408944679143, 0.0033009150922600685095847346523717 +13.969371237967552, 2.7166669767929994, 0.00000087580416930317992104445826849201 +13.969371237967552, 2.7260544040973071, 0.00000083474483042554886184768219345866 +13.969371237967552, 2.730289055066077, 0.00000081690324431607945474962880389063 +13.969371237967552, 4.0517276803019504, 0.0000000034109542056433339515400351525121 +13.969371237967552, 4.2124817875077527, 0.0000000019920076076225833421339861090619 +13.969371237967552, 6.1617242039464699, 0.000000000010666392353285712908522010983278 +13.969371237967552, 6.8092092252252261, 0.0000000000027241245884574500297463883131125 +13.969371237967552, 6.8236272364629924, 0.0000000000026466529488898563881516990806719 +13.969371237967552, 7.0283321794508868, 0.0000000000017688122401507455181573813896491 +13.969371237967552, 7.4180275837892902, 0.00000000000084831379293971883578255984257325 +13.969371237967552, 7.6047038477460287, 0.0000000000006049940176641417229120563980924 +13.969371237967552, 8.3839069082419186, 0.00000000000016092057655392288755243616589808 +13.969371237967552, 8.9537599097530531, 0.000000000000066043202860188263046264888771876 +13.969371237967552, 22.445567410957914, 0.00000000000000000030471479235277312508530127323754 +13.969371237967552, 34.508821612248553, 0.0000000000000000000010482731662966425725869360108201 +13.969371237967552, 36.835964339959254, 0.00000000000000000000044464985624945151968690549965555 +13.969371237967552, 41.993572536077544, 0.000000000000000000000079613442393918184545926013069767 +13.969371237967552, 50.876045582169034, 0.0000000000000000000000064419135116475917816886683391389 +13.969371237967552, 58.390227406731306, 0.0000000000000000000000010622380034520404697736720745038 +13.969371237967552, 67.106602838438278, 0.00000000000000000000000017237330780092583196058233036192 +13.969371237967552, 72.048669943530001, 0.000000000000000000000000068143567075038018975970785870302 +13.969371237967552, 155.01865387839101, 0.0000000000000000000000000000031422276951440975334338633673419 +13.969371237967552, 4114.6359626379426, 1.0283937880953776997069587829186e-48 +13.969371237967552, 4782.8664069509177, 1.4602486995793967363096900202136e-49 +13.969371237967552, 5832.707445185928, 1.1132565653780908827281994841699e-50 +13.969371237967552, 5833.7720691748864, 1.1106243350860132542365641219607e-50 +13.969371237967552, 7530.5851892046458, 4.0497110627197545729619209424004e-52 +13.969371237967552, 9437.1798177813107, 2.1685776370949653694054661831308e-53 +13.969371237967552, 9714.4816444201169, 1.4895170042088150776731448367501e-53 +13.969371237967552, 91324.597438782046, 3.5596525830483800950005247553518e-66 +13.969371237967552, 204107.60705372499, 1.0508961608359583768560315676688e-70 +13.969371237967552, 256840.68070942213, 5.3352378979617925006875665994861e-72 +13.969371237967552, 350404.81974375149, 9.4951429513398569465785781509153e-74 +13.969371237967552, 691957.37069411715, 1.396137304638343753993621179925e-77 +13.969371237967552, 791516.81386457232, 2.4421103575769265992682585346442e-78 +13.969371237967552, 882912.76389201777, 5.9192819996338349282238261825839e-79 +13.969371237967552, 911565.62206585333, 3.911847331138670911207334658713e-79 +13.969371237967552, 123333475.34928627, 8.9299348843016568685268291624233e-107 +13.969371237967552, 124024988.06286132, 8.3053080854101469236972599156259e-107 +13.969371237967552, 463375421.34817523, 3.1288083539613132053663905169484e-114 +13.969371237967552, 748226466.1031605, 6.2582350748575267952374170476372e-117 +13.969371237967552, 751185522.51509035, 5.9459398417995961231567716895076e-117 +13.969371237967552, 803966868.32924354, 2.4645721090176649972234448880719e-117 +13.969371237967552, 968335952.49933791, 2.2078684718697956073460742576654e-118 +13.969371237967552, 977667584.00078595, 1.9496367550248021946748737641074e-118 +15.623165142423973, 1.2041330017152543, 0.054909062979373011572165014922669 +15.623165142423973, 1.2265460891928393, 0.041163893142383457407859094666712 +15.623165142423973, 1.3496515186903868, 0.0092384933486044410537304141516158 +15.623165142423973, 1.4561891368135123, 0.0028193263883647123877916401043974 +15.623165142423973, 1.505408944679143, 0.001677363629345965867453500462059 +15.623165142423973, 2.7166669767929994, 0.00000016683704461315350942510206628574 +15.623165142423973, 2.7260544040973071, 0.00000015810153187533530752565948234998 +15.623165142423973, 2.730289055066077, 0.00000015432154131868513698782607604245 +15.623165142423973, 4.0517276803019504, 0.00000000033207793580955736218432315599017 +15.623165142423973, 4.2124817875077527, 0.00000000018160266521186490071490354485842 +15.623165142423973, 6.1617242039464699, 0.00000000000051028333151871009088365017691633 +15.623165142423973, 6.8092092252252261, 0.00000000000010995484213874919138808178648258 +15.623165142423973, 6.8236272364629924, 0.00000000000010644407071197841741913928543418 +15.623165142423973, 7.0283321794508868, 0.000000000000067649411125290296233786291926747 +15.623165142423973, 7.4180275837892902, 0.000000000000029597591660793429873782449161529 +15.623165142423973, 7.6047038477460287, 0.000000000000020233967645158256327690776553959 +15.623165142423973, 8.3839069082419186, 0.0000000000000045587281208335998755597869861702 +15.623165142423973, 8.9537599097530531, 0.0000000000000016728856324514489540109694660374 +15.623165142423973, 22.445567410957914, 0.000000000000000000001628189573391302463704886767106 +15.623165142423973, 34.508821612248553, 0.0000000000000000000000027206907986167105118143916895065 +15.623165142423973, 36.835964339959254, 0.0000000000000000000000010346065791928610094727884616559 +15.623165142423973, 41.993572536077544, 0.00000000000000000000000014878592575308293309312313679979 +15.623165142423973, 50.876045582169034, 0.0000000000000000000000000087383261643669201773175870959916 +15.623165142423973, 58.390227406731306, 0.0000000000000000000000000011451402397113538355506108125105 +15.623165142423973, 67.106602838438278, 0.00000000000000000000000000014737817440359505118821657876353 +15.623165142423973, 72.048669943530001, 0.000000000000000000000000000051761479961859070449918779633802 +15.623165142423973, 155.01865387839101, 6.6827630748900756367672017716703e-34 +15.623165142423973, 4114.6359626379426, 9.6109196714340222512810623075141e-55 +15.623165142423973, 4782.8664069509177, 1.0639798833815206981333288501626e-55 +15.623165142423973, 5832.707445185928, 5.8419949565625048306968796739489e-57 +15.623165142423973, 5833.7720691748864, 5.8264228726250816156707624039117e-57 +15.623165142423973, 7530.5851892046458, 1.3927511781103180470055228962162e-58 +15.623165142423973, 9437.1798177813107, 5.1347665729068232610571852358083e-60 +15.623165142423973, 9714.4816444201169, 3.3619378428708627606644471189748e-60 +15.623165142423973, 91324.597438782046, 1.9746915699202813337740159818112e-74 +15.623165142423973, 204107.60705372499, 1.5417939540429297267727745628936e-79 +15.623165142423973, 256840.68070942213, 5.3525864068333672271809645911853e-81 +15.623165142423973, 350404.81974375149, 5.6990685787705936721926300911644e-83 +15.623165142423973, 691957.37069411715, 2.7196847999698228286742296795961e-87 +15.623165142423973, 791516.81386457232, 3.808955012430642446312001561598e-88 +15.623165142423973, 882912.76389201777, 7.7059177339863808285055870547926e-89 +15.623165142423973, 911565.62206585333, 4.8305753860822684675591152190614e-89 +15.623165142423973, 123333475.34928627, 3.2941657274102217442742023667464e-120 +15.623165142423973, 124024988.06286132, 3.035548084948920034557288644612e-120 +15.623165142423973, 463375421.34817523, 1.2929726506524022816061974483575e-128 +15.623165142423973, 748226466.1031605, 1.1708671393709217042038692720889e-131 +15.623165142423973, 751185522.51509035, 1.1052013746025100126112716338403e-131 +15.623165142423973, 803966868.32924354, 4.0944021246439004230279141259185e-132 +15.623165142423973, 968335952.49933791, 2.6965943332265926427704253164364e-133 +15.623165142423973, 977667584.00078595, 2.3437312391977585733311690617022e-133 +16.822502311331153, 1.2041330017152543, 0.043941044888892416338546446544886 +16.822502311331153, 1.2265460891928393, 0.032220666572799187673674314795046 +16.822502311331153, 1.3496515186903868, 0.0064474025451014980330549944091162 +16.822502311331153, 1.4561891368135123, 0.0017961161912707914426777481151566 +16.822502311331153, 1.505408944679143, 0.0010268089401607803559727965119401 +16.822502311331153, 2.7166669767929994, 0.000000050197958070198061799969941121486 +16.822502311331153, 2.7260544040973071, 0.000000047371800751550576312300354541298 +16.822502311331153, 2.730289055066077, 0.000000046152581090659268015247601496863 +16.822502311331153, 4.0517276803019504, 0.000000000061518186151071189339389381529785 +16.822502311331153, 4.2124817875077527, 0.000000000032083264482483310962701229679213 +16.822502311331153, 6.1617242039464699, 0.000000000000056581602823609017296193859625474 +16.822502311331153, 6.8092092252252261, 0.000000000000010782812917186152516414429614385 +16.822502311331153, 6.8236272364629924, 0.000000000000010411405276009010551596997939891 +16.822502311331153, 7.0283321794508868, 0.0000000000000063805972081154356908439938803182 +16.822502311331153, 7.4180275837892902, 0.0000000000000026122644175910064511942929141858 +16.822502311331153, 7.6047038477460287, 0.0000000000000017320400540537879412442140199719 +16.822502311331153, 8.3839069082419186, 0.00000000000000034607758787466373518969767679879 +16.822502311331153, 8.9537599097530531, 0.00000000000000011712224662414858749955848056659 +16.822502311331153, 22.445567410957914, 0.000000000000000000000036927262780453957802888637386496 +16.822502311331153, 34.508821612248553, 0.000000000000000000000000036556462629715847258262330670893 +16.822502311331153, 36.835964339959254, 0.000000000000000000000000012842733799576262006769567491852 +16.822502311331153, 41.993572536077544, 0.0000000000000000000000000015755374781680736865233562025469 +16.822502311331153, 50.876045582169034, 0.000000000000000000000000000073347561805590244933001012624308 +16.822502311331153, 58.390227406731306, 0.0000000000000000000000000000081369880467289506494648587126527 +16.822502311331153, 67.106602838438278, 0.00000000000000000000000000000088518438602387692408589916903425 +16.822502311331153, 72.048669943530001, 0.00000000000000000000000000000028532983187901151517020273445318 +16.822502311331153, 155.01865387839101, 1.4634150984566096687713266196853e-36 +16.822502311331153, 4114.6359626379426, 4.1095324313915522262157612378545e-59 +16.822502311331153, 4782.8664069509177, 3.7981067686527147556511215365073e-60 +16.822502311331153, 5832.707445185928, 1.6437052037781105662983189529124e-61 +16.822502311331153, 5833.7720691748864, 1.6389650137025005234732180117852e-61 +16.822502311331153, 7530.5851892046458, 2.8843604730239475693793370384313e-63 +16.822502311331153, 9437.1798177813107, 8.1121969187285522541630206828693e-65 +16.822502311331153, 9714.4816444201169, 5.1300562373412369459640172498437e-65 +16.822502311331153, 91324.597438782046, 2.050458824577924150445765007455e-80 +16.822502311331153, 204107.60705372499, 6.1021424473191131145306901519845e-86 +16.822502311331153, 256840.68070942213, 1.6081258617789349676379464660708e-87 +16.822502311331153, 350404.81974375149, 1.1796736290032685997418207182556e-89 +16.822502311331153, 691957.37069411715, 2.4892066106104685744113260484288e-94 +16.822502311331153, 791516.81386457232, 2.9670843854812797160676593513258e-95 +16.822502311331153, 882912.76389201777, 5.2653914628516400068053743214684e-96 +16.822502311331153, 911565.62206585333, 3.1766558964767871141181662355092e-96 +16.822502311331153, 123333475.34928627, 6.0197370360812904355407069945106e-130 +16.822502311331153, 124024988.06286132, 5.5100676699720603339273480291209e-130 +16.822502311331153, 463375421.34817523, 4.8303657147453009173607745458143e-139 +16.822502311331153, 748226466.1031605, 2.4621592583954707316849275329364e-142 +16.822502311331153, 751185522.51509035, 2.3130983759600315509890200972496e-142 +16.822502311331153, 803966868.32924354, 7.899026988812634578645918580069e-143 +16.822502311331153, 968335952.49933791, 4.1620451204205406723425008353102e-144 +16.822502311331153, 977667584.00078595, 3.5760496929457980334756854283479e-144 +18.835195189585164, 1.2041330017152543, 0.030233313072520737408986286563106 +18.835195189585164, 1.2265460891928393, 0.021361302246818482800818109196233 +18.835195189585164, 1.3496515186903868, 0.0035258394146158152966504032431373 +18.835195189585164, 1.4561891368135123, 0.00084291570011807199735751798551204 +18.835195189585164, 1.505408944679143, 0.0004506844724905090769807338223337 +18.835195189585164, 2.7166669767929994, 0.0000000066994231921991070816520858902325 +18.835195189585164, 2.7260544040973071, 0.0000000062782893823592656332384074238213 +18.835195189585164, 2.730289055066077, 0.000000006097530736217530535576793084436 +18.835195189585164, 4.0517276803019504, 0.0000000000036473307281075953834743648095603 +18.835195189585164, 4.2124817875077527, 0.0000000000017570953832149754890214452925966 +18.835195189585164, 6.1617242039464699, 0.0000000000000014222166701437465672378880444757 +18.835195189585164, 6.8092092252252261, 0.0000000000000002206975615553803198801184074995 +18.835195189585164, 6.8236272364629924, 0.00000000000000021217042445384382907930079537057 +18.835195189585164, 7.0283321794508868, 0.00000000000000012235490900787635534319778693703 +18.835195189585164, 7.4180275837892902, 0.000000000000000044826200328317645433812177255292 +18.835195189585164, 7.6047038477460287, 0.000000000000000028238746485066300438727818308834 +18.835195189585164, 8.3839069082419186, 0.0000000000000000046151875584617070449867244252055 +18.835195189585164, 8.9537599097530531, 0.0000000000000000013639658511850106293642684788822 +18.835195189585164, 22.445567410957914, 0.000000000000000000000000065020078736338725576255135983052 +18.835195189585164, 34.508821612248553, 0.000000000000000000000000000026745717278816740880678801247807 +18.835195189585164, 36.835964339959254, 0.000000000000000000000000000008226707334808881053047846131146 +18.835195189585164, 41.993572536077544, 0.0000000000000000000000000000007730326834515841716991622803534 +18.835195189585164, 50.876045582169034, 0.000000000000000000000000000000024368730772950310594348799234212 +18.835195189585164, 58.390227406731306, 2.0441002755755750965753096785922e-33 +18.835195189585164, 67.106602838438278, 1.6771302636887969229338277820302e-34 +18.835195189585164, 72.048669943530001, 4.6811756635162862876373159690918e-35 +18.835195189585164, 155.01865387839101, 5.0999472353637236676469073543174e-41 +18.835195189585164, 4114.6359626379426, 1.9380133301361512383150793166682e-66 +18.835195189585164, 4782.8664069509177, 1.3230414853927412928254670024703e-67 +18.835195189585164, 5832.707445185928, 3.8402191489842557579347483725874e-69 +18.835195189585164, 5833.7720691748864, 3.8277381082637811760364427369586e-69 +18.835195189585164, 7530.5851892046458, 4.0293898332313242264569419588958e-71 +18.835195189585164, 9437.1798177813107, 7.1952424940146575540415947693895e-73 +18.835195189585164, 9714.4816444201169, 4.2925296986070040575155358598569e-73 +18.835195189585164, 91324.597438782046, 1.8867461379600197508494526823545e-90 +18.835195189585164, 204107.60705372499, 1.1126690437864049964551732963973e-96 +18.835195189585164, 256840.68070942213, 1.8464060323812813072386025929402e-98 +18.835195189585164, 350404.81974375149, 7.248426246669527007367879997849e-101 +18.835195189585164, 691957.37069411715, 3.8884165491995351696501566197839e-106 +18.835195189585164, 791516.81386457232, 3.5362179571369695091306913425246e-107 +18.835195189585164, 882912.76389201777, 5.0364213914570750966818041805076e-108 +18.835195189585164, 911565.62206585333, 2.8493461669803159134002087406722e-108 +18.835195189585164, 123333475.34928627, 2.7714929631594428602793110124005e-146 +18.835195189585164, 124024988.06286132, 2.5084527360613175498192640232506e-146 +18.835195189585164, 463375421.34817523, 1.5492292744376446368149023821198e-156 +18.835195189585164, 748226466.1031605, 3.010303539941354123366433551209e-160 +18.835195189585164, 751185522.51509035, 2.8056804640434716094123151960149e-160 +18.835195189585164, 803966868.32924354, 8.3572134053639446019616620091964e-161 +18.835195189585164, 968335952.49933791, 3.0282619349615858470826185870207e-162 +18.835195189585164, 977667584.00078595, 2.5521547989318723371800169338806e-162 +19.672902052767473, 1.2041330017152543, 0.025876303355452395223724660561692 +19.672902052767473, 1.2265460891928393, 0.018002564228411879906175834178523 +19.672902052767473, 1.3496515186903868, 0.0027426490994162816933046545647594 +19.672902052767473, 1.4561891368135123, 0.00061524389659312797079667798166963 +19.672902052767473, 1.505408944679143, 0.0003199189069093041093743699652382 +19.672902052767473, 2.7166669767929994, 0.0000000028984372439338981497839188432003 +19.672902052767473, 2.7260544040973071, 0.0000000027083739352784410528560694950806 +19.672902052767473, 2.730289055066077, 0.0000000026269673584891418297405189153086 +19.672902052767473, 4.0517276803019504, 0.0000000000011265460403408171704379836746606 +19.672902052767473, 4.2124817875077527, 0.00000000000052513046224113198702407145211223 +19.672902052767473, 6.1617242039464699, 0.00000000000000030765376556132004218658156149575 +19.672902052767473, 6.8092092252252261, 0.00000000000000004383861583235709390722320852744 +19.672902052767473, 6.8236272364629924, 0.000000000000000042068744718876599196955424475098 +19.672902052767473, 7.0283321794508868, 0.000000000000000023655376306411696755587614239454 +19.672902052767473, 7.4180275837892902, 0.0000000000000000082757992130696428434371734534321 +19.672902052767473, 7.6047038477460287, 0.000000000000000005103808354393931015080917914104 +19.672902052767473, 8.3839069082419186, 0.00000000000000000076735631153350738793784424648258 +19.672902052767473, 8.9537599097530531, 0.000000000000000000214371609501029748467298165932 +19.672902052767473, 22.445567410957914, 0.0000000000000000000000000046590728122095030936367697228318 +19.672902052767473, 34.508821612248553, 0.0000000000000000000000000000013298657553242855535870561215603 +19.672902052767473, 36.835964339959254, 0.00000000000000000000000000000038704341417790584517474841424012 +19.672902052767473, 41.993572536077544, 0.000000000000000000000000000000032549309472869996450348971150182 +19.672902052767473, 50.876045582169034, 8.7239050951440799618248157469163e-34 +19.672902052767473, 58.390227406731306, 6.5140716477922626997207202423577e-35 +19.672902052767473, 67.106602838438278, 4.752608114693314281656798135095e-36 +19.672902052767473, 72.048669943530001, 1.2493889467682037051063439390527e-36 +19.672902052767473, 155.01865387839101, 7.1430483378598733932423335666342e-43 +19.672902052767473, 4114.6359626379426, 1.7366677984616124787024885416166e-69 +19.672902052767473, 4782.8664069509177, 1.0451470949709787312053548758381e-70 +19.672902052767473, 5832.707445185928, 2.5689634239694232587531885980641e-72 +19.672902052767473, 5833.7720691748864, 2.5602225777456111131591214438149e-72 +19.672902052767473, 7530.5851892046458, 2.1761230502262698456896084097608e-74 +19.672902052767473, 9437.1798177813107, 3.216459858824745184939065173057e-76 +19.672902052767473, 9714.4816444201169, 1.8728771178288613378936046736195e-76 +19.672902052767473, 91324.597438782046, 1.2596882881544421421503453982565e-94 +19.672902052767473, 204107.60705372499, 3.7872803733839449644831134216669e-101 +19.672902052767473, 256840.68070942213, 5.1841966016976108369948369599387e-103 +19.672902052767473, 350404.81974375149, 1.5688661361355806800354447083873e-105 +19.672902052767473, 691957.37069411715, 4.7595352622489593256872958559193e-111 +19.672902052767473, 791516.81386457232, 3.8674504390252158988192048087791e-112 +19.672902052767473, 882912.76389201777, 5.0263435397788102229616165071078e-113 +19.672902052767473, 911565.62206585333, 2.7685744262672439651043279318056e-113 +19.672902052767473, 123333475.34928627, 4.4139333448955336750728511300231e-153 +19.672902052767473, 124024988.06286132, 3.9763423852599024428343195980971e-153 +19.672902052767473, 463375421.34817523, 8.1408583447929751181142452331433e-164 +19.672902052767473, 748226466.1031605, 1.0588585154990011239179507278845e-167 +19.672902052767473, 751185522.51509035, 9.83625780322149299626500184391e-168 +19.672902052767473, 803966868.32924354, 2.76788742090639493835816396473e-168 +19.672902052767473, 968335952.49933791, 8.5823018432141976735156391940881e-170 +19.672902052767473, 977667584.00078595, 7.1751036232213900712303871987837e-170 +20.496411460832384, 1.2041330017152543, 0.022205721710504749826472077151583 +20.496411460832384, 1.2265460891928393, 0.015216017828224619409587319535435 +20.496411460832384, 1.3496515186903868, 0.0021425381956043748333911375053679 +20.496411460832384, 1.4561891368135123, 0.00045147190936711127201147539420323 +20.496411460832384, 1.505408944679143, 0.00022841947790585926093923573552799 +20.496411460832384, 2.7166669767929994, 0.0000000012720981574212866888757237054648 +20.496411460832384, 2.7260544040973071, 0.0000000011853000247430149666613558416182 +20.496411460832384, 2.730289055066077, 0.0000000011482003929292803665946594631352 +20.496411460832384, 4.0517276803019504, 0.00000000000035511890422646201455629860119643 +20.496411460832384, 4.2124817875077527, 0.00000000000016026949223098319510019148033578 +20.496411460832384, 6.1617242039464699, 0.00000000000000006836717385728096072105195980109 +20.496411460832384, 6.8092092252252261, 0.000000000000000008959510931141487114487112539061 +20.496411460832384, 6.8236272364629924, 0.0000000000000000085825589752651806191174055600104 +20.496411460832384, 7.0283321794508868, 0.0000000000000000047078375950988881751591464899776 +20.496411460832384, 7.4180275837892902, 0.0000000000000000015741163663641201737820719628678 +20.496411460832384, 7.6047038477460287, 0.00000000000000000095073688735733288934800347077727 +20.496411460832384, 8.3839069082419186, 0.00000000000000000013169822567018268888120172236048 +20.496411460832384, 8.9537599097530531, 0.000000000000000000034813512448040953836821394494162 +20.496411460832384, 22.445567410957914, 0.00000000000000000000000000034974949151398678565865377067947 +20.496411460832384, 34.508821612248553, 0.000000000000000000000000000000069708296082094392054501289589464 +20.496411460832384, 36.835964339959254, 0.000000000000000000000000000000019214366294220105141363075906972 +20.496411460832384, 41.993572536077544, 1.4489032919289598621923316843545e-33 +20.496411460832384, 50.876045582169034, 3.3108645900159207663945351659255e-35 +20.496411460832384, 58.390227406731306, 2.2050274481296013459516735225189e-36 +20.496411460832384, 67.106602838438278, 1.4334225366754427727791422673208e-37 +20.496411460832384, 72.048669943530001, 3.5527051013880859660085787382794e-38 +20.496411460832384, 155.01865387839101, 1.0776305904805768964865972465335e-44 +20.496411460832384, 4114.6359626379426, 1.7562299980842259144748929001487e-72 +20.496411460832384, 4782.8664069509177, 9.3371433557155533060707446518355e-74 +20.496411460832384, 5832.707445185928, 1.9490194223040906562039001320953e-75 +20.496411460832384, 5833.7720691748864, 1.9420959817627419307349012196137e-75 +20.496411460832384, 7530.5851892046458, 1.3377020544074850696724845396489e-77 +20.496411460832384, 9437.1798177813107, 1.6418528972454097893843423843992e-79 +20.496411460832384, 9714.4816444201169, 9.3348478184355204484392818895478e-80 +20.496411460832384, 91324.597438782046, 9.9181687154035238871444611919304e-99 +20.496411460832384, 204107.60705372499, 1.5376817902472048082320569677111e-105 +20.496411460832384, 256840.68070942213, 1.7419282110641700231873285089032e-107 +20.496411460832384, 350404.81974375149, 4.0816702807261735222623231990499e-110 +20.496411460832384, 691957.37069411715, 7.070687842321069631190358769422e-116 +20.496411460832384, 791516.81386457232, 5.1433336474518525867748595610931e-117 +20.496411460832384, 882912.76389201777, 6.1092832933986334536596664190555e-118 +20.496411460832384, 911565.62206585333, 3.2777218726589443458773098759018e-118 +20.496411460832384, 123333475.34928627, 9.183360000894550514636806515093e-160 +20.496411460832384, 124024988.06286132, 8.2349306446688089851706393129137e-160 +20.496411460832384, 463375421.34817523, 5.6944264171858192946020222428486e-171 +20.496411460832384, 748226466.1031605, 4.9916641106437503344132227844994e-175 +20.496411460832384, 751185522.51509035, 4.6219549701715190614163577754512e-175 +20.496411460832384, 803966868.32924354, 1.2298670337189755116115819943924e-175 +20.496411460832384, 968335952.49933791, 3.2717787209773136899006888466923e-177 +20.496411460832384, 977667584.00078595, 2.7138026899303874746031165876437e-177 +21.810311386916062, 1.2041330017152543, 0.017396654460109468209143943021101 +21.810311386916062, 1.2265460891928393, 0.011635314126147184603607089274816 +21.810311386916062, 1.3496515186903868, 0.0014448665891258085376018598535855 +21.810311386916062, 1.4561891368135123, 0.00027553330306630263088611237542842 +21.810311386916062, 1.505408944679143, 0.00013344635312617039777707654849699 +21.810311386916062, 2.7166669767929994, 0.00000000034197939504582077163047964164096 +21.810311386916062, 2.7260544040973071, 0.00000000031720146595985198506424071510061 +21.810311386916062, 2.730289055066077, 0.00000000030664580692275301233989610112842 +21.810311386916062, 4.0517276803019504, 0.000000000000056333698374434893844802943637836 +21.810311386916062, 4.2124817875077527, 0.000000000000024147663643040965431819321084049 +21.810311386916062, 6.1617242039464699, 0.0000000000000000062141042004594336642700676393798 +21.810311386916062, 6.8092092252252261, 0.00000000000000000071269552452744369960457914970228 +21.810311386916062, 6.8236272364629924, 0.00000000000000000068078450537733564549629167784157 +21.810311386916062, 7.0283321794508868, 0.00000000000000000035897650775660456116626267369399 +21.810311386916062, 7.4180275837892902, 0.00000000000000000011167521833686931996517837349871 +21.810311386916062, 7.6047038477460287, 0.000000000000000000065244868275916343648323888301495 +21.810311386916062, 8.3839069082419186, 0.0000000000000000000079319203262273857508832766829122 +21.810311386916062, 8.9537599097530531, 0.0000000000000000000019200134496351656097038351000022 +21.810311386916062, 22.445567410957914, 0.0000000000000000000000000000056369311670493133250612438490834 +21.810311386916062, 34.508821612248553, 6.3352128333339404590536139680033e-34 +21.810311386916062, 36.835964339959254, 1.6011723649661922276426732109759e-34 +21.810311386916062, 41.993572536077544, 1.0145740409091977616661527205858e-35 +21.810311386916062, 50.876045582169034, 1.7975462879113157712163329142772e-37 +21.810311386916062, 58.390227406731306, 9.9749580630425444609044209360864e-39 +21.810311386916062, 67.106602838438278, 5.3939917089629137940050178505789e-40 +21.810311386916062, 72.048669943530001, 1.2169786593841515106213898899478e-40 +21.810311386916062, 155.01865387839101, 1.3427743473270917709081065465142e-47 +21.810311386916062, 4114.6359626379426, 2.933978980849562510740818185573e-77 +21.810311386916062, 4782.8664069509177, 1.2799930812000608187233804851279e-78 +21.810311386916062, 5832.707445185928, 2.0585650236857650046580432101324e-80 +21.810311386916062, 5833.7720691748864, 2.0507605748019849531945838748311e-80 +21.810311386916062, 7530.5851892046458, 1.0099698090812370518185013363334e-82 +21.810311386916062, 9437.1798177813107, 9.215006726947380082331949737124e-85 +21.810311386916062, 9714.4816444201169, 5.0436198526335914653221268985318e-85 +21.810311386916062, 91324.597438782046, 2.8209463012378112791531047548358e-105 +21.810311386916062, 204107.60705372499, 1.5202687681798621077382738972295e-112 +21.810311386916062, 256840.68070942213, 1.2733581833145237082733398551143e-114 +21.810311386916062, 350404.81974375149, 1.9838308062499010265668237521477e-117 +21.810311386916062, 691957.37069411715, 1.4055890558415386319217240198777e-123 +21.810311386916062, 791516.81386457232, 8.5690921504506418046882703635613e-125 +21.810311386916062, 882912.76389201777, 8.8170994404072781650270576640311e-126 +21.810311386916062, 911565.62206585333, 4.536110065435247465712126383125e-126 +21.810311386916062, 123333475.34928627, 2.0128296788815634778038482916445e-170 +21.810311386916062, 124024988.06286132, 1.7917397128640820744518701097531e-170 +21.810311386916062, 463375421.34817523, 2.1925896968888349602744373945179e-182 +21.810311386916062, 748226466.1031605, 1.0240710007856873674688910873506e-186 +21.810311386916062, 751185522.51509035, 9.4331819513495806178099110767899e-187 +21.810311386916062, 803966868.32924354, 2.2958447389883811956092518247636e-187 +21.810311386916062, 968335952.49933791, 4.7832276982667673011042246996629e-189 +21.810311386916062, 977667584.00078595, 3.9178048379771434239373832252525e-189 +22.320151861033789, 1.2041330017152543, 0.015824661048205387070886068621471 +22.320151861033789, 1.2265460891928393, 0.010484874319470984069927514718815 +22.320151861033789, 1.3496515186903868, 0.0012400376813593441706071458606494 +22.320151861033789, 1.4561891368135123, 0.00022748770455993722684867796616596 +22.320151861033789, 1.505408944679143, 0.00010832526779906045945961800244816 +22.320151861033789, 2.7166669767929994, 0.0000000002054192392903888706316665608912 +22.320151861033789, 2.7260544040973071, 0.0000000001902003581414348190506965278883 +22.320151861033789, 2.730289055066077, 0.00000000018372528359962277000030697936807 +22.320151861033789, 4.0517276803019504, 0.000000000000027579242625408266023004711816673 +22.320151861033789, 4.2124817875077527, 0.000000000000011588255773508865885044742934584 +22.320151861033789, 6.1617242039464699, 0.0000000000000000024516480053999972343458167548627 +22.320151861033789, 6.8092092252252261, 0.00000000000000000026701886210814215134110265825915 +22.320151861033789, 6.8236272364629924, 0.00000000000000000025478398839766876637256958844532 +22.320151861033789, 7.0283321794508868, 0.00000000000000000013230706646813752954647866296377 +22.320151861033789, 7.4180275837892902, 0.000000000000000000040025279649484614563426331088739 +22.320151861033789, 7.6047038477460287, 0.000000000000000000023085010567854920714596655934179 +22.320151861033789, 8.3839069082419186, 0.0000000000000000000026680370402254451212938828106784 +22.320151861033789, 8.9537599097530531, 0.00000000000000000000062415918254992428045887677891539 +22.320151861033789, 22.445567410957914, 0.0000000000000000000000000000011372372638863363488547042991688 +22.320151861033789, 34.508821612248553, 1.0233907316809092727337411843922e-34 +22.320151861033789, 36.835964339959254, 2.5009488385801803643167402974891e-35 +22.320151861033789, 41.993572536077544, 1.4812567653553906472980142205357e-36 +22.320151861033789, 50.876045582169034, 2.377658914583012342795001101272e-38 +22.320151861033789, 58.390227406731306, 1.2292310969807396156754748611583e-39 +22.320151861033789, 67.106602838438278, 6.1887962441622976960990021195334e-41 +22.320151861033789, 72.048669943530001, 1.3463028106144390571284381259227e-41 +22.320151861033789, 155.01865387839101, 1.0033295303984261483644040701502e-48 +22.320151861033789, 4114.6359626379426, 4.1137673232882126992775986574146e-79 +22.320151861033789, 4782.8664069509177, 1.6621301824315997857982065979444e-80 +22.320151861033789, 5832.707445185928, 2.4158991412727091127853618913693e-82 +22.320151861033789, 5833.7720691748864, 2.4065160061507043844331009318738e-82 +22.320151861033789, 7530.5851892046458, 1.0405121978672846165325789312118e-84 +22.320151861033789, 9437.1798177813107, 8.461750609919374991662757279671e-87 +22.320151861033789, 9714.4816444201169, 4.5634585187192699213829275621094e-87 +22.320151861033789, 91324.597438782046, 8.1428399265082113867747555636515e-108 +22.320151861033789, 204107.60705372499, 2.9122461070300289416489494892351e-115 +22.320151861033789, 256840.68070942213, 2.1695703483821798487592517818178e-117 +22.320151861033789, 350404.81974375149, 2.8850078350162752008825513226755e-120 +22.320151861033789, 691957.37069411715, 1.4449006697860037663371072050385e-126 +22.320151861033789, 791516.81386457232, 8.2252578454435239507726978079128e-128 +22.320151861033789, 882912.76389201777, 8.0046915438831033548674441585998e-129 +22.320151861033789, 911565.62206585333, 4.051640298683584384754294738914e-129 +22.320151861033789, 123333475.34928627, 1.4727694116183702057261449070768e-174 +22.320151861033789, 124024988.06286132, 1.307268031047835060456236643059e-174 +22.320151861033789, 463375421.34817523, 8.1696277403759545155044121290345e-187 +22.320151861033789, 748226466.1031605, 2.9886642421516382199267562468362e-191 +22.320151861033789, 751185522.51509035, 2.7474597013108219911892741538815e-191 +22.320151861033789, 803966868.32924354, 6.4592182374142543044711397628523e-192 +22.320151861033789, 968335952.49933791, 1.2239665669815335358116787582614e-193 +22.320151861033789, 977667584.00078595, 9.9762593608448104451490539339513e-194 +23.555964997504226, 1.2041330017152543, 0.012578693782144619547734763304176 +23.555964997504226, 1.2265460891928393, 0.0081464080288108554809579009052613 +23.555964997504226, 1.3496515186903868, 0.00085606028456564797218960160496114 +23.555964997504226, 1.4561891368135123, 0.00014297149997063062196607959852312 +23.555964997504226, 1.505408944679143, 0.000065340081672333122572998546224437 +23.555964997504226, 2.7166669767929994, 0.000000000059720661683136603185779944828379 +23.555964997504226, 2.7260544040973071, 0.000000000055060614378419503579419240658728 +23.555964997504226, 2.730289055066077, 0.000000000053084104143970282677759163216751 +23.555964997504226, 4.0517276803019504, 0.0000000000000048851843651976642253998615031531 +23.555964997504226, 4.2124817875077527, 0.0000000000000019557665587827385235858187238238 +23.555964997504226, 6.1617242039464699, 0.00000000000000000025750853264440471402489615373143 +23.555964997504226, 6.8092092252252261, 0.000000000000000000024748119451774847458401276346432 +23.555964997504226, 6.8236272364629924, 0.000000000000000000023551648133271535487203067538638 +23.555964997504226, 7.0283321794508868, 0.000000000000000000011785358412042484683888151571237 +23.555964997504226, 7.4180275837892902, 0.0000000000000000000033319822719348627011436517934191 +23.555964997504226, 7.6047038477460287, 0.0000000000000000000018627500696377533953430803924365 +23.555964997504226, 8.3839069082419186, 0.00000000000000000000019046721530175684469808645861371 +23.555964997504226, 8.9537599097530531, 0.000000000000000000000041023463491855287426788944416973 +23.555964997504226, 22.445567410957914, 0.000000000000000000000000000000023533892660144301812366702205538 +23.555964997504226, 34.508821612248553, 1.235807564107812711121323216878e-36 +23.555964997504226, 36.835964339959254, 2.7835310028202878419255203627111e-37 +23.555964997504226, 41.993572536077544, 1.3997760081402223444669815086258e-38 +23.555964997504226, 50.876045582169034, 1.7686994265481737428742791914987e-40 +23.555964997504226, 58.390227406731306, 7.7021742747252924596431552739652e-42 +23.555964997504226, 67.106602838438278, 3.2612408706460127644199906062883e-43 +23.555964997504226, 72.048669943530001, 6.4943410950305048830689103881941e-44 +23.555964997504226, 155.01865387839101, 1.8696447527743304957870093082471e-51 +23.555964997504226, 4114.6359626379426, 1.3279922008363632319102645539339e-83 +23.555964997504226, 4782.8664069509177, 4.4549507363221952823179872914178e-85 +23.555964997504226, 5832.707445185928, 5.0668938539782017972039727366724e-87 +23.555964997504226, 5833.7720691748864, 5.0460761348105302029320752918116e-87 +23.555964997504226, 7530.5851892046458, 1.5913870110812431661924642179202e-89 +23.555964997504226, 9437.1798177813107, 9.7916365527738998821734832897666e-92 +23.555964997504226, 9714.4816444201169, 5.0950100065930572481549155467008e-92 +23.555964997504226, 91324.597438782046, 5.7009625897839535242333175145967e-114 +23.555964997504226, 204107.60705372499, 7.5468293329299828762537537512998e-122 +23.555964997504226, 256840.68070942213, 4.2322377853783109053356479443255e-124 +23.555964997504226, 350404.81974375149, 3.8337528739862560560330542653808e-127 +23.555964997504226, 691957.37069411715, 8.2817190985689909214861363901167e-134 +23.555964997504226, 791516.81386457232, 3.9928611680899278657018831712836e-135 +23.555964997504226, 882912.76389201777, 3.3949272114920672942578296370599e-136 +23.555964997504226, 911565.62206585333, 1.6518698772092272163074123303281e-136 +23.555964997504226, 123333475.34928627, 1.3950812099338755244266847097236e-184 +23.555964997504226, 124024988.06286132, 1.2297831628059928953688384222171e-184 +23.555964997504226, 463375421.34817523, 1.5074999850583630209991642772034e-197 +23.555964997504226, 748226466.1031605, 3.0504181291375586841577792319524e-202 +23.555964997504226, 751185522.51509035, 2.7905847468446132987643195469026e-202 +23.555964997504226, 803966868.32924354, 6.0325169260527431438437233230641e-203 +23.555964997504226, 968335952.49933791, 9.0834199175146870415514742132534e-205 +23.555964997504226, 977667584.00078595, 7.3164466406456583157505125709758e-205 +24.04488824777366, 1.2041330017152543, 0.011486609400952749398155275309891 +24.04488824777366, 1.2265460891928393, 0.0073723588182692847710309483663668 +24.04488824777366, 1.3496515186903868, 0.00073932558963601311072274265558089 +24.04488824777366, 1.4561891368135123, 0.0001189729042121455921474647945869 +24.04488824777366, 1.505408944679143, 0.000053495798226010291099046746741632 +24.04488824777366, 2.7166669767929994, 0.000000000036633257874408724874898549987366 +24.04488824777366, 2.7260544040973071, 0.00000000003371776469224905996185137689083 +24.04488824777366, 2.730289055066077, 0.000000000032482712440829409385827109292341 +24.04488824777366, 4.0517276803019504, 0.0000000000000024634323644471121804295772763637 +24.04488824777366, 4.2124817875077527, 0.00000000000000096755356052526063935959083585081 +24.04488824777366, 6.1617242039464699, 0.00000000000000000010561918492241749660723322417849 +24.04488824777366, 6.8092092252252261, 0.0000000000000000000096609732861963463263830831488184 +24.04488824777366, 6.8236272364629924, 0.0000000000000000000091842790378358563860500401720467 +24.04488824777366, 7.0283321794508868, 0.0000000000000000000045290591389339933024376689417098 +24.04488824777366, 7.4180275837892902, 0.0000000000000000000012466719929925726744741203017051 +24.04488824777366, 7.6047038477460287, 0.00000000000000000000068841677926609570223631287506021 +24.04488824777366, 8.3839069082419186, 0.000000000000000000000067064509198486250460503572047277 +24.04488824777366, 8.9537599097530531, 0.000000000000000000000013980381230496252498420753466023 +24.04488824777366, 22.445567410957914, 5.0784519904791273921395096043802e-33 +24.04488824777366, 34.508821612248553, 2.1550356129708142260703581347316e-37 +24.04488824777366, 36.835964339959254, 4.6999018510047770933103292292933e-38 +24.04488824777366, 41.993572536077544, 2.2153342208202628008168763442496e-39 +24.04488824777366, 50.876045582169034, 2.5463745748781136970214459191873e-41 +24.04488824777366, 58.390227406731306, 1.0360934133766209361782983798607e-42 +24.04488824777366, 67.106602838438278, 4.0965383690169324864606771529132e-44 +24.04488824777366, 72.048669943530001, 7.8774153334322867395983190213402e-45 +24.04488824777366, 155.01865387839101, 1.5566285004363707436639931127331e-52 +24.04488824777366, 4114.6359626379426, 2.2221708463996818257129009766945e-85 +24.04488824777366, 4782.8664069509177, 6.9257490766314974693995000114401e-87 +24.04488824777366, 5832.707445185928, 7.1486709570760356189141246380857e-89 +24.04488824777366, 5833.7720691748864, 7.1186647932740802259368790835836e-89 +24.04488824777366, 7530.5851892046458, 1.9815498605073197292257089463372e-91 +24.04488824777366, 9437.1798177813107, 1.091843903789304052127796941775e-93 +24.04488824777366, 9714.4816444201169, 5.6014518219193358316659868218717e-94 +24.04488824777366, 91324.597438782046, 2.0955086849288385253959634506601e-116 +24.04488824777366, 204107.60705372499, 1.8721396457734533874231927147791e-124 +24.04488824777366, 256840.68070942213, 9.3831112428144872143264246698919e-127 +24.04488824777366, 350404.81974375149, 7.3020029244977506412756711604571e-130 +24.04488824777366, 691957.37069411715, 1.1309850969767897052527094678109e-136 +24.04488824777366, 791516.81386457232, 5.1059533676872858893625643336773e-138 +24.04488824777366, 882912.76389201777, 4.1154747244413780492186211517645e-139 +24.04488824777366, 911565.62206585333, 1.9714413706513471157919207172212e-139 +24.04488824777366, 123333475.34928627, 1.5113626659678414927252084014844e-188 +24.04488824777366, 124024988.06286132, 1.3286498045404990012425390868021e-188 +24.04488824777366, 463375421.34817523, 8.5500370421448878181255883113251e-202 +24.04488824777366, 748226466.1031605, 1.3687530170317909430071477185511e-206 +24.04488824777366, 751185522.51509035, 1.2497491431053308394379985603438e-206 +24.04488824777366, 803966868.32924354, 2.6134089449707655200069657845594e-207 +24.04488824777366, 968335952.49933791, 3.5930158304838043816986181835202e-209 +24.04488824777366, 977667584.00078595, 2.8805373148768169587520773382915e-209 diff --git a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.zipf.3.properties b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.zipf.3.properties index 476790937..2b76e263c 100644 --- a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.zipf.3.properties +++ b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.zipf.3.properties @@ -19,7 +19,7 @@ variance = 3.5719600967876493 lower = 1 upper = 15 cdf.points = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 -# Reference values from scipy.stats (1.7.1) zipf(2.23, 15) +# Reference values from scipy.stats (1.7.1) zipfian(2.23, 15) cdf.values = \ 0. , 0.6924674979902014, 0.8400729855406271,\ 0.8998341423916065, 0.931297539617085 , 0.9504267165563961,\ diff --git a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.zipf.5.properties b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.zipf.5.properties new file mode 100644 index 000000000..8069f7bd0 --- /dev/null +++ b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.zipf.5.properties @@ -0,0 +1,44 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +parameters = 1500 2.23 +mean = 2.8078406400341707 +variance = 237.80763667804035 +lower = 1 +upper = 1500 +cdf.points = 0, 1, 2, 10, 20, 100, 1000, 1400, 1480, 1490, 1498, 1499, 1500 +# Reference values from scipy.stats (1.18.1) zipfian(2.23, 1500) +cdf.values = \ + 0. , 0.6793839804663769, 0.8242006021298353,\ + 0.9694700732079443, 0.9866211655284569, 0.9981650124548695,\ + 0.999955755489256 , 0.9999939389122287, 0.9999988606992284,\ + 0.9999994346109918, 0.9999998875952036, 0.9999999438393927,\ + 1. +pmf.values = \ + 0.0000000000000000e+00, 6.7938398046637694e-01,\ + 1.4481662166345818e-01, 4.0005094644785166e-03,\ + 8.5274348856558132e-04, 2.3556746163481584e-05,\ + 1.3871240519188244e-07, 6.5501279360686049e-08,\ + 5.7867094478904714e-08, 5.7004602764855378e-08,\ + 5.6327951634616137e-08, 5.6244189259847323e-08,\ + 5.6160607179436723e-08 +sf.values = \ + 1.0000000000000000e+00, 3.2061601953362301e-01,\ + 1.7579939787016483e-01, 3.0529926792055753e-02,\ + 1.3378834471543130e-02, 1.8349875451304459e-03,\ + 4.4244510744057607e-05, 6.0610877713223825e-06,\ + 1.1393007716559116e-06, 5.6538900821481440e-07,\ + 1.1240479643928405e-07, 5.6160607179436723e-08,\ + 0.0000000000000000e+00 diff --git a/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.zipf.6.properties b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.zipf.6.properties new file mode 100644 index 000000000..2a25ad605 --- /dev/null +++ b/commons-statistics-distribution/src/test/resources/org/apache/commons/statistics/distribution/test.zipf.6.properties @@ -0,0 +1,48 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Chosen to trigger mixed use of the zeta function in the CDF +# zeta(1.03, 1) = 33.913 +# zeta(1.03, 11) = 31.063 : 31.063 / 33.913 = 0.916 +# zeta(1.03, 15000) = 24.980 : 24.980 / 33.913 = 0.736 +parameters = 15000 1.03 +mean = 1297.3454661861774 +variance = 7899568.145569441 +lower = 1 +upper = 15000 +cdf.points = 0, 1, 2, 10, 100, 1000, 5000, 10000, 14000, 14900, 14990, 14998, 14999, 15000 +# Reference values from scipy.stats (1.18.1) zipfian(1.03, 15000) +cdf.values = \ + 0. , 0.11195013330273845, 0.16677324973987057,\ + 0.319070742935133 , 0.5468715627914645 , 0.7633638796885669 ,\ + 0.9063008653138818 , 0.9657767683975667 , 0.9942059773775886 ,\ + 0.9994387828696124 , 0.9999440519631826 , 0.9999888134665544 ,\ + 0.9999944069253194 , 1. +pmf.values = \ + 0.0000000000000000e+00, 1.1195013330273845e-01,\ + 5.4823116437132113e-02, 1.0447794337957712e-02,\ + 9.7504489997414848e-04, 9.0996484637104598e-05,\ + 1.7341454093654414e-05, 8.4922860644985181e-06,\ + 6.0049962190942215e-06, 5.6317421009313979e-06,\ + 5.5969178591540315e-06, 5.5938429002196576e-06,\ + 5.5934587644489349e-06, 5.5930746806645358e-06 +sf.values = \ + 1.0000000000000000e+00, 8.8804986669726238e-01,\ + 8.3322675026013027e-01, 6.8092925706486807e-01,\ + 4.5312843720853546e-01, 2.3663612031143266e-01,\ + 9.3699134686117999e-02, 3.4223231602433762e-02,\ + 5.7940226224110197e-03, 5.6121713038718817e-04,\ + 5.5948036817508440e-05, 1.1186533445113472e-05,\ + 5.5930746806645358e-06, 0.0000000000000000e+0 diff --git a/src/changes/changes.xml b/src/changes/changes.xml index fc14f6d50..d74f096fe 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -53,6 +53,10 @@ If the output is not quite correct, check for invisible trailing spaces! + + "ZipfDistribution": Use the Hurwitz zeta function when parameters are suitable + for a significant performance improvment when the number of elements is large. + "MannWhitneyUTest": Limit the allocation size for the exact p-value computation. The maximum byte allocation can be configured using a system