From 2a8a209202d43d9e926668f45f77080e33cb76d1 Mon Sep 17 00:00:00 2001 From: jmoo2880 Date: Sat, 25 Jul 2026 13:06:30 +1000 Subject: [PATCH 1/9] fix memory leak for early exit --- src/C/CO_AutoCorr.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/C/CO_AutoCorr.c b/src/C/CO_AutoCorr.c index dd475fb..5b20186 100644 --- a/src/C/CO_AutoCorr.c +++ b/src/C/CO_AutoCorr.c @@ -291,6 +291,7 @@ double CO_Embed2_Dist_tau_d_expfit_meandiff(const double y[], const int size) int nBins = num_bins_auto(d, size-tau-1); if (nBins == 0){ + free(d); return 0; } int * histCounts = malloc(nBins * sizeof(double)); From a7382f4f23e46393a189b42a229337e4e11c7f84 Mon Sep 17 00:00:00 2001 From: jmoo2880 Date: Sat, 25 Jul 2026 13:07:15 +1000 Subject: [PATCH 2/9] guard against size <= train_length in FC_LocalSimple --- src/C/FC_LocalSimple.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/C/FC_LocalSimple.c b/src/C/FC_LocalSimple.c index d88ead8..111db09 100644 --- a/src/C/FC_LocalSimple.c +++ b/src/C/FC_LocalSimple.c @@ -31,6 +31,11 @@ double FC_LocalSimple_mean_tauresrat(const double y[], const int size, const int } } + if(size <= train_length) + { + return NAN; + } + double * res = malloc((size - train_length) * sizeof *res); for (int i = 0; i < size - train_length; i++) @@ -66,6 +71,11 @@ double FC_LocalSimple_mean_stderr(const double y[], const int size, const int tr } } + if(size <= train_length) + { + return NAN; + } + double * res = malloc((size - train_length) * sizeof *res); for (int i = 0; i < size - train_length; i++) @@ -99,6 +109,11 @@ double FC_LocalSimple_mean1_tauresrat(const double y[], const int size){ double FC_LocalSimple_mean_taures(const double y[], const int size, const int train_length) { + if(size <= train_length) + { + return NAN; + } + double * res = malloc((size - train_length) * sizeof *res); // first z-score @@ -130,6 +145,11 @@ double FC_LocalSimple_lfit_taures(const double y[], const int size) // set tau from first AC zero crossing int train_length = co_firstzero(y, size, size); + if(size <= train_length) + { + return NAN; + } + double * xReg = malloc(train_length * sizeof * xReg); // double * yReg = malloc(train_length * sizeof * yReg); for(int i = 1; i < train_length+1; i++) From 42c2479d6991eb3cf5fe4049798caf86a2d7be80 Mon Sep 17 00:00:00 2001 From: jmoo2880 Date: Sat, 25 Jul 2026 13:09:41 +1000 Subject: [PATCH 3/9] use logical operators instead of bitwise in conditionals --- src/C/IN_AutoMutualInfoStats.c | 2 +- src/C/PD_PeriodicityWang.c | 4 ++-- src/C/SB_BinaryStats.c | 4 ++-- src/C/SP_Summaries.c | 4 ++-- src/C/splinefit.c | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/C/IN_AutoMutualInfoStats.c b/src/C/IN_AutoMutualInfoStats.c index e98de9e..7b09477 100644 --- a/src/C/IN_AutoMutualInfoStats.c +++ b/src/C/IN_AutoMutualInfoStats.c @@ -41,7 +41,7 @@ double IN_AutoMutualInfoStats_40_gaussian_fmmi(const double y[], const int size) // find first minimum of automutual information double fmmi = tau; for(int i = 1; i < tau-1; i++){ - if(ami[i] < ami[i-1] & ami[i] < ami[i+1]){ + if(ami[i] < ami[i-1] && ami[i] < ami[i+1]){ fmmi = i; // printf("found minimum at %i\n", i); break; diff --git a/src/C/PD_PeriodicityWang.c b/src/C/PD_PeriodicityWang.c index 75bfd9d..6ebf586 100644 --- a/src/C/PD_PeriodicityWang.c +++ b/src/C/PD_PeriodicityWang.c @@ -63,13 +63,13 @@ int PD_PeriodicityWang_th0_01(const double * y, const int size){ slopeIn = acf[i] - acf[i-1]; slopeOut = acf[i+1] - acf[i]; - if(slopeIn < 0 & slopeOut > 0) + if(slopeIn < 0 && slopeOut > 0) { // printf("trough at %i\n", i); troughs[nTroughs] = i; nTroughs += 1; } - else if(slopeIn > 0 & slopeOut < 0) + else if(slopeIn > 0 && slopeOut < 0) { // printf("peak at %i\n", i); peaks[nPeaks] = i; diff --git a/src/C/SB_BinaryStats.c b/src/C/SB_BinaryStats.c index 71fa3d8..58e2115 100644 --- a/src/C/SB_BinaryStats.c +++ b/src/C/SB_BinaryStats.c @@ -37,7 +37,7 @@ double SB_BinaryStats_diff_longstretch0(const double y[], const int size){ int maxstretch0 = 0; int last1 = 0; for(int i = 0; i < size-1; i++){ - if(yBin[i] == 1 | i == size-2){ + if(yBin[i] == 1 || i == size-2){ double stretch0 = i - last1; if(stretch0 > maxstretch0){ maxstretch0 = stretch0; @@ -75,7 +75,7 @@ double SB_BinaryStats_mean_longstretch1(const double y[], const int size){ int maxstretch1 = 0; int last1 = 0; for(int i = 0; i < size-1; i++){ - if(yBin[i] == 0 | i == size-2){ + if(yBin[i] == 0 || i == size-2){ double stretch1 = i - last1; if(stretch1 > maxstretch1){ maxstretch1 = stretch1; diff --git a/src/C/SP_Summaries.c b/src/C/SP_Summaries.c index 797d07b..b511df4 100644 --- a/src/C/SP_Summaries.c +++ b/src/C/SP_Summaries.c @@ -83,7 +83,7 @@ int welch(const double y[], const int size, const int NFFT, const double Fs, con *Pxx = malloc(Nout * sizeof(double)); for(int i = 0; i < Nout; i++){ (*Pxx)[i] = P[i]/KMU*dt; - if(i>0 & i < Nout-1){ + if(i>0 && i < Nout-1){ (*Pxx)[i] *= 2; } } @@ -148,7 +148,7 @@ double SP_Summaries_welch_rect(const double y[], const int size, const char what w[i] = 2*PI*f[i]; Sw[i] = S[i]/(2*PI); //printf("w[%i]=%1.3f, Sw[%i]=%1.3f\n", i, w[i], i, Sw[i]); - if(isinf(Sw[i]) | isinf(-Sw[i])){ + if(isinf(Sw[i]) || isinf(-Sw[i])){ return 0; } } diff --git a/src/C/splinefit.c b/src/C/splinefit.c index 9eb1712..802298c 100644 --- a/src/C/splinefit.c +++ b/src/C/splinefit.c @@ -603,7 +603,7 @@ int splinefit(const double *y, const int size, double *yOut) int breakInd = 1; for(int i = 0; i < size; i++){ - if(i >= breaks[breakInd] & breakInd= breaks[breakInd] && breakInd Date: Tue, 28 Jul 2026 05:39:48 +1000 Subject: [PATCH 4/9] replace vendored C code with git submodule drawing from catch22 --- .github/workflows/run_unit_tests.yaml | 2 + .gitmodules | 3 + MANIFEST.in | 1 + README.md | 8 + setup.py | 11 +- src/C/CO_AutoCorr.c | 552 ------------------ src/C/CO_AutoCorr.h | 35 -- src/C/DN_HistogramMode_10.c | 113 ---- src/C/DN_HistogramMode_10.h | 9 - src/C/DN_HistogramMode_5.c | 123 ---- src/C/DN_HistogramMode_5.h | 9 - src/C/DN_Mean.c | 11 - src/C/DN_Mean.h | 12 - src/C/DN_OutlierInclude.c | 213 ------- src/C/DN_OutlierInclude.h | 14 - src/C/DN_Spread_Std.c | 13 - src/C/DN_Spread_Std.h | 12 - src/C/FC_LocalSimple.c | 183 ------ src/C/FC_LocalSimple.h | 16 - src/C/IN_AutoMutualInfoStats.c | 54 -- src/C/IN_AutoMutualInfoStats.h | 16 - src/C/MD_hrv.c | 40 -- src/C/MD_hrv.h | 16 - src/C/PD_PeriodicityWang.c | 137 ----- src/C/PD_PeriodicityWang.h | 16 - src/C/SB_BinaryStats.c | 91 --- src/C/SB_BinaryStats.h | 17 - src/C/SB_CoarseGrain.c | 40 -- src/C/SB_CoarseGrain.h | 12 - src/C/SB_MotifThree.c | 375 ------------ src/C/SB_MotifThree.h | 12 - src/C/SB_TransitionMatrix.c | 163 ------ src/C/SB_TransitionMatrix.h | 15 - src/C/SC_FluctAnal.c | 350 ----------- src/C/SC_FluctAnal.h | 11 - src/C/SP_Summaries.c | 213 ------- src/C/SP_Summaries.h | 17 - src/C/butterworth.c | 298 ---------- src/C/butterworth.h | 15 - src/C/fft.c | 61 -- src/C/fft.h | 26 - src/C/helper_functions.c | 179 ------ src/C/helper_functions.h | 34 -- src/C/histcounts.c | 200 ------- src/C/histcounts.h | 22 - src/C/main.c | 420 -------------- src/C/main.h | 16 - src/C/runAllTS.sh | 71 --- src/C/splinefit.c | 801 -------------------------- src/C/splinefit.h | 16 - src/C/stats.c | 270 --------- src/C/stats.h | 28 - src/catch22 | 1 + src/{C => wrapper}/catch22_wrap.c | 0 54 files changed, 22 insertions(+), 5371 deletions(-) create mode 100644 .gitmodules delete mode 100644 src/C/CO_AutoCorr.c delete mode 100644 src/C/CO_AutoCorr.h delete mode 100644 src/C/DN_HistogramMode_10.c delete mode 100644 src/C/DN_HistogramMode_10.h delete mode 100644 src/C/DN_HistogramMode_5.c delete mode 100644 src/C/DN_HistogramMode_5.h delete mode 100644 src/C/DN_Mean.c delete mode 100644 src/C/DN_Mean.h delete mode 100644 src/C/DN_OutlierInclude.c delete mode 100644 src/C/DN_OutlierInclude.h delete mode 100644 src/C/DN_Spread_Std.c delete mode 100644 src/C/DN_Spread_Std.h delete mode 100644 src/C/FC_LocalSimple.c delete mode 100644 src/C/FC_LocalSimple.h delete mode 100644 src/C/IN_AutoMutualInfoStats.c delete mode 100644 src/C/IN_AutoMutualInfoStats.h delete mode 100644 src/C/MD_hrv.c delete mode 100644 src/C/MD_hrv.h delete mode 100644 src/C/PD_PeriodicityWang.c delete mode 100644 src/C/PD_PeriodicityWang.h delete mode 100644 src/C/SB_BinaryStats.c delete mode 100644 src/C/SB_BinaryStats.h delete mode 100644 src/C/SB_CoarseGrain.c delete mode 100644 src/C/SB_CoarseGrain.h delete mode 100644 src/C/SB_MotifThree.c delete mode 100644 src/C/SB_MotifThree.h delete mode 100644 src/C/SB_TransitionMatrix.c delete mode 100644 src/C/SB_TransitionMatrix.h delete mode 100644 src/C/SC_FluctAnal.c delete mode 100644 src/C/SC_FluctAnal.h delete mode 100644 src/C/SP_Summaries.c delete mode 100644 src/C/SP_Summaries.h delete mode 100644 src/C/butterworth.c delete mode 100644 src/C/butterworth.h delete mode 100644 src/C/fft.c delete mode 100644 src/C/fft.h delete mode 100644 src/C/helper_functions.c delete mode 100644 src/C/helper_functions.h delete mode 100644 src/C/histcounts.c delete mode 100644 src/C/histcounts.h delete mode 100644 src/C/main.c delete mode 100644 src/C/main.h delete mode 100755 src/C/runAllTS.sh delete mode 100644 src/C/splinefit.c delete mode 100644 src/C/splinefit.h delete mode 100644 src/C/stats.c delete mode 100644 src/C/stats.h create mode 160000 src/catch22 rename src/{C => wrapper}/catch22_wrap.c (100%) diff --git a/.github/workflows/run_unit_tests.yaml b/.github/workflows/run_unit_tests.yaml index 637ab41..ec05d46 100644 --- a/.github/workflows/run_unit_tests.yaml +++ b/.github/workflows/run_unit_tests.yaml @@ -12,6 +12,8 @@ jobs: python-version: ["3.8", "3.9", "3.10", "3.11"] steps: - uses: actions/checkout@v3 + with: + submodules: recursive - name: Setup python ${{ matrix.python-version }} uses: actions/setup-python@v4 with: diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..afd7b50 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "src/catch22"] + path = src/catch22 + url = https://github.com/DynamicsAndNeuralSystems/catch22.git diff --git a/MANIFEST.in b/MANIFEST.in index 11a5eb0..af6f3ed 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1 +1,2 @@ graft src +exclude src/catch22/.git diff --git a/README.md b/README.md index 077131d..85f5ca7 100644 --- a/README.md +++ b/README.md @@ -97,6 +97,14 @@ Thanks to [@jmoo2880](https://github.com/jmoo2880) for putting together a [demon ### Manual install +The upstream _catch22_ C sources are vendored as a git submodule, so clone with submodules before building from source: + +``` +git clone --recurse-submodules https://github.com/DynamicsAndNeuralSystems/pycatch22.git +``` + +(If you already cloned without `--recurse-submodules`, run `git submodule update --init` from the repository root.) + If you find issues with the `pip` install, you can also install using `setuptools`: ``` diff --git a/setup.py b/setup.py index fc2a169..d4bb667 100644 --- a/setup.py +++ b/setup.py @@ -2,11 +2,14 @@ import sysconfig import os -sourceDir = os.path.join("src", "C"); +# Upstream catch22 C sources live in a git submodule (src/catch22); the +# pycatch22-specific CPython wrapper lives alongside it in src/wrapper. +upstreamDir = os.path.join("src", "catch22", "C") +wrapDir = os.path.join("src", "wrapper") -sourceFileList = [os.path.join(sourceDir, file) for file in os.listdir(sourceDir) if file.endswith( +sourceFileList = [os.path.join(upstreamDir, file) for file in os.listdir(upstreamDir) if file.endswith( ".c") and not 'main' in file] - # and not (file == "sampen.c" or file == "run_features.c")] +sourceFileList.append(os.path.join(wrapDir, "catch22_wrap.c")) cflags = sysconfig.get_config_var('CFLAGS') if cflags is not None: @@ -19,7 +22,7 @@ # The c++ extension module: extension_mod = Extension(name = "catch22_C", sources = sourceFileList, - include_dirs = [sourceDir], + include_dirs = [upstreamDir], extra_compile_args = extra_compile_args) # Header files are here setup( diff --git a/src/C/CO_AutoCorr.c b/src/C/CO_AutoCorr.c deleted file mode 100644 index 5b20186..0000000 --- a/src/C/CO_AutoCorr.c +++ /dev/null @@ -1,552 +0,0 @@ -#if __cplusplus -# include -typedef std::complex< double > cplx; -#else -# include -#if defined(__GNUC__) || defined(__GNUG__) -typedef double complex cplx; -#elif defined(_MSC_VER) -typedef _Dcomplex cplx; -#endif -#endif - -#include -#include -#include -#include - -#include "stats.h" -#include "fft.h" -#include "histcounts.h" - -#include "helper_functions.h" - -#ifndef CMPLX -#define CMPLX(x, y) ((cplx)((double)(x) + _Imaginary_I * (double)(y))) -#endif -#define pow2(x) (1 << x) - -int nextpow2(int n) -{ - n--; - n |= n >> 1; - n |= n >> 2; - n |= n >> 4; - n |= n >> 8; - n |= n >> 16; - n++; - return n; -} - -/* -static void apply_conj(cplx a[], int size, int normalize) -{ - switch(normalize) { - case(1): - for (int i = 0; i < size; i++) { - a[i] = conj(a[i]) / size; - } - break; - default: - for (int i = 0; i < size; i++) { - a[i] = conj(a[i]); - } - break; - } -} - */ - -void dot_multiply(cplx a[], cplx b[], int size) -{ - for (int i = 0; i < size; i++) { - a[i] = _Cmulcc(a[i], conj(b[i])); - } -} - -double * CO_AutoCorr(const double y[], const int size, const int tau[], const int tau_size) -{ - double m, nFFT; - m = mean(y, size); - nFFT = nextpow2(size) << 1; - - cplx * F = malloc(nFFT * sizeof *F); - cplx * tw = malloc(nFFT * sizeof *tw); - for (int i = 0; i < size; i++) { - - #if defined(__GNUC__) || defined(__GNUG__) - F[i] = CMPLX(y[i] - m, 0.0); - #elif defined(_MSC_VER) - cplx tmp = { y[i] - m, 0.0 }; - F[i] = tmp; - #endif - - } - for (int i = size; i < nFFT; i++) { - #if defined(__GNUC__) || defined(__GNUG__) - F[i] = CMPLX(0.0, 0.0); - #elif defined(_MSC_VER) - cplx tmp = { 0.0, 0.0 }; - F[i] = tmp; // CMPLX(0.0, 0.0); - #endif - - } - // size = nFFT; - - twiddles(tw, nFFT); - fft(F, nFFT, tw); - dot_multiply(F, F, nFFT); - fft(F, nFFT, tw); - cplx divisor = F[0]; - for (int i = 0; i < nFFT; i++) { - //F[i] = F[i] / divisor; - F[i] = _Cdivcc(F[i], divisor); - } - - double * out = malloc(tau_size * sizeof(out)); - for (int i = 0; i < tau_size; i++) { - out[i] = creal(F[tau[i]]); - } - free(F); - free(tw); - return out; -} - -double * co_autocorrs(const double y[], const int size) -{ - double m, nFFT; - m = mean(y, size); - nFFT = nextpow2(size) << 1; - - cplx * F = malloc(nFFT * 2 * sizeof *F); - cplx * tw = malloc(nFFT * 2 * sizeof *tw); - for (int i = 0; i < size; i++) { - - #if defined(__GNUC__) || defined(__GNUG__) - F[i] = CMPLX(y[i] - m, 0.0); - #elif defined(_MSC_VER) - cplx tmp = { y[i] - m, 0.0 }; - F[i] = tmp; - #endif - } - for (int i = size; i < nFFT; i++) { - - #if defined(__GNUC__) || defined(__GNUG__) - F[i] = CMPLX(0.0, 0.0); - #elif defined(_MSC_VER) - cplx tmp = { 0.0, 0.0 }; - F[i] = tmp; - #endif - } - //size = nFFT; - - twiddles(tw, nFFT); - fft(F, nFFT, tw); - dot_multiply(F, F, nFFT); - fft(F, nFFT, tw); - cplx divisor = F[0]; - for (int i = 0; i < nFFT; i++) { - F[i] = _Cdivcc(F[i], divisor); // F[i] / divisor; - } - - double * out = malloc(nFFT * 2 * sizeof(out)); - for (int i = 0; i < nFFT; i++) { - out[i] = creal(F[i]); - } - free(F); - free(tw); - return out; -} - -int co_firstzero(const double y[], const int size, const int maxtau) -{ - - //double * autocorrs = malloc(size * sizeof * autocorrs); - //autocorrs = co_autocorrs(y, size); - - double * autocorrs = co_autocorrs(y, size); - - int zerocrossind = 0; - while(autocorrs[zerocrossind] > 0 && zerocrossind < maxtau) - { - zerocrossind += 1; - } - - free(autocorrs); - return zerocrossind; - -} - -double CO_f1ecac(const double y[], const int size) -{ - - // NaN check - for(int i = 0; i < size; i++) - { - if(isnan(y[i])) - { - return 0; - } - } - - // compute autocorrelations - double * autocorrs = co_autocorrs(y, size); - - // threshold to cross - double thresh = 1.0/exp(1); - - double out = (double)size; - for(int i = 0; i < size-2; i++){ - // printf("i=%d autocorrs_i=%1.3f\n", i, autocorrs[i]); - if ( autocorrs[i+1] < thresh ){ - double m = autocorrs[i+1] - autocorrs[i]; - double dy = thresh - autocorrs[i]; - double dx = dy/m; - out = ((double)i) + dx; - // printf("thresh=%1.3f AC(i)=%1.3f AC(i-1)=%1.3f m=%1.3f dy=%1.3f dx=%1.3f out=%1.3f\n", thresh, autocorrs[i], autocorrs[i-1], m, dy, dx, out); - free(autocorrs); - return out; - } - } - - free(autocorrs); - - return out; - -} - -double CO_Embed2_Basic_tau_incircle(const double y[], const int size, const double radius, const int tau) -{ - int tauIntern = 0; - - if(tau < 0) - { - tauIntern = co_firstzero(y, size, size); - } - else{ - tauIntern = tau; - } - - double insidecount = 0; - for(int i = 0; i < size-tauIntern; i++) - { - if(y[i]*y[i] + y[i+tauIntern]*y[i+tauIntern] < radius) - { - insidecount += 1; - } - } - - return insidecount/(size-tauIntern); -} - -double CO_Embed2_Dist_tau_d_expfit_meandiff(const double y[], const int size) -{ - - // NaN check - for(int i = 0; i < size; i++) - { - if(isnan(y[i])) - { - return NAN; - } - } - - int tau = co_firstzero(y, size, size); - - //printf("co_firstzero ran\n"); - - if (tau > (double)size/10){ - tau = floor((double)size/10); - } - //printf("tau = %i\n", tau); - - double * d = malloc((size-tau) * sizeof(double)); - for(int i = 0; i < size-tau-1; i++) - { - - d[i] = sqrt((y[i+1]-y[i])*(y[i+1]-y[i]) + (y[i+tau]-y[i+tau+1])*(y[i+tau]-y[i+tau+1])); - - //printf("d[%i]: %1.3f\n", i, d[i]); - if (isnan(d[i])){ - free(d); - return NAN; - } - - /* - if(i<100) - printf("%i, y[i]=%1.3f, y[i+1]=%1.3f, y[i+tau]=%1.3f, y[i+tau+1]=%1.3f, d[i]: %1.3f\n", i, y[i], y[i+1], y[i+tau], y[i+tau+1], d[i]); - */ - } - - //printf("embedding finished\n"); - - // mean for exponential fit - double l = mean(d, size-tau-1); - - // count histogram bin contents - /* - int * histCounts; - double * binEdges; - int nBins = histcounts(d, size-tau-1, -1, &histCounts, &binEdges); - */ - - int nBins = num_bins_auto(d, size-tau-1); - if (nBins == 0){ - free(d); - return 0; - } - int * histCounts = malloc(nBins * sizeof(double)); - double * binEdges = malloc((nBins + 1) * sizeof(double)); - histcounts_preallocated(d, size-tau-1, nBins, histCounts, binEdges); - - //printf("histcount ran\n"); - - // normalise to probability - double * histCountsNorm = malloc(nBins * sizeof(double)); - for(int i = 0; i < nBins; i++){ - //printf("histCounts %i: %i\n", i, histCounts[i]); - histCountsNorm[i] = (double)histCounts[i]/(double)(size-tau-1); - //printf("histCounts norm %i: %1.3f\n", i, histCountsNorm[i]); - } - - /* - for(int i = 0; i < nBins; i++){ - printf("histCounts[%i] = %i\n", i, histCounts[i]); - } - for(int i = 0; i < nBins; i++){ - printf("histCountsNorm[%i] = %1.3f\n", i, histCountsNorm[i]); - } - for(int i = 0; i < nBins+1; i++){ - printf("binEdges[%i] = %1.3f\n", i, binEdges[i]); - } - */ - - - //printf("histcounts normed\n"); - - double * d_expfit_diff = malloc(nBins * sizeof(double)); - for(int i = 0; i < nBins; i++){ - double expf = exp(-(binEdges[i] + binEdges[i+1])*0.5/l)/l; - if (expf < 0){ - expf = 0; - } - d_expfit_diff[i] = fabs(histCountsNorm[i]-expf); - //printf("d_expfit_diff %i: %1.3f\n", i, d_expfit_diff[i]); - } - - double out = mean(d_expfit_diff, nBins); - - //printf("out = %1.6f\n", out); - //printf("reached free statements\n"); - - // arrays created dynamically in function histcounts - free(d); - free(d_expfit_diff); - free(binEdges); - free(histCountsNorm); - free(histCounts); - - return out; - -} - -int CO_FirstMin_ac(const double y[], const int size) -{ - - // NaN check - for(int i = 0; i < size; i++) - { - if(isnan(y[i])) - { - return 0; - } - } - - double * autocorrs = co_autocorrs(y, size); - - int minInd = size; - for(int i = 1; i < size-1; i++) - { - if(autocorrs[i] < autocorrs[i-1] && autocorrs[i] < autocorrs[i+1]) - { - minInd = i; - break; - } - } - - free(autocorrs); - - return minInd; - -} - -double CO_trev_1_num(const double y[], const int size) -{ - - // NaN check - for(int i = 0; i < size; i++) - { - if(isnan(y[i])) - { - return NAN; - } - } - - int tau = 1; - - double * diffTemp = malloc((size-1) * sizeof * diffTemp); - - for(int i = 0; i < size-tau; i++) - { - diffTemp[i] = pow(y[i+1] - y[i],3); - } - - double out; - - out = mean(diffTemp, size-tau); - - free(diffTemp); - - return out; -} - -#define tau 2 -#define numBins 5 - -double CO_HistogramAMI_even_2_5(const double y[], const int size) -{ - - // NaN check - for(int i = 0; i < size; i++) - { - if(isnan(y[i])) - { - return NAN; - } - } - - //const int tau = 2; - //const int numBins = 5; - - double * y1 = malloc((size-tau) * sizeof(double)); - double * y2 = malloc((size-tau) * sizeof(double)); - - for(int i = 0; i < size-tau; i++){ - y1[i] = y[i]; - y2[i] = y[i+tau]; - } - - // set bin edges - const double maxValue = max_(y, size); - const double minValue = min_(y, size); - - double binStep = (maxValue - minValue + 0.2)/5; - //double binEdges[numBins+1] = {0}; - double binEdges[5+1] = {0}; - for(int i = 0; i < numBins+1; i++){ - binEdges[i] = minValue + binStep*i - 0.1; - // printf("binEdges[%i] = %1.3f\n", i, binEdges[i]); - } - - - // count histogram bin contents - int * bins1; - bins1 = histbinassign(y1, size-tau, binEdges, numBins+1); - - int * bins2; - bins2 = histbinassign(y2, size-tau, binEdges, numBins+1); - - /* - // debug - for(int i = 0; i < size-tau; i++){ - printf("bins1[%i] = %i, bins2[%i] = %i\n", i, bins1[i], i, bins2[i]); - } - */ - - // joint - double * bins12 = malloc((size-tau) * sizeof(double)); - //double binEdges12[(numBins + 1) * (numBins + 1)] = {0}; - double binEdges12[(5 + 1) * (5 + 1)] = {0}; - - for(int i = 0; i < size-tau; i++){ - bins12[i] = (bins1[i]-1)*(numBins+1) + bins2[i]; - // printf("bins12[%i] = %1.3f\n", i, bins12[i]); - } - - for(int i = 0; i < (numBins+1)*(numBins+1); i++){ - binEdges12[i] = i+1; - // printf("binEdges12[%i] = %1.3f\n", i, binEdges12[i]); - } - - // fancy solution for joint histogram here - int * jointHistLinear; - jointHistLinear = histcount_edges(bins12, size-tau, binEdges12, (numBins + 1) * (numBins + 1)); - - /* - // debug - for(int i = 0; i < (numBins+1)*(numBins+1); i++){ - printf("jointHistLinear[%i] = %i\n", i, jointHistLinear[i]); - } - */ - - // transfer to 2D histogram (no last bin, as in original implementation) - double pij[numBins][numBins]; - int sumBins = 0; - for(int i = 0; i < numBins; i++){ - for(int j = 0; j < numBins; j++){ - pij[j][i] = jointHistLinear[i*(numBins+1)+j]; - - // printf("pij[%i][%i]=%1.3f\n", i, j, pij[i][j]); - - sumBins += pij[j][i]; - } - } - - // normalise - for(int i = 0; i < numBins; i++){ - for(int j = 0; j < numBins; j++){ - pij[j][i] /= sumBins; - } - } - - // marginals - //double pi[numBins] = {0}; - double pi[5] = {0}; - //double pj[numBins] = {0}; - double pj[5] = {0}; - for(int i = 0; i < numBins; i++){ - for(int j = 0; j < numBins; j++){ - pi[i] += pij[i][j]; - pj[j] += pij[i][j]; - // printf("pij[%i][%i]=%1.3f, pi[%i]=%1.3f, pj[%i]=%1.3f\n", i, j, pij[i][j], i, pi[i], j, pj[j]); - } - } - - /* - // debug - for(int i = 0; i < numBins; i++){ - printf("pi[%i]=%1.3f, pj[%i]=%1.3f\n", i, pi[i], i, pj[i]); - } - */ - - // mutual information - double ami = 0; - for(int i = 0; i < numBins; i++){ - for(int j = 0; j < numBins; j++){ - if(pij[i][j] > 0){ - //printf("pij[%i][%i]=%1.3f, pi[%i]=%1.3f, pj[%i]=%1.3f, logarg=, %1.3f, log(...)=%1.3f\n", - // i, j, pij[i][j], i, pi[i], j, pj[j], pij[i][j]/(pi[i]*pj[j]), log(pij[i][j]/(pi[i]*pj[j]))); - ami += pij[i][j] * log(pij[i][j]/(pj[j]*pi[i])); - } - } - } - - free(bins1); - free(bins2); - free(jointHistLinear); - - free(y1); - free(y2); - free(bins12); - - return ami; -} diff --git a/src/C/CO_AutoCorr.h b/src/C/CO_AutoCorr.h deleted file mode 100644 index 34bbd28..0000000 --- a/src/C/CO_AutoCorr.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef CO_AUTOCORR_H -#define CO_AUTOCORR_H - -#if __cplusplus -# include -typedef std::complex< double > cplx; -#else -# include -#if defined(__GNUC__) || defined(__GNUG__) -typedef double complex cplx; -#elif defined(_MSC_VER) -typedef _Dcomplex cplx; -#endif -#endif - -#include -#include -#include -#include -#include "stats.h" -#include "fft.h" - -extern int nextpow2(int n); -extern void dot_multiply(cplx a[], cplx b[], int size); -extern double * CO_AutoCorr(const double y[], const int size, const int tau[], const int tau_size); -extern double * co_autocorrs(const double y[], const int size); -extern int co_firstzero(const double y[], const int size, const int maxtau); -extern double CO_Embed2_Basic_tau_incircle(const double y[], const int size, const double radius, const int tau); -extern double CO_Embed2_Dist_tau_d_expfit_meandiff(const double y[], const int size); -extern int CO_FirstMin_ac(const double y[], const int size); -extern double CO_trev_1_num(const double y[], const int size); -extern double CO_f1ecac(const double y[], const int size); -extern double CO_HistogramAMI_even_2_5(const double y[], const int size); - -#endif diff --git a/src/C/DN_HistogramMode_10.c b/src/C/DN_HistogramMode_10.c deleted file mode 100644 index 717a394..0000000 --- a/src/C/DN_HistogramMode_10.c +++ /dev/null @@ -1,113 +0,0 @@ -#include -#include -#include -#include - -#include "stats.h" -#include "histcounts.h" - -double DN_HistogramMode_10(const double y[], const int size) -{ - // NaN check - for(int i = 0; i < size; i++) - { - if(isnan(y[i])) - { - return NAN; - } - } - - const int nBins = 10; - - int * histCounts; - double * binEdges; - - histcounts(y, size, nBins, &histCounts, &binEdges); - - double maxCount = 0; - int numMaxs = 1; - double out = 0;; - for(int i = 0; i < nBins; i++) - { - // printf("binInd=%i, binCount=%i, binEdge=%1.3f \n", i, histCounts[i], binEdges[i]); - - if (histCounts[i] > maxCount) - { - maxCount = histCounts[i]; - numMaxs = 1; - out = (binEdges[i] + binEdges[i+1])*0.5; - } - else if (histCounts[i] == maxCount){ - - numMaxs += 1; - out += (binEdges[i] + binEdges[i+1])*0.5; - } - } - out = out/numMaxs; - - // arrays created dynamically in function histcounts - free(histCounts); - free(binEdges); - - return out; -} - -/* - double DN_HistogramMode_10(double y[], int size) - { - - double min = DBL_MAX, max=-DBL_MAX; - for(int i = 0; i < size; i++) - { - if (y[i] < min) - { - min = y[i]; - } - if (y[i] > max) - { - max = y[i]; - } - } - - double binStep = (max - min)/10; - - // fprintf(stdout, "min=%f, max=%f, binStep=%f \n", min, max, binStep); - - int histCounts[10] = {0}; - for(int i = 0; i < size; i++) - { - int binsLeft = 10; - int lowerInd = 0, upperInd = 10; - while(binsLeft > 1) - { - int limitInd = (upperInd - lowerInd)/2 + lowerInd; - double limit = limitInd * binStep + min; - - if (y[i] < limit) - { - upperInd = limitInd; - } - else - { - lowerInd = limitInd; - } - binsLeft = upperInd - lowerInd; - } - histCounts[lowerInd] += 1; - } - - double maxCount = 0; - int maxCountInd = 0; - for(int i = 0; i < 10; i++) - { - // fprintf(stdout, "binInd=%i, binCount=%i \n", i, histCounts[i]); - - if (histCounts[i] > maxCount) - { - maxCountInd = i; - maxCount = histCounts[i]; - } - } - return binStep*(maxCountInd+0.5) + min; - } - */ diff --git a/src/C/DN_HistogramMode_10.h b/src/C/DN_HistogramMode_10.h deleted file mode 100644 index 9107615..0000000 --- a/src/C/DN_HistogramMode_10.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef DN_HISTOGRAMMODE_10 -#define DN_HISTOGRAMMODE_10 -#include -#include -#include "stats.h" - -extern double DN_HistogramMode_10(const double y[], const int size); - -#endif diff --git a/src/C/DN_HistogramMode_5.c b/src/C/DN_HistogramMode_5.c deleted file mode 100644 index 0e60293..0000000 --- a/src/C/DN_HistogramMode_5.c +++ /dev/null @@ -1,123 +0,0 @@ -#include -#include -#include -#include -#include "stats.h" -#include "histcounts.h" - -double DN_HistogramMode_5(const double y[], const int size) -{ - - // NaN check - for(int i = 0; i < size; i++) - { - if(isnan(y[i])) - { - return NAN; - } - } - - const int nBins = 5; - - int * histCounts; - double * binEdges; - - histcounts(y, size, nBins, &histCounts, &binEdges); - - /* - for(int i = 0; i < nBins; i++){ - printf("histCounts[%i] = %i\n", i, histCounts[i]); - } - for(int i = 0; i < nBins+1; i++){ - printf("binEdges[%i] = %1.3f\n", i, binEdges[i]); - } - */ - - double maxCount = 0; - int numMaxs = 1; - double out = 0;; - for(int i = 0; i < nBins; i++) - { - // printf("binInd=%i, binCount=%i, binEdge=%1.3f \n", i, histCounts[i], binEdges[i]); - - if (histCounts[i] > maxCount) - { - maxCount = histCounts[i]; - numMaxs = 1; - out = (binEdges[i] + binEdges[i+1])*0.5; - } - else if (histCounts[i] == maxCount){ - - numMaxs += 1; - out += (binEdges[i] + binEdges[i+1])*0.5; - } - } - out = out/numMaxs; - - // arrays created dynamically in function histcounts - free(histCounts); - free(binEdges); - - return out; -} - -/* -double DN_HistogramMode_5(double y[], int size) -{ - - double min = DBL_MAX, max=-DBL_MAX; - for(int i = 0; i < size; i++) - { - if (y[i] < min) - { - min = y[i]; - } - if (y[i] > max) - { - max = y[i]; - } - } - - double binStep = (max - min)/5; - - // fprintf(stdout, "min=%f, max=%f, binStep=%f \n", min, max, binStep); - - int histCounts[5] = {0}; - for(int i = 0; i < size; i++) - { - int binsLeft = 5; - int lowerInd = 0, upperInd = 10; - while(binsLeft > 1) - { - int limitInd = (upperInd - lowerInd)/2 + lowerInd; - double limit = limitInd * binStep + min; - - if (y[i] < limit) - { - upperInd = limitInd; - } - else - { - lowerInd = limitInd; - } - binsLeft = upperInd - lowerInd; - } - histCounts[lowerInd] += 1; - } - - double maxCount = 0; - int maxCountInd = 0; - for(int i = 0; i < 5; i++) - { - // fprintf(stdout, "binInd=%i, binCount=%i \n", i, histCounts[i]); - - if (histCounts[i] > maxCount) - { - maxCountInd = i; - maxCount = histCounts[i]; - } - } - return binStep*(maxCountInd+0.5) + min; -} - - */ diff --git a/src/C/DN_HistogramMode_5.h b/src/C/DN_HistogramMode_5.h deleted file mode 100644 index 9f24c6a..0000000 --- a/src/C/DN_HistogramMode_5.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef DN_HISTOGRAMMODE_5 -#define DN_HISTOGRAMMODE_5 -#include -#include -#include "stats.h" - -extern double DN_HistogramMode_5(const double y[], const int size); - -#endif diff --git a/src/C/DN_Mean.c b/src/C/DN_Mean.c deleted file mode 100644 index f2e75ea..0000000 --- a/src/C/DN_Mean.c +++ /dev/null @@ -1,11 +0,0 @@ -#include - -double DN_Mean(const double a[], const int size) -{ - double m = 0.0; - for (int i = 0; i < size; i++) { - m += a[i]; - } - m /= size; - return m; -} diff --git a/src/C/DN_Mean.h b/src/C/DN_Mean.h deleted file mode 100644 index a39d135..0000000 --- a/src/C/DN_Mean.h +++ /dev/null @@ -1,12 +0,0 @@ -// -// Created by Trent Henderson 27 September 2021 -// - -#ifndef DN_MEAN -#define DN_MEAN - -#include - -extern double DN_Mean(const double a[], const int size); - -#endif /* DN_MEAN */ \ No newline at end of file diff --git a/src/C/DN_OutlierInclude.c b/src/C/DN_OutlierInclude.c deleted file mode 100644 index 1478eb9..0000000 --- a/src/C/DN_OutlierInclude.c +++ /dev/null @@ -1,213 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include "stats.h" - -double DN_OutlierInclude_np_001_mdrmd(const double y[], const int size, const int sign) -{ - - // NaN check - for(int i = 0; i < size; i++) - { - if(isnan(y[i])) - { - return NAN; - } - } - - double inc = 0.01; - int tot = 0; - double * yWork = malloc(size * sizeof(double)); - - // apply sign and check constant time series - int constantFlag = 1; - for(int i = 0; i < size; i++) - { - if(y[i] != y[0]) - { - constantFlag = 0; - } - - // apply sign, save in new variable - yWork[i] = sign*y[i]; - - // count pos/ negs - if(yWork[i] >= 0){ - tot += 1; - } - - } - if(constantFlag) return 0; // if constant, return 0 - - // find maximum (or minimum, depending on sign) - double maxVal = max_(yWork, size); - - // maximum value too small? return 0 - if(maxVal < inc){ - return 0; - } - - int nThresh = maxVal/inc + 1; - - // save the indices where y > threshold - double * r = malloc(size * sizeof * r); - - // save the median over indices with absolute value > threshold - double * msDti1 = malloc(nThresh * sizeof(double)); - double * msDti3 = malloc(nThresh * sizeof(double)); - double * msDti4 = malloc(nThresh * sizeof(double)); - - for(int j = 0; j < nThresh; j++) - { - //printf("j=%i, thr=%1.3f\n", j, j*inc); - - int highSize = 0; - - for(int i = 0; i < size; i++) - { - if(yWork[i] >= j*inc) - { - r[highSize] = i+1; - //printf("r[%i]=%1.f \n", highSize, r[highSize]); - highSize += 1; - } - } - - // intervals between high-values - double * Dt_exc = malloc(highSize * sizeof(double)); - - for(int i = 0; i < highSize-1; i++) - { - //printf("i=%i, r[i+1]=%1.f, r[i]=%1.f \n", i, r[i+1], r[i]); - Dt_exc[i] = r[i+1] - r[i]; - } - - /* - // median - double medianOut; - medianOut = median(r, highSize); - */ - - msDti1[j] = mean(Dt_exc, highSize-1); - msDti3[j] = (highSize-1)*100.0/tot; - msDti4[j] = median(r, highSize) / ((double)size/2) - 1; - - //printf("msDti1[%i] = %1.3f, msDti13[%i] = %1.3f, msDti4[%i] = %1.3f\n", - // j, msDti1[j], j, msDti3[j], j, msDti4[j]); - - free(Dt_exc); - - } - - int trimthr = 2; - int mj = 0; - int fbi = nThresh-1; - for(int i = 0; i < nThresh; i ++) - { - if (msDti3[i] > trimthr) - { - mj = i; - } - if (isnan(msDti1[nThresh-1-i])) - { - fbi = nThresh-1-i; - } - } - - double outputScalar; - int trimLimit = mj < fbi ? mj : fbi; - outputScalar = median(msDti4, trimLimit+1); - - free(r); - free(yWork); - free(msDti1); - free(msDti3); - free(msDti4); - - return outputScalar; -} - -double DN_OutlierInclude_p_001_mdrmd(const double y[], const int size) -{ - return DN_OutlierInclude_np_001_mdrmd(y, size, 1.0); -} - -double DN_OutlierInclude_n_001_mdrmd(const double y[], const int size) -{ - return DN_OutlierInclude_np_001_mdrmd(y, size, -1.0); -} - -double DN_OutlierInclude_abs_001(const double y[], const int size) -{ - double inc = 0.01; - double maxAbs = 0; - double * yAbs = malloc(size * sizeof * yAbs); - - for(int i = 0; i < size; i++) - { - // yAbs[i] = (y[i] > 0) ? y[i] : -y[i]; - yAbs[i] = (y[i] > 0) ? y[i] : -y[i]; - - if(yAbs[i] > maxAbs) - { - maxAbs = yAbs[i]; - } - } - - int nThresh = maxAbs/inc + 1; - - printf("nThresh = %i\n", nThresh); - - // save the indices where y > threshold - double * highInds = malloc(size * sizeof * highInds); - - // save the median over indices with absolute value > threshold - double * msDti3 = malloc(nThresh * sizeof * msDti3); - double * msDti4 = malloc(nThresh * sizeof * msDti4); - - for(int j = 0; j < nThresh; j++) - { - int highSize = 0; - - for(int i = 0; i < size; i++) - { - if(yAbs[i] >= j*inc) - { - // fprintf(stdout, "%i, ", i); - - highInds[highSize] = i; - highSize += 1; - } - } - - // median - double medianOut; - medianOut = median(highInds, highSize); - - msDti3[j] = (highSize-1)*100.0/size; - msDti4[j] = medianOut / (size/2) - 1; - - } - - int trimthr = 2; - int mj = 0; - for(int i = 0; i < nThresh; i ++) - { - if (msDti3[i] > trimthr) - { - mj = i; - } - } - - double outputScalar; - outputScalar = median(msDti4, mj); - - free(highInds); - free(yAbs); - free(msDti4); - - return outputScalar; -} diff --git a/src/C/DN_OutlierInclude.h b/src/C/DN_OutlierInclude.h deleted file mode 100644 index c5559a7..0000000 --- a/src/C/DN_OutlierInclude.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef DN_OUTLIERINCLUDE_ABS_001 -#define DN_OUTLIERINCLUDE_ABS_001 -#include -#include -#include -#include -#include "stats.h" - -extern double DN_OutlierInclude_abs_001(const double y[], const int size); -extern double DN_OutlierInclude_np_001_mdrmd(const double y[], const int size, const int sign); -extern double DN_OutlierInclude_p_001_mdrmd(const double y[], const int size); -extern double DN_OutlierInclude_n_001_mdrmd(const double y[], const int size); - -#endif diff --git a/src/C/DN_Spread_Std.c b/src/C/DN_Spread_Std.c deleted file mode 100644 index 5f5f035..0000000 --- a/src/C/DN_Spread_Std.c +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include "stats.h" - -double DN_Spread_Std(const double a[], const int size) -{ - double m = mean(a, size); - double sd = 0.0; - for (int i = 0; i < size; i++) { - sd += pow(a[i] - m, 2); - } - sd = sqrt(sd / (size - 1)); - return sd; -} diff --git a/src/C/DN_Spread_Std.h b/src/C/DN_Spread_Std.h deleted file mode 100644 index c150e14..0000000 --- a/src/C/DN_Spread_Std.h +++ /dev/null @@ -1,12 +0,0 @@ -// -// Created by Trent Henderson 27 September 2021 -// - -#ifndef DN_SPREADSTD -#define DN_SPREADSTD - -#include - -extern double DN_Spread_Std(const double a[], const int size); - -#endif /* DN_SPREADSTD */ \ No newline at end of file diff --git a/src/C/FC_LocalSimple.c b/src/C/FC_LocalSimple.c deleted file mode 100644 index 111db09..0000000 --- a/src/C/FC_LocalSimple.c +++ /dev/null @@ -1,183 +0,0 @@ -#include -#include -#include "stats.h" -#include "CO_AutoCorr.h" - -static void abs_diff(const double a[], const int size, double b[]) -{ - for (int i = 1; i < size; i++) { - b[i - 1] = fabs(a[i] - a[i - 1]); - } -} - -double fc_local_simple(const double y[], const int size, const int train_length) -{ - double * y1 = malloc((size - 1) * sizeof *y1); - abs_diff(y, size, y1); - double m = mean(y1, size - 1); - free(y1); - return m; -} - -double FC_LocalSimple_mean_tauresrat(const double y[], const int size, const int train_length) -{ - - // NaN check - for(int i = 0; i < size; i++) - { - if(isnan(y[i])) - { - return NAN; - } - } - - if(size <= train_length) - { - return NAN; - } - - double * res = malloc((size - train_length) * sizeof *res); - - for (int i = 0; i < size - train_length; i++) - { - double yest = 0; - for (int j = 0; j < train_length; j++) - { - yest += y[i+j]; - - } - yest /= train_length; - - res[i] = y[i+train_length] - yest; - } - - double resAC1stZ = co_firstzero(res, size - train_length, size - train_length); - double yAC1stZ = co_firstzero(y, size, size); - double output = resAC1stZ/yAC1stZ; - - free(res); - return output; - -} - -double FC_LocalSimple_mean_stderr(const double y[], const int size, const int train_length) -{ - // NaN check - for(int i = 0; i < size; i++) - { - if(isnan(y[i])) - { - return NAN; - } - } - - if(size <= train_length) - { - return NAN; - } - - double * res = malloc((size - train_length) * sizeof *res); - - for (int i = 0; i < size - train_length; i++) - { - double yest = 0; - for (int j = 0; j < train_length; j++) - { - yest += y[i+j]; - - } - yest /= train_length; - - res[i] = y[i+train_length] - yest; - } - - double output = stddev(res, size - train_length); - - free(res); - return output; - -} - -double FC_LocalSimple_mean3_stderr(const double y[], const int size) -{ - return FC_LocalSimple_mean_stderr(y, size, 3); -} - -double FC_LocalSimple_mean1_tauresrat(const double y[], const int size){ - return FC_LocalSimple_mean_tauresrat(y, size, 1); -} - -double FC_LocalSimple_mean_taures(const double y[], const int size, const int train_length) -{ - if(size <= train_length) - { - return NAN; - } - - double * res = malloc((size - train_length) * sizeof *res); - - // first z-score - // no, assume ts is z-scored!! - //zscore_norm(y, size); - - for (int i = 0; i < size - train_length; i++) - { - double yest = 0; - for (int j = 0; j < train_length; j++) - { - yest += y[i+j]; - - } - yest /= train_length; - - res[i] = y[i+train_length] - yest; - } - - int output = co_firstzero(res, size - train_length, size - train_length); - - free(res); - return output; - -} - -double FC_LocalSimple_lfit_taures(const double y[], const int size) -{ - // set tau from first AC zero crossing - int train_length = co_firstzero(y, size, size); - - if(size <= train_length) - { - return NAN; - } - - double * xReg = malloc(train_length * sizeof * xReg); - // double * yReg = malloc(train_length * sizeof * yReg); - for(int i = 1; i < train_length+1; i++) - { - xReg[i-1] = i; - } - - double * res = malloc((size - train_length) * sizeof *res); - - double m = 0.0, b = 0.0; - - for (int i = 0; i < size - train_length; i++) - { - linreg(train_length, xReg, y+i, &m, &b); - - // fprintf(stdout, "i=%i, m=%f, b=%f\n", i, m, b); - - res[i] = y[i+train_length] - (m * (train_length+1) + b); - } - - int output = co_firstzero(res, size - train_length, size - train_length); - - free(res); - free(xReg); - // free(yReg); - - return output; - -} - - diff --git a/src/C/FC_LocalSimple.h b/src/C/FC_LocalSimple.h deleted file mode 100644 index d821f79..0000000 --- a/src/C/FC_LocalSimple.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef FC_LOCALSIMPLE_H -#define FC_LOCALSIMPLE_H -#include -#include -#include "stats.h" -#include "CO_AutoCorr.h" - -extern double fc_local_simple(const double y[], const int size, const int train_length); -extern double FC_LocalSimple_mean_taures(const double y[], const int size, const int train_length); -extern double FC_LocalSimple_lfit_taures(const double y[], const int size); -extern double FC_LocalSimple_mean_tauresrat(const double y[], const int size, const int train_length); -extern double FC_LocalSimple_mean1_tauresrat(const double y[], const int size); -extern double FC_LocalSimple_mean_stderr(const double y[], const int size, const int train_length); -extern double FC_LocalSimple_mean3_stderr(const double y[], const int size); - -#endif diff --git a/src/C/IN_AutoMutualInfoStats.c b/src/C/IN_AutoMutualInfoStats.c deleted file mode 100644 index 7b09477..0000000 --- a/src/C/IN_AutoMutualInfoStats.c +++ /dev/null @@ -1,54 +0,0 @@ -// -// IN_AutoMutualInfoStats.c -// C_polished -// -// Created by Carl Henning Lubba on 22/09/2018. -// Copyright © 2018 Carl Henning Lubba. All rights reserved. -// -#include - -#include "IN_AutoMutualInfoStats.h" -#include "CO_AutoCorr.h" -#include "stats.h" - -double IN_AutoMutualInfoStats_40_gaussian_fmmi(const double y[], const int size) -{ - // NaN check - for(int i = 0; i < size; i++) - { - if(isnan(y[i])) - { - return NAN; - } - } - - // maximum time delay - int tau = 40; - - // don't go above half the signal length - if(tau > ceil((double)size/2)){ - tau = ceil((double)size/2); - } - - // compute autocorrelations and compute automutual information - double * ami = malloc(size * sizeof(double)); - for(int i = 0; i < tau; i++){ - double ac = autocorr_lag(y,size, i+1); - ami[i] = -0.5 * log(1 - ac*ac); - // printf("ami[%i]=%1.7f\n", i, ami[i]); - } - - // find first minimum of automutual information - double fmmi = tau; - for(int i = 1; i < tau-1; i++){ - if(ami[i] < ami[i-1] && ami[i] < ami[i+1]){ - fmmi = i; - // printf("found minimum at %i\n", i); - break; - } - } - - free(ami); - - return fmmi; -} diff --git a/src/C/IN_AutoMutualInfoStats.h b/src/C/IN_AutoMutualInfoStats.h deleted file mode 100644 index def01ad..0000000 --- a/src/C/IN_AutoMutualInfoStats.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// IN_AutoMutualInfoStats.h -// C_polished -// -// Created by Carl Henning Lubba on 22/09/2018. -// Copyright © 2018 Carl Henning Lubba. All rights reserved. -// - -#ifndef IN_AutoMutualInfoStats_h -#define IN_AutoMutualInfoStats_h - -#include - -extern double IN_AutoMutualInfoStats_40_gaussian_fmmi(const double y[], const int size); - -#endif /* IN_AutoMutualInfoStats_h */ diff --git a/src/C/MD_hrv.c b/src/C/MD_hrv.c deleted file mode 100644 index dcf8424..0000000 --- a/src/C/MD_hrv.c +++ /dev/null @@ -1,40 +0,0 @@ -// -// MD_hrv.c -// C_polished -// -// Created by Carl Henning Lubba on 22/09/2018. -// Copyright © 2018 Carl Henning Lubba. All rights reserved. -// - -#include "MD_hrv.h" -#include "stats.h" - -double MD_hrv_classic_pnn40(const double y[], const int size){ - - // NaN check - for(int i = 0; i < size; i++) - { - if(isnan(y[i])) - { - return NAN; - } - } - - const int pNNx = 40; - - // compute diff - double * Dy = malloc((size-1) * sizeof(double)); - diff(y, size, Dy); - - double pnn40 = 0; - for(int i = 0; i < size-1; i++){ - if(fabs(Dy[i])*1000 > pNNx){ - pnn40 += 1; - } - } - - free(Dy); - - return pnn40/(size-1); -} - diff --git a/src/C/MD_hrv.h b/src/C/MD_hrv.h deleted file mode 100644 index 5588eb2..0000000 --- a/src/C/MD_hrv.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// MD_hrv.h -// C_polished -// -// Created by Carl Henning Lubba on 22/09/2018. -// Copyright © 2018 Carl Henning Lubba. All rights reserved. -// - -#ifndef MD_hrv_h -#define MD_hrv_h - -#include - -extern double MD_hrv_classic_pnn40(const double y[], const int size); - -#endif /* MD_hrv_h */ diff --git a/src/C/PD_PeriodicityWang.c b/src/C/PD_PeriodicityWang.c deleted file mode 100644 index 6ebf586..0000000 --- a/src/C/PD_PeriodicityWang.c +++ /dev/null @@ -1,137 +0,0 @@ -// -// PD_PeriodicityWang.c -// C_polished -// -// Created by Carl Henning Lubba on 28/09/2018. -// Copyright © 2018 Carl Henning Lubba. All rights reserved. -// - -#include -#include - -#include "PD_PeriodicityWang.h" -#include "splinefit.h" -#include "stats.h" - -int PD_PeriodicityWang_th0_01(const double * y, const int size){ - - // NaN check - for(int i = 0; i < size; i++) - { - if(isnan(y[i])) - { - return 0; - } - } - - const double th = 0.01; - - double * ySpline = malloc(size * sizeof(double)); - - // fit a spline with 3 nodes to the data - splinefit(y, size, ySpline); - - //printf("spline fit complete.\n"); - - // subtract spline from data to remove trend - double * ySub = malloc(size * sizeof(double)); - for(int i = 0; i < size; i++){ - ySub[i] = y[i] - ySpline[i]; - //printf("ySub[%i] = %1.5f\n", i, ySub[i]); - } - - // compute autocorrelations up to 1/3 of the length of the time series - int acmax = (int)ceil((double)size/3); - - double * acf = malloc(acmax*sizeof(double)); - for(int tau = 1; tau <= acmax; tau++){ - // correlation/ covariance the same, don't care for scaling (cov would be more efficient) - acf[tau-1] = autocov_lag(ySub, size, tau); - //printf("acf[%i] = %1.9f\n", tau-1, acf[tau-1]); - } - - //printf("ACF computed.\n"); - - // find troughts and peaks - double * troughs = malloc(acmax * sizeof(double)); - double * peaks = malloc(acmax * sizeof(double)); - int nTroughs = 0; - int nPeaks = 0; - double slopeIn = 0; - double slopeOut = 0; - for(int i = 1; i < acmax-1; i ++){ - slopeIn = acf[i] - acf[i-1]; - slopeOut = acf[i+1] - acf[i]; - - if(slopeIn < 0 && slopeOut > 0) - { - // printf("trough at %i\n", i); - troughs[nTroughs] = i; - nTroughs += 1; - } - else if(slopeIn > 0 && slopeOut < 0) - { - // printf("peak at %i\n", i); - peaks[nPeaks] = i; - nPeaks += 1; - } - } - - //printf("%i troughs and %i peaks found.\n", nTroughs, nPeaks); - - - // search through all peaks for one that meets the conditions: - // (a) a trough before it - // (b) difference between peak and trough is at least 0.01 - // (c) peak corresponds to positive correlation - int iPeak = 0; - double thePeak = 0; - int iTrough = 0; - double theTrough = 0; - - int out = 0; - - for(int i = 0; i < nPeaks; i++){ - iPeak = peaks[i]; - thePeak = acf[iPeak]; - - //printf("i=%i/%i, iPeak=%i, thePeak=%1.3f\n", i, nPeaks-1, iPeak, thePeak); - - // find trough before this peak - int j = -1; - while(troughs[j+1] < iPeak && j+1 < nTroughs){ - // printf("j=%i/%i, iTrough=%i, theTrough=%1.3f\n", j+1, nTroughs-1, (int)troughs[j+1], acf[(int)troughs[j+1]]); - j++; - } - if(j == -1) - continue; - - iTrough = troughs[j]; - theTrough = acf[iTrough]; - - // (a) should be implicit - - // (b) different between peak and trough it as least 0.01 - if(thePeak - theTrough < th) - continue; - - // (c) peak corresponds to positive correlation - if(thePeak < 0) - continue; - - // use this frequency that first fulfils all conditions. - out = iPeak; - break; - } - - //printf("Before freeing stuff.\n"); - - free(ySpline); - free(ySub); - free(acf); - free(troughs); - free(peaks); - - return out; - -} diff --git a/src/C/PD_PeriodicityWang.h b/src/C/PD_PeriodicityWang.h deleted file mode 100644 index 03d4dba..0000000 --- a/src/C/PD_PeriodicityWang.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// PD_PeriodicityWang.h -// C_polished -// -// Created by Carl Henning Lubba on 28/09/2018. -// Copyright © 2018 Carl Henning Lubba. All rights reserved. -// - -#ifndef PD_PeriodicityWang_h -#define PD_PeriodicityWang_h - -#include - -extern int PD_PeriodicityWang_th0_01(const double * y, const int size); - -#endif /* PD_PeriodicityWang_h */ diff --git a/src/C/SB_BinaryStats.c b/src/C/SB_BinaryStats.c deleted file mode 100644 index 58e2115..0000000 --- a/src/C/SB_BinaryStats.c +++ /dev/null @@ -1,91 +0,0 @@ -// -// SB_BinaryStats.c -// C_polished -// -// Created by Carl Henning Lubba on 22/09/2018. -// Copyright © 2018 Carl Henning Lubba. All rights reserved. -// - -#include "SB_BinaryStats.h" -#include "stats.h" - -double SB_BinaryStats_diff_longstretch0(const double y[], const int size){ - - // NaN check - for(int i = 0; i < size; i++) - { - if(isnan(y[i])) - { - return NAN; - } - } - - // binarize - int * yBin = malloc((size-1) * sizeof(int)); - for(int i = 0; i < size-1; i++){ - - double diffTemp = y[i+1] - y[i]; - yBin[i] = diffTemp < 0 ? 0 : 1; - - /* - if( i < 300) - printf("%i, y[i+1]=%1.3f, y[i]=%1.3f, yBin[i]=%i\n", i, y[i+1], y[i], yBin[i]); - */ - - } - - int maxstretch0 = 0; - int last1 = 0; - for(int i = 0; i < size-1; i++){ - if(yBin[i] == 1 || i == size-2){ - double stretch0 = i - last1; - if(stretch0 > maxstretch0){ - maxstretch0 = stretch0; - } - last1 = i; - } - } - - free(yBin); - - return maxstretch0; -} - -double SB_BinaryStats_mean_longstretch1(const double y[], const int size){ - - // NaN check - for(int i = 0; i < size; i++) - { - if(isnan(y[i])) - { - return NAN; - } - } - - // binarize - int * yBin = malloc((size-1) * sizeof(int)); - double yMean = mean(y, size); - for(int i = 0; i < size-1; i++){ - - yBin[i] = (y[i] - yMean <= 0) ? 0 : 1; - //printf("yBin[%i]=%i\n", i, yBin[i]); - - } - - int maxstretch1 = 0; - int last1 = 0; - for(int i = 0; i < size-1; i++){ - if(yBin[i] == 0 || i == size-2){ - double stretch1 = i - last1; - if(stretch1 > maxstretch1){ - maxstretch1 = stretch1; - } - last1 = i; - } - - } - - free(yBin); - - return maxstretch1; -} diff --git a/src/C/SB_BinaryStats.h b/src/C/SB_BinaryStats.h deleted file mode 100644 index fb3ad88..0000000 --- a/src/C/SB_BinaryStats.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// SB_BinaryStats.h -// C_polished -// -// Created by Carl Henning Lubba on 22/09/2018. -// Copyright © 2018 Carl Henning Lubba. All rights reserved. -// - -#ifndef SB_BinaryStats_h -#define SB_BinaryStats_h - -#include - -extern double SB_BinaryStats_diff_longstretch0(const double y[], const int size); -extern double SB_BinaryStats_mean_longstretch1(const double y[], const int size); - -#endif /* SB_BinaryStats_h */ diff --git a/src/C/SB_CoarseGrain.c b/src/C/SB_CoarseGrain.c deleted file mode 100644 index 8805758..0000000 --- a/src/C/SB_CoarseGrain.c +++ /dev/null @@ -1,40 +0,0 @@ -#include -#include -#include -#include -#include "stats.h" -#include "helper_functions.h" - -void sb_coarsegrain(const double y[], const int size, const char how[], const int num_groups, int labels[]) -{ - int i, j; - if (strcmp(how, "quantile") == 1) { - fprintf(stdout, "ERROR in sb_coarsegrain: unknown coarse-graining method\n"); - exit(1); - } - - /* - for(int i = 0; i < size; i++){ - printf("yin coarsegrain[%i]=%1.4f\n", i, y[i]); - } - */ - - double * th = malloc((num_groups + 1) * 2 * sizeof(th)); - double * ls = malloc((num_groups + 1) * 2 * sizeof(th)); - linspace(0, 1, num_groups + 1, ls); - for (i = 0; i < num_groups + 1; i++) { - //double quant = quantile(y, size, ls[i]); - th[i] = quantile(y, size, ls[i]); - } - th[0] -= 1; - for (i = 0; i < num_groups; i++) { - for (j = 0; j < size; j++) { - if (y[j] > th[i] && y[j] <= th[i + 1]) { - labels[j] = i + 1; - } - } - } - - free(th); - free(ls); -} diff --git a/src/C/SB_CoarseGrain.h b/src/C/SB_CoarseGrain.h deleted file mode 100644 index cf9607e..0000000 --- a/src/C/SB_CoarseGrain.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef SB_COARSEGRAIN_H -#define SB_COARSEGRAIN_H -#include -#include -#include -#include -#include "stats.h" -#include "helper_functions.h" - -extern void sb_coarsegrain(const double y[], const int size, const char how[], const int num_groups, int labels[]); - -#endif diff --git a/src/C/SB_MotifThree.c b/src/C/SB_MotifThree.c deleted file mode 100644 index 438a961..0000000 --- a/src/C/SB_MotifThree.c +++ /dev/null @@ -1,375 +0,0 @@ -#include -#include -#include -#include -#include "SB_CoarseGrain.h" -#include "helper_functions.h" - -double SB_MotifThree_quantile_hh(const double y[], const int size) -{ - // NaN check - for(int i = 0; i < size; i++) - { - if(isnan(y[i])) - { - return NAN; - } - } - - int tmp_idx, r_idx; - int dynamic_idx; - int alphabet_size = 3; - int array_size; - int * yt = malloc(size * sizeof(yt)); // alphabetized array - double hh; // output - double * out = malloc(124 * sizeof(out)); // output array - - // transfer to alphabet - sb_coarsegrain(y, size, "quantile", 3, yt); - - // words of length 1 - array_size = alphabet_size; - int ** r1 = malloc(array_size * sizeof(*r1)); - int * sizes_r1 = malloc(array_size * sizeof(sizes_r1)); - double * out1 = malloc(array_size * sizeof(out1)); - for (int i = 0; i < alphabet_size; i++) { - r1[i] = malloc(size * sizeof(r1[i])); // probably can be rewritten - // using selfresizing array for memory efficiency. Time complexity - // should be comparable due to ammotization. - r_idx = 0; - sizes_r1[i] = 0; - for (int j = 0; j < size; j++) { - if (yt[j] == i + 1) { - r1[i][r_idx++] = j; - sizes_r1[i]++; - } - } - } - - // words of length 2 - array_size *= alphabet_size; - // removing last item if it is == max possible idx since later we are taking idx + 1 - // from yt - for (int i = 0; i < alphabet_size; i++) { - if (sizes_r1[i] != 0 && r1[i][sizes_r1[i] - 1] == size - 1) { - //int * tmp_ar = malloc((sizes_r1[i] - 1) * sizeof(tmp_ar)); - int* tmp_ar = malloc(sizes_r1[i] * sizeof(tmp_ar)); - subset(r1[i], tmp_ar, 0, sizes_r1[i]); - memcpy(r1[i], tmp_ar, (sizes_r1[i] - 1) * sizeof(tmp_ar)); - sizes_r1[i]--; - free(tmp_ar); - } - } - - /* - int *** r2 = malloc(array_size * sizeof(**r2)); - int ** sizes_r2 = malloc(array_size * sizeof(*sizes_r2)); - double ** out2 = malloc(array_size * sizeof(*out2)); - */ - int*** r2 = malloc(alphabet_size * sizeof(**r2)); - int** sizes_r2 = malloc(alphabet_size * sizeof(*sizes_r2)); - double** out2 = malloc(alphabet_size * sizeof(*out2)); - - - // allocate separately - for (int i = 0; i < alphabet_size; i++) { - r2[i] = malloc(alphabet_size * sizeof(*r2[i])); - sizes_r2[i] = malloc(alphabet_size * sizeof(*sizes_r2[i])); - //out2[i] = malloc(alphabet_size * sizeof(out2[i])); - out2[i] = malloc(alphabet_size * sizeof(**out2)); - for (int j = 0; j < alphabet_size; j++) { - r2[i][j] = malloc(size * sizeof(*r2[i][j])); - } - } - - // fill separately - for (int i = 0; i < alphabet_size; i++) { - // for (int i = 0; i < array_size; i++) { - //r2[i] = malloc(alphabet_size * sizeof(r2[i])); - //sizes_r2[i] = malloc(alphabet_size * sizeof(sizes_r2[i])); - //out2[i] = malloc(alphabet_size * sizeof(out2[i])); - for (int j = 0; j < alphabet_size; j++) { - //r2[i][j] = malloc(size * sizeof(r2[i][j])); - sizes_r2[i][j] = 0; - dynamic_idx = 0; //workaround as you can't just add elements to array - // like in python (list.append()) for example, so since for some k there will be no adding, - // you need to keep track of the idx at which elements will be inserted - for (int k = 0; k < sizes_r1[i]; k++) { - tmp_idx = yt[r1[i][k] + 1]; - if (tmp_idx == (j + 1)) { - r2[i][j][dynamic_idx++] = r1[i][k]; - sizes_r2[i][j]++; - // printf("dynamic_idx=%i, size = %i\n", dynamic_idx, size); - } - } - double tmp = (double)sizes_r2[i][j] / ((double)(size) - (double)(1.0)); - out2[i][j] = tmp; - } - } - - hh = 0.0; - for (int i = 0; i < alphabet_size; i++) { - hh += f_entropy(out2[i], alphabet_size); - } - - free(yt); - free(out); - free(out1); - - free(sizes_r1); - - // free nested array - for (int i = 0; i < alphabet_size; i++) { - free(r1[i]); - } - free(r1); - // free(sizes_r1); - - for (int i = 0; i < alphabet_size; i++) { - //for (int i = alphabet_size - 1; i >= 0; i--) { - - free(sizes_r2[i]); - free(out2[i]); - } - - //for (int i = alphabet_size-1; i >= 0 ; i--) { - for(int i = 0; i < alphabet_size; i++) { - for (int j = 0; j < alphabet_size; j++) { - free(r2[i][j]); - } - free(r2[i]); - } - - free(r2); - free(sizes_r2); - free(out2); - - - return hh; - -} - -double * sb_motifthree(const double y[], int size, const char how[]) -{ - int tmp_idx, r_idx, i, j, k, l, m, array_size; - int dynamic_idx; - int * tmp_ar; - int alphabet_size = 3; - int out_idx = 0; - int * yt = malloc(size * sizeof(yt)); - double tmp; - double * out = malloc(124 * sizeof(out)); // output array - if (strcmp(how, "quantile") == 0) { - sb_coarsegrain(y, size, how, alphabet_size, yt); - } else if (strcmp(how, "diffquant") == 0) { - double * diff_y = malloc((size - 1) * sizeof(diff_y)); - diff(y, size, diff_y); - sb_coarsegrain(diff_y, size, how, alphabet_size, yt); - size--; - } else { - fprintf(stdout, "ERROR in sb_motifthree: Unknown how method"); - exit(1); - } - - // words of length 1 - array_size = alphabet_size; - int ** r1 = malloc(array_size * sizeof(*r1)); - int * sizes_r1 = malloc(array_size * sizeof(sizes_r1)); - double * out1 = malloc(array_size * sizeof(out1)); - for (i = 0; i < array_size; i++) { - r1[i] = malloc(size * sizeof(r1[i])); // probably can be rewritten - // using selfresizing array for memory efficiency. Time complexity - // should be comparable due to ammotization. - r_idx = 0; - sizes_r1[i] = 0; - for (j = 0; j < size; j++) { - if (yt[j] == i + 1) { - r1[i][r_idx++] = j; - sizes_r1[i]++; - } - } - tmp = (double)sizes_r1[i] / size; - - out1[i] = tmp; - out[out_idx++] = tmp; - } - out[out_idx++] = f_entropy(out1, array_size); - - // words of length 2 - array_size *= alphabet_size; - // removing last item if it is == max possible idx since later we are taking idx + 1 - // from yt - for (i = 0; i < alphabet_size; i++) { - if (sizes_r1[i] != 0 && r1[i][sizes_r1[i] - 1] == size - 1) { - tmp_ar = malloc((sizes_r1[i] - 1) * sizeof(tmp_ar)); - subset(r1[i], tmp_ar, 0, sizes_r1[i]); - memcpy(r1[i], tmp_ar, (sizes_r1[i] - 1) * sizeof(tmp_ar)); - sizes_r1[i]--; - } - } - - int *** r2 = malloc(array_size * sizeof(**r2)); - int ** sizes_r2 = malloc(array_size * sizeof(*sizes_r2)); - double ** out2 = malloc(array_size * sizeof(*out2)); - for (i = 0; i < alphabet_size; i++) { - r2[i] = malloc(alphabet_size * sizeof(r2[i])); - sizes_r2[i] = malloc(alphabet_size * sizeof(sizes_r2[i])); - out2[i] = malloc(alphabet_size * sizeof(out2[i])); - for (j = 0; j < alphabet_size; j++) { - r2[i][j] = malloc(size * sizeof(r2[i][j])); - sizes_r2[i][j] = 0; - dynamic_idx = 0; //workaround as you can't just add elements to array - // like in python (list.append()) for example, so since for some k there will be no adding, - // you need to keep track of the idx at which elements will be inserted - for (k = 0; k < sizes_r1[i]; k++) { - tmp_idx = yt[r1[i][k] + 1]; - if (tmp_idx == (j + 1)) { - r2[i][j][dynamic_idx++] = r1[i][k]; - sizes_r2[i][j]++; - } - } - tmp = (double)sizes_r2[i][j] / (size - 1); - out2[i][j] = tmp; - out[out_idx++] = tmp; - } - } - tmp = 0.0; - for (i = 0; i < alphabet_size; i++) { - tmp += f_entropy(out2[i], alphabet_size); - } - out[out_idx++] = tmp; - - // words of length 3 - array_size *= alphabet_size; - for (i = 0; i < alphabet_size; i++) { - for (j = 0; j < alphabet_size; j++) { - if (sizes_r2[i][j] != 0 && r2[i][j][sizes_r2[i][j] - 1] == size - 2) { - subset(r2[i][j], tmp_ar, 0, sizes_r2[i][j]); - memcpy(r2[i][j], tmp_ar, (sizes_r2[i][j] - 1) * sizeof(tmp_ar)); - sizes_r2[i][j]--; - } - } - } - - int **** r3 = malloc(array_size * sizeof(***r3)); - int *** sizes_r3 = malloc(array_size * sizeof(**sizes_r3)); - double *** out3 = malloc(array_size * sizeof(**out3)); - for (i = 0; i < alphabet_size; i++) { - r3[i] = malloc(alphabet_size * sizeof(r3[i])); - sizes_r3[i] = malloc(alphabet_size * sizeof(sizes_r3[i])); - out3[i] = malloc(alphabet_size * sizeof(out3[i])); - for (j = 0; j < alphabet_size; j++) { - r3[i][j] = malloc(alphabet_size * sizeof(r3[i][j])); - sizes_r3[i][j] = malloc(alphabet_size * sizeof(sizes_r3[i][j])); - out3[i][j] = malloc(alphabet_size * sizeof(out3[i][j])); - for (k = 0; k < alphabet_size; k++) { - r3[i][j][k] = malloc(size * sizeof(r3[i][j][k])); - sizes_r3[i][j][k] = 0; - dynamic_idx = 0; - for (l = 0; l < sizes_r2[i][j]; l++) { - tmp_idx = yt[r2[i][j][l] + 2]; - if (tmp_idx == (k + 1)) { - r3[i][j][k][dynamic_idx++] = r2[i][j][l]; - sizes_r3[i][j][k]++; - } - } - tmp = (double)sizes_r3[i][j][k] / (size - 2); - out3[i][j][k] = tmp; - out[out_idx++] = tmp; - } - } - } - tmp = 0.0; - for (i = 0; i < alphabet_size; i++) { - for (j = 0; j < alphabet_size; j++) { - tmp += f_entropy(out3[i][j], alphabet_size); - } - } - out[out_idx++] = tmp; - - // words of length 4 - array_size *= alphabet_size; - for (i = 0; i < alphabet_size; i++) { - for (j = 0; j < alphabet_size; j++) { - for (k = 0; k < alphabet_size; k++) { - if (sizes_r3[i][j][k] != 0 && r3[i][j][k][sizes_r3[i][j][k] - 1] == size - 3) { - subset(r3[i][j][k], tmp_ar, 0, sizes_r3[i][j][k]); - memcpy(r3[i][j][k], tmp_ar, (sizes_r3[i][j][k] - 1) * sizeof(tmp_ar)); - sizes_r3[i][j][k]--; - } - } - } - } - - int ***** r4 = malloc(array_size * sizeof(****r4)); - // just an array of pointers of array of pointers of array of pointers - // of array of pointers of array of ints... We need to go deeper (c) - int **** sizes_r4 = malloc(array_size * sizeof(***sizes_r3)); - double **** out4 = malloc(array_size * sizeof(***out4)); - for (i = 0; i < alphabet_size; i++) { - r4[i] = malloc(alphabet_size * sizeof(r4[i])); - sizes_r4[i] = malloc(alphabet_size * sizeof(sizes_r4[i])); - out4[i] = malloc(alphabet_size * sizeof(out4[i])); - for (j = 0; j < alphabet_size; j++) { - r4[i][j] = malloc(alphabet_size * sizeof(r4[i][j])); - sizes_r4[i][j] = malloc(alphabet_size * sizeof(sizes_r4[i][j])); - out4[i][j] = malloc(alphabet_size * sizeof(out4[i][j])); - for (k = 0; k < alphabet_size; k++) { - r4[i][j][k] = malloc(alphabet_size * sizeof(r4[i][j][k])); - sizes_r4[i][j][k] = malloc(alphabet_size * sizeof(sizes_r4[i][j][k])); - out4[i][j][k] = malloc(alphabet_size * sizeof(out4[i][j][k])); - for (l = 0; l < alphabet_size; l++) { - r4[i][j][k][l] = malloc(size * sizeof(r4[i][j][k][l])); - sizes_r4[i][j][k][l] = 0; - dynamic_idx = 0; - for (m = 0; m < sizes_r3[i][j][k]; m++) { - tmp_idx = yt[r3[i][j][k][m] + 3]; - if (tmp_idx == l + 1) { - r4[i][j][k][l][dynamic_idx++] = r3[i][j][k][m]; - sizes_r4[i][j][k][l]++; - } - } - tmp = (double)sizes_r4[i][j][k][l] / (size - 3); - out4[i][j][k][l] = tmp; - out[out_idx++] = tmp; - } - } - } - } - tmp = 0.0; - for (i = 0; i < alphabet_size; i++) { - for (j = 0; j < alphabet_size; j++) { - for (k = 0; k < alphabet_size; k++) { - tmp += f_entropy(out4[i][j][k], alphabet_size); - } - } - } - out[out_idx++] = tmp; - - return out; -} - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/C/SB_MotifThree.h b/src/C/SB_MotifThree.h deleted file mode 100644 index 2a471d7..0000000 --- a/src/C/SB_MotifThree.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef SB_MOTIFTHREE_H -#define SB_MOTIFTHREE_H -#include -#include -#include -#include "SB_CoarseGrain.h" -#include "helper_functions.h" - -extern double SB_MotifThree_quantile_hh(const double y[], const int size); -extern double * sb_motifthree(const double y[], int size, const char how[]); - -#endif diff --git a/src/C/SB_TransitionMatrix.c b/src/C/SB_TransitionMatrix.c deleted file mode 100644 index 037df09..0000000 --- a/src/C/SB_TransitionMatrix.c +++ /dev/null @@ -1,163 +0,0 @@ -// -// SB_TransitionMatrix.c -// -// -// Created by Carl Henning Lubba on 23/09/2018. -// - -#include "SB_TransitionMatrix.h" -#include "butterworth.h" -#include "CO_AutoCorr.h" -#include "SB_CoarseGrain.h" -#include "stats.h" - -double SB_TransitionMatrix_3ac_sumdiagcov(const double y[], const int size) -{ - - // NaN and const check - int constant = 1; - for(int i = 0; i < size; i++) - { - if(isnan(y[i])) - { - return NAN; - } - if(y[i] != y[0]){ - constant = 0; - } - } - if (constant){ - return NAN; - } - - const int numGroups = 3; - - int tau = co_firstzero(y, size, size); - - double * yFilt = malloc(size * sizeof(double)); - - // sometimes causes problems in filt!!! needs fixing. - /* - if(tau > 1){ - butterworthFilter(y, size, 4, 0.8/tau, yFilt); - } - */ - - for(int i = 0; i < size; i++){ - yFilt[i] = y[i]; - } - - /* - for(int i = 0; i < size; i++){ - printf("yFilt[%i]=%1.4f\n", i, yFilt[i]); - } - */ - - int nDown = (size-1)/tau+1; - double * yDown = malloc(nDown * sizeof(double)); - - for(int i = 0; i < nDown; i++){ - yDown[i] = yFilt[i*tau]; - } - - /* - for(int i = 0; i < nDown; i++){ - printf("yDown[%i]=%1.4f\n", i, yDown[i]); - } - */ - - - // transfer to alphabet - int * yCG = malloc(nDown * sizeof(double)); - sb_coarsegrain(yDown, nDown, "quantile", numGroups, yCG); - - /* - for(int i = 0; i < nDown; i++){ - printf("yCG[%i]=%i\n", i, yCG[i]); - } - */ - - - double T[3][3]; - for(int i = 0; i < numGroups; i++){ - for(int j = 0; j < numGroups; j++){ - T[i][j] = 0; - } - } - - // more efficient way of doing the below - for(int j = 0; j < nDown-1; j++){ - T[yCG[j]-1][yCG[j+1]-1] += 1; - } - - /* - for(int i = 0; i < numGroups; i++){ - for(int j = 0; j < numGroups; j++){ - printf("%1.f, ", T[i][j]); - } - printf("\n"); - } - */ - - /* - for(int i = 0; i < numGroups; i++){ - for(int j = 0; j < nDown-1; j++){ - if(yCG[j] == i+1){ - T[i][yCG[j+1]-1] += 1; - } - } - } - */ - - for(int i = 0; i < numGroups; i++){ - for(int j = 0; j < numGroups; j++){ - T[i][j] /= (nDown-1); - // printf("T(%i, %i) = %1.3f\n", i, j, T[i][j]); - - } - } - - double column1[3] = {0}; - double column2[3] = {0}; - double column3[3] = {0}; - - for(int i = 0; i < numGroups; i++){ - column1[i] = T[i][0]; - column2[i] = T[i][1]; - column3[i] = T[i][2]; - // printf("column3(%i) = %1.3f\n", i, column3[i]); - } - - double *columns[3]; - columns[0] = &(column1[0]); - columns[1] = &(column2[0]); - columns[2] = &(column3[0]); - - - double COV[3][3]; - double covTemp = 0; - for(int i = 0; i < numGroups; i++){ - for(int j = i; j < numGroups; j++){ - - covTemp = cov(columns[i], columns[j], 3); - - COV[i][j] = covTemp; - COV[j][i] = covTemp; - - // printf("COV(%i , %i) = %1.3f\n", i, j, COV[i][j]); - } - } - - double sumdiagcov = 0; - for(int i = 0; i < numGroups; i++){ - sumdiagcov += COV[i][i]; - } - - free(yFilt); - free(yDown); - free(yCG); - - return sumdiagcov; - - -} diff --git a/src/C/SB_TransitionMatrix.h b/src/C/SB_TransitionMatrix.h deleted file mode 100644 index 06d71e4..0000000 --- a/src/C/SB_TransitionMatrix.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// SB_TransitionMatrix.h -// -// -// Created by Carl Henning Lubba on 23/09/2018. -// - -#ifndef SB_TransitionMatrix_h -#define SB_TransitionMatrix_h - -#include - -extern double SB_TransitionMatrix_3ac_sumdiagcov(const double y[], const int size); - -#endif /* SB_TransitionMatrix_h */ diff --git a/src/C/SC_FluctAnal.c b/src/C/SC_FluctAnal.c deleted file mode 100644 index 938f8e3..0000000 --- a/src/C/SC_FluctAnal.c +++ /dev/null @@ -1,350 +0,0 @@ -#include -#include -#include -#include -#include -#include "stats.h" -#include "CO_AutoCorr.h" - -double SC_FluctAnal_2_50_1_logi_prop_r1(const double y[], const int size, const int lag, const char how[]) -{ - // NaN check - for(int i = 0; i < size; i++) - { - if(isnan(y[i])) - { - return NAN; - } - } - - // generate log spaced tau vector - double linLow = log(5); - double linHigh = log(size/2); - - int nTauSteps = 50; - double tauStep = (linHigh - linLow) / (nTauSteps-1); - - int tau[50]; - for(int i = 0; i < nTauSteps; i++) - { - tau[i] = round(exp(linLow + i*tauStep)); - } - - // check for uniqueness, use ascending order - int nTau = nTauSteps; - for(int i = 0; i < nTauSteps-1; i++) - { - - while (tau[i] == tau[i+1] && i < nTau-1) - { - for(int j = i+1; j < nTauSteps-1; j++) - { - tau[j] = tau[j+1]; - } - // lost one - nTau -= 1; - } - } - - // fewer than 12 points -> leave. - if(nTau < 12){ - return 0; - } - - int sizeCS = size/lag; - double * yCS = malloc(sizeCS * sizeof(double)); - - /* - for(int i = 0; i < 50; i++) - { - printf("y[%i]=%1.3f\n", i, y[i]); - } - */ - - // transform input vector to cumsum - yCS[0] = y[0]; - for(int i = 0; i < sizeCS-1; i++) - { - yCS[i+1] = yCS[i] + y[(i+1)*lag]; - - /* - if(i<300) - printf("yCS[%i]=%1.3f\n", i, yCS[i]); - */ - } - - //for each value of tau, cut signal into snippets of length tau, detrend and - - // first generate a support for regression (detrending) - double * xReg = malloc(tau[nTau-1] * sizeof * xReg); - for(int i = 0; i < tau[nTau-1]; i++) - { - xReg[i] = i+1; - } - - // iterate over taus, cut signal, detrend and save amplitude of remaining signal - double * F = malloc(nTau * sizeof * F); - for(int i = 0; i < nTau; i++) - { - int nBuffer = sizeCS/tau[i]; - double * buffer = malloc(tau[i] * sizeof * buffer); - double m = 0.0, b = 0.0; - - //printf("tau[%i]=%i\n", i, tau[i]); - - F[i] = 0; - for(int j = 0; j < nBuffer; j++) - { - - //printf("%i th buffer\n", j); - - linreg(tau[i], xReg, yCS+j*tau[i], &m, &b); - - - for(int k = 0; k < tau[i]; k++) - { - buffer[k] = yCS[j*tau[i]+k] - (m * (k+1) + b); - //printf("buffer[%i]=%1.3f\n", k, buffer[k]); - } - - if (strcmp(how, "rsrangefit") == 0) { - F[i] += pow(max_(buffer, tau[i]) - min_(buffer, tau[i]), 2); - } - else if (strcmp(how, "dfa") == 0) { - for(int k = 0; k leave. - if(nTau < 8){ - return 0; - } - - // transform input vector to cumsum - for(int i = 0; i < size-1; i++) - { - y[i+1] = y[i] + y[i+1]; - } - - //for each value of tau, cut signal into snippets of length tau, detrend and - - // first generate a support for regression (detrending) - double * xReg = malloc(tau[nTau-1] * sizeof * xReg); - for(int i = 0; i < tau[nTau-1]; i++) - { - xReg[i] = i+1; - } - - // iterate over taus, cut signal, detrend and save amplitude of remaining signal - double * F = malloc(nTau * sizeof * F); - for(int i = 0; i < nTau; i++) - { - int nBuffer = size/tau[i]; - double * buffer = malloc(tau[i] * sizeof * buffer); - double m = 0.0, b = 0.0; - - F[i] = 0; - for(int j = 0; j < nBuffer; j++) - { - - linreg(tau[i], xReg, y+j*tau[i], &m, &b); - - for(int k = 0; k < tau[i]; k++) - { - buffer[k] = y[j*tau[i]+k] - (m * (k+1) + b); - } - - F[i] += pow(max(buffer, tau[i]) - min(buffer, tau[i]), 2); - } - - F[i] = sqrt(F[i]/nBuffer); - - free(buffer); - - } - - double * logtt = malloc(nTau * sizeof * logtt); - double * logFF = malloc(nTau * sizeof * logFF); - int ntt = nTau; - - for (int i = 0; i < nTau; i++) - { - logtt[i] = log(tau[i]); - logFF[i] = log(F[i]); - } - - int minPoints = 6; - int nsserr = (ntt - 2*minPoints + 1); - double * sserr = malloc(nsserr * sizeof * sserr); - double * buffer = malloc((ntt - minPoints + 1) * sizeof * buffer); - for (int i = minPoints; i < ntt - minPoints + 1; i++) - { - // this could be done with less variables of course - double m1 = 0.0, b1 = 0.0; - double m2 = 0.0, b2 = 0.0; - - sserr[i - minPoints] = 0.0; - - linreg(i, logtt, logFF, &m1, &b1); - linreg(ntt-i+1, logtt+i-1, logFF+i-1, &m2, &b2); - - for(int j = 0; j < i; j ++) - { - buffer[j] = logtt[j] * m1 + b1 - logFF[j]; - } - - sserr[i - minPoints] += norm(buffer, i); - - for(int j = 0; j < ntt-i+1; j++) - { - buffer[j] = logtt[j+i-1] * m2 + b2 - logFF[j+i-1]; - } - - sserr[i - minPoints] += norm(buffer, ntt-i+1); - - } - - double firstMinInd = 0.0; - double minimum = min(sserr, nsserr); - for(int i = 0; i < nsserr; i++) - { - if(sserr[i] == minimum) - { - firstMinInd = i + minPoints - 1; - break; - } - } - - free(xReg); - free(F); - free(logtt); - free(logFF); - free(sserr); - free(buffer); - - return (firstMinInd+1)/ntt; - -} - */ diff --git a/src/C/SC_FluctAnal.h b/src/C/SC_FluctAnal.h deleted file mode 100644 index ea2b648..0000000 --- a/src/C/SC_FluctAnal.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef SC_FLUCTANAL -#define SC_FLUCTANAL -#include -#include -#include "stats.h" -#include "CO_AutoCorr.h" - -extern double SC_FluctAnal_2_rsrangefit_50_1_logi_prop_r1(const double y[], const int size); -extern double SC_FluctAnal_2_50_1_logi_prop_r1(const double y[], const int size, const char how[]); -extern double SC_FluctAnal_2_dfa_50_1_2_logi_prop_r1(const double y[], const int size); -#endif diff --git a/src/C/SP_Summaries.c b/src/C/SP_Summaries.c deleted file mode 100644 index b511df4..0000000 --- a/src/C/SP_Summaries.c +++ /dev/null @@ -1,213 +0,0 @@ -// -// SP_Summaries.c -// -// -// Created by Carl Henning Lubba on 23/09/2018. -// - -#include "SP_Summaries.h" -#include "CO_AutoCorr.h" - -int welch(const double y[], const int size, const int NFFT, const double Fs, const double window[], const int windowWidth, double ** Pxx, double ** f){ - - double dt = 1.0/Fs; - double df = 1.0/(nextpow2(windowWidth))/dt; - double m = mean(y, size); - - // number of windows, should be 1 - int k = floor((double)size/((double)windowWidth/2.0))-1; - - // normalising scale factor - double KMU = k * pow(norm_(window, windowWidth),2); - - double * P = malloc(NFFT * sizeof(double)); - for(int i = 0; i < NFFT; i++){ - P[i] = 0; - } - - // fft variables - cplx * F = malloc(NFFT * sizeof *F); - cplx * tw = malloc(NFFT * sizeof *tw); - twiddles(tw, NFFT); - - double * xw = malloc(windowWidth * sizeof(double)); - for(int i = 0; i0 && i < Nout-1){ - (*Pxx)[i] *= 2; - } - } - /* - for(int i = 0; i < Nout; i++){ - printf("Pxx[%i]: %1.3f\n", i, Pxx[i]); - } - */ - - *f = malloc(Nout * sizeof(double)); - for(int i = 0; i < Nout; i++){ - (*f)[i] = (double)i*df; - } - /* - for(int i = 0; i < Nout; i++){ - printf("f[%i]: %1.3f\n", i, (*f)[i]); - } - */ - - free(P); - free(F); - free(tw); - free(xw); - - return Nout; -} - -double SP_Summaries_welch_rect(const double y[], const int size, const char what[]) -{ - - // NaN check - for(int i = 0; i < size; i++) - { - if(isnan(y[i])) - { - return NAN; - } - } - - // rectangular window for Welch-spectrum - double * window = malloc(size * sizeof(double)); - for(int i = 0; i < size; i++){ - window[i] = 1; - } - - double Fs = 1.0; // sampling frequency - int N = nextpow2(size); - - double * S; - double * f; - - // compute Welch-power - int nWelch = welch(y, size, N, Fs, window, size, &S, &f); - free(window); - - // angualr frequency and spectrum on that - double * w = malloc(nWelch * sizeof(double)); - double * Sw = malloc(nWelch * sizeof(double)); - - double PI = 3.14159265359; - for(int i = 0; i < nWelch; i++){ - w[i] = 2*PI*f[i]; - Sw[i] = S[i]/(2*PI); - //printf("w[%i]=%1.3f, Sw[%i]=%1.3f\n", i, w[i], i, Sw[i]); - if(isinf(Sw[i]) || isinf(-Sw[i])){ - return 0; - } - } - - double dw = w[1] - w[0]; - - double * csS = malloc(nWelch * sizeof(double)); - cumsum(Sw, nWelch, csS); - /* - for(int i=0; i csSThres){ - centroid = w[i]; - break; - } - } - - output = centroid; - - } - else if(strcmp(what, "area_5_1") == 0){ - double area_5_1 = 0;; - for(int i=0; i - -extern double SP_Summaries_welch_rect(const double y[], const int size, const char what[]); -extern double SP_Summaries_welch_rect_area_5_1(const double y[], const int size); -extern double SP_Summaries_welch_rect_centroid(const double y[], const int size); - -#endif /* SP_Summaries_h */ diff --git a/src/C/butterworth.c b/src/C/butterworth.c deleted file mode 100644 index 62cba09..0000000 --- a/src/C/butterworth.c +++ /dev/null @@ -1,298 +0,0 @@ -// -// butterworth.c -// -// -// Created by Carl Henning Lubba on 23/09/2018. -// - -#include -#include - -#if __cplusplus -# include -typedef std::complex< double > cplx; -#else -# include -#if defined(__GNUC__) || defined(__GNUG__) - typedef double complex cplx; -#elif defined(_MSC_VER) - typedef _Dcomplex cplx; -#endif -#endif - -#include "helper_functions.h" -#include "butterworth.h" - -#ifndef CMPLX -#define CMPLX(x, y) ((cplx)((double)(x) + _Imaginary_I * (double)(y))) -#endif - -void poly(cplx x[], int size, cplx out[]) -{ - /* Convert roots x to polynomial coefficients */ - - // initialise - #if defined(__GNUC__) || defined(__GNUG__) - out[0] = 1; - for(int i=1; i= 0) - { - out[i] += b[j]*(y[i-j]-offset); - out[i] -= a[j]*out[i-j]; - } - else{ - out[i] += 0; //b[j]*offset; // 'padding' - out[i] -= 0; //a[j]*offset; - } - } - } - - for(int i = 0; i < size; i++){ - out[i] += offset; - } -} - -void reverse_array(double a[], int size){ - - /* Reverse the order of the elements in an array. Write back into the input array.*/ - - double temp; - for(int i = 0; i < size/2; i++){ - temp = a[i]; - a[i] = a[size-i-1]; - a[size-1-i] = temp; - /* - printf("indFrom = %i, indTo = %i\n", i, size-1-i); - for(int i=0; i < size; i++){ - printf("reversed[%i]=%1.3f\n", i, a[i]); - } - */ - } -} - -void filt_reverse(double y[], int size, double a[], double b[], int nCoeffs, double out[]){ - - /* Filter a signal y with the filter coefficients a and b _in reverse order_, output to array out.*/ - - double * yTemp = malloc(size * sizeof(double)); - for(int i = 0; i < size; i++){ - yTemp[i] = y[i]; - } - - /* - for(int i=0; i < size; i++){ - printf("yTemp[%i]=%1.3f\n", i, yTemp[i]); - } - */ - - reverse_array(yTemp, size); - - /* - for(int i=0; i < size; i++){ - printf("reversed[%i]=%1.3f\n", i, yTemp[i]); - } - */ - - double offset = yTemp[0]; - - for(int i = 0; i < size; i++){ - out[i] = 0; - for(int j = 0; j < nCoeffs; j++){ - if(i - j >= 0) - { - out[i] += b[j]*(yTemp[i-j]-offset); - out[i] -= a[j]*out[i-j]; - } - else{ - out[i] += 0; //b[j]*offset; // 'padding' - out[i] -= 0; //a[j]*offset; - } - } - } - - for(int i = 0; i < size; i++){ - out[i] += offset; - } - - reverse_array(out, size); - - free(yTemp); - -} - -/* -void butterworthFilter(const double y[], int size, const int nPoles, const double W, double out[]){ - - double PI = 3.14159265359; - - double V = tan(W * PI/2); - cplx * Q = malloc(nPoles * sizeof(cplx)); - - for(int i = 0; i 0){ - // prod1mSp *= (1 - Sp[i]); - //} - - } - - double G = creal(Sg / prod1mSp); - - cplx * Zpoly = malloc((nPoles+1) * sizeof(cplx)); - cplx * Ppoly = malloc((nPoles+1) * sizeof(cplx)); - - // polynomial coefficients from poles and zeros for filtering - poly(Z, nPoles, Zpoly); - - //for(int i = 0; i < nPoles+1; i++){ - // printf("Zpoly[%i]= %1.3f + %1.3f i\n", i, creal(Zpoly[i]), cimag(Zpoly[i])); - //} - - poly(P, nPoles, Ppoly); - - //for(int i = 0; i < nPoles+1; i++){ - // printf("Ppoly[%i]= %1.3f + %1.3f i\n", i, creal(Ppoly[i]), cimag(Ppoly[i])); - //} - - - // coeffs for filtering - double * b = malloc((nPoles+1) * sizeof(double)); // zeros - double * a = malloc((nPoles+1) * sizeof(double)); // poles - - for(int i = 0; i - -extern void butterworthFilter(const double y[], const int size, const int nPoles, const double W, double out[]); - -#endif /* butterworth_h */ diff --git a/src/C/fft.c b/src/C/fft.c deleted file mode 100644 index 31f5037..0000000 --- a/src/C/fft.c +++ /dev/null @@ -1,61 +0,0 @@ -#include -#include -#include - -#if __cplusplus -# include -typedef std::complex< double > cplx; -#else -# include -#if defined(__GNUC__) || defined(__GNUG__) -typedef double complex cplx; -#elif defined(_MSC_VER) -typedef _Dcomplex cplx; -#endif -#endif - -#ifndef CMPLX -#define CMPLX(x, y) ((cplx)((double)(x) + _Imaginary_I * (double)(y))) -#endif - -#include "helper_functions.h" - -void twiddles(cplx a[], int size) -{ - - double PI = 3.14159265359; - - for (int i = 0; i < size; i++) { - // cplx tmp = { 0, -PI * i / size }; - #if defined(__GNUC__) || defined(__GNUG__) - cplx tmp = 0.0 - PI * i / size * I; - #elif defined(_MSC_VER) - cplx tmp = {0.0, -PI * i / size }; - #endif - a[i] = cexp(tmp); - //a[i] = cexp(-I * M_PI * i / size); - } -} - -static void _fft(cplx a[], cplx out[], int size, int step, cplx tw[]) -{ - if (step < size) { - _fft(out, a, size, step * 2, tw); - _fft(out + step, a + step, size, step * 2, tw); - - for (int i = 0; i < size; i += 2 * step) { - //cplx t = tw[i] * out[i + step]; - cplx t = _Cmulcc(tw[i], out[i + step]); - a[i / 2] = _Caddcc(out[i], t); - a[(i + size) / 2] = _Cminuscc(out[i], t); - } - } -} - -void fft(cplx a[], int size, cplx tw[]) -{ - cplx * out = malloc(size * sizeof(cplx)); - memcpy(out, a, size * sizeof(cplx)); - _fft(a, out, size, 1, tw); - free(out); -} diff --git a/src/C/fft.h b/src/C/fft.h deleted file mode 100644 index b26a0ae..0000000 --- a/src/C/fft.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef FFT_H -#define FFT_H -//#include - -#if __cplusplus -# include - typedef std::complex< double > cplx; -#else -# include -#if defined(__GNUC__) || defined(__GNUG__) -typedef double complex cplx; -#elif defined(_MSC_VER) -typedef _Dcomplex cplx; -#endif -#endif - -#include -#include -#ifndef CMPLX -#define CMPLX(x, y) ((cplx)((double)(x) + _Complex_I * (double)(y))) -#endif -extern void twiddles(cplx a[], int size); -// extern void _fft(cplx a[], cplx out[], int size, int step, cplx tw[]); -extern void fft(cplx a[], int size, cplx tw[]); -extern void ifft(cplx a[], int size, cplx tw[]); -#endif diff --git a/src/C/helper_functions.c b/src/C/helper_functions.c deleted file mode 100644 index fb9c08d..0000000 --- a/src/C/helper_functions.c +++ /dev/null @@ -1,179 +0,0 @@ -#if __cplusplus -# include -typedef std::complex< double > cplx; -#else -# include -#if defined(__GNUC__) || defined(__GNUG__) -typedef double complex cplx; -#elif defined(_MSC_VER) -typedef _Dcomplex cplx; -#endif -#endif - -#include -#include -#include -#include -#include "stats.h" - -// compare function for qsort, for array of doubles -static int compare (const void * a, const void * b) -{ - if (*(double*)a < *(double*)b) { - return -1; - } else if (*(double*)a > *(double*)b) { - return 1; - } else { - return 0; - } -} - -// wrapper for qsort for array of doubles. Sorts in-place -void sort(double y[], int size) -{ - qsort(y, size, sizeof(*y), compare); -} - -// linearly spaced vector -void linspace(double start, double end, int num_groups, double out[]) -{ - double step_size = (end - start) / (num_groups - 1); - for (int i = 0; i < num_groups; i++) { - out[i] = start; - start += step_size; - } - return; -} - -double quantile(const double y[], const int size, const double quant) -{ - double quant_idx, q, value; - int idx_left, idx_right; - double * tmp = malloc(size * sizeof(*y)); - memcpy(tmp, y, size * sizeof(*y)); - sort(tmp, size); - - /* - for(int i=0; i < size; i++){ - printf("y[%i]=%1.4f\n", i, y[i]); - } - for(int i=0; i < size; i++){ - printf("sorted[%i]=%1.4f\n", i, tmp[i]); - } - */ - - // out of range limit? - q = 0.5 / size; - if (quant < q) { - value = tmp[0]; // min value - free(tmp); - return value; - } else if (quant > (1 - q)) { - value = tmp[size - 1]; // max value - free(tmp); - return value; - } - - quant_idx = size * quant - 0.5; - idx_left = (int)floor(quant_idx); - idx_right = (int)ceil(quant_idx); - value = tmp[idx_left] + (quant_idx - idx_left) * (tmp[idx_right] - tmp[idx_left]) / (idx_right - idx_left); - free(tmp); - return value; -} - -void binarize(const double a[], const int size, int b[], const char how[]) -{ - double m = 0.0; - if (strcmp(how, "mean") == 0) { - m = mean(a, size); - } else if (strcmp(how, "median") == 0) { - m = median(a, size); - } - for (int i = 0; i < size; i++) { - b[i] = (a[i] > m) ? 1 : 0; - } - return; -} - -double f_entropy(const double a[], const int size) -{ - double f = 0.0; - for (int i = 0; i < size; i++) { - if (a[i] > 0) { - f += a[i] * log(a[i]); - } - } - return -1 * f; -} - -void subset(const int a[], int b[], const int start, const int end) -{ - int j = 0; - for (int i = start; i < end; i++) { - b[j++] = a[i]; - } - return; -} - -#if defined(__GNUC__) || defined(__GNUG__) - cplx _Cmulcc(const cplx x, const cplx y) { - /*double a = x._Val[0]; - double b = x._Val[1]; - - double c = y._Val[0]; - double d = y._Val[1]; - - cplx result = { (a * c - b * d), (a * d + c * b) }; - */ - return x*y; - } - - cplx _Cminuscc(const cplx x, const cplx y) { - //cplx result = { x._Val[0] - y._Val[0], x._Val[1] - y._Val[1] }; - return x - y; - } - - cplx _Caddcc(const cplx x, const cplx y) { - // cplx result = { x._Val[0] + y._Val[0], x._Val[1] + y._Val[1] }; - return x + y; - } - - cplx _Cdivcc(const cplx x, const cplx y) { - - double a = creal(x); - double b = cimag(x); - - double c = creal(y); - double d = cimag(y); - - cplx result = (a*c + b*d) / (c*c + d*d) + (b*c - a*d)/(c*c + d*d) * I; - - return result; - - // return x / y; - } - -#elif defined(_MSC_VER) - cplx _Cminuscc(const cplx x, const cplx y) { - cplx result = { x._Val[0] - y._Val[0], x._Val[1] - y._Val[1] }; - return result; - } - - cplx _Caddcc(const cplx x, const cplx y) { - cplx result = { x._Val[0] + y._Val[0], x._Val[1] + y._Val[1] }; - return result; - } - - cplx _Cdivcc(const cplx x, const cplx y) { - double a = x._Val[0]; - double b = x._Val[1]; - - double c = y._Val[0]; - double d = y._Val[1]; - - cplx result = { (a*c + b*d) / (c*c + d*d), (b*c - a*d)/(c*c + d*d)}; - - return result; - } -#endif diff --git a/src/C/helper_functions.h b/src/C/helper_functions.h deleted file mode 100644 index edf0c66..0000000 --- a/src/C/helper_functions.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef HELPER_FUNCTIONS_H -#define HELPER_FUNCTIONS_H -#include -#include -#include -#include "stats.h" - -#if __cplusplus -# include -typedef std::complex< double > cplx; -#else -# include -#if defined(__GNUC__) || defined(__GNUG__) -typedef double complex cplx; -#elif defined(_MSC_VER) -typedef _Dcomplex cplx; -#endif -#endif - -extern void linspace(double start, double end, int num_groups, double out[]); -extern double quantile(const double y[], const int size, const double quant); -extern void sort(double y[], int size); -extern void binarize(const double a[], const int size, int b[], const char how[]); -extern double f_entropy(const double a[], const int size); -extern void subset(const int a[], int b[], const int start, const int end); - -extern cplx _Cminuscc(const cplx x, const cplx y); -extern cplx _Caddcc(const cplx x, const cplx y); -extern cplx _Cdivcc(const cplx x, const cplx y); -#if defined(__GNUC__) || defined(__GNUG__) -extern cplx _Cmulcc(const cplx x, const cplx y); -#endif - -#endif diff --git a/src/C/histcounts.c b/src/C/histcounts.c deleted file mode 100644 index 47c4388..0000000 --- a/src/C/histcounts.c +++ /dev/null @@ -1,200 +0,0 @@ -// -// histcounts.c -// C_polished -// -// Created by Carl Henning Lubba on 19/09/2018. -// Copyright © 2018 Carl Henning Lubba. All rights reserved. -// - -#include -#include - -#include "stats.h" -#include "histcounts.h" - -int num_bins_auto(const double y[], const int size){ - - double maxVal = max_(y, size); - double minVal = min_(y, size); - - if (stddev(y, size) < 0.001){ - return 0; - } - - return ceil((maxVal-minVal)/(3.5*stddev(y, size)/pow(size, 1/3.))); - -} - -int histcounts_preallocated(const double y[], const int size, int nBins, int * binCounts, double * binEdges) -{ - - int i = 0; - - // check min and max of input array - double minVal = DBL_MAX, maxVal=-DBL_MAX; - for(int i = 0; i < size; i++) - { - // printf("histcountInput %i: %1.3f\n", i, y[i]); - - if (y[i] < minVal) - { - minVal = y[i]; - } - if (y[i] > maxVal) - { - maxVal = y[i]; - } - } - - // and derive bin width from it - double binStep = (maxVal - minVal)/nBins; - - // variable to store counted occurances in - for(i = 0; i < nBins; i++) - { - binCounts[i] = 0; - } - - for(i = 0; i < size; i++) - { - - int binInd = (y[i]-minVal)/binStep; - if(binInd < 0) - binInd = 0; - if(binInd >= nBins) - binInd = nBins-1; - //printf("histcounts, i=%i, binInd=%i, nBins=%i\n", i, binInd, nBins); - binCounts[binInd] += 1; - - } - - for(i = 0; i < nBins+1; i++) - { - binEdges[i] = i * binStep + minVal; - } - - /* - // debug - for(i=0;i maxVal) - { - maxVal = y[i]; - } - } - - // if no number of bins given, choose spaces automatically - if (nBins <= 0){ - nBins = ceil((maxVal-minVal)/(3.5*stddev(y, size)/pow(size, 1/3.))); - } - - // and derive bin width from it - double binStep = (maxVal - minVal)/nBins; - - // variable to store counted occurances in - *binCounts = malloc(nBins * sizeof(int)); - for(i = 0; i < nBins; i++) - { - (*binCounts)[i] = 0; - } - - for(i = 0; i < size; i++) - { - - int binInd = (y[i]-minVal)/binStep; - if(binInd < 0) - binInd = 0; - if(binInd >= nBins) - binInd = nBins-1; - (*binCounts)[binInd] += 1; - - } - - *binEdges = malloc((nBins+1) * sizeof(double)); - for(i = 0; i < nBins+1; i++) - { - (*binEdges)[i] = i * binStep + minVal; - } - - /* - // debug - for(i=0;i 0 - binIdentity[i] = 0; - - // go through bin edges - for(int j = 0; j < nEdges; j++){ - if(y[i] < binEdges[j]){ - binIdentity[i] = j; - break; - } - } - } - - return binIdentity; - -} - -int * histcount_edges(const double y[], const int size, const double binEdges[], const int nEdges) -{ - - - int * histcounts = malloc(nEdges * sizeof(int)); - for(int i = 0; i < nEdges; i++){ - histcounts[i] = 0; - } - - for(int i = 0; i < size; i++) - { - // go through bin edges - for(int j = 0; j < nEdges; j++){ - if(y[i] <= binEdges[j]){ - histcounts[j] += 1; - break; - } - } - } - - return histcounts; - -} diff --git a/src/C/histcounts.h b/src/C/histcounts.h deleted file mode 100644 index 923f882..0000000 --- a/src/C/histcounts.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// histcounts.h -// C_polished -// -// Created by Carl Henning Lubba on 19/09/2018. -// Copyright © 2018 Carl Henning Lubba. All rights reserved. -// - -#ifndef histcounts_h -#define histcounts_h - -#include -#include -#include - -extern int num_bins_auto(const double y[], const int size); -extern int histcounts(const double y[], const int size, int nBins, int ** binCounts, double ** binEdges); -extern int histcounts_preallocated(const double y[], const int size, int nBins, int * binCounts, double * binEdges); -extern int * histcount_edges(const double y[], const int size, const double binEdges[], const int nEdges); -extern int * histbinassign(const double y[], const int size, const double binEdges[], const int nEdges); - -#endif /* histcounts_h */ diff --git a/src/C/main.c b/src/C/main.c deleted file mode 100644 index 7d44e57..0000000 --- a/src/C/main.c +++ /dev/null @@ -1,420 +0,0 @@ -/* Include files */ -#include "main.h" -#include -#include -#include -#include -//#include - -#include "DN_HistogramMode_5.h" -#include "DN_HistogramMode_10.h" -#include "DN_Mean.h" -#include "DN_Spread_Std.h" -#include "CO_AutoCorr.h" -#include "DN_OutlierInclude.h" -#include "FC_LocalSimple.h" -#include "IN_AutoMutualInfoStats.h" -#include "MD_hrv.h" -#include "SB_BinaryStats.h" -#include "SB_MotifThree.h" -#include "SC_FluctAnal.h" -#include "SP_Summaries.h" -#include "SB_TransitionMatrix.h" -#include "PD_PeriodicityWang.h" - -#include "stats.h" - -// check if data qualifies to be caught22 -int quality_check(const double y[], const int size) -{ - int minSize = 10; - - if(size < minSize) - { - return 1; - } - for(int i = 0; i < size; i++) - { - double val = y[i]; - if(val == INFINITY || -val == INFINITY) - { - return 2; - } - if(isnan(val)) - { - return 3; - } - } - return 0; -} - -void run_features(double y[], int size, FILE * outfile, bool catch24) -{ - int quality = quality_check(y, size); - if(quality != 0) - { - fprintf(stdout, "Time series quality test not passed (code %i).\n", quality); - return; - } - - double * y_zscored = malloc(size * sizeof * y_zscored); - - // variables to keep time - clock_t begin; - double timeTaken; - - // output - double result; - - // z-score first for all. - zscore_norm2(y, size, y_zscored); - - // GOOD - begin = clock(); - result = DN_OutlierInclude_n_001_mdrmd(y_zscored, size); - timeTaken = (double)(clock()-begin)*1000/CLOCKS_PER_SEC; - fprintf(outfile, "%.14f, %s, %f\n", result, "DN_OutlierInclude_n_001_mdrmd", timeTaken); - - // GOOD - begin = clock(); - result = DN_OutlierInclude_p_001_mdrmd(y_zscored, size); - timeTaken = (double)(clock()-begin)*1000/CLOCKS_PER_SEC; - fprintf(outfile, "%.14f, %s, %f\n", result, "DN_OutlierInclude_p_001_mdrmd", timeTaken); - - // GOOD - begin = clock(); - result = DN_HistogramMode_5(y_zscored, size); - timeTaken = (double)(clock()-begin)*1000/CLOCKS_PER_SEC; - fprintf(outfile, "%.14f, %s, %f\n", result, "DN_HistogramMode_5", timeTaken); - - // GOOD - begin = clock(); - result = DN_HistogramMode_10(y_zscored, size); - timeTaken = (double)(clock()-begin)*1000/CLOCKS_PER_SEC; - fprintf(outfile, "%.14f, %s, %f\n", result, "DN_HistogramMode_10", timeTaken); - - //GOOD - begin = clock(); - result = CO_Embed2_Dist_tau_d_expfit_meandiff(y_zscored, size); - timeTaken = (double)(clock()-begin)*1000/CLOCKS_PER_SEC; - fprintf(outfile, "%.14f, %s, %f\n", result, "CO_Embed2_Dist_tau_d_expfit_meandiff", timeTaken); - - //GOOD (memory leak?) - begin = clock(); - result = CO_f1ecac(y_zscored, size); - timeTaken = (double)(clock()-begin)*1000/CLOCKS_PER_SEC; - fprintf(outfile, "%.14f, %s, %f\n", result, "CO_f1ecac", timeTaken); - - //GOOD - begin = clock(); - result = CO_FirstMin_ac(y_zscored, size); - timeTaken = (double)(clock()-begin)*1000/CLOCKS_PER_SEC; - fprintf(outfile, "%.14f, %s, %f\n", result, "CO_FirstMin_ac", timeTaken); - - // GOOD (memory leak?) - begin = clock(); - result = CO_HistogramAMI_even_2_5(y_zscored, size); - timeTaken = (double)(clock()-begin)*1000/CLOCKS_PER_SEC; - fprintf(outfile, "%.14f, %s, %f\n", result, "CO_HistogramAMI_even_2_5", timeTaken); - - // GOOD - begin = clock(); - result = CO_trev_1_num(y_zscored, size); - timeTaken = (double)(clock()-begin)*1000/CLOCKS_PER_SEC; - fprintf(outfile, "%.14f, %s, %f\n", result, "CO_trev_1_num", timeTaken); - - //GOOD - begin = clock(); - result = FC_LocalSimple_mean1_tauresrat(y_zscored, size); - timeTaken = (double)(clock()-begin)*1000/CLOCKS_PER_SEC; - fprintf(outfile, "%.14f, %s, %f\n", result, "FC_LocalSimple_mean1_tauresrat", timeTaken); - - //GOOD - begin = clock(); - result = FC_LocalSimple_mean3_stderr(y_zscored, size); - timeTaken = (double)(clock()-begin)*1000/CLOCKS_PER_SEC; - fprintf(outfile, "%.14f, %s, %f\n", result, "FC_LocalSimple_mean3_stderr", timeTaken); - - //GOOD (memory leak?) - begin = clock(); - result = IN_AutoMutualInfoStats_40_gaussian_fmmi(y_zscored, size); - timeTaken = (double)(clock()-begin)*1000/CLOCKS_PER_SEC; - fprintf(outfile, "%.14f, %s, %f\n", result, "IN_AutoMutualInfoStats_40_gaussian_fmmi", timeTaken); - - //GOOD - begin = clock(); - result = MD_hrv_classic_pnn40(y_zscored, size); - timeTaken = (double)(clock()-begin)*1000/CLOCKS_PER_SEC; - fprintf(outfile, "%.14f, %s, %f\n", result, "MD_hrv_classic_pnn40", timeTaken); - - //GOOD - begin = clock(); - result = SB_BinaryStats_diff_longstretch0(y_zscored, size); - timeTaken = (double)(clock()-begin)*1000/CLOCKS_PER_SEC; - fprintf(outfile, "%.14f, %s, %f\n", result, "SB_BinaryStats_diff_longstretch0", timeTaken); - - //GOOD - begin = clock(); - result = SB_BinaryStats_mean_longstretch1(y_zscored, size); - timeTaken = (double)(clock()-begin)*1000/CLOCKS_PER_SEC; - fprintf(outfile, "%.14f, %s, %f\n", result, "SB_BinaryStats_mean_longstretch1", timeTaken); - - //GOOD (memory leak?) - begin = clock(); - result = SB_MotifThree_quantile_hh(y_zscored, size); - timeTaken = (double)(clock()-begin)*1000/CLOCKS_PER_SEC; - fprintf(outfile, "%.14f, %s, %f\n", result, "SB_MotifThree_quantile_hh", timeTaken); - - //GOOD (memory leak?) - begin = clock(); - result = SC_FluctAnal_2_rsrangefit_50_1_logi_prop_r1(y_zscored, size); - timeTaken = (double)(clock()-begin)*1000/CLOCKS_PER_SEC; - fprintf(outfile, "%.14f, %s, %f\n", result, "SC_FluctAnal_2_rsrangefit_50_1_logi_prop_r1", timeTaken); - - //GOOD - begin = clock(); - result = SC_FluctAnal_2_dfa_50_1_2_logi_prop_r1(y_zscored, size); - timeTaken = (double)(clock()-begin)*1000/CLOCKS_PER_SEC; - fprintf(outfile, "%.14f, %s, %f\n", result, "SC_FluctAnal_2_dfa_50_1_2_logi_prop_r1", timeTaken); - - //GOOD - begin = clock(); - result = SP_Summaries_welch_rect_area_5_1(y_zscored, size); - timeTaken = (double)(clock()-begin)*1000/CLOCKS_PER_SEC; - fprintf(outfile, "%.14f, %s, %f\n", result, "SP_Summaries_welch_rect_area_5_1", timeTaken); - - //GOOD - begin = clock(); - result = SP_Summaries_welch_rect_centroid(y_zscored, size); - timeTaken = (double)(clock()-begin)*1000/CLOCKS_PER_SEC; - fprintf(outfile, "%.14f, %s, %f\n", result, "SP_Summaries_welch_rect_centroid", timeTaken); - - //OK, BUT filt in Butterworth sometimes diverges, now removed alltogether, let's see results. - begin = clock(); - result = SB_TransitionMatrix_3ac_sumdiagcov(y_zscored, size); - timeTaken = (double)(clock()-begin)*1000/CLOCKS_PER_SEC; - fprintf(outfile, "%.14f, %s, %f\n", result, "SB_TransitionMatrix_3ac_sumdiagcov", timeTaken); - - // GOOD - begin = clock(); - result = PD_PeriodicityWang_th0_01(y_zscored, size); - timeTaken = (double)(clock()-begin)*1000/CLOCKS_PER_SEC; - fprintf(outfile, "%.14f, %s, %f\n", result, "PD_PeriodicityWang_th0_01", timeTaken); - - if (catch24) { - - // GOOD - begin = clock(); - result = DN_Mean(y, size); - timeTaken = (double)(clock()-begin)*1000/CLOCKS_PER_SEC; - fprintf(outfile, "%.14f, %s, %f\n", result, "DN_Mean", timeTaken); - - // GOOD - begin = clock(); - result = DN_Spread_Std(y, size); - timeTaken = (double)(clock()-begin)*1000/CLOCKS_PER_SEC; - fprintf(outfile, "%.14f, %s, %f\n", result, "DN_Spread_Std", timeTaken); - } else { - - } - - fprintf(outfile, "\n"); - - free(y_zscored); -} - -void print_help(char *argv[], char msg[]) -{ - if (strlen(msg) > 0) { - fprintf(stdout, "ERROR: %s\n", msg); - } - fprintf(stdout, "Usage is %s \n", argv[0]); - fprintf(stdout, "\n\tSpecifying outfile is optional, by default it is stdout\n"); - // fprintf(stdout, "\tOutput order is:\n%s\n", HEADER); - exit(1); -} - -// memory leak check; use with valgrind. -#if 0 -int main(int argc, char * argv[]) -{ - double * y = malloc(1000 * sizeof(double)); - - srand(42); - for (int i = 0; i < 1000; ++i) { - y[i] = rand() % RAND_MAX; - } - run_features(y, 1000, stdout); - free(y); -} -#endif - -#if 1 -int main(int argc, char * argv[]) -{ - FILE * infile, * outfile; - int array_size; - double * y; - int size; - double value; - // DIR *d; - struct dirent *dir; - - - switch (argc) { - case 1: - print_help(argv, ""); - break; - case 2: - if ((infile = fopen(argv[1], "r")) == NULL) { - print_help(argv, "Can't open input file\n"); - } - outfile = stdout; - break; - case 3: - if ((infile = fopen(argv[1], "r")) == NULL) { - print_help(argv, "Can't open input file\n"); - } - if ((outfile = fopen(argv[2], "w")) == NULL) { - print_help(argv, "Can't open output file\n"); - } - break; - } - - /* - // debug: fix these. - infile = fopen("/Users/carl/PycharmProjects/catch22/C/timeSeries/tsid0244.txt", "r"); - outfile = stdout; - */ - - // fprintf(outfile, "%s", HEADER); - array_size = 50; - size = 0; - y = malloc(array_size * sizeof *y); - - while (fscanf(infile, "%lf", &value) != EOF) { - if (size == array_size) { - y = realloc(y, 2 * array_size * sizeof *y); - array_size *= 2; - } - y[size++] = value; - } - fclose(infile); - y = realloc(y, size * sizeof *y); - //printf("size=%i\n", size); - - // catch24 specification - - int catch24; - printf("Do you want to run catch24? Enter 0 for catch22 or 1 for catch24."); - scanf("%d", &catch24); - - if (catch24 == 1) { - run_features(y, size, outfile, true); - } else { - run_features(y, size, outfile, false); - } - - fclose(outfile); - free(y); - - return 0; -} -#endif - -#if 0 -int main(int argc, char * argv[]) -{ - (void)argc; - (void)argv; - - /* - // generate some data - const int size = 31; // 211; - - double y[size]; - int i; - double sinIn=0; - for(i=0; i -#include -#include -#include - -/* Function Declarations */ -//extern int main(int argc, const char * const argv[]); -extern int main(int argc, char * argv[]); - -#endif - -/* End of code generation (main.h) */ diff --git a/src/C/runAllTS.sh b/src/C/runAllTS.sh deleted file mode 100755 index 2ba8ed4..0000000 --- a/src/C/runAllTS.sh +++ /dev/null @@ -1,71 +0,0 @@ -#!/bin/bash - -help() -{ - echo "" - echo "Usage: $0 -i indir -o outdir -a append_string -s" - echo -e "\t-h Show this help message" - echo -e "\t-i Path to a directory containing input time-series files (.txt with one time series value per line). Default: './timeSeries'" - echo -e "\t-o Path to a directory in which to save output feature values. Default: './featureOutput'" - echo -e "\t-a A string (minus extension) appended to the input file names to create the output file names. Default: 'output'" - echo -e "\t-s A switch to evaluate catch22 (0) or catch24 (1). Default: 0" - exit 1 -} - -while getopts "i:o:a:s:h" opt -do - case "$opt" in - i) indir="$OPTARG" ;; - o) outdir="$OPTARG" ;; - a) append="$OPTARG" ;; - s) catch24="$OPTARG" ;; - h) help ;; - esac -done - -srcdir=$(dirname "$0}") - -if [ -z "$indir" ] -then - indir="./timeSeries" -fi - -if [ -z "$outdir" ] -then - outdir="./featureOutput" -fi - -if [ -z "$append" ] -then - append="output" -fi - -if [ -z "$catch24" ] -then - catch24=0 -fi - -indir="$(dirname $indir)/$(basename $indir)" -outdir="$(dirname $outdir)/$(basename $outdir)" -mkdir -p $outdir - -# Loop through each file in indir and save the feature outputs -for entry in "${indir}"/*.txt -do - filename=$(basename "$entry") - extension="${filename##*.}" - filename="${filename%.*}" - fullfile="${outdir}/${filename}${append}.${extension}" - if [ "${filename: -${#append}}" != "${append}" ] - then - yes $catch24 | "${srcdir}/run_features" $entry $fullfile > /dev/null - - if [ -s $fullfile ] # Remove file if catch22 errors - then - echo "Output written to ${fullfile}" - else - rm $fullfile - fi - - fi -done diff --git a/src/C/splinefit.c b/src/C/splinefit.c deleted file mode 100644 index 802298c..0000000 --- a/src/C/splinefit.c +++ /dev/null @@ -1,801 +0,0 @@ -// Created by Carl Henning Lubba on 27/09/2018. -// Copyright © 2018 Carl Henning Lubba. All rights reserved. -// -// Based on the work of Jonas Lundgren in his Matlab Central contribution 'SPLINEFIT'. -// -#include -#include -#include - -#include "splinefit.h" -#include "stats.h" - -#define nCoeffs 3 -#define nPoints 4 - -#define pieces 2 -#define nBreaks 3 -#define deg 3 -#define nSpline 4 -#define piecesExt 8 //3 * deg - 1 - - -void matrix_multiply(const int sizeA1, const int sizeA2, const double *A, const int sizeB1, const int sizeB2, const double *B, double *C){ -//void matrix_multiply(int sizeA1, int sizeA2, double **A, int sizeB1, int sizeB2, double **B, double C[sizeA1][sizeB2]){ - - if(sizeA2 != sizeB1){ - return; - } - - /* - // show input - for(int i = 0; i < sizeA1; i++){ - for(int j = 0; j < sizeA2; j++){ - printf("A[%i][%i] = %1.3f\n", i, j, A[i*sizeA2 + j]); - } - } - */ - - for(int i = 0; i < sizeA1; i++){ - for(int j = 0; j < sizeB2; j++){ - - //C[i][j] = 0; - C[i*sizeB2 + j] = 0; - for(int k = 0; k < sizeB1; k++){ - // C[i][j] += A[i][k]*B[k][j]; - C[i*sizeB2 + j] += A[i * sizeA2 + k]*B[k * sizeB2 + j]; - //printf("C[%i][%i] (k=%i) = %1.3f\n", i, j, k, C[i * sizeB2 + j]); - } - - } - } - -} - -void matrix_times_vector(const int sizeA1, const int sizeA2, const double *A, const int sizeb, const double *b, double *c){ //c[sizeb] - - if(sizeA2 != sizeb){ - return; - } - - // row - for(int i = 0; i < sizeA1; i++){ - - // column - c[i] = 0; - for(int k = 0; k < sizeb; k++){ - c[i] += A[i * sizeA2 + k]*b[k]; - } - - } - -} - -void gauss_elimination(int size, double *A, double *b, double *x){ -// void gauss_elimination(int size, double A[size][size], double b[size], double x[size]){ - - double factor; - - // create temp matrix and vector - // double *AElim[size]; - double* AElim[nSpline + 1]; - for (int i = 0; i < size; i++) - AElim[i] = (double *)malloc(size * sizeof(double)); - double * bElim = malloc(size * sizeof(double)); - - // -- create triangular matrix - - // initialise to A and b - for(int i = 0; i < size; i++){ - for(int j = 0; j < size; j++){ - AElim[i][j] = A[i*size + j]; - } - bElim[i] = b[i]; - } - - /* - printf("AElim\n"); - for(int i = 0; i < size; i++){ - for(int j = 0; j < size; j++){ - printf("%1.3f, ", AElim[i][j]); - } - printf("\n"); - } - */ - - // go through columns in outer loop - for(int i = 0; i < size; i++){ - - // go through rows to eliminate - for(int j = i+1; j < size; j++){ - - factor = AElim[j][i]/AElim[i][i]; - - // subtract in vector - bElim[j] = bElim[j] - factor*bElim[i]; - - // go through entries of this row - for(int k = i; k < size; k++){ - AElim[j][k] = AElim[j][k] - factor*AElim[i][k]; - } - - /* - printf("AElim i=%i, j=%i\n", i, j); - for(int i = 0; i < size; i++){ - for(int j = 0; j < size; j++){ - printf("%1.3f, ", AElim[i][j]); - } - printf("\n"); - } - */ - - } - - } - - /* - for(int i = 0; i < size; i++){ - for(int j = 0; j < size; j++){ - printf("AElim[%i][%i] = %1.3f\n", i, j, AElim[i][j]); - } - } - for(int i = 0; i < size; i++){ - printf("bElim[%i] = %1.3f\n", i, bElim[i]); - } - */ - - - // -- go backwards through triangular matrix and solve for x - - // row - double bMinusATemp; - for(int i = size-1; i >= 0; i--){ - - bMinusATemp = bElim[i]; - for(int j = i+1; j < size; j++){ - bMinusATemp -= x[j]*AElim[i][j]; - } - - x[i] = bMinusATemp/AElim[i][i]; - } - /* - for(int j = 0; j < size; j++){ - printf("x[%i] = %1.3f\n", j, x[j]); - } - */ - - for (int i = 0; i < size; i++) - free(AElim[i]); - free(bElim); -} - -void lsqsolve_sub(const int sizeA1, const int sizeA2, const double *A, const int sizeb, const double *b, double *x) -//void lsqsolve_sub(int sizeA1, int sizeA2, double A[sizeA1][sizeA2], int sizeb, double b[sizeb], double x[sizeA1]) -{ - // create temp matrix and vector - /* - double *AT[sizeA1*sizeA2]; - for (int i = 0; i < sizeA2; i++) - AT[i] = (double *)malloc(sizeA1 * sizeof(double)); - double *ATA[sizeA2]; - for (int i = 0; i < sizeA2; i++) - ATA[i] = (double *)malloc(sizeA2 * sizeof(double)); - double * ATb = malloc(sizeA1 * sizeof(double)); - */ - - double * AT = malloc(sizeA2 * sizeA1 * sizeof(double)); - double * ATA = malloc(sizeA2 * sizeA2 * sizeof(double)); - double * ATb = malloc(sizeA2 * sizeof(double)); - - - for(int i = 0; i < sizeA1; i++){ - for(int j = 0; j < sizeA2; j++){ - //AT[i,j] = A[j,i] - AT[j * sizeA1 + i] = A[i * sizeA2 + j]; - } - } - - /* - printf("\n b \n"); - for(int i = 0; i < sizeA1; i++){ - printf("%i, %1.3f\n", i, b[i]); - } - */ - - /* - printf("\nA\n"); - for(int i = 0; i < sizeA2; i++){ - for(int j = 0; j < sizeA1; j++){ - printf("%1.3f, ", AT[i * sizeA1 + j]); - } - printf("\n"); - } - */ - - - matrix_multiply(sizeA2, sizeA1, AT, sizeA1, sizeA2, A, ATA); - - /* - printf("ATA\n"); - for(int i = 0; i < sizeA2; i++){ - for(int j = 0; j < sizeA2; j++){ - printf("%1.3f, ", ATA[i * sizeA2 + j]); - } - printf("\n"); - } - */ - - - - matrix_times_vector(sizeA2, sizeA1, AT, sizeA1, b, ATb); - - /* - for(int i = 0; i < sizeA2; i++){ - ATb[i] = 0; - for(int j = 0; j < sizeA1; j++){ - ATb[i] += AT[i*sizeA1 + j]*b[j]; - //printf("%i, ATb[%i]=%1.3f, AT[i*sizeA1 + j]=%1.3f, b[j]=%1.3f\n", i, i, ATb[i], AT[i*sizeA1 + j],b[j]); - } - } - */ - - /* - for(int i = 0; i < nCoeffs; i++){ - printf("b[%i] = %1.3f\n", i, b[i]); - } - */ - - /* - for(int i = 0; i < sizeA2; i++){ - printf("ATb[%i] = %1.3f\n", i, ATb[i]); - } - */ - - - gauss_elimination(sizeA2, ATA, ATb, x); - - free(AT); - free(ATA); - free(ATb); - -} - -/* -int lsqsolve() -{ - //const int nPoints = 4; - //const int nCoeffs = 3; - - //double A[nPoints][nCoeffs] = {}; - double A[4][3]; - A[0][0] = 1; - A[1][0] = 3; - A[2][0] = 6; - A[3][0] = 8; - A[0][1] = 4; - A[1][1] = 5; - A[2][1] = 3; - A[3][1] = 12; - A[0][2] = 4; - A[1][2] = 1; - A[2][2] = 0; - A[3][2] = 7; - //double b[nPoints] = {}; - double b[4]; - b[0] = 2; - b[1] = 8; - b[2] = 3; - b[3] = 1; - - double x[4]; - - double * Alin = malloc(nPoints * nCoeffs * sizeof(double)); - - for(int i = 0; i < nPoints; i++){ - for(int j = 0; j < nCoeffs; j++){ - //AT[i,j] = A[j,i] - Alin[i * nCoeffs + j] = A[i][j]; - } - } - - lsqsolve_sub(nPoints, nCoeffs, Alin, nPoints, b, x); - - free(Alin); - - return 0; - - -} -*/ - -int iLimit(int x, int lim){ - return x= breaks[breakInd] && breakInd= breaks[1]) - breakInd = 1; - A[(i%nSpline)+breakInd + (i/nSpline)*(nSpline+1)] = vB[i]; - } - - /* - printf("\nA:\n"); - for(int i = 0; i < size; i++){ - for(int j = 0; j < n+1; j++){ - printf("%1.5f, ", A[i * (n+1) + j]); - } - printf("\n"); - } - */ - - - - double * x = malloc((nSpline+1)*sizeof(double)); - // lsqsolve_sub(int sizeA1, int sizeA2, double *A, int sizeb, double *b, double *x) - lsqsolve_sub(size, nSpline+1, A, size, y, x); - - /* - printf("\nsolved x\n"); - for(int i = 0; i < n+1; i++){ - printf("%i, %1.4f\n", i, x[i]); - } - */ - - // coeffs of B-splines to combine by optimised weighting in x - double C[pieces+nSpline-1][nSpline*pieces]; - // initialise to 0 - for(int i = 0; i < nSpline+1; i++){ - for(int j = 0; j < nSpline*pieces; j++){ - C[i][j] = 0; - } - } - - int CRow, CCol, coefRow, coefCol; - for(int i = 0; i < nSpline*nSpline*pieces; i++){ - - CRow = i%nSpline + (i/nSpline)%2; - CCol = i/nSpline; - - coefRow = i%(nSpline*2); - coefCol =i/(nSpline*2); - - C[CRow][CCol] = coefsOut[coefRow][coefCol]; - - } - - /* - printf("\nC:\n"); - for(int i = 0; i < n+1; i++){ - for(int j = 0; j < n*pieces; j++){ - printf("%1.5f, ", C[i][j]); - } - printf("\n"); - } - */ - - // final coefficients - double coefsSpline[pieces][nSpline]; - for(int i = 0; i < pieces; i++){ - for(int j = 0; j < nSpline; j++){ - coefsSpline[i][j] = 0; - } - } - - //multiply with x - for(int j = 0; j < nSpline*pieces; j++){ - coefCol = j/pieces; - coefRow = j%pieces; - - for(int i = 0; i < nSpline+1; i++){ - - coefsSpline[coefRow][coefCol] += C[i][j]*x[i]; - - } - } - - /* - printf("\ncoefsSpline:\n"); - for(int i = 0; i < pieces; i++){ - for(int j = 0; j < n; j++){ - printf("%1.5f, ", coefsSpline[i][j]); - } - printf("\n"); - } - */ - - - // compute piecewise polynomial - - int secondHalf = 0; - for(int i = 0; i < size; i++){ - secondHalf = i < breaks[1] ? 0 : 1; - yOut[i] = coefsSpline[secondHalf][0]; - } - - /* - printf("\nvSpline first iter\n"); - for(int i = 0; i < size; i++){ - printf("%i, %1.5f\n", i, vSpline[i]); - } - */ - - for(int i = 1; i < nSpline; i ++){ - for(int j = 0; j < size; j++){ - secondHalf = j < breaks[1] ? 0 : 1; - yOut[j] = yOut[j]*(j - breaks[1]*secondHalf) + coefsSpline[secondHalf][i]; - } - - /* - printf("\nvSpline %i th iter\n", i); - for(int i = 0; i < size; i++){ - printf("%i, %1.4f\n", i, vSpline[i]); - } - */ - } - - /* - printf("\nvSpline\n"); - for(int i = 0; i < size; i++){ - printf("%i, %1.4f\n", i, yOut[i]); - } - */ - - free(xsB); - free(indexB); - free(vB); - free(A); - free(x); - - return 0; - -} - - diff --git a/src/C/splinefit.h b/src/C/splinefit.h deleted file mode 100644 index 25c74db..0000000 --- a/src/C/splinefit.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// splinefit.h -// C_polished -// -// Created by Carl Henning Lubba on 27/09/2018. -// Copyright © 2018 Carl Henning Lubba. All rights reserved. -// - -#ifndef splinefit_h -#define splinefit_h - -#include - -extern int splinefit(const double *y, const int size, double *yOut); - -#endif /* splinefit_h */ diff --git a/src/C/stats.c b/src/C/stats.c deleted file mode 100644 index 5573ed4..0000000 --- a/src/C/stats.c +++ /dev/null @@ -1,270 +0,0 @@ -#include -#include -#include -#include -#include "helper_functions.h" - -double min_(const double a[], const int size) -{ - double m = a[0]; - for (int i = 1; i < size; i++) { - if (a[i] < m) { - m = a[i]; - } - } - return m; -} - -double max_(const double a[], const int size) -{ - double m = a[0]; - for (int i = 1; i < size; i++) { - if (a[i] > m) { - m = a[i]; - } - } - return m; -} - -double mean(const double a[], const int size) -{ - double m = 0.0; - for (int i = 0; i < size; i++) { - m += a[i]; - } - m /= size; - return m; -} - -double sum(const double a[], const int size) -{ - double m = 0.0; - for (int i = 0; i < size; i++) { - m += a[i]; - } - return m; -} - -void cumsum(const double a[], const int size, double b[]) -{ - b[0] = a[0]; - for (int i = 1; i < size; i++) { - b[i] = a[i] + b[i-1]; - //printf("b[%i]%1.3f = a[%i]%1.3f + b[%i-1]%1.3f\n", i, b[i], i, a[i], i, a[i-1]); - } - -} - -void icumsum(const int a[], const int size, int b[]) -{ - b[0] = a[0]; - for (int i = 1; i < size; i++) { - b[i] = a[i] + b[i-1]; - //printf("b[%i]%1.3f = a[%i]%1.3f + b[%i-1]%1.3f\n", i, b[i], i, a[i], i, a[i-1]); - } - -} - -double isum(const int a[], const int size) -{ - double m = 0.0; - for (int i = 0; i < size; i++) { - m += a[i]; - } - return m; -} - -double median(const double a[], const int size) -{ - double m; - double * b = malloc(size * sizeof *b); - memcpy(b, a, size * sizeof *b); - sort(b, size); - if (size % 2 == 1) { - m = b[size / 2]; - } else { - int m1 = size / 2; - int m2 = m1 - 1; - m = (b[m1] + b[m2]) / (double)2.0; - } - free(b); - return m; -} - -double stddev(const double a[], const int size) -{ - double m = mean(a, size); - double sd = 0.0; - for (int i = 0; i < size; i++) { - sd += pow(a[i] - m, 2); - } - sd = sqrt(sd / (size - 1)); - return sd; -} - -double cov(const double x[], const double y[], const int size){ - - double covariance = 0; - - double meanX = mean(x, size); - double meanY = mean(y, size); - - for(int i = 0; i < size; i++){ - // double xi =x[i]; - // double yi =y[i]; - covariance += (x[i] - meanX) * (y[i] - meanY); - - } - - return covariance/(size-1); - -} - -double cov_mean(const double x[], const double y[], const int size){ - - double covariance = 0; - - for(int i = 0; i < size; i++){ - // double xi =x[i]; - // double yi =y[i]; - covariance += x[i] * y[i]; - - } - - return covariance/size; - -} - -double corr(const double x[], const double y[], const int size){ - - double nom = 0; - double denomX = 0; - double denomY = 0; - - double meanX = mean(x, size); - double meanY = mean(y, size); - - for(int i = 0; i < size; i++){ - nom += (x[i] - meanX) * (y[i] - meanY); - denomX += (x[i] - meanX) * (x[i] - meanX); - denomY += (y[i] - meanY) * (y[i] - meanY); - - //printf("x[%i]=%1.3f, y[%i]=%1.3f, nom[%i]=%1.3f, denomX[%i]=%1.3f, denomY[%i]=%1.3f\n", i, x[i], i, y[i], i, nom, i, denomX, i, denomY); - } - - return nom/sqrt(denomX * denomY); - -} - -double autocorr_lag(const double x[], const int size, const int lag){ - - return corr(x, &(x[lag]), size-lag); - -} - -double autocov_lag(const double x[], const int size, const int lag){ - - return cov_mean(x, &(x[lag]), size-lag); - -} - -void zscore_norm(double a[], int size) -{ - double m = mean(a, size); - double sd = stddev(a, size); - for (int i = 0; i < size; i++) { - a[i] = (a[i] - m) / sd; - } - return; -} - -void zscore_norm2(const double a[], const int size, double b[]) -{ - double m = mean(a, size); - double sd = stddev(a, size); - for (int i = 0; i < size; i++) { - b[i] = (a[i] - m) / sd; - } - return; -} - -double moment(const double a[], const int size, const int start, const int end, const int r) -{ - int win_size = end - start + 1; - a += start; - double m = mean(a, win_size); - double mr = 0.0; - for (int i = 0; i < win_size; i++) { - mr += pow(a[i] - m, r); - } - mr /= win_size; - mr /= stddev(a, win_size); //normalize - return mr; -} - -void diff(const double a[], const int size, double b[]) -{ - for (int i = 1; i < size; i++) { - b[i - 1] = a[i] - a[i - 1]; - } -} - -int linreg(const int n, const double x[], const double y[], double* m, double* b) //, double* r) -{ - double sumx = 0.0; /* sum of x */ - double sumx2 = 0.0; /* sum of x**2 */ - double sumxy = 0.0; /* sum of x * y */ - double sumy = 0.0; /* sum of y */ - double sumy2 = 0.0; /* sum of y**2 */ - - /* - for (int i = 0; i < n; i++) - { - fprintf(stdout, "x[%i] = %f, y[%i] = %f\n", i, x[i], i, y[i]); - } - */ - - for (int i=0;i -#include -#include - -extern double max_(const double a[], const int size); -extern double min_(const double a[], const int size); -extern double mean(const double a[], const int size); -extern double sum(const double a[], const int size); -extern void cumsum(const double a[], const int size, double b[]); -extern void icumsum(const int a[], const int size, int b[]); -extern double isum(const int a[], const int size); -extern double median(const double a[], const int size); -extern double stddev(const double a[], const int size); -extern double corr(const double x[], const double y[], const int size); -extern double cov(const double x[], const double y[], const int size); -extern double cov_mean(const double x[], const double y[], const int size); -extern double autocorr_lag(const double x[], const int size, const int lag); -extern double autocov_lag(const double x[], const int size, const int lag); -extern void zscore_norm(double a[], int size); -extern void zscore_norm2(const double a[], const int size, double b[]); -extern double moment(const double a[], const int size, const int start, const int end, const int r); -extern void diff(const double a[], const int size, double b[]); -extern int linreg(const int n, const double x[], const double y[], double* m, double* b); //, double* r); -extern double norm_(const double a[], const int size); - -#endif diff --git a/src/catch22 b/src/catch22 new file mode 160000 index 0000000..2e1a271 --- /dev/null +++ b/src/catch22 @@ -0,0 +1 @@ +Subproject commit 2e1a271c6a7437b6a4a754e1adc7e34d7a224c01 diff --git a/src/C/catch22_wrap.c b/src/wrapper/catch22_wrap.c similarity index 100% rename from src/C/catch22_wrap.c rename to src/wrapper/catch22_wrap.c From 4821224dd51243f07678c82c22b12f56435a3830 Mon Sep 17 00:00:00 2001 From: jmoo2880 Date: Tue, 28 Jul 2026 05:53:12 +1000 Subject: [PATCH 5/9] bump catch22 submodule to v0.4.1 --- src/catch22 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/catch22 b/src/catch22 index 2e1a271..86288b6 160000 --- a/src/catch22 +++ b/src/catch22 @@ -1 +1 @@ -Subproject commit 2e1a271c6a7437b6a4a754e1adc7e34d7a224c01 +Subproject commit 86288b66a696a225f067c2652c07ff757f48c3d6 From 42ae67d248cfc1f2d3155ddd32f35c46c0ea11b7 Mon Sep 17 00:00:00 2001 From: jmoo2880 Date: Tue, 28 Jul 2026 07:43:39 +1000 Subject: [PATCH 6/9] update unit test platforms to include python 3.12 and 3.13 --- .github/workflows/run_unit_tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run_unit_tests.yaml b/.github/workflows/run_unit_tests.yaml index ec05d46..1dc1882 100644 --- a/.github/workflows/run_unit_tests.yaml +++ b/.github/workflows/run_unit_tests.yaml @@ -9,7 +9,7 @@ jobs: strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] - python-version: ["3.8", "3.9", "3.10", "3.11"] + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"] steps: - uses: actions/checkout@v3 with: From 25f6171d46afabab4d3b8e4b02d5499009dba598 Mon Sep 17 00:00:00 2001 From: jmoo2880 Date: Tue, 28 Jul 2026 08:20:00 +1000 Subject: [PATCH 7/9] add empirical1000 test case --- .../expected_outputs/testE1000ts1_output.txt | 24 + .../benchmarks/inputs/testE1000ts1_input.txt | 10000 ++++++++++++++++ 2 files changed, 10024 insertions(+) create mode 100644 tests/benchmarks/expected_outputs/testE1000ts1_output.txt create mode 100644 tests/benchmarks/inputs/testE1000ts1_input.txt diff --git a/tests/benchmarks/expected_outputs/testE1000ts1_output.txt b/tests/benchmarks/expected_outputs/testE1000ts1_output.txt new file mode 100644 index 0000000..4de04bd --- /dev/null +++ b/tests/benchmarks/expected_outputs/testE1000ts1_output.txt @@ -0,0 +1,24 @@ +DN_HistogramMode_5, -0.7958371211374102 +DN_HistogramMode_10, -1.0409801889115031 +CO_f1ecac, 0.63842675773608 +CO_FirstMin_ac, 2 +CO_HistogramAMI_even_2_5, 0.0014776831085541895 +CO_trev_1_num, 0.05782594230145156 +MD_hrv_classic_pnn40, 0.9718971897189719 +SB_BinaryStats_mean_longstretch1, 11.0 +SB_TransitionMatrix_3ac_sumdiagcov, 3.2933171951453704e-05 +PD_PeriodicityWang_th0_01, 5 +CO_Embed2_Dist_tau_d_expfit_meandiff, 0.15639761948370298 +IN_AutoMutualInfoStats_40_gaussian_fmmi, 3.0 +FC_LocalSimple_mean1_tauresrat, 0.5 +DN_OutlierInclude_p_001_mdrmd, 0.014799999999999924 +DN_OutlierInclude_n_001_mdrmd, -0.013900000000000023 +SP_Summaries_welch_rect_area_5_1, 0.1968091814646978 +SB_BinaryStats_diff_longstretch0, 7.0 +SB_MotifThree_quantile_hh, 2.1970489575493803 +SC_FluctAnal_2_rsrangefit_50_1_logi_prop_r1, 0.22 +SC_FluctAnal_2_dfa_50_1_2_logi_prop_r1, 0.12 +SP_Summaries_welch_rect_centroid, 1.5458691389918566 +FC_LocalSimple_mean3_stderr, 1.158373999528132 +DN_Mean, 0.24710500475890085 +DN_Spread_Std, 0.19210818595693932 diff --git a/tests/benchmarks/inputs/testE1000ts1_input.txt b/tests/benchmarks/inputs/testE1000ts1_input.txt new file mode 100644 index 0000000..a9e38ff --- /dev/null +++ b/tests/benchmarks/inputs/testE1000ts1_input.txt @@ -0,0 +1,10000 @@ +9.457799999999999541e-02 +6.631700000000000372e-01 +9.868999999999999995e-02 +4.792100000000000248e-01 +6.459500000000000242e-01 +7.741900000000000448e-01 +4.601399999999999935e-02 +5.123900000000000121e-01 +3.575200000000000045e-01 +3.469400000000000261e-01 +4.273500000000000215e-02 +4.042600000000000082e-01 +2.896299999999999986e-01 +2.894499999999999851e-01 +2.719199999999999950e-01 +7.113099999999999978e-02 +1.028899999999999954e-01 +1.885799999999999976e-01 +3.197300000000000142e-01 +3.482299999999999840e-01 +1.111599999999999949e-01 +4.311200000000000032e-01 +1.928799999999999959e-01 +4.045199999999999907e-01 +8.963500000000000634e-02 +2.593099999999999919e-02 +1.156200000000000006e-01 +1.864200000000000024e-01 +2.187300000000000078e-01 +3.089400000000000132e-02 +1.736299999999999996e-02 +1.469600000000000073e-01 +6.279599999999999765e-03 +2.180700000000000138e-01 +6.795799999999999619e-01 +1.194100000000000023e-01 +2.058200000000000029e-01 +2.485999999999999877e-01 +2.483599999999999974e-01 +3.369900000000000118e-01 +7.739700000000000468e-01 +7.586800000000000210e-01 +4.052999999999999658e-02 +1.462100000000000032e-02 +2.760299999999999976e-01 +3.246700000000000141e-01 +3.649200000000000221e-01 +2.051800000000000151e-02 +3.772400000000000198e-01 +1.408699999999999952e-01 +1.417799999999999894e-01 +2.371800000000000019e-01 +3.080400000000000065e-03 +6.004800000000000137e-01 +4.274300000000000321e-02 +1.946400000000000075e-01 +7.327200000000000379e-02 +5.945200000000000484e-01 +6.709199999999999608e-01 +3.951500000000000012e-01 +7.342300000000000493e-01 +2.970200000000000062e-01 +1.335199999999999998e-01 +3.882700000000000040e-01 +2.641800000000000259e-01 +1.945000000000000062e-01 +2.761399999999999966e-01 +4.879399999999999710e-02 +1.265199999999999936e-01 +1.950500000000000150e-02 +2.042899999999999924e-02 +1.904000000000000137e-01 +2.839400000000000257e-01 +2.766799999999999815e-01 +9.484399999999999775e-02 +4.282500000000000195e-01 +1.049999999999999961e-01 +7.788100000000000578e-02 +2.518900000000000028e-01 +3.799500000000000099e-01 +1.979299999999999948e-01 +3.456400000000000028e-01 +5.002400000000000180e-01 +5.052900000000000169e-01 +1.996199999999999919e-01 +2.799400000000000222e-01 +7.052500000000000435e-02 +7.806999999999999496e-01 +1.564099999999999865e-02 +5.260599999999999721e-01 +3.902599999999999958e-01 +1.628400000000000125e-01 +7.737299999999999733e-02 +8.838800000000000823e-03 +4.314399999999999902e-01 +1.514000000000000068e-01 +1.759999999999999898e-01 +2.570999999999999952e-01 +9.156300000000000550e-02 +4.594799999999999995e-01 +1.049100000000000033e-01 +4.288700000000000151e-02 +4.426100000000000173e-02 +3.284599999999999742e-01 +2.562099999999999933e-01 +5.007200000000000539e-01 +2.679199999999999915e-01 +1.016199999999999916e-02 +5.389500000000000401e-01 +1.162799999999999945e-01 +4.659800000000000053e-01 +2.635500000000000065e-01 +4.494400000000000062e-01 +2.333600000000000119e-01 +1.760299999999999920e-01 +1.279500000000000082e-01 +2.602099999999999969e-01 +6.562700000000000200e-01 +1.122800000000000048e-01 +4.214899999999999758e-01 +2.284200000000000119e-02 +6.938299999999999468e-01 +3.649399999999999866e-01 +3.561199999999999782e-02 +1.459300000000000042e-01 +3.964799999999999991e-01 +1.819400000000000097e-04 +2.278300000000000047e-01 +2.878600000000000048e-01 +3.462899999999999867e-01 +1.288799999999999946e-01 +7.263000000000000012e-02 +6.707300000000000484e-01 +6.650799999999999768e-02 +2.980900000000000216e-01 +1.614900000000000016e-02 +4.210400000000000253e-01 +1.290600000000000080e-01 +7.015299999999999869e-01 +1.723500000000000032e-01 +1.931599999999999984e-01 +6.197300000000000031e-02 +4.504299999999999971e-01 +5.953899999999999748e-01 +1.791899999999999882e-01 +3.188500000000000223e-01 +7.510400000000000409e-01 +2.588499999999999829e-02 +3.378599999999999937e-01 +2.529100000000000098e-02 +1.630399999999999905e-01 +8.169200000000000073e-02 +3.456200000000000244e-02 +1.039199999999999985e-01 +2.451099999999999945e-01 +4.891600000000000115e-02 +2.378500000000000059e-01 +4.816699999999999871e-01 +2.883999999999999897e-01 +2.676399999999999890e-01 +4.197200000000000236e-02 +3.739199999999999746e-01 +1.946400000000000075e-01 +6.666199999999999903e-02 +8.242700000000000027e-02 +1.716499999999999970e-02 +8.531099999999999794e-02 +6.670599999999999620e-03 +3.543600000000000083e-01 +4.761699999999999822e-01 +3.886200000000000210e-01 +1.728999999999999981e-02 +1.079999999999999988e-01 +3.412299999999999778e-01 +3.132599999999999968e-02 +7.471099999999999616e-03 +2.742899999999999783e-01 +7.070199999999999818e-01 +1.033199999999999952e-01 +4.640199999999999880e-01 +5.300500000000000211e-01 +3.183000000000000274e-01 +2.898700000000000165e-01 +6.809100000000000152e-01 +1.602399999999999936e-01 +1.275499999999999967e-01 +4.033599999999999963e-01 +1.498599999999999932e-02 +2.884599999999999942e-01 +2.315199999999999897e-02 +3.921799999999999731e-01 +1.231799999999999978e-01 +3.385800000000000008e-03 +3.202499999999999791e-01 +4.526399999999999868e-01 +3.383099999999999996e-01 +4.068900000000000294e-03 +3.952100000000000057e-02 +4.203899999999999859e-01 +3.398100000000000009e-01 +6.607600000000000140e-01 +1.661100000000000076e-01 +1.158799999999999969e-01 +1.853700000000000139e-02 +6.432299999999999685e-01 +2.703999999999999737e-01 +1.203599999999999982e-02 +5.854000000000000176e-02 +5.641599999999999948e-01 +4.260099999999999998e-01 +3.079299999999999815e-01 +2.466300000000000089e-02 +1.157299999999999995e-01 +1.991400000000000114e-01 +6.538099999999999468e-02 +7.888300000000000867e-03 +7.135599999999999721e-01 +3.393599999999999950e-01 +9.678000000000000491e-02 +5.757600000000000218e-02 +8.037999999999999312e-02 +6.749100000000000099e-01 +2.432300000000000018e-01 +1.663900000000000101e-01 +1.217899999999999955e-01 +1.653900000000000092e-01 +4.378500000000000170e-01 +9.607499999999999374e-02 +6.822799999999999976e-01 +1.951900000000000024e-01 +1.809999999999999942e-01 +8.742099999999999871e-02 +3.087900000000000089e-01 +2.076900000000000135e-01 +3.541300000000000003e-01 +6.054000000000000492e-01 +7.189699999999999980e-01 +1.525299999999999989e-01 +3.063899999999999957e-01 +8.662100000000000355e-01 +4.557399999999999785e-01 +5.092700000000000005e-01 +3.410799999999999943e-01 +3.289999999999999869e-02 +4.243399999999999950e-01 +2.194600000000000023e-02 +3.307899999999999729e-01 +3.209500000000000131e-01 +2.448200000000000098e-01 +3.676900000000000168e-01 +1.970899999999999874e-01 +3.732599999999999807e-02 +6.926200000000000412e-02 +3.908099999999999907e-01 +1.587500000000000022e-01 +8.526899999999999480e-01 +6.351900000000000601e-02 +3.456500000000000128e-01 +4.190800000000000081e-01 +2.798499999999999877e-01 +1.727100000000000163e-02 +1.939099999999999990e-01 +2.140099999999999988e-02 +1.211699999999999930e-02 +1.968799999999999994e-01 +3.597000000000000197e-02 +3.824100000000000277e-01 +1.778599999999999903e-01 +4.248500000000000054e-01 +1.020900000000000002e-01 +5.469899999999999762e-01 +3.699799999999999756e-01 +3.320100000000000273e-01 +2.917099999999999901e-02 +4.985899999999999777e-01 +1.900900000000000090e-01 +1.360999999999999988e-01 +6.444800000000000528e-01 +3.643700000000000272e-01 +6.330600000000000116e-02 +2.297200000000000075e-01 +1.370500000000000052e-01 +3.044799999999999937e-02 +4.586100000000000176e-01 +2.336299999999999835e-02 +1.169100000000000000e-01 +1.877399999999999902e-01 +9.413799999999999946e-02 +2.503799999999999915e-01 +2.511599999999999944e-01 +1.377400000000000013e-01 +2.156500000000000083e-01 +1.736699999999999910e-01 +1.023499999999999965e-01 +1.397400000000000031e-01 +7.872000000000000525e-03 +2.238799999999999957e-01 +8.396000000000000130e-01 +4.057499999999999996e-01 +4.152800000000000241e-02 +8.881999999999999618e-02 +1.363699999999999912e-01 +4.844700000000000117e-01 +1.688300000000000078e-01 +3.864299999999999957e-01 +6.616400000000000059e-02 +1.932099999999999929e-01 +8.861499999999999932e-02 +2.123500000000000040e-02 +6.291900000000000270e-01 +3.159899999999999931e-01 +2.412199999999999900e-01 +4.768100000000000116e-01 +2.981300000000000061e-01 +8.538500000000000256e-02 +1.430099999999999982e-01 +2.884700000000000042e-01 +3.980500000000000149e-01 +1.049800000000000039e-01 +2.839700000000000002e-01 +3.353600000000000331e-02 +3.012000000000000233e-01 +2.192300000000000082e-01 +1.595600000000000074e-01 +6.675899999999999890e-02 +1.703999999999999959e-01 +4.748600000000000043e-01 +1.528899999999999981e-01 +1.041900000000000048e-01 +5.408600000000000213e-02 +4.959100000000000313e-02 +6.181099999999999789e-02 +1.077700000000000012e-02 +6.005700000000000482e-01 +4.337400000000000144e-01 +9.646100000000000507e-02 +2.742499999999999938e-01 +4.897000000000000242e-01 +1.081199999999999939e-01 +5.166100000000000136e-01 +2.450700000000000101e-01 +4.200800000000000090e-01 +2.587700000000000000e-01 +6.562800000000000578e-02 +2.874799999999999925e-02 +1.277600000000000124e-01 +6.955999999999999683e-02 +1.776799999999999907e-02 +4.586200000000000276e-01 +2.350299999999999889e-01 +4.440000000000000058e-01 +1.230099999999999943e-01 +1.538199999999999984e-02 +1.397700000000000053e-01 +1.872600000000000098e-01 +1.204299999999999954e-01 +4.111499999999999877e-02 +1.007699999999999985e-01 +4.899200000000000221e-01 +1.300499999999999989e-01 +2.985900000000000221e-01 +1.865900000000000059e-01 +4.786300000000000276e-02 +1.929299999999999895e-03 +2.784300000000000108e-01 +1.739799999999999958e-01 +3.687900000000000067e-01 +1.447599999999999998e-01 +3.411600000000000188e-01 +2.546800000000000175e-01 +9.974299999999999833e-02 +7.166899999999999660e-02 +7.653499999999999748e-01 +4.850900000000000212e-01 +2.312099999999999989e-01 +5.604900000000000437e-01 +1.407400000000000040e-01 +3.498800000000000243e-01 +4.740400000000000169e-01 +3.596699999999999897e-01 +1.308999999999999886e-01 +1.046099999999999947e-01 +6.574599999999999889e-02 +7.175499999999999934e-02 +1.867699999999999916e-01 +1.591400000000000037e-01 +1.661500000000000130e-02 +3.707400000000000140e-01 +2.490900000000000059e-01 +3.276600000000000068e-01 +8.288099999999999634e-02 +3.031300000000000106e-01 +3.965199999999999836e-01 +7.136700000000000266e-01 +4.508199999999999985e-01 +7.012200000000000377e-02 +1.944400000000000017e-01 +7.092299999999999993e-02 +2.222000000000000086e-01 +1.834999999999999964e-01 +2.497699999999999834e-03 +6.467799999999999938e-02 +3.407100000000000128e-01 +3.006100000000000091e-02 +4.194899999999999740e-01 +1.293799999999999950e-01 +1.016999999999999987e-01 +1.280399999999999872e-01 +2.295099999999999918e-01 +2.978899999999999881e-01 +1.448000000000000120e-01 +4.319000000000000061e-01 +2.446500000000000064e-01 +1.550199999999999911e-01 +1.718200000000000005e-01 +5.510099999999999998e-01 +1.062799999999999995e-01 +6.591900000000000537e-02 +2.803800000000000181e-01 +1.504399999999999904e-01 +1.711100000000000121e-01 +4.456100000000000338e-02 +3.113799999999999901e-01 +1.459799999999999986e-02 +1.723699999999999954e-01 +4.134099999999999997e-01 +4.064000000000000251e-02 +3.669700000000000184e-01 +2.033899999999999944e-02 +8.651899999999999868e-02 +2.803899999999999726e-01 +1.103200000000000014e-01 +2.222899999999999876e-03 +1.109699999999999992e-01 +1.822799999999999976e-01 +6.077500000000000124e-01 +4.451800000000000201e-02 +3.154899999999999927e-01 +4.904399999999999871e-01 +2.030299999999999883e-01 +2.534699999999999731e-01 +1.671999999999999875e-01 +1.613100000000000089e-01 +9.450500000000000567e-03 +3.245899999999999896e-01 +1.484499999999999986e-01 +5.260599999999999998e-02 +8.225799999999999475e-04 +6.061199999999999921e-01 +1.646600000000000008e-01 +2.517899999999999999e-02 +5.106200000000000409e-04 +1.839999999999999969e-01 +1.999100000000000044e-01 +1.032200000000000062e-01 +4.356999999999999762e-01 +4.421599999999999836e-02 +3.898300000000000098e-01 +3.553200000000000108e-02 +2.057100000000000040e-01 +3.027900000000000036e-01 +1.512900000000000078e-01 +5.347199999999999870e-02 +4.187600000000000211e-01 +7.108799999999999841e-02 +8.623300000000000409e-02 +2.991500000000000270e-01 +3.153099999999999792e-01 +3.620200000000000085e-01 +2.882399999999999962e-01 +2.780099999999999932e-02 +3.598799999999999777e-01 +7.677199999999999580e-01 +1.509600000000000108e-01 +5.485299999999999621e-01 +1.514800000000000035e-01 +7.261199999999999877e-01 +7.917399999999999438e-02 +1.203599999999999982e-02 +2.824499999999999789e-01 +1.500699999999999951e-02 +4.726500000000000146e-01 +1.496300000000000130e-01 +3.439800000000000080e-01 +4.768499999999999822e-02 +1.807600000000000040e-01 +5.303200000000000275e-02 +2.681999999999999940e-01 +1.449100000000000110e-01 +2.837100000000000177e-01 +5.887599999999999778e-02 +3.287300000000000222e-01 +3.015200000000000102e-01 +2.812299999999999800e-01 +2.903700000000000170e-01 +2.261199999999999877e-01 +4.920900000000000274e-01 +8.440499999999999392e-02 +3.733799999999999897e-01 +2.087499999999999911e-01 +2.821199999999999819e-01 +3.040199999999999847e-02 +3.458499999999999908e-01 +2.097299999999999998e-01 +1.393300000000000094e-01 +6.220500000000000335e-02 +5.745799999999999796e-01 +1.174100000000000005e-01 +5.349599999999999911e-01 +1.093500000000000028e-01 +1.451000000000000068e-01 +8.133799999999999364e-02 +4.362500000000000266e-01 +1.922300000000000120e-01 +3.957999999999999852e-01 +2.273999999999999980e-02 +1.144400000000000001e-01 +7.134500000000000286e-01 +8.214699999999999780e-02 +2.757700000000000151e-01 +2.979399999999999826e-01 +2.015800000000000092e-01 +2.362100000000000033e-01 +1.023199999999999978e-02 +3.045499999999999874e-01 +3.139399999999999968e-01 +3.145499999999999963e-01 +1.851399999999999990e-01 +5.581599999999999756e-02 +2.543199999999999905e-01 +1.265999999999999903e-01 +5.030900000000000372e-01 +2.694399999999999920e-02 +1.953900000000000081e-01 +4.178100000000000147e-01 +1.307699999999999974e-01 +1.233199999999999991e-01 +4.046500000000000097e-01 +1.376799999999999968e-01 +1.524300000000000099e-01 +4.906200000000000006e-01 +2.573199999999999932e-01 +4.582700000000000107e-01 +1.706699999999999884e-01 +3.378999999999999782e-01 +7.823700000000000099e-02 +3.590099999999999958e-01 +2.275600000000000123e-01 +4.619699999999999918e-01 +2.336100000000000121e-01 +6.861899999999999666e-01 +1.079600000000000004e-01 +3.735100000000000225e-02 +2.595899999999999874e-01 +7.538200000000000456e-02 +1.228199999999999986e-01 +5.445200000000000040e-02 +7.195400000000000407e-02 +1.669499999999999873e-01 +2.066000000000000059e-01 +8.096499999999999808e-01 +2.893499999999999805e-03 +6.391499999999999959e-02 +3.783899999999999764e-02 +1.449699999999999878e-01 +1.893199999999999883e-01 +3.671800000000000064e-01 +1.915999999999999925e-01 +3.015100000000000002e-01 +3.326699999999999796e-02 +4.460999999999999688e-03 +2.539100000000000246e-01 +1.879599999999999882e-01 +2.145199999999999885e-01 +5.582299999999999762e-02 +9.002899999999999792e-02 +5.608100000000000307e-01 +4.763499999999999679e-02 +7.791499999999999815e-02 +3.787099999999999911e-01 +1.127699999999999952e-01 +5.553000000000000158e-01 +1.465299999999999936e-01 +7.749200000000000532e-02 +4.933000000000000163e-01 +5.764700000000000379e-01 +6.875799999999999690e-01 +2.000899999999999901e-01 +5.314999999999999725e-01 +1.392500000000000127e-01 +3.098600000000000243e-01 +1.289099999999999968e-02 +7.374800000000000244e-01 +4.938499999999999834e-02 +2.562800000000000078e-01 +3.637699999999999823e-01 +2.880199999999999982e-01 +1.316599999999999993e-01 +3.950099999999999723e-01 +1.139499999999999957e-01 +3.827599999999999891e-01 +1.718399999999999928e-01 +4.031100000000000239e-01 +4.429199999999999804e-01 +5.538199999999999790e-01 +8.239999999999999547e-01 +7.560200000000000253e-02 +4.666300000000000309e-02 +3.951899999999999857e-01 +2.878299999999999748e-01 +3.384199999999999986e-01 +1.180499999999999909e-03 +6.517000000000000570e-02 +5.023800000000000487e-01 +3.145800000000000263e-01 +9.455299999999999816e-02 +7.433899999999999952e-01 +2.446500000000000064e-01 +4.770900000000000141e-01 +2.530500000000000110e-02 +2.280899999999999941e-02 +4.980700000000000127e-01 +4.240999999999999770e-01 +3.428999999999999826e-01 +5.315100000000000380e-01 +7.487599999999999811e-02 +1.009700000000000042e-01 +1.104900000000000049e-01 +2.046499999999999986e-01 +8.716500000000000359e-01 +8.456099999999999381e-03 +1.107199999999999990e-01 +1.718800000000000050e-01 +8.237100000000000533e-01 +3.285899999999999932e-01 +2.325699999999999990e-01 +3.462599999999999706e-02 +3.431000000000000161e-01 +1.724100000000000077e-01 +2.944100000000000050e-01 +4.033999999999999808e-01 +2.763900000000000037e-02 +2.176500000000000101e-01 +5.265600000000000142e-02 +3.126099999999999990e-01 +2.958200000000000274e-01 +5.794599999999999751e-01 +2.290899999999999881e-01 +1.039199999999999985e-01 +4.939600000000000241e-02 +5.247100000000000097e-01 +3.030999999999999805e-01 +1.463099999999999956e-01 +3.761599999999999944e-01 +9.765100000000000169e-02 +8.502700000000000535e-02 +2.082900000000000029e-01 +5.193699999999999983e-01 +4.865699999999999886e-02 +2.006000000000000005e-01 +3.118099999999999761e-01 +1.699600000000000000e-01 +3.697799999999999698e-02 +4.934000000000000191e-02 +8.880599999999999605e-02 +2.094499999999999973e-01 +3.670300000000000229e-01 +1.725299999999999889e-01 +1.046200000000000081e-02 +2.876199999999999868e-01 +1.613100000000000089e-01 +5.295699999999999713e-02 +1.239299999999999985e-01 +6.114200000000000190e-02 +2.065099999999999991e-01 +6.532599999999999518e-02 +3.976399999999999935e-01 +8.255999999999999450e-02 +4.128100000000000103e-01 +1.174000000000000044e-01 +5.928000000000000110e-03 +4.044400000000000217e-01 +6.823200000000000098e-02 +7.348099999999999632e-01 +5.600500000000000478e-01 +2.882899999999999907e-01 +3.389599999999999835e-01 +8.448200000000000154e-02 +6.309199999999999531e-02 +8.915800000000000114e-02 +7.354399999999999826e-01 +4.176300000000000012e-01 +2.901599999999999735e-01 +2.692999999999999838e-01 +4.752299999999999858e-01 +7.978999999999999981e-02 +5.043699999999999850e-01 +7.203800000000000481e-02 +4.484699999999999798e-01 +5.244499999999999856e-02 +1.887600000000000111e-01 +4.057000000000000051e-01 +2.591399999999999815e-01 +9.023299999999999377e-02 +1.113100000000000062e-01 +2.819799999999999911e-03 +1.437700000000000089e-01 +3.908200000000000007e-01 +1.123299999999999993e-01 +1.592899999999999872e-01 +4.224100000000000077e-01 +2.146099999999999952e-01 +7.908500000000000529e-01 +4.023999999999999799e-01 +1.906100000000000017e-01 +9.309299999999999520e-02 +1.807199999999999918e-01 +5.749800000000000466e-01 +6.004899999999999648e-03 +1.781099999999999905e-01 +1.423800000000000066e-01 +5.372799999999999798e-02 +4.589799999999999991e-01 +2.023800000000000043e-01 +8.231000000000000538e-01 +2.392100000000000060e-01 +1.839600000000000124e-01 +4.260499999999999704e-02 +1.257099999999999884e-01 +7.504399999999999959e-01 +1.132399999999999934e-01 +6.252199999999999425e-02 +6.450899999999999863e-03 +3.727699999999999902e-01 +1.708999999999999964e-01 +5.862899999999999778e-01 +3.633100000000000218e-01 +1.602800000000000058e-01 +3.373999999999999777e-01 +8.181800000000000184e-02 +6.861300000000000177e-01 +2.886499999999999830e-02 +3.724600000000000133e-01 +3.322899999999999743e-01 +7.119000000000000328e-02 +1.191500000000000059e-01 +3.982100000000000084e-01 +5.291299999999999892e-01 +2.727200000000000180e-01 +1.529699999999999949e-01 +2.090299999999999936e-01 +2.063599999999999879e-01 +4.924799999999999733e-01 +9.500699999999999423e-02 +1.827499999999999958e-01 +7.663299999999999557e-01 +3.342700000000000116e-01 +3.855000000000000093e-01 +2.037700000000000067e-01 +2.508900000000000019e-01 +1.216200000000000059e-01 +1.319400000000000087e-02 +4.094599999999999906e-01 +4.321200000000000041e-01 +2.010800000000000087e-01 +6.348500000000000254e-01 +2.410899999999999987e-01 +3.125300000000000300e-02 +7.158099999999999463e-01 +4.074699999999999989e-01 +2.052799999999999903e-01 +4.071600000000000219e-01 +3.148700000000000110e-02 +5.546900000000000164e-01 +1.414600000000000024e-01 +4.790699999999999820e-02 +4.633500000000000119e-02 +3.184600000000000208e-01 +1.502699999999999869e-01 +1.130599999999999938e-01 +5.508899999999999908e-01 +1.243599999999999983e-01 +2.226299999999999946e-01 +6.279200000000000059e-02 +2.636499999999999955e-02 +5.318100000000000049e-01 +2.008399999999999908e-01 +2.491599999999999926e-01 +7.110299999999999954e-02 +1.705599999999999894e-01 +6.135199999999999543e-01 +2.019199999999999884e-01 +6.548100000000000032e-01 +4.362099999999999866e-01 +5.849100000000000410e-01 +2.856099999999999750e-01 +1.406199999999999950e-01 +2.856399999999999911e-02 +2.304700000000000082e-01 +1.026000000000000002e-02 +9.551300000000000068e-02 +1.111100000000000004e-01 +3.705499999999999905e-01 +4.399600000000000177e-01 +4.071299999999999919e-02 +1.665700000000000167e-02 +7.725899999999999435e-02 +2.139399999999999913e-01 +3.843099999999999850e-01 +6.504900000000000126e-01 +2.356499999999999984e-01 +2.027899999999999980e-01 +2.081300000000000094e-01 +1.058999999999999941e-01 +3.106099999999999972e-01 +1.121400000000000036e-01 +3.668600000000000194e-01 +2.012899999999999967e-01 +9.299199999999999688e-01 +2.792700000000000182e-01 +1.607899999999999885e-01 +5.816500000000000004e-01 +6.890199999999999658e-01 +3.182599999999999874e-01 +1.521999999999999915e-02 +1.531500000000000083e-01 +5.981400000000000050e-01 +1.684299999999999964e-01 +1.680699999999999902e-02 +7.911200000000000454e-01 +3.510599999999999832e-01 +2.031199999999999950e-01 +2.101800000000000057e-01 +1.299899999999999944e-01 +4.667999999999999927e-02 +9.131499999999999340e-02 +6.390000000000000124e-01 +4.343299999999999939e-01 +1.929800000000000126e-01 +2.432300000000000018e-01 +1.797499999999999931e-01 +1.488400000000000001e-01 +6.153899999999999926e-01 +5.494799999999999685e-01 +4.463400000000000145e-01 +1.457900000000000029e-01 +1.501800000000000079e-01 +5.890299999999999703e-02 +1.683099999999999874e-02 +6.023300000000000320e-01 +4.689599999999999880e-01 +2.710000000000000187e-01 +4.859999999999999876e-01 +3.227599999999999913e-01 +3.430199999999999916e-01 +3.949599999999999778e-01 +1.567600000000000104e-01 +3.521699999999999831e-01 +2.374599999999999975e-02 +2.941099999999999826e-01 +5.879499999999999726e-01 +3.015900000000000247e-01 +6.072199999999999820e-01 +6.033800000000000274e-01 +4.770400000000000196e-01 +6.819399999999999906e-01 +1.457400000000000084e-01 +1.822900000000000076e-01 +2.255600000000000105e-01 +1.123900000000000038e-01 +7.819700000000000539e-01 +1.904599999999999904e-01 +1.029999999999999943e-01 +5.256399999999999961e-01 +3.913599999999999857e-01 +4.759399999999999742e-01 +2.492700000000000037e-03 +2.370899999999999952e-01 +2.895400000000000057e-02 +1.180699999999999944e-01 +3.406699999999999728e-01 +4.979500000000000037e-01 +6.030900000000000150e-02 +1.160199999999999981e-01 +2.062100000000000044e-01 +1.768399999999999972e-01 +3.738699999999999801e-01 +2.131500000000000061e-01 +3.761599999999999944e-01 +2.663900000000000157e-01 +3.096700000000000008e-01 +5.105600000000000138e-01 +2.954499999999999904e-01 +1.036600000000000021e-01 +1.418200000000000016e-01 +8.418499999999999595e-02 +1.659400000000000042e-01 +9.054500000000000048e-02 +1.356700000000000128e-01 +7.028699999999999948e-01 +2.196099999999999997e-01 +5.465700000000000003e-01 +3.615200000000000080e-01 +2.188999999999999974e-02 +1.673499999999999988e-01 +2.425700000000000078e-01 +2.727499999999999925e-01 +3.996299999999999852e-01 +2.155499999999999916e-01 +4.136900000000000022e-01 +2.050099999999999978e-01 +3.209900000000000253e-02 +1.403100000000000007e-02 +2.199399999999999966e-01 +1.838200000000000112e-01 +3.889400000000000079e-01 +3.968200000000000061e-01 +1.394700000000000106e-01 +2.535499999999999976e-01 +3.112499999999999989e-02 +1.891299999999999926e-01 +2.814800000000000080e-01 +2.411099999999999910e-01 +2.009499999999999897e-01 +2.806000000000000161e-01 +9.629499999999999171e-03 +9.498399999999999899e-02 +2.204099999999999948e-01 +5.329000000000000403e-01 +6.843200000000000394e-01 +3.686499999999999777e-01 +1.889100000000000154e-02 +8.745300000000000296e-02 +1.850700000000000123e-01 +5.265499999999999625e-01 +5.499300000000000299e-01 +1.854999999999999982e-01 +2.340200000000000058e-01 +8.309399999999999772e-03 +5.492799999999999766e-02 +1.403100000000000007e-02 +3.937999999999999834e-02 +5.700699999999999656e-01 +5.851199999999999735e-01 +2.077000000000000027e-02 +5.856799999999999784e-01 +1.621900000000000008e-01 +2.248999999999999888e-01 +1.565300000000000025e-01 +2.872899999999999898e-01 +1.143600000000000033e-01 +3.365900000000000003e-01 +5.602600000000000115e-03 +1.812899999999999928e-02 +5.458499999999999464e-01 +2.606899999999999773e-01 +6.366700000000000137e-02 +1.284399999999999986e-01 +4.562900000000000289e-02 +2.318000000000000182e-03 +5.222700000000000120e-01 +2.981099999999999861e-01 +1.944200000000000095e-01 +5.502700000000000369e-01 +5.010499999999999676e-02 +3.026800000000000046e-01 +1.788199999999999859e-02 +1.457199999999999884e-01 +3.865899999999999892e-02 +3.646800000000000042e-02 +1.476500000000000035e-02 +1.746300000000000074e-01 +1.141599999999999976e-01 +2.229700000000000015e-01 +1.479499999999999982e-01 +1.331700000000000106e-01 +1.261299999999999921e-01 +5.171499999999999708e-02 +1.715800000000000103e-01 +3.611199999999999966e-01 +3.589399999999999813e-01 +1.313199999999999923e-01 +6.792500000000000204e-01 +2.545299999999999785e-01 +4.164199999999999846e-02 +7.991299999999999792e-03 +2.354400000000000104e-01 +6.854999999999999982e-02 +4.160400000000000209e-01 +6.915300000000000613e-02 +1.478500000000000092e-01 +5.543800000000000117e-02 +4.334600000000000120e-01 +1.513200000000000101e-01 +3.152800000000000047e-02 +1.497699999999999865e-01 +6.831000000000000405e-01 +5.680899999999999839e-01 +6.871599999999999930e-01 +1.006299999999999972e-01 +1.094200000000000034e-01 +2.980900000000000216e-01 +3.945799999999999863e-01 +1.998600000000000099e-01 +3.562400000000000011e-01 +2.722600000000000020e-01 +2.323399999999999910e-01 +2.489599999999999869e-01 +1.348499999999999976e-01 +2.323699999999999932e-01 +2.046600000000000086e-01 +3.057099999999999818e-01 +4.056799999999999989e-02 +7.064399999999999569e-01 +2.063699999999999909e-02 +4.176199999999999912e-01 +3.294300000000000006e-01 +1.611799999999999899e-01 +9.081200000000000383e-01 +3.177599999999999869e-01 +2.089600000000000068e-01 +2.928299999999999792e-01 +3.113500000000000156e-01 +2.502700000000000063e-02 +2.846899999999999986e-01 +1.618199999999999847e-02 +1.049100000000000033e-01 +3.719200000000000284e-02 +1.336600000000000010e-01 +3.974099999999999855e-02 +5.842499999999999777e-02 +8.321499999999999730e-02 +7.510099999999999554e-01 +2.677200000000000135e-01 +2.983000000000000096e-01 +7.061000000000000609e-02 +8.216199999999999892e-03 +1.807999999999999885e-01 +1.820100000000000051e-01 +2.496599999999999930e-01 +6.155599999999999961e-01 +5.459399999999999670e-03 +4.745300000000000074e-01 +1.294200000000000073e-01 +1.907399999999999929e-01 +3.372100000000000097e-01 +5.414700000000000069e-02 +1.659200000000000119e-01 +5.818700000000000261e-02 +6.723600000000000410e-02 +4.431399999999999784e-01 +4.271599999999999842e-01 +4.430600000000000094e-01 +1.090200000000000058e-01 +2.104699999999999904e-01 +6.900199999999999667e-01 +4.287599999999999745e-01 +6.590899999999999537e-02 +9.688099999999999837e-03 +3.469300000000000161e-01 +1.659200000000000119e-01 +4.835999999999999743e-01 +1.455100000000000005e-01 +1.532399999999999873e-01 +4.387599999999999834e-01 +8.294700000000000684e-02 +1.643900000000000083e-01 +4.682200000000000251e-01 +2.496899999999999953e-01 +1.818900000000000031e-02 +1.050299999999999984e-01 +1.975999999999999979e-02 +3.995500000000000163e-01 +5.882899999999999796e-01 +1.927000000000000102e-01 +6.899300000000000432e-01 +5.495900000000000230e-01 +3.234600000000000253e-01 +1.007800000000000015e-02 +3.383499999999999841e-01 +3.683100000000000263e-01 +2.465400000000000091e-01 +2.105499999999999872e-01 +4.861699999999999910e-01 +8.466300000000000214e-02 +1.827999999999999903e-01 +5.045600000000000085e-02 +7.565100000000000158e-01 +3.329699999999999882e-01 +1.346900000000000042e-01 +4.766900000000000026e-01 +1.151999999999999968e-01 +4.759800000000000142e-02 +4.808300000000000074e-02 +2.879399999999999737e-01 +4.542800000000000171e-01 +3.451400000000000301e-02 +4.675699999999999856e-01 +4.209999999999999853e-01 +5.136600000000000055e-01 +5.166600000000000081e-01 +1.121599999999999958e-01 +2.401200000000000001e-01 +4.056000000000000161e-01 +2.739699999999999913e-01 +8.059700000000000197e-02 +2.315500000000000058e-01 +4.033200000000000118e-01 +2.968800000000000171e-03 +3.054000000000000048e-01 +2.194500000000000062e-01 +4.967099999999999849e-01 +5.331599999999999673e-01 +1.190299999999999969e-01 +2.801799999999999846e-01 +4.911499999999999894e-02 +9.543200000000000294e-02 +3.381799999999999806e-01 +5.102500000000000091e-02 +1.018700000000000022e-01 +2.472900000000000098e-02 +9.080599999999999783e-02 +5.586600000000000454e-01 +5.451899999999999524e-01 +6.610000000000000597e-02 +4.896899999999999864e-02 +2.604699999999999793e-01 +1.320699999999999930e-01 +2.706399999999999917e-01 +2.500600000000000045e-01 +4.194899999999999740e-01 +1.523400000000000032e-01 +4.013599999999999945e-01 +4.529500000000000193e-01 +1.540999999999999870e-01 +1.968100000000000127e-01 +4.754300000000000193e-02 +1.308199999999999918e-01 +7.600000000000000089e-01 +1.758800000000000086e-01 +2.285600000000000132e-01 +3.581299999999999761e-02 +3.967999999999999861e-01 +1.089399999999999952e-01 +2.299799999999999900e-01 +2.097400000000000098e-01 +3.803099999999999814e-01 +1.942800000000000082e-01 +4.204600000000000004e-02 +1.772599999999999870e-02 +2.705699999999999772e-01 +4.447299999999999864e-02 +7.756300000000000416e-01 +4.386900000000000244e-01 +2.164600000000000135e-01 +3.231600000000000028e-01 +4.349799999999999778e-01 +5.062100000000000488e-01 +2.299299999999999955e-01 +1.307899999999999896e-01 +3.359800000000000009e-01 +6.457800000000000207e-01 +5.429400000000000198e-02 +4.109499999999999958e-02 +2.732599999999999960e-02 +1.351400000000000101e-01 +2.038600000000000134e-01 +2.609799999999999898e-01 +7.079000000000000570e-02 +3.349599999999999800e-01 +1.365300000000000125e-01 +1.017900000000000055e-01 +5.683599999999999763e-02 +1.270300000000000040e-01 +1.656999999999999862e-01 +7.828100000000000336e-02 +5.418800000000000283e-01 +3.110299999999999732e-01 +2.543099999999999805e-01 +3.589100000000000068e-01 +7.399999999999999634e-02 +1.074999999999999983e-01 +2.766499999999999862e-02 +7.949799999999999922e-02 +3.020800000000000152e-01 +2.885800000000000032e-01 +2.032899999999999985e-02 +2.633499999999999730e-01 +2.339900000000000035e-01 +9.299399999999999333e-02 +2.561499999999999888e-01 +2.645199999999999774e-01 +3.616799999999999876e-02 +6.471500000000000030e-01 +2.467600000000000071e-01 +3.152400000000000341e-02 +4.221599999999999797e-01 +7.639500000000000179e-01 +2.766800000000000162e-02 +1.553400000000000059e-01 +4.189699999999999674e-02 +9.788099999999999579e-02 +8.979299999999999782e-02 +1.992700000000000027e-01 +6.274899999999999922e-01 +1.939299999999999913e-01 +1.741099999999999939e-02 +1.881799999999999862e-01 +9.928100000000000466e-03 +5.106600000000000028e-01 +2.190400000000000125e-01 +8.109500000000000042e-02 +3.454300000000000148e-01 +2.930599999999999785e-03 +3.898400000000000198e-01 +3.445399999999999852e-02 +3.908200000000000007e-01 +1.793399999999999994e-01 +4.405100000000000127e-01 +5.052499999999999769e-01 +2.344100000000000072e-01 +2.610099999999999920e-02 +1.164899999999999963e-01 +2.885599999999999832e-01 +7.068299999999999583e-02 +6.548199999999999577e-01 +3.969799999999999995e-01 +1.265400000000000136e-01 +3.971999999999999975e-01 +8.327400000000000080e-02 +2.865499999999999992e-02 +9.571699999999999653e-02 +5.855799999999999894e-01 +1.729599999999999888e-02 +1.377800000000000032e-02 +3.474900000000000211e-01 +1.265999999999999903e-01 +1.157699999999999979e-01 +3.649800000000000266e-01 +2.447600000000000123e-02 +1.786400000000000141e-02 +9.711599999999999400e-02 +5.921300000000000452e-01 +9.666099999999999692e-02 +3.107100000000000140e-02 +1.082499999999999990e-01 +1.321100000000000052e-01 +1.078299999999999953e-01 +1.238699999999999940e-01 +3.358400000000000274e-01 +3.406699999999999728e-01 +7.801900000000000501e-01 +5.973699999999999843e-02 +1.395200000000000051e-01 +2.864300000000000179e-01 +5.196600000000000108e-01 +1.268499999999999905e-01 +2.096099999999999908e-01 +7.489000000000000101e-01 +1.556899999999999951e-01 +2.625000000000000111e-01 +4.379899999999999904e-01 +2.154000000000000081e-01 +3.777499999999999747e-01 +5.501399999999999624e-01 +3.243400000000000172e-01 +3.167300000000000115e-01 +4.172299999999999898e-01 +1.365700000000000074e-02 +1.339899999999999980e-01 +4.662600000000000078e-01 +7.260900000000000132e-01 +1.388399999999999912e-01 +3.516299999999999981e-02 +9.329400000000000193e-02 +1.497699999999999865e-01 +1.656199999999999894e-01 +1.512000000000000011e-01 +1.463299999999999879e-01 +1.254099999999999937e-01 +3.113500000000000156e-01 +6.201999999999999874e-02 +5.990499999999999992e-02 +9.165500000000000036e-02 +4.906800000000000050e-02 +3.816800000000000193e-01 +1.584000000000000130e-01 +3.088600000000000234e-01 +3.337600000000000029e-03 +3.959400000000000142e-01 +2.614099999999999757e-01 +1.019800000000000047e-02 +3.260700000000000265e-01 +2.985400000000000033e-03 +8.994099999999999318e-02 +2.656200000000000228e-01 +1.801599999999999868e-01 +1.578900000000000026e-01 +3.390900000000000025e-01 +4.239700000000000135e-01 +6.711899999999999811e-02 +3.601400000000000157e-01 +2.062199999999999867e-01 +1.595699999999999896e-01 +1.708000000000000074e-01 +5.154900000000000038e-01 +6.203600000000000225e-01 +8.595999999999999475e-02 +8.415100000000000358e-02 +1.628300000000000025e-01 +2.172800000000000079e-02 +3.355600000000000249e-01 +2.184300000000000130e-01 +6.010799999999999477e-01 +2.862100000000000199e-01 +2.498199999999999865e-01 +2.051399999999999890e-01 +4.219800000000000217e-01 +1.723500000000000032e-01 +1.067599999999999938e-01 +5.436699999999999866e-02 +3.534300000000000219e-01 +6.913599999999999746e-01 +1.480099999999999992e-02 +8.946999999999999398e-02 +7.633800000000000308e-02 +5.084300000000000486e-01 +3.671400000000000219e-01 +3.229000000000000203e-01 +1.301499999999999879e-01 +3.008399999999999963e-01 +4.497399999999999731e-01 +1.804300000000000070e-01 +2.402200000000000168e-02 +2.890099999999999891e-01 +9.438000000000000556e-02 +1.147699999999999970e-01 +3.246399999999999841e-01 +2.245399999999999896e-01 +1.732300000000000159e-02 +2.350800000000000112e-01 +7.164199999999999458e-01 +4.693100000000000049e-01 +1.355500000000000038e-01 +9.548299999999999843e-02 +2.114000000000000046e-01 +1.895100000000000118e-01 +3.107299999999999993e-02 +7.140000000000000513e-02 +1.242400000000000032e-01 +2.696700000000000208e-01 +3.169299999999999895e-01 +9.298499999999999821e-02 +9.077200000000000546e-02 +2.936000000000000276e-01 +5.800500000000000100e-02 +2.625100000000000211e-01 +3.856700000000000128e-01 +1.415099999999999969e-01 +1.528799999999999881e-01 +3.860500000000000043e-01 +5.706799999999999651e-01 +2.146200000000000052e-01 +8.941799999999999748e-02 +7.773700000000000054e-02 +7.201399999999999468e-02 +2.912000000000000144e-01 +9.576899999999999302e-03 +5.622300000000000075e-01 +2.088399999999999979e-01 +2.185900000000000065e-01 +2.956199999999999939e-01 +5.082699999999999996e-01 +4.762100000000000222e-01 +3.317099999999999910e-03 +1.047499999999999959e-01 +1.203000000000000042e-01 +2.120799999999999907e-01 +4.819800000000000195e-01 +2.699599999999999778e-01 +1.864299999999999985e-02 +1.791000000000000092e-01 +2.953399999999999914e-01 +1.301799999999999902e-01 +2.147499999999999964e-01 +6.452700000000000102e-02 +2.526899999999999979e-02 +6.130599999999999938e-02 +2.089499999999999968e-01 +1.022300000000000014e-01 +4.090499999999999692e-02 +2.628400000000000181e-01 +4.941200000000000037e-01 +2.668300000000000116e-01 +5.054600000000000065e-02 +8.026900000000000007e-04 +1.378599999999999964e-02 +1.562399999999999900e-01 +2.944100000000000050e-01 +3.257999999999999785e-01 +1.058000000000000052e-01 +4.154000000000000054e-02 +4.965399999999999814e-01 +5.467300000000000493e-01 +4.032200000000000228e-01 +2.396199999999999997e-01 +2.370899999999999952e-01 +1.102599999999999969e-01 +1.021600000000000008e-01 +1.668300000000000061e-01 +9.800499999999999490e-02 +5.665200000000000097e-02 +2.289400000000000029e-03 +2.822799999999999754e-01 +3.345099999999999740e-01 +1.721999999999999920e-01 +1.480400000000000049e-01 +6.744099999999999540e-01 +1.939499999999999905e-02 +8.490300000000000624e-02 +2.235999999999999932e-01 +9.570800000000000141e-02 +1.420599999999999918e-01 +2.609299999999999953e-01 +4.068599999999999994e-02 +2.700699999999999767e-01 +1.411999999999999922e-01 +2.822100000000000164e-01 +3.711400000000000254e-01 +2.073699999999999988e-01 +5.457300000000000484e-01 +2.308800000000000088e-02 +2.076000000000000068e-01 +1.769100000000000117e-01 +2.064900000000000069e-01 +1.829500000000000015e-01 +3.796300000000000230e-01 +4.537800000000000167e-01 +2.385500000000000120e-01 +2.180799999999999961e-01 +1.824699999999999933e-01 +1.640800000000000036e-01 +4.066299999999999915e-01 +2.357599999999999973e-01 +2.676100000000000007e-02 +3.276700000000000168e-01 +2.887199999999999767e-01 +2.034700000000000120e-01 +5.548600000000000060e-02 +2.884800000000000142e-01 +5.120500000000000052e-01 +2.145900000000000030e-01 +4.036599999999999910e-02 +2.452400000000000066e-02 +5.434900000000000286e-01 +9.507400000000000573e-02 +3.895199999999999774e-01 +1.792300000000000004e-01 +1.028099999999999986e-01 +1.847300000000000053e-01 +5.728800000000000038e-03 +2.952300000000000063e-02 +8.214100000000000568e-02 +3.320400000000000018e-01 +2.340000000000000135e-01 +1.126299999999999940e-01 +2.810199999999999851e-02 +1.132599999999999996e-01 +1.345999999999999974e-01 +2.891900000000000026e-01 +3.683699999999999752e-01 +2.060899999999999954e-01 +3.355799999999999894e-01 +3.242599999999999927e-01 +3.240399999999999947e-01 +4.891900000000000137e-01 +6.674499999999999877e-02 +2.221100000000000019e-01 +2.486800000000000122e-01 +1.408399999999999930e-01 +1.109300000000000008e-01 +1.957399999999999973e-01 +6.219999999999999973e-01 +1.934700000000000031e-01 +1.831200000000000050e-01 +7.807600000000000096e-01 +3.982600000000000029e-01 +3.384599999999999831e-01 +1.113100000000000062e-01 +1.128399999999999959e-01 +2.229299999999999893e-01 +9.872300000000000519e-02 +2.504299999999999859e-01 +1.718000000000000083e-01 +3.856600000000000028e-01 +4.250300000000000189e-01 +5.538100000000000245e-01 +3.351200000000000012e-02 +2.219899999999999998e-02 +2.938299999999999940e-02 +1.594200000000000061e-01 +2.244400000000000006e-01 +2.383499999999999855e-02 +1.384799999999999920e-01 +2.340000000000000135e-01 +2.398099999999999954e-01 +3.268099999999999894e-01 +3.373399999999999732e-01 +4.386000000000000315e-02 +9.773199999999999943e-02 +1.094600000000000017e-01 +2.003300000000000081e-01 +4.732799999999999785e-01 +4.248899999999999899e-01 +8.088800000000000434e-01 +3.653199999999999781e-01 +1.921700000000000075e-01 +3.683100000000000263e-01 +8.693699999999999761e-01 +5.939299999999999580e-01 +8.396099999999999397e-02 +3.816300000000000248e-01 +1.619700000000000029e-01 +8.670200000000000129e-02 +8.662900000000000288e-04 +1.972099999999999964e-01 +6.024000000000000465e-01 +2.929499999999999882e-01 +8.090300000000000269e-02 +6.513600000000000501e-01 +3.400699999999999834e-01 +3.627000000000000224e-01 +4.871900000000000119e-01 +3.181700000000000084e-01 +4.608799999999999703e-02 +2.006900000000000073e-01 +1.739900000000000058e-01 +5.187200000000000318e-03 +1.587300000000000100e-01 +3.281000000000000028e-01 +2.774699999999999944e-01 +1.645199999999999996e-01 +4.748399999999999843e-01 +2.679599999999999864e-03 +1.031600000000000052e-02 +2.913700000000000179e-01 +6.600500000000000256e-01 +1.442799999999999916e-01 +3.716200000000000059e-01 +2.101300000000000112e-01 +7.165799999999999947e-02 +3.861400000000000249e-02 +2.604600000000000248e-01 +1.601899999999999852e-02 +7.189799999999999663e-03 +4.008599999999999941e-01 +5.798500000000000182e-02 +2.309199999999999864e-01 +4.992900000000000116e-01 +6.536300000000000443e-01 +3.337999999999999856e-01 +5.329199999999999493e-01 +1.810700000000000087e-01 +5.751100000000000101e-01 +4.006100000000000216e-01 +1.528400000000000036e-01 +1.651600000000000013e-01 +1.950800000000000034e-01 +2.823300000000000115e-02 +9.935399999999999787e-02 +1.229999999999999982e-01 +5.154999999999999583e-01 +1.299099999999999977e-01 +1.554899999999999902e-03 +1.495299999999999963e-01 +1.447499999999999898e-01 +9.281799999999999773e-02 +1.672799999999999981e-02 +3.214899999999999980e-01 +7.178099999999999481e-01 +1.628999999999999893e-01 +1.672800000000000120e-01 +4.732700000000000240e-01 +3.007299999999999973e-01 +3.744100000000000206e-01 +2.059499999999999872e-02 +1.183200000000000050e-02 +3.660700000000000065e-01 +3.071099999999999872e-02 +6.860199999999999632e-02 +7.095799999999999885e-01 +1.388900000000000134e-01 +1.900300000000000045e-01 +2.044300000000000006e-01 +3.252999999999999781e-01 +9.469800000000000439e-02 +1.323900000000000077e-01 +2.254899999999999960e-01 +5.014099999999999634e-03 +2.466200000000000059e-01 +7.473100000000000576e-02 +5.706999999999999851e-01 +7.188799999999999635e-01 +3.159100000000000241e-01 +1.336499999999999910e-01 +1.131199999999999983e-01 +1.057899999999999952e-01 +2.293100000000000138e-01 +8.113000000000000420e-03 +1.877999999999999947e-01 +5.714000000000000190e-01 +5.775500000000000078e-02 +3.438800000000000190e-01 +1.681400000000000117e-01 +5.380100000000000160e-02 +1.357099999999999973e-01 +2.649199999999999888e-01 +1.881700000000000039e-01 +5.913700000000000206e-02 +1.346299999999999997e-01 +1.947399999999999964e-01 +2.110499999999999876e-01 +9.346699999999999453e-03 +7.188400000000000171e-03 +4.199499999999999761e-02 +9.969000000000000083e-02 +6.641500000000000181e-01 +1.841399999999999981e-01 +2.362100000000000033e-01 +8.681999999999999718e-01 +6.604400000000000548e-02 +2.523299999999999987e-01 +8.839400000000000035e-02 +1.492100000000000093e-01 +4.339000000000000079e-01 +2.420200000000000129e-01 +4.556500000000000133e-02 +6.481299999999999839e-01 +2.196700000000000041e-01 +2.993000000000000105e-01 +1.449199999999999933e-01 +1.427100000000000035e-01 +9.582300000000000539e-02 +3.719799999999999773e-01 +1.057400000000000007e-01 +7.943600000000000660e-02 +1.248200000000000004e-01 +6.959100000000000182e-03 +4.480100000000000193e-01 +7.542200000000000015e-01 +9.519199999999999884e-02 +4.314300000000000079e-02 +9.475200000000000289e-02 +2.749699999999999922e-01 +5.100999999999999979e-01 +5.446499999999999952e-02 +4.389299999999999868e-01 +2.077499999999999902e-01 +1.084600000000000009e-01 +1.978200000000000097e-02 +6.396699999999999608e-02 +2.137300000000000033e-01 +6.166399999999999659e-01 +1.194699999999999929e-02 +2.857199999999999740e-01 +3.848799999999999999e-01 +4.187799999999999856e-01 +3.128799999999999915e-01 +5.946000000000000174e-01 +1.894500000000000003e-02 +1.446399999999999908e-01 +2.948000000000000065e-01 +1.349299999999999944e-01 +4.446700000000000097e-01 +1.728399999999999936e-01 +1.424400000000000110e-01 +1.640300000000000091e-01 +2.580100000000000171e-01 +2.608400000000000163e-01 +1.755099999999999993e-01 +2.661700000000000177e-01 +2.746399999999999952e-01 +2.551499999999999879e-01 +1.257399999999999907e-01 +1.943000000000000005e-01 +2.186400000000000010e-01 +4.583900000000000197e-01 +3.414400000000000213e-01 +3.658600000000000185e-01 +3.022499999999999840e-02 +5.392000000000000265e-02 +1.444799999999999991e-03 +4.615600000000000258e-01 +3.236499999999999932e-01 +1.594299999999999884e-02 +3.025100000000000011e-01 +1.704199999999999882e-01 +7.192300000000000360e-01 +5.842499999999999603e-03 +6.018200000000000216e-01 +1.223899999999999988e-01 +5.446399999999999852e-02 +1.192799999999999971e-01 +3.273599999999999843e-01 +3.296799999999999731e-01 +1.580499999999999960e-01 +3.572600000000000220e-01 +2.555799999999999739e-01 +3.829300000000000065e-02 +9.788900000000000379e-02 +3.511299999999999977e-01 +1.514599999999999974e-02 +1.723600000000000132e-01 +2.371199999999999974e-01 +4.303400000000000281e-02 +5.543900000000000494e-01 +3.823799999999999977e-01 +6.034899999999999709e-01 +6.669300000000000228e-02 +1.653900000000000092e-01 +3.576799999999999979e-01 +6.154400000000000148e-02 +3.031900000000000150e-01 +7.887700000000000267e-02 +8.368400000000000283e-01 +6.886699999999999766e-02 +1.334700000000000053e-01 +4.404100000000000237e-01 +1.959700000000000053e-01 +1.195399999999999935e-01 +3.059999999999999873e-02 +3.569100000000000050e-02 +6.731700000000000461e-01 +8.314199999999999369e-02 +3.558499999999999996e-01 +2.235399999999999887e-01 +1.096899999999999958e-01 +5.970600000000000351e-01 +1.425099999999999978e-01 +7.408700000000000285e-01 +1.250999999999999890e-01 +6.703899999999999616e-03 +7.162600000000000078e-01 +5.526900000000000146e-01 +3.305299999999999905e-02 +5.276600000000000179e-01 +1.255300000000000027e-01 +2.044199999999999906e-01 +4.923399999999999999e-01 +8.436000000000000443e-02 +4.146199999999999886e-01 +7.481500000000000650e-02 +7.447199999999999653e-02 +1.528599999999999959e-01 +3.688299999999999912e-01 +5.098899999999999544e-01 +2.288300000000000056e-01 +5.501999999999999946e-02 +3.705100000000000060e-01 +1.755299999999999916e-01 +5.906000000000000139e-01 +1.620199999999999974e-01 +3.657200000000000034e-02 +3.536299999999999999e-01 +4.345000000000000251e-02 +1.401900000000000091e-01 +7.714799999999999436e-02 +3.005300000000000193e-01 +7.827300000000000368e-01 +5.902000000000000302e-02 +2.563599999999999768e-01 +7.589200000000000113e-02 +6.946899999999999777e-03 +7.629600000000000271e-02 +5.507699999999999818e-01 +4.586599999999999705e-02 +2.610300000000000120e-02 +2.051099999999999868e-01 +3.453699999999999826e-02 +2.675299999999999900e-01 +3.014899999999999872e-02 +5.838100000000000511e-01 +4.196799999999999975e-01 +3.196599999999999997e-01 +1.849899999999999878e-01 +2.684599999999999834e-02 +1.137699999999999961e-01 +1.854999999999999982e-01 +4.138200000000000212e-02 +2.067000000000000087e-02 +4.406999999999999806e-02 +2.248499999999999943e-01 +1.316199999999999870e-01 +6.927300000000000124e-02 +6.026200000000000306e-02 +3.742699999999999916e-01 +2.838800000000000212e-01 +8.862299999999999345e-02 +1.257800000000000029e-01 +3.090300000000000269e-01 +3.007099999999999773e-01 +8.308400000000000507e-02 +1.751300000000000079e-01 +4.474400000000000044e-01 +2.079999999999999905e-02 +1.416399999999999881e-01 +2.327200000000000102e-01 +1.668100000000000138e-01 +1.984700000000000075e-01 +4.821799999999999697e-02 +1.638199999999999934e-01 +2.349400000000000099e-01 +5.432399999999999729e-02 +2.566100000000000048e-01 +3.516099999999999781e-01 +7.691499999999999726e-02 +4.243899999999999895e-01 +1.580300000000000038e-01 +2.516499999999999848e-01 +3.290799999999999836e-01 +2.895699999999999941e-01 +2.455900000000000027e-01 +2.969400000000000164e-02 +6.639300000000000201e-01 +6.318899999999999517e-01 +5.759299999999999836e-02 +2.516399999999999748e-01 +1.778500000000000081e-01 +5.002799999999999470e-01 +3.527500000000000080e-01 +7.014199999999999602e-02 +2.650899999999999923e-01 +1.908999999999999864e-01 +1.146100000000000035e-01 +8.872299999999999631e-02 +1.189000000000000057e-01 +1.823400000000000021e-01 +1.878900000000000015e-01 +3.712099999999999844e-01 +4.045099999999999807e-01 +4.155900000000000150e-01 +5.534299999999999775e-01 +8.613500000000000323e-02 +1.273299999999999987e-01 +2.424199999999999966e-01 +3.013799999999999812e-01 +2.049000000000000127e-02 +1.296199999999999956e-02 +4.222699999999999787e-01 +2.283100000000000129e-01 +5.453299999999999814e-01 +7.878800000000000248e-01 +2.556300000000000239e-01 +3.613600000000000145e-01 +8.948899999999999216e-03 +6.434499999999999664e-01 +7.194699999999999707e-02 +3.035300000000000151e-02 +1.952099999999999946e-01 +1.628900000000000139e-02 +1.585499999999999965e-01 +2.907100000000000239e-01 +1.158600000000000081e-02 +2.828700000000000103e-01 +1.492300000000000015e-01 +3.951799999999999757e-02 +3.688899999999999818e-02 +6.590200000000000224e-02 +2.606700000000000128e-01 +4.591999999999999971e-01 +4.550699999999999745e-01 +1.339799999999999880e-01 +1.270600000000000063e-01 +1.416399999999999951e-02 +2.070999999999999924e-02 +8.369799999999999462e-02 +6.110899999999999666e-02 +5.367199999999999749e-01 +4.250299999999999911e-02 +3.841499999999999915e-01 +4.029900000000000149e-01 +1.524399999999999922e-01 +2.861699999999999799e-01 +1.354700000000000071e-01 +2.902499999999999872e-02 +3.771900000000000253e-02 +5.147000000000000464e-01 +4.380100000000000104e-01 +2.091000000000000081e-01 +1.798599999999999921e-01 +5.143699999999999939e-01 +1.880100000000000104e-01 +2.286700000000000017e-03 +5.029700000000000143e-02 +1.224800000000000021e-02 +2.631000000000000005e-01 +2.671299999999999786e-01 +9.957399999999999585e-02 +5.516600000000000392e-01 +1.284100000000000042e-03 +2.113599999999999923e-01 +4.637700000000000156e-01 +6.807100000000000373e-01 +4.351900000000000213e-01 +2.270699999999999941e-01 +6.494699999999999918e-01 +1.478099999999999969e-01 +1.728999999999999981e-01 +3.849099999999999744e-01 +1.771099999999999897e-01 +9.976500000000000645e-02 +2.601999999999999869e-01 +3.029399999999999871e-01 +5.089899999999999980e-02 +2.422999999999999876e-01 +5.545099999999999474e-01 +3.464699999999999724e-02 +3.254699999999999815e-01 +4.001199999999999757e-01 +7.422800000000000231e-02 +3.153599999999999737e-01 +1.198400000000000021e-01 +3.389500000000000152e-02 +4.399500000000000077e-01 +1.734700000000000131e-01 +1.098100000000000048e-01 +2.231799999999999930e-03 +1.192399999999999988e-01 +3.242700000000000027e-01 +4.601199999999999735e-02 +3.966399999999999926e-01 +3.203099999999999836e-01 +1.461999999999999966e-01 +7.826300000000000479e-01 +3.555300000000000127e-01 +3.579899999999999749e-01 +8.933399999999999674e-02 +2.190400000000000125e-01 +1.863299999999999956e-01 +2.807600000000000096e-01 +2.148600000000000163e-02 +1.154400000000000044e-02 +3.124299999999999855e-01 +5.431699999999999723e-02 +2.451500000000000068e-01 +7.842900000000000427e-01 +3.572400000000000020e-01 +1.939099999999999990e-01 +1.511800000000000088e-01 +4.437599999999999878e-01 +4.390399999999999858e-01 +1.550999999999999879e-01 +8.400799999999999934e-02 +1.851500000000000090e-01 +3.135800000000000254e-01 +5.366400000000000059e-01 +1.230200000000000043e-01 +5.386699999999999822e-01 +7.760100000000000331e-02 +3.543899999999999828e-01 +3.126700000000000035e-01 +1.919700000000000017e-01 +1.170000000000000068e-01 +2.767700000000000160e-01 +8.965599999999999958e-02 +8.121199999999999530e-01 +9.977900000000000658e-02 +3.553200000000000247e-01 +7.432900000000000618e-02 +1.911499999999999866e-01 +2.301300000000000012e-01 +9.218099999999999905e-02 +4.349299999999999833e-01 +1.254399999999999959e-01 +2.836600000000000232e-01 +4.030399999999999955e-02 +1.361300000000000010e-01 +6.279000000000000137e-01 +4.531499999999999972e-01 +2.232300000000000118e-01 +1.953799999999999981e-02 +1.817699999999999871e-01 +1.611100000000000032e-01 +2.509600000000000164e-01 +6.264600000000000168e-01 +3.644600000000000062e-01 +4.133600000000000052e-01 +3.726099999999999968e-01 +4.781299999999999994e-01 +1.276500000000000135e-01 +3.477399999999999936e-02 +8.240799999999999514e-02 +4.361200000000000077e-01 +5.816999999999999948e-01 +2.928600000000000092e-01 +8.069199999999999984e-02 +3.172499999999999765e-01 +5.217799999999999869e-03 +4.504899999999999877e-02 +6.642400000000000526e-01 +5.058500000000000218e-01 +7.681499999999999440e-02 +1.321299999999999975e-01 +8.750399999999999845e-02 +2.446399999999999963e-01 +2.387100000000000055e-01 +4.115699999999999914e-01 +2.998600000000000154e-01 +4.733100000000000085e-01 +1.380800000000000083e-01 +2.782299999999999773e-01 +1.237700000000000050e-01 +4.293199999999999794e-01 +2.046999999999999883e-04 +6.022099999999999675e-02 +5.740199999999999747e-01 +6.016300000000000120e-02 +1.409799999999999942e-01 +4.346999999999999753e-01 +2.730099999999999749e-01 +3.130000000000000004e-01 +6.305299999999999794e-02 +5.255300000000000527e-01 +2.204299999999999871e-01 +9.387199999999999711e-02 +4.640799999999999925e-01 +3.951799999999999757e-01 +2.398299999999999876e-01 +3.589899999999999758e-01 +4.087700000000000222e-01 +1.509699999999999931e-01 +1.794300000000000062e-02 +2.997900000000000009e-01 +5.075999999999999956e-02 +7.264400000000000024e-02 +6.416499999999999981e-02 +1.782600000000000018e-01 +5.470200000000000062e-02 +1.119500000000000009e-02 +1.086499999999999966e-01 +1.173600000000000060e-01 +8.003699999999999704e-02 +8.495500000000000274e-02 +9.888100000000000361e-03 +5.240999999999999825e-02 +3.960099999999999731e-01 +2.155799999999999939e-01 +2.667399999999999771e-01 +2.332500000000000129e-01 +1.333699999999999886e-01 +3.731400000000000272e-01 +5.493500000000000050e-01 +3.972700000000000120e-01 +2.091999999999999971e-01 +4.852000000000000202e-01 +1.911599999999999966e-01 +4.483700000000000185e-02 +5.436400000000000121e-01 +8.348400000000000265e-02 +4.974199999999999733e-01 +1.142100000000000060e-01 +1.052499999999999963e-01 +8.769699999999999718e-02 +3.498600000000000321e-02 +4.391300000000000203e-01 +2.343800000000000050e-01 +4.687000000000000055e-01 +6.015999999999999646e-03 +2.401099999999999901e-01 +6.267100000000000448e-02 +7.691299999999999526e-02 +4.052200000000000246e-01 +1.236499999999999960e-01 +1.623199999999999921e-01 +4.292400000000000104e-01 +1.446999999999999953e-01 +3.442799999999999749e-01 +6.500200000000000422e-01 +4.017000000000000015e-01 +5.090900000000000425e-01 +5.256199999999999761e-01 +9.942900000000000349e-02 +3.300199999999999800e-01 +1.575100000000000111e-02 +2.773200000000000109e-01 +2.090500000000000136e-01 +7.835899999999999810e-02 +1.938900000000000068e-01 +6.270499999999999963e-01 +1.451300000000000090e-01 +5.340999999999999914e-02 +4.917699999999999849e-01 +1.885699999999999876e-01 +6.041200000000000042e-02 +2.745000000000000218e-01 +2.553300000000000014e-01 +2.326600000000000057e-01 +2.599600000000000244e-01 +1.073299999999999949e-01 +5.611200000000000215e-03 +3.882099999999999995e-01 +2.583400000000000141e-01 +7.079699999999999882e-02 +2.479300000000000115e-01 +5.754299999999999971e-01 +1.354600000000000075e-02 +2.213600000000000012e-01 +4.978799999999999892e-01 +3.581400000000000139e-01 +4.894700000000000162e-01 +2.365800000000000125e-01 +4.718399999999999817e-01 +3.259100000000000191e-02 +1.617099999999999926e-01 +6.036299999999999652e-03 +2.231299999999999950e-01 +9.131100000000000327e-02 +3.640800000000000286e-02 +1.314899999999999958e-01 +1.837799999999999989e-01 +3.843400000000000150e-01 +9.646399999999999419e-02 +4.669600000000000140e-02 +7.975600000000000467e-01 +1.348000000000000032e-01 +2.071900000000000130e-01 +2.624900000000000011e-01 +1.193199999999999955e-01 +1.437700000000000089e-01 +4.888600000000000168e-01 +1.673699999999999910e-01 +2.531999999999999876e-02 +4.121799999999999908e-01 +1.511799999999999949e-02 +3.994799999999999740e-02 +4.913100000000000245e-01 +8.203399999999999581e-01 +6.465700000000000613e-02 +6.641900000000000581e-02 +9.748600000000000321e-02 +2.710299999999999931e-01 +5.261199999999999904e-02 +2.757499999999999882e-02 +2.199800000000000089e-01 +4.484099999999999753e-01 +6.294100000000000250e-01 +6.986900000000000333e-01 +9.689100000000000490e-02 +8.621900000000000397e-02 +8.083200000000000454e-03 +2.880199999999999982e-01 +1.616100000000000037e-01 +3.524299999999999655e-02 +1.519999999999999962e-01 +4.073700000000000099e-01 +3.642599999999999727e-01 +1.795100000000000029e-01 +1.510700000000000098e-01 +1.175099999999999929e-02 +1.003099999999999964e-01 +4.687800000000000300e-02 +5.862200000000000050e-02 +4.934899999999999842e-01 +6.694099999999999495e-01 +9.843999999999999972e-02 +3.918499999999999761e-01 +1.737299999999999955e-01 +4.318100000000000271e-01 +4.111799999999999899e-01 +2.226299999999999946e-01 +1.451699999999999935e-01 +1.902200000000000002e-01 +3.405200000000000154e-03 +4.490100000000000202e-01 +7.865999999999999381e-02 +1.165899999999999992e-01 +2.607200000000000073e-01 +9.365999999999999326e-02 +2.143299999999999927e-01 +4.758600000000000052e-01 +2.717300000000000271e-01 +3.048500000000000099e-01 +2.544899999999999940e-01 +6.365100000000000202e-01 +5.029700000000000282e-01 +2.414699999999999902e-01 +2.809200000000000030e-01 +6.682799999999999851e-02 +7.900699999999999390e-02 +3.367200000000000193e-01 +2.588099999999999845e-01 +1.627100000000000074e-02 +5.451599999999999779e-01 +6.410000000000000420e-02 +4.200200000000000045e-01 +1.111599999999999949e-01 +1.317899999999999905e-01 +2.304400000000000059e-01 +5.049000000000000155e-01 +2.933399999999999896e-01 +2.593799999999999994e-01 +1.038899999999999962e-01 +7.627200000000000646e-02 +2.843700000000000117e-01 +3.486799999999999899e-01 +1.843200000000000116e-01 +1.426499999999999990e-01 +1.293499999999999928e-01 +5.866400000000000087e-02 +2.366300000000000070e-01 +5.068500000000000089e-02 +3.746599999999999930e-01 +2.524099999999999955e-02 +2.610399999999999943e-01 +4.380099999999999966e-02 +1.452400000000000080e-01 +3.055899999999999936e-02 +1.299600000000000061e-02 +2.934700000000000086e-01 +8.134199999999999764e-02 +2.434600000000000097e-01 +2.016999999999999904e-01 +1.328299999999999967e-02 +4.577100000000000057e-01 +1.014899999999999969e-01 +9.340199999999999891e-02 +3.563500000000000001e-02 +2.638400000000000190e-01 +1.193599999999999939e-01 +1.261200000000000099e-01 +3.470600000000000074e-02 +2.723799999999999832e-02 +4.113800000000000096e-02 +8.206900000000000306e-02 +3.581599999999999784e-01 +5.030700000000000172e-01 +1.287699999999999956e-01 +1.101199999999999957e-01 +2.305200000000000027e-01 +3.831399999999999806e-01 +4.117100000000000204e-01 +3.997899999999999787e-01 +6.900500000000000383e-03 +3.691599999999999882e-01 +4.524500000000000188e-01 +4.523400000000000198e-01 +2.264299999999999907e-03 +7.892200000000000604e-02 +6.157599999999999740e-01 +2.092900000000000038e-01 +7.327300000000000479e-02 +1.742900000000000005e-02 +2.664900000000000047e-01 +8.627799999999999359e-02 +1.225399999999999961e-01 +6.014499999999999708e-02 +3.418100000000000027e-01 +1.888799999999999923e-01 +2.201200000000000101e-01 +1.872699999999999920e-01 +9.449100000000000554e-02 +1.738599999999999868e-01 +1.764499999999999957e-01 +1.241700000000000026e-01 +7.879999999999999505e-02 +9.844200000000000172e-02 +2.056300000000000142e-02 +7.613000000000000322e-02 +1.105099999999999971e-01 +3.753099999999999770e-01 +3.553299999999999792e-01 +2.745500000000000163e-01 +8.800600000000000436e-03 +7.607200000000000073e-02 +1.322699999999999987e-01 +2.194599999999999884e-01 +1.938100000000000100e-01 +4.095100000000000129e-02 +2.848999999999999866e-01 +1.060699999999999976e-01 +8.646199999999999719e-02 +4.097600000000000131e-01 +1.751600000000000101e-01 +1.803200000000000081e-01 +1.272199999999999998e-01 +2.684300000000000019e-01 +2.426200000000000023e-01 +2.604199999999999848e-01 +3.949599999999999778e-01 +1.705699999999999994e-01 +7.247500000000000053e-01 +1.456399999999999917e-01 +1.673800000000000010e-01 +3.648600000000000176e-01 +9.414000000000000146e-02 +6.412700000000000067e-01 +1.073800000000000032e-01 +1.820299999999999974e-01 +4.259299999999999892e-02 +3.436100000000000265e-01 +4.747799999999999798e-01 +1.045500000000000040e-01 +1.503400000000000014e-01 +7.575300000000000089e-02 +1.455799999999999976e-02 +2.987500000000000155e-01 +1.020299999999999957e-01 +1.875100000000000100e-01 +9.370600000000000041e-01 +3.015700000000000047e-01 +3.613100000000000200e-01 +3.143699999999999828e-01 +1.128600000000000020e-01 +1.708300000000000096e-01 +5.711000000000000104e-02 +1.824999999999999956e-01 +5.973100000000000076e-01 +1.126800000000000024e-01 +6.683200000000000252e-03 +1.116499999999999992e-01 +3.457399999999999918e-01 +4.242099999999999760e-01 +3.280399999999999983e-01 +1.829500000000000015e-01 +1.887399999999999911e-01 +2.037200000000000122e-01 +8.182599999999999596e-02 +6.625199999999999978e-01 +7.039699999999999847e-01 +2.780300000000000132e-02 +8.517399999999999971e-02 +2.171399999999999997e-01 +6.395599999999999896e-02 +8.190899999999999848e-01 +5.398399999999999727e-02 +5.381700000000000372e-01 +7.206999999999999518e-02 +3.004499999999999948e-01 +3.511699999999999822e-01 +6.174600000000000088e-01 +4.725800000000000001e-01 +7.649300000000000543e-02 +5.023500000000000187e-02 +1.479000000000000037e-01 +1.255300000000000027e-01 +2.044400000000000037e-02 +1.144300000000000039e-01 +7.363899999999999890e-01 +1.021600000000000008e-01 +3.000599999999999934e-01 +8.015700000000000602e-03 +3.993099999999999983e-01 +2.431200000000000028e-02 +2.570999999999999952e-01 +1.877900000000000125e-01 +2.788999999999999813e-01 +4.820300000000000279e-02 +1.389299999999999979e-01 +3.023600000000000176e-01 +2.411800000000000055e-01 +1.394600000000000006e-01 +3.616800000000000015e-01 +4.320599999999999996e-01 +6.029099999999999460e-01 +4.926599999999999868e-01 +4.024099999999999899e-01 +7.553999999999999604e-02 +1.975699999999999956e-01 +3.645999999999999797e-01 +2.647300000000000209e-01 +4.000299999999999967e-01 +2.415799999999999892e-02 +3.621199999999999974e-01 +3.791700000000000070e-01 +3.805700000000000194e-01 +3.409600000000000131e-02 +1.003399999999999986e-01 +2.153300000000000006e-02 +2.094999999999999918e-01 +5.488900000000000029e-02 +2.019700000000000106e-01 +5.403499999999999970e-01 +1.172600000000000031e-01 +8.901599999999999790e-02 +1.553599999999999981e-01 +4.656000000000000139e-01 +2.377399999999999999e-02 +7.784900000000000153e-02 +1.970000000000000084e-01 +1.403800000000000048e-01 +4.940499999999999753e-02 +7.024400000000000088e-02 +4.013300000000000201e-01 +6.998500000000000554e-02 +4.436700000000000088e-01 +1.199999999999999956e-01 +1.121599999999999958e-01 +2.764899999999999997e-02 +3.313599999999999879e-01 +7.915200000000000014e-02 +2.309100000000000041e-01 +1.890999999999999903e-01 +8.014100000000000390e-02 +7.289900000000000269e-01 +6.686699999999999866e-01 +6.153399999999999981e-01 +3.858900000000000108e-01 +4.563099999999999934e-01 +2.892899999999999985e-02 +2.779400000000000204e-01 +4.593099999999999961e-02 +4.113100000000000089e-01 +6.504299999999999526e-01 +2.458299999999999930e-01 +3.581500000000000239e-01 +1.936599999999999988e-01 +3.397299999999999764e-01 +1.611599999999999977e-01 +2.979499999999999926e-01 +2.683200000000000029e-01 +1.827400000000000135e-01 +1.198800000000000004e-01 +3.621599999999999819e-01 +2.919800000000000173e-01 +4.751099999999999768e-01 +1.422799999999999898e-01 +1.489399999999999891e-01 +8.149399999999999700e-02 +3.778799999999999937e-01 +1.888700000000000101e-02 +4.058599999999999985e-01 +1.260600000000000054e-01 +2.824999999999999734e-01 +1.082100000000000006e-01 +3.502500000000000058e-01 +3.741599999999999787e-02 +1.615600000000000092e-01 +3.704999999999999960e-02 +4.812400000000000011e-02 +1.068599999999999967e-01 +1.267600000000000116e-01 +3.115400000000000114e-02 +9.651800000000000657e-02 +1.208899999999999975e-01 +2.454800000000000038e-01 +3.923200000000000021e-01 +6.096900000000000236e-02 +1.771800000000000042e-01 +1.157000000000000042e-02 +1.290300000000000058e-01 +1.275799999999999990e-01 +5.526799999999999491e-01 +2.338099999999999901e-01 +3.385299999999999976e-01 +3.134500000000000064e-01 +3.712300000000000044e-01 +1.262800000000000034e-01 +5.292200000000000237e-01 +4.085099999999999842e-01 +4.899799999999999989e-02 +3.462799999999999767e-01 +4.682499999999999857e-02 +2.035200000000000030e-03 +6.294800000000000395e-01 +1.233800000000000036e-01 +1.750599999999999934e-01 +5.290500000000000203e-01 +2.476200000000000068e-01 +7.480299999999999450e-02 +1.713999999999999968e-01 +3.059699999999999920e-02 +3.302200000000000135e-01 +7.206799999999999318e-02 +1.512400000000000133e-01 +2.476899999999999935e-01 +3.567000000000000032e-02 +4.936900000000000177e-01 +1.378399999999999903e-01 +1.593400000000000094e-01 +5.505700000000000038e-01 +8.457599999999999840e-02 +4.815099999999999936e-01 +3.354599999999999804e-01 +1.142299999999999982e-01 +1.580999999999999905e-01 +5.154900000000000038e-01 +1.151599999999999985e-01 +3.074700000000000211e-01 +1.349100000000000021e-01 +3.135200000000000209e-01 +1.121999999999999942e-01 +3.159299999999999886e-01 +6.128100000000000214e-02 +6.705300000000000149e-02 +1.567000000000000060e-01 +1.546700000000000019e-01 +5.078799999999999981e-02 +2.348300000000000110e-01 +1.108299999999999980e-01 +3.189199999999999813e-01 +4.020599999999999730e-01 +4.606099999999999778e-02 +9.357900000000000593e-03 +2.347299999999999942e-01 +1.973099999999999854e-02 +2.128199999999999883e-02 +2.171099999999999974e-01 +1.744700000000000070e-02 +1.396999999999999909e-01 +1.029700000000000060e-01 +3.014999999999999902e-01 +1.098599999999999993e-01 +6.223600000000000243e-01 +7.957100000000000284e-02 +4.741799999999999904e-01 +3.881399999999999850e-01 +1.418799999999999922e-02 +4.798399999999999888e-01 +7.018199999999999994e-01 +2.824699999999999989e-01 +1.026200000000000029e-01 +5.132799999999999863e-02 +8.078199999999999825e-01 +5.121299999999999741e-01 +3.552199999999999802e-01 +1.424199999999999910e-01 +1.178799999999999987e-01 +3.849299999999999944e-01 +3.117400000000000171e-01 +1.061600000000000044e-01 +6.352700000000000014e-02 +2.664699999999999847e-01 +5.481899999999999551e-01 +4.178999999999999937e-01 +3.856100000000000083e-01 +2.907600000000000184e-01 +1.955600000000000116e-01 +1.870100000000000096e-01 +1.796000000000000096e-01 +2.761000000000000121e-01 +4.063399999999999790e-01 +3.306999999999999940e-01 +1.131800000000000028e-01 +1.924599999999999922e-01 +3.512100000000000222e-01 +1.184000000000000052e-01 +4.717600000000000127e-01 +2.715299999999999936e-01 +1.164300000000000057e-01 +2.273999999999999910e-01 +3.928999999999999854e-02 +3.974900000000000100e-01 +4.036799999999999833e-01 +8.250399999999999401e-02 +1.286600000000000070e-02 +8.683699999999999752e-02 +4.507300000000000195e-01 +9.294900000000000384e-02 +3.162100000000000327e-02 +9.220899999999999930e-02 +1.433200000000000029e-01 +4.813699999999999923e-02 +2.323199999999999918e-02 +4.620500000000000163e-01 +9.370599999999999763e-02 +2.234200000000000075e-01 +1.554999999999999993e-01 +6.485499999999999599e-01 +1.205200000000000021e-01 +4.192399999999999773e-03 +9.573299999999999865e-02 +1.621299999999999963e-01 +1.625999999999999945e-01 +1.452100000000000057e-01 +2.624900000000000011e-01 +5.981100000000000305e-01 +3.016900000000000137e-02 +1.618400000000000116e-01 +4.575500000000000123e-01 +4.349899999999999878e-01 +1.182899999999999924e-02 +1.627899999999999903e-01 +1.532100000000000128e-01 +7.321900000000000630e-02 +2.726899999999999880e-01 +3.034299999999999775e-01 +3.492500000000000049e-01 +1.910799999999999998e-01 +4.524199999999999888e-01 +5.279599999999999849e-01 +1.627500000000000058e-01 +9.733500000000000832e-03 +2.222099999999999909e-01 +2.114199999999999968e-01 +5.699300000000000477e-01 +1.651799999999999935e-01 +1.538700000000000068e-01 +2.184599999999999875e-01 +3.852300000000000169e-01 +6.450799999999999590e-02 +1.527199999999999946e-01 +4.274899999999999811e-01 +3.466700000000000337e-02 +8.066699999999999982e-01 +4.765400000000000191e-01 +1.285499999999999976e-01 +1.039700000000000069e-01 +6.053399999999999892e-01 +4.885499999999999843e-01 +6.714099999999999513e-01 +2.615700000000000247e-01 +1.890400000000000136e-01 +6.749199999999999644e-02 +3.112800000000000011e-01 +1.382099999999999995e-01 +1.616299999999999959e-01 +1.140800000000000008e-01 +1.280100000000000127e-01 +4.923699999999999743e-01 +1.832600000000000062e-01 +7.736499999999999488e-01 +1.385099999999999942e-01 +4.685299999999999881e-02 +3.990199999999999858e-01 +2.588400000000000145e-01 +6.340500000000000302e-02 +4.314100000000000157e-01 +2.164500000000000035e-01 +4.467599999999999905e-01 +5.810899999999999954e-01 +3.024899999999999811e-01 +1.832799999999999985e-01 +2.643400000000000177e-03 +1.950999999999999956e-01 +1.412199999999999914e-02 +4.329799999999999760e-01 +5.229200000000000514e-01 +5.914299999999999939e-03 +4.534900000000000042e-01 +1.244299999999999989e-01 +8.292499999999999871e-02 +2.134900000000000131e-01 +3.663899999999999935e-01 +3.425900000000000056e-01 +3.047300000000000009e-01 +4.596100000000000185e-01 +1.887699999999999934e-01 +1.191200000000000037e-01 +3.675999999999999823e-01 +3.317300000000000249e-01 +2.170100000000000084e-01 +8.128299999999999761e-03 +1.975000000000000089e-01 +1.680599999999999872e-01 +6.350999999999999979e-01 +2.066500000000000004e-01 +2.410400000000000043e-01 +5.630399999999999849e-01 +8.157699999999999674e-02 +5.944899999999999629e-01 +2.998899999999999899e-01 +1.381600000000000016e-02 +6.474399999999999600e-02 +7.420400000000000607e-02 +1.629899999999999960e-01 +1.921799999999999897e-01 +1.520700000000000107e-01 +5.954799999999999677e-03 +7.130699999999999539e-02 +3.654999999999999916e-01 +4.750199999999999978e-01 +6.378300000000000081e-01 +1.660300000000000109e-01 +2.229499999999999885e-02 +4.674899999999999889e-02 +6.095899999999999583e-03 +7.428799999999999848e-01 +3.203199999999999936e-01 +2.941300000000000026e-01 +1.336100000000000065e-01 +3.785100000000000131e-01 +2.308199999999999974e-01 +6.615999999999999659e-01 +3.809299999999999908e-01 +2.786100000000000035e-02 +2.442499999999999949e-01 +6.844200000000000284e-01 +7.857300000000000395e-02 +4.189800000000000191e-01 +3.195799999999999752e-01 +9.419100000000000250e-01 +3.714399999999999924e-01 +1.519000000000000038e-02 +4.578200000000000325e-02 +9.577399999999999802e-02 +1.849899999999999878e-01 +8.608899999999999192e-03 +1.705599999999999894e-01 +1.033000000000000029e-01 +4.612599999999999686e-03 +1.396900000000000086e-01 +4.446999999999999842e-01 +4.930100000000000038e-01 +1.266899999999999971e-01 +9.360000000000000264e-02 +2.835599999999999787e-01 +5.162400000000000322e-01 +2.827700000000000213e-01 +4.071199999999999819e-01 +2.470600000000000018e-01 +3.793699999999999850e-01 +1.685500000000000054e-01 +9.953700000000000048e-02 +2.227899999999999880e-01 +1.968900000000000095e-01 +1.951799999999999924e-01 +5.087500000000000355e-01 +2.666899999999999826e-01 +6.790800000000000169e-01 +5.530399999999999899e-02 +7.113899999999999668e-01 +1.911200000000000121e-01 +1.546700000000000019e-01 +3.677199999999999913e-01 +4.798000000000000043e-01 +3.864500000000000157e-01 +2.876600000000000268e-01 +2.195699999999999874e-01 +4.838100000000000178e-01 +6.967900000000000482e-02 +1.168300000000000068e-02 +2.668099999999999916e-01 +8.979700000000000459e-01 +4.527300000000000213e-01 +4.890999999999999792e-01 +5.863999999999999768e-02 +8.887100000000000208e-03 +2.970400000000000262e-01 +3.068100000000000271e-01 +1.349400000000000044e-01 +2.661399999999999877e-02 +6.608400000000000385e-02 +4.765000000000000138e-03 +4.702600000000000113e-01 +3.238499999999999712e-02 +3.851700000000000124e-01 +2.913799999999999724e-01 +2.313300000000000078e-02 +7.101899999999999880e-01 +6.016300000000000120e-02 +2.311400000000000121e-01 +2.943199999999999983e-02 +4.499500000000000166e-01 +8.906699999999999340e-02 +2.422999999999999876e-01 +3.453099999999999919e-02 +7.383099999999999385e-02 +4.660299999999999998e-01 +1.120700000000000029e-01 +2.114000000000000046e-01 +1.398699999999999943e-01 +3.647400000000000087e-01 +2.142000000000000154e-02 +2.016100000000000114e-01 +7.571799999999999364e-02 +4.483900000000000108e-01 +9.625499999999999334e-02 +2.290399999999999936e-01 +2.251199999999999868e-01 +1.609200000000000075e-01 +5.590900000000000036e-02 +5.340399999999999592e-01 +1.077700000000000047e-01 +4.252000000000000224e-01 +1.254800000000000082e-01 +3.233800000000000008e-01 +2.227000000000000091e-01 +4.550299999999999900e-01 +1.409100000000000075e-01 +8.916200000000000514e-02 +1.926100000000000034e-01 +4.221099999999999852e-01 +1.301799999999999902e-01 +1.366600000000000037e-01 +7.157600000000000073e-03 +2.955899999999999847e-02 +4.651500000000000079e-02 +1.106499999999999984e-01 +3.297200000000000131e-01 +1.078299999999999953e-01 +3.477600000000000136e-02 +3.749500000000000055e-01 +1.601200000000000123e-01 +5.461099999999999982e-02 +8.764199999999999768e-02 +6.313100000000000378e-01 +1.573199999999999876e-01 +1.095199999999999993e-02 +3.245899999999999896e-01 +3.722300000000000053e-01 +7.092199999999999893e-02 +1.343699999999999894e-01 +7.920900000000000163e-02 +5.962100000000000177e-01 +2.297299999999999898e-01 +2.775299999999999989e-01 +1.102700000000000069e-01 +1.491899999999999893e-01 +4.521100000000000119e-01 +6.189599999999999547e-01 +3.402499999999999969e-01 +1.981499999999999928e-02 +2.551599999999999979e-01 +5.236800000000000344e-01 +2.749300000000000077e-01 +1.260900000000000076e-01 +4.676799999999999707e-02 +3.516199999999999881e-01 +4.138999999999999901e-01 +1.940600000000000103e-01 +2.949399999999999800e-01 +4.579699999999999882e-01 +2.612200000000000077e-01 +7.476399999999999713e-01 +4.234299999999999731e-01 +2.785099999999999798e-01 +3.407099999999999712e-02 +2.027899999999999980e-01 +4.812100000000000266e-01 +2.065700000000000036e-01 +2.877399999999999958e-01 +5.051600000000000534e-01 +3.389199999999999990e-01 +3.229899999999999993e-01 +4.192899999999999960e-01 +2.969800000000000217e-01 +3.551499999999999796e-02 +3.723000000000000198e-01 +1.572000000000000064e-01 +3.397800000000000126e-02 +3.276999999999999913e-01 +5.451000000000000290e-01 +1.783200000000000063e-01 +5.099999999999999672e-02 +1.249099999999999933e-01 +2.484399999999999942e-01 +7.152699999999999336e-02 +4.637299999999999756e-02 +4.360100000000000087e-02 +3.385900000000000021e-01 +4.263299999999999867e-01 +6.415800000000000392e-01 +3.742800000000000016e-01 +5.063400000000000123e-01 +8.019800000000000539e-02 +2.095799999999999885e-01 +2.826800000000000146e-02 +1.492199999999999915e-01 +2.016799999999999982e-01 +7.272300000000000431e-01 +1.000599999999999962e-01 +2.294300000000000159e-02 +2.715699999999999781e-01 +6.751200000000000256e-02 +1.040100000000000052e-01 +1.247199999999999975e-01 +3.313799999999999992e-03 +2.235199999999999965e-01 +2.768800000000000150e-01 +4.378000000000000225e-01 +8.632499999999999896e-02 +1.229699999999999960e-01 +2.358099999999999918e-01 +8.145800000000000263e-02 +9.225899999999999379e-02 +2.575399999999999912e-01 +3.248499999999999999e-02 +4.526299999999999768e-01 +2.066999999999999948e-01 +9.259699999999999875e-02 +3.890399999999999969e-01 +3.674999999999999881e-03 +2.341499999999999831e-02 +6.056599999999999762e-01 +1.257600000000000107e-01 +5.052200000000000024e-01 +5.599400000000000210e-02 +6.363999999999999657e-01 +1.671799999999999953e-01 +1.387599999999999945e-01 +4.252600000000000269e-01 +7.089399999999999868e-02 +6.705400000000000249e-01 +1.368199999999999972e-01 +3.240899999999999892e-01 +2.837299999999999822e-01 +1.497600000000000042e-01 +1.230299999999999970e-02 +5.078099999999999836e-01 +2.891699999999999826e-01 +2.051399999999999890e-01 +2.910599999999999854e-01 +1.560199999999999920e-01 +1.875799999999999967e-01 +3.848300000000000054e-01 +7.824000000000000399e-02 +1.079900000000000027e-01 +6.467100000000000071e-01 +1.812300000000000022e-01 +1.639100000000000001e-01 +1.788299999999999890e-01 +7.105200000000000404e-02 +5.471500000000000252e-01 +5.631199999999999539e-01 +8.099199999999999455e-02 +2.957600000000000229e-01 +3.335400000000000031e-01 +1.655999999999999972e-01 +8.478299999999999725e-02 +2.252300000000000135e-01 +5.649899999999999922e-01 +1.687099999999999989e-01 +2.166700000000000015e-01 +1.804900000000000115e-01 +1.982700000000000018e-01 +7.973600000000000132e-02 +4.559400000000000119e-01 +6.233199999999999852e-02 +1.904800000000000104e-01 +7.702699999999999825e-02 +7.308499999999999719e-02 +1.595900000000000096e-02 +9.980700000000000682e-02 +5.897299999999999764e-02 +6.806699999999999730e-03 +6.304800000000000404e-01 +3.244099999999999762e-01 +1.877600000000000102e-01 +1.377200000000000091e-01 +4.599699999999999900e-01 +3.054999999999999938e-01 +2.557299999999999851e-02 +3.278800000000000048e-01 +1.986999999999999877e-01 +1.751399999999999901e-01 +4.679699999999999971e-01 +4.295399999999999774e-01 +8.054700000000000193e-01 +2.497099999999999875e-01 +3.583200000000000274e-01 +8.807600000000000151e-02 +2.687200000000000144e-01 +2.136699999999999988e-01 +8.757600000000000107e-02 +5.661699999999999511e-01 +3.152900000000000147e-01 +1.838100000000000012e-01 +1.257300000000000084e-01 +4.247099999999999764e-01 +5.123199999999999976e-01 +2.351999999999999924e-01 +2.390500000000000125e-01 +3.170600000000000085e-01 +4.475300000000000111e-02 +4.545899999999999941e-01 +3.884400000000000075e-01 +4.889600000000000057e-01 +2.248100000000000098e-01 +1.128200000000000036e-01 +1.779100000000000126e-01 +1.740899999999999948e-01 +2.828800000000000203e-01 +3.095399999999999888e-02 +3.236200000000000188e-02 +4.027299999999999769e-01 +6.753799999999999804e-01 +3.993800000000000128e-01 +2.377599999999999991e-01 +2.569899999999999962e-01 +3.270399999999999696e-02 +2.960999999999999743e-01 +1.316400000000000070e-01 +2.690100000000000130e-02 +2.582099999999999951e-01 +3.873800000000000160e-03 +2.769800000000000040e-01 +3.689000000000000057e-01 +2.376300000000000079e-01 +2.776100000000000234e-01 +1.312399999999999956e-01 +1.176299999999999985e-01 +7.383699999999999708e-01 +7.836400000000000310e-02 +4.088700000000000112e-01 +2.379799999999999971e-01 +5.606299999999999617e-01 +2.136400000000000104e-02 +6.004599999999999937e-01 +1.562099999999999878e-01 +3.465799999999999992e-01 +2.584699999999999775e-01 +4.707800000000000179e-02 +3.162999999999999839e-02 +1.958600000000000063e-01 +4.755700000000000205e-02 +7.799500000000000322e-01 +3.196499999999999897e-01 +4.311500000000000055e-02 +6.096399999999999597e-01 +2.251100000000000045e-01 +1.145800000000000013e-01 +4.430200000000000249e-01 +2.464099999999999971e-02 +3.707300000000000179e-02 +5.122499999999999831e-01 +5.179299999999999876e-02 +3.556199999999999917e-01 +4.686500000000000110e-01 +2.890600000000000114e-02 +2.126200000000000034e-01 +1.267999999999999960e-01 +2.037599999999999967e-01 +3.236499999999999932e-01 +4.045099999999999807e-01 +4.445700000000000346e-02 +7.899599999999999955e-01 +2.460199999999999887e-01 +3.602899999999999991e-01 +1.378199999999999981e-01 +7.213600000000000012e-01 +6.027099999999999819e-02 +3.798200000000000187e-02 +5.009399999999999964e-02 +6.007500000000000062e-01 +1.512600000000000056e-01 +3.233400000000000163e-01 +2.553400000000000114e-01 +2.121500000000000052e-01 +7.955499999999999794e-01 +8.554399999999999782e-01 +7.958600000000000396e-02 +1.254200000000000037e-01 +5.312599999999999961e-02 +3.899299999999999988e-01 +5.053499999999999659e-01 +3.831899999999999751e-01 +1.379100000000000048e-01 +3.919000000000000261e-01 +2.535999999999999921e-01 +3.722500000000000253e-01 +2.034600000000000020e-01 +7.334000000000000519e-01 +1.736999999999999933e-01 +2.036600000000000077e-01 +2.783599999999999963e-02 +9.917499999999999927e-02 +7.348300000000000665e-02 +5.054399999999999865e-02 +4.964699999999999669e-02 +5.699300000000000477e-01 +1.005299999999999944e-01 +5.394200000000000106e-01 +1.233999999999999958e-01 +3.151900000000000257e-01 +2.972400000000000042e-01 +2.528000000000000247e-01 +1.102700000000000069e-01 +5.141999999999999904e-01 +4.361999999999999766e-01 +2.312700000000000033e-01 +2.069300000000000028e-01 +8.440699999999999592e-02 +3.415000000000000258e-01 +2.181200000000000083e-01 +2.437499999999999944e-01 +1.865799999999999959e-01 +1.111999999999999933e-01 +1.678600000000000092e-01 +1.249299999999999994e-01 +2.298000000000000043e-02 +6.316599999999999993e-01 +3.406300000000000300e-02 +1.991700000000000137e-01 +2.957099999999999729e-01 +2.374199999999999922e-01 +1.250799999999999967e-01 +3.804500000000000104e-01 +2.740500000000000158e-01 +1.258799999999999919e-01 +2.718800000000000106e-01 +9.435000000000000331e-02 +1.369799999999999907e-01 +4.394600000000000173e-01 +5.846099999999999908e-02 +2.726000000000000090e-01 +6.714599999999999458e-01 +1.486899999999999888e-01 +1.050900000000000029e-01 +7.751200000000000312e-01 +3.944400000000000128e-01 +1.807699999999999863e-01 +2.154399999999999926e-01 +3.430699999999999861e-01 +2.768900000000000250e-01 +2.026499999999999968e-01 +7.665399999999999991e-01 +8.107800000000000076e-03 +1.406799999999999995e-01 +4.678399999999999781e-01 +3.709899999999999864e-01 +5.650199999999999667e-01 +1.719400000000000095e-01 +1.409499999999999920e-01 +1.286799999999999888e-01 +1.887399999999999911e-01 +7.309700000000000086e-01 +5.530699999999999505e-01 +3.959599999999999786e-01 +6.754599999999999493e-02 +2.479999999999999982e-01 +3.086600000000000107e-02 +5.385400000000000187e-01 +5.561199999999999651e-03 +3.039399999999999880e-01 +3.308599999999999736e-02 +3.820700000000000207e-01 +9.829200000000000437e-02 +4.458799999999999986e-01 +1.334200000000000108e-01 +6.303900000000000059e-01 +2.880699999999999927e-01 +1.960699999999999943e-01 +5.429199999999999998e-02 +3.195900000000000216e-03 +4.080400000000000138e-01 +4.495700000000000252e-01 +8.045900000000000274e-02 +3.122699999999999920e-01 +1.993300000000000072e-01 +4.380700000000000392e-03 +3.976899999999999880e-01 +6.278000000000000247e-02 +1.509500000000000008e-01 +3.447500000000000009e-01 +6.305900000000000394e-02 +8.017299999999999774e-03 +3.382299999999999751e-01 +1.638499999999999956e-01 +5.036300000000000221e-01 +9.321300000000000419e-02 +6.885400000000000409e-01 +3.786800000000000166e-01 +1.338399999999999868e-01 +7.800300000000000289e-02 +2.951599999999999779e-01 +2.307200000000000084e-01 +2.384900000000000075e-01 +9.550200000000000355e-02 +3.346200000000000129e-03 +4.264899999999999941e-02 +1.499900000000000122e-01 +2.475900000000000045e-01 +2.736299999999999844e-01 +1.392799999999999871e-01 +3.370900000000000007e-01 +6.407300000000000217e-01 +5.392400000000000526e-01 +1.974899999999999989e-01 +1.077800000000000008e-01 +1.712500000000000133e-01 +4.976099999999999968e-02 +1.279899999999999927e-01 +2.321600000000000052e-01 +1.702100000000000002e-01 +2.742599999999999899e-02 +1.030999999999999972e-01 +5.440099999999999936e-01 +3.395699999999999830e-01 +4.047800000000000009e-02 +4.020299999999999985e-01 +9.874299999999999744e-02 +4.081499999999999712e-02 +1.570900000000000074e-01 +1.089799999999999935e-01 +4.389500000000000068e-01 +6.679400000000000615e-02 +3.839900000000000149e-04 +1.264099999999999946e-01 +3.556199999999999917e-01 +1.398600000000000121e-01 +4.712700000000000222e-01 +5.020499999999999963e-02 +2.447300000000000031e-01 +9.744300000000000184e-02 +3.049299999999999788e-01 +1.279700000000000004e-01 +5.172500000000000014e-02 +2.079999999999999905e-02 +2.524299999999999877e-01 +6.219800000000000328e-02 +5.599499999999999478e-01 +2.007099999999999856e-02 +6.511200000000000321e-01 +1.517699999999999882e-01 +2.806000000000000161e-01 +5.117899999999999672e-01 +2.612499999999999822e-01 +4.020200000000000162e-02 +5.837200000000000166e-01 +1.925199999999999967e-01 +6.248700000000000365e-01 +5.132500000000000256e-02 +2.754500000000000004e-02 +8.029899999999999816e-01 +1.449699999999999878e-01 +1.585399999999999865e-01 +2.318900000000000128e-02 +2.027100000000000013e-01 +2.207099999999999895e-01 +3.768299999999999983e-01 +2.248199999999999921e-01 +3.321700000000000208e-01 +3.344799999999999995e-01 +4.046799999999999842e-01 +1.255199999999999927e-01 +4.078099999999999781e-02 +2.920200000000000018e-01 +1.796300000000000119e-01 +7.039800000000000224e-02 +6.903200000000000447e-01 +7.238200000000000189e-01 +4.577300000000000257e-01 +7.327599999999999392e-02 +6.013000000000000289e-02 +7.838800000000000212e-01 +2.396000000000000074e-01 +8.582900000000000251e-02 +4.438199999999999784e-02 +3.513800000000000257e-02 +3.232300000000000173e-01 +1.019199999999999967e-01 +1.114499999999999935e-01 +3.487000000000000099e-01 +1.955000000000000071e-01 +2.570200000000000262e-01 +1.815100000000000047e-01 +3.143699999999999967e-02 +5.958499999999999908e-01 +5.002400000000000180e-01 +6.249799999999999800e-01 +2.680199999999999805e-01 +3.323499999999999788e-01 +3.238300000000000067e-01 +2.640599999999999892e-02 +2.060299999999999909e-01 +5.271399999999999697e-02 +2.626700000000000146e-01 +6.336999999999999751e-03 +3.091400000000000259e-01 +1.113699999999999968e-01 +4.597200000000000175e-01 +9.369299999999999851e-02 +2.685799999999999854e-01 +2.955200000000000049e-01 +4.389500000000000346e-02 +2.657399999999999762e-01 +3.429800000000000071e-01 +1.351600000000000024e-01 +2.059499999999999916e-04 +4.193600000000000105e-01 +1.624200000000000088e-01 +2.857600000000000071e-02 +2.170400000000000107e-01 +2.435700000000000087e-01 +2.573500000000000232e-01 +2.173700000000000077e-01 +6.117399999999999505e-01 +7.973199999999999732e-02 +6.949700000000000322e-02 +4.473599999999999799e-01 +9.255599999999999938e-02 +1.563799999999999912e-01 +3.124500000000000055e-01 +1.110399999999999929e-02 +1.504999999999999949e-01 +4.331099999999999950e-01 +6.189700000000000063e-02 +2.825199999999999934e-01 +7.048599999999999310e-02 +8.836099999999999510e-02 +4.314000000000000057e-01 +6.612999999999999989e-01 +2.147199999999999942e-01 +2.011300000000000032e-01 +2.843999999999999861e-01 +3.158599999999999741e-01 +2.498100000000000043e-01 +3.626300000000000079e-01 +2.951900000000000010e-02 +1.184400000000000036e-02 +2.409000000000000030e-01 +2.292599999999999916e-01 +1.700800000000000090e-01 +5.048399999999999554e-01 +2.692900000000000155e-02 +3.799899999999999944e-01 +4.740800000000000014e-01 +2.291100000000000081e-01 +2.901500000000000190e-01 +5.787900000000000267e-01 +4.461399999999999810e-01 +7.126900000000000457e-01 +1.777700000000000113e-01 +1.187099999999999961e-02 +7.594999999999999529e-01 +7.348100000000000465e-02 +4.126699999999999639e-03 +1.162600000000000022e-01 +3.286800000000000277e-01 +8.883099999999999330e-02 +1.250799999999999967e-01 +4.022399999999999864e-01 +7.632799999999999585e-01 +9.107300000000000395e-01 +1.834600000000000120e-02 +1.290000000000000036e-01 +2.003900000000000126e-01 +3.488800000000000234e-01 +1.847699999999999898e-01 +4.280900000000000261e-01 +1.557399999999999930e-02 +4.428599999999999759e-01 +2.064000000000000001e-01 +1.631799999999999917e-01 +2.518000000000000238e-01 +1.342200000000000060e-01 +4.890300000000000202e-01 +1.200600000000000001e-01 +7.172599999999999809e-02 +8.467199999999999727e-02 +2.747100000000000097e-01 +1.960399999999999920e-01 +7.995399999999999729e-02 +7.683399999999999952e-02 +1.092999999999999944e-01 +3.284399999999999820e-02 +6.182100000000000095e-02 +2.131500000000000061e-01 +5.236899999999999888e-01 +1.555900000000000061e-01 +6.265100000000000113e-01 +2.730199999999999849e-01 +2.525299999999999767e-01 +5.680600000000000094e-01 +3.592400000000000038e-01 +3.370000000000000079e-02 +2.909300000000000219e-01 +1.781099999999999905e-01 +1.678600000000000092e-01 +1.576500000000000123e-01 +1.339100000000000013e-01 +6.174500000000000544e-01 +3.012799999999999923e-01 +3.589800000000000213e-01 +3.179200000000000081e-02 +8.644499999999999407e-02 +2.602999999999999758e-01 +6.453200000000000602e-02 +3.605300000000000171e-01 +1.798200000000000076e-01 +6.935800000000000298e-02 +2.500600000000000045e-01 +1.095600000000000046e-01 +2.494399999999999951e-01 +1.533400000000000041e-01 +2.550200000000000036e-02 +1.915400000000000089e-02 +1.726600000000000079e-01 +3.986600000000000144e-01 +1.400599999999999901e-01 +1.561500000000000110e-01 +6.250899999999999512e-02 +1.793299999999999894e-01 +1.054299999999999959e-01 +7.979700000000000681e-02 +2.027100000000000082e-02 +1.278700000000000114e-01 +4.431599999999999984e-01 +2.703699999999999992e-01 +7.585699999999999665e-01 +7.253500000000000225e-02 +1.107699999999999935e-01 +3.455400000000000138e-01 +6.359000000000000208e-01 +1.731999999999999929e-01 +4.852400000000000047e-01 +1.955099999999999894e-01 +7.500599999999999490e-01 +5.865999999999999687e-03 +3.336700000000000221e-01 +1.559200000000000115e-04 +7.092499999999999846e-03 +4.438799999999999690e-02 +4.953600000000000225e-01 +4.140100000000000030e-02 +3.049800000000000080e-02 +1.672800000000000120e-01 +1.419600000000000029e-01 +8.963600000000000456e-01 +7.112899999999999778e-01 +1.112999999999999962e-01 +2.827299999999999952e-02 +6.971399999999999819e-01 +2.792700000000000043e-02 +2.955900000000000194e-01 +1.835200000000000026e-02 +3.075100000000000056e-01 +1.285399999999999876e-01 +1.383699999999999930e-01 +1.090900000000000064e-01 +5.716799999999999660e-02 +2.562800000000000078e-01 +3.171900000000000275e-01 +3.725899999999999768e-01 +4.344799999999999773e-01 +5.096199999999999619e-01 +7.114500000000000268e-01 +1.162200000000000039e-01 +2.103800000000000114e-01 +2.200499999999999956e-01 +9.688099999999999490e-02 +2.378300000000000136e-01 +2.018199999999999994e-01 +4.314199999999999979e-02 +1.456899999999999862e-01 +2.864499999999999824e-01 +6.713400000000000478e-01 +7.158899999999999986e-02 +1.423800000000000066e-01 +1.205500000000000044e-01 +2.942699999999999830e-02 +2.937899999999999956e-01 +2.181500000000000106e-01 +6.851400000000000545e-02 +1.777400000000000091e-01 +1.735899999999999943e-01 +2.198699999999999938e-04 +8.677899999999999503e-02 +1.728000000000000091e-01 +1.514999999999999958e-01 +3.107199999999999962e-01 +1.398500000000000021e-01 +4.250499999999999834e-01 +2.149500000000000022e-01 +1.728500000000000036e-01 +1.748300000000000132e-01 +1.786999999999999977e-01 +4.051400000000000001e-01 +1.463099999999999956e-01 +6.358300000000000063e-01 +4.819999999999999840e-01 +1.122400000000000064e-01 +7.441799999999999804e-02 +8.272999999999999798e-02 +5.436100000000000376e-01 +5.320899999999999519e-01 +7.726300000000000182e-03 +3.546400000000000247e-02 +3.318300000000000138e-01 +2.540299999999999780e-01 +1.137500000000000039e-01 +4.272500000000000187e-01 +3.272100000000000009e-01 +7.213000000000000522e-01 +4.299700000000000188e-01 +2.668300000000000116e-01 +1.516399999999999970e-01 +1.807199999999999918e-01 +2.299900000000000000e-01 +2.169399999999999940e-01 +1.033400000000000013e-01 +4.664499999999999758e-01 +1.553200000000000136e-01 +5.080299999999999816e-01 +1.724600000000000022e-01 +1.978699999999999903e-01 +2.236200000000000132e-01 +9.882100000000000606e-02 +4.633399999999999741e-01 +6.774800000000000266e-02 +4.603099999999999969e-01 +3.521000000000000241e-01 +1.170999999999999958e-01 +4.547299999999999953e-02 +2.598199999999999954e-01 +4.076500000000000123e-01 +1.006100000000000050e-01 +7.141200000000000325e-02 +1.304400000000000004e-01 +1.179700000000000019e-02 +2.082799999999999929e-01 +6.544200000000000017e-02 +3.059700000000000197e-01 +1.821699999999999986e-01 +4.180599999999999872e-01 +6.934900000000000508e-01 +2.388200000000000045e-01 +1.621799999999999908e-01 +3.712199999999999944e-01 +5.262900000000000356e-01 +3.289599999999999747e-01 +5.824700000000000433e-01 +4.315200000000000147e-01 +1.901299999999999935e-01 +1.534899999999999876e-01 +4.874200000000000199e-01 +3.920699999999999741e-01 +3.161999999999999811e-01 +3.757900000000000129e-02 +5.969200000000000061e-01 +4.042999999999999927e-01 +1.265199999999999936e-01 +8.210199999999999720e-01 +3.093999999999999875e-02 +5.452500000000000124e-01 +3.528800000000000270e-01 +2.632499999999999840e-01 +1.698199999999999987e-01 +1.571099999999999997e-01 +2.605500000000000038e-01 +4.336099999999999954e-01 +3.341199999999999726e-01 +3.746700000000000030e-01 +1.026600000000000013e-01 +9.260599999999999388e-02 +3.574999999999999845e-01 +1.352399999999999991e-01 +1.710599999999999968e-02 +2.103299999999999892e-01 +3.655300000000000216e-01 +2.346199999999999952e-01 +5.953500000000000458e-01 +2.989299999999999943e-02 +3.591500000000000248e-01 +3.518899999999999806e-02 +4.025500000000000189e-01 +6.352900000000000214e-01 +3.453700000000000103e-01 +3.280399999999999983e-01 +1.149199999999999944e-01 +1.464500000000000003e-02 +1.318700000000000080e-02 +4.304199999999999693e-02 +1.277899999999999869e-01 +2.619699999999999807e-01 +2.842700000000000227e-01 +1.919500000000000095e-01 +2.235199999999999965e-01 +1.933400000000000049e-02 +2.114999999999999936e-01 +4.011000000000000121e-01 +2.063099999999999934e-01 +6.861200000000000632e-02 +9.014800000000000590e-02 +6.370700000000000252e-01 +3.385400000000000076e-01 +1.426599999999999917e-02 +1.880000000000000074e-02 +4.019900000000000140e-01 +2.234200000000000075e-01 +1.426000000000000045e-01 +3.323699999999999988e-01 +1.097999999999999948e-01 +5.476799999999999446e-01 +1.570900000000000074e-01 +7.381699999999999373e-02 +5.127500000000000391e-01 +3.824400000000000022e-01 +1.454100000000000115e-01 +5.929699999999999971e-01 +1.128799999999999942e-01 +3.916299999999999781e-01 +7.121899999999999897e-01 +1.253400000000000070e-01 +2.992799999999999905e-01 +1.184400000000000036e-01 +4.211900000000000088e-01 +5.620300000000000296e-01 +3.088099999999999873e-02 +8.112800000000000566e-02 +7.005300000000000415e-02 +5.458500000000000157e-02 +8.622499999999999609e-02 +5.687400000000000233e-01 +4.378199999999999870e-01 +5.166100000000000136e-01 +1.868900000000000075e-02 +4.546000000000000041e-01 +4.880099999999999716e-02 +1.906700000000000061e-02 +9.739599999999999647e-02 +2.543399999999999914e-03 +4.910599999999999687e-02 +9.259699999999999875e-02 +1.095499999999999946e-01 +5.338199999999999612e-01 +2.288499999999999979e-01 +9.877500000000000169e-02 +6.893000000000000516e-02 +1.774100000000000121e-01 +7.728399999999999714e-01 +9.355900000000000327e-02 +3.344099999999999850e-02 +1.368600000000000094e-01 +2.266600000000000004e-01 +3.728899999999999992e-01 +2.320500000000000063e-01 +1.409499999999999920e-01 +5.285999999999999727e-02 +1.033799999999999997e-01 +1.021399999999999947e-01 +1.282000000000000084e-01 +6.608500000000000485e-01 +2.544000000000000150e-01 +1.016500000000000042e-01 +6.442900000000000016e-02 +3.097799999999999859e-02 +2.970099999999999962e-01 +1.639700000000000046e-01 +1.415700000000000014e-01 +6.553299999999999681e-01 +1.583400000000000085e-01 +2.101200000000000012e-01 +2.421099999999999919e-01 +4.246800000000000019e-01 +2.092700000000000116e-02 +1.489199999999999968e-01 +5.215000000000000017e-03 +2.517099999999999893e-01 +3.673100000000000254e-01 +7.934999999999999831e-01 +2.871800000000000047e-02 +1.098599999999999924e-02 +8.018300000000000427e-02 +1.154499999999999971e-01 +1.980999999999999983e-01 +7.261100000000000367e-03 +1.923999999999999929e-03 +2.508000000000000229e-01 +5.481500000000000261e-01 +3.393200000000000105e-01 +1.756900000000000128e-02 +3.907800000000000162e-01 +6.068299999999999805e-01 +1.080799999999999955e-01 +1.676799999999999957e-01 +1.979999999999999989e-03 +1.805799999999999905e-01 +2.717100000000000071e-01 +2.851600000000000246e-01 +4.406299999999999800e-02 +3.222999999999999754e-01 +7.182899999999999875e-03 +1.882500000000000007e-01 +4.656300000000000369e-03 +3.217900000000000205e-01 +1.186900000000000038e-01 +5.891699999999999715e-02 +3.542399999999999993e-01 +8.922199999999999576e-02 +8.569999999999999840e-02 +4.250099999999999989e-01 +1.989100000000000035e-01 +2.391500000000000015e-01 +4.536400000000000154e-02 +1.203899999999999970e-01 +2.611800000000000059e-03 +6.889999999999999458e-01 +8.119300000000000128e-02 +2.541599999999999970e-01 +4.723299999999999721e-02 +3.665300000000000225e-01 +6.269099999999999673e-02 +1.667599999999999916e-01 +4.937699999999999867e-01 +7.525199999999999667e-01 +3.785100000000000131e-01 +2.975300000000000167e-01 +2.223100000000000076e-01 +1.926799999999999902e-01 +1.207799999999999985e-01 +2.190100000000000102e-01 +3.872999999999999776e-01 +6.804200000000000248e-01 +7.893000000000000016e-02 +4.327400000000000135e-01 +7.973299999999999832e-02 +2.558900000000000063e-01 +7.586600000000000010e-01 +1.121899999999999981e-01 +4.418599999999999750e-01 +2.626000000000000001e-01 +1.118299999999999988e-01 +5.345299999999999496e-01 +2.379500000000000018e-02 +3.305000000000000160e-01 +1.548000000000000070e-02 +8.503399999999999848e-02 +3.921499999999999986e-01 +1.488200000000000078e-01 +5.804100000000000231e-02 +4.163100000000000134e-01 +1.611899999999999999e-01 +3.555699999999999972e-01 +2.944399999999999795e-01 +1.292399999999999938e-01 +4.803500000000000131e-02 +3.132800000000000029e-01 +2.461099999999999954e-01 +5.636999999999999789e-01 +2.387199999999999878e-01 +2.968100000000000183e-01 +2.862899999999999889e-01 +3.876500000000000085e-02 +2.383099999999999941e-01 +2.077900000000000025e-01 +1.476800000000000057e-01 +2.052200000000000135e-01 +4.825099999999999945e-01 +3.742399999999999893e-02 +2.607900000000000218e-01 +2.578500000000000236e-01 +4.105099999999999721e-02 +2.732100000000000153e-02 +6.193999999999999853e-03 +1.136899999999999994e-01 +7.495699999999999585e-02 +1.427900000000000003e-01 +6.362900000000000500e-02 +1.349900000000000058e-02 +1.398699999999999943e-01 +7.158499999999999586e-02 +3.488200000000000189e-01 +1.824599999999999833e-02 +7.182499999999999996e-02 +2.707700000000000037e-02 +1.538599999999999968e-01 +2.839999999999999747e-01 +3.588700000000000223e-01 +2.720299999999999940e-01 +2.817700000000000066e-02 +1.485499999999999876e-01 +6.066000000000000281e-01 +6.542799999999999727e-01 +5.106199999999999628e-01 +7.326899999999999524e-01 +6.489499999999999436e-02 +1.101700000000000075e-02 +3.823599999999999915e-02 +1.273799999999999932e-01 +4.850999999999999757e-01 +5.540300000000000086e-02 +3.311600000000000099e-01 +1.358000000000000040e-01 +3.589700000000000113e-01 +1.552699999999999914e-01 +1.546899999999999942e-01 +4.741099999999999759e-01 +6.691299999999999852e-03 +3.373399999999999732e-01 +2.260300000000000087e-01 +1.207799999999999985e-01 +1.673300000000000065e-01 +5.724799999999999889e-01 +3.927499999999999880e-01 +9.353300000000000503e-02 +9.874800000000000244e-02 +6.161500000000000310e-02 +9.836499999999999411e-02 +5.057000000000000384e-01 +5.707100000000000506e-01 +1.189500000000000002e-01 +2.094699999999999895e-01 +2.984200000000000186e-01 +6.212499999999999689e-01 +3.707500000000000240e-01 +3.127100000000000019e-02 +6.461999999999999689e-02 +3.486400000000000055e-01 +2.550699999999999842e-02 +4.274399999999999866e-01 +7.084500000000000519e-02 +9.494500000000000162e-02 +2.159999999999999976e-01 +2.233600000000000030e-01 +4.186300000000000021e-01 +3.198400000000000132e-01 +4.340700000000000114e-01 +5.835000000000000187e-01 +1.087100000000000011e-01 +3.386500000000000066e-01 +3.074200000000000266e-01 +4.967300000000000049e-01 +4.978500000000000147e-01 +2.213199999999999890e-01 +1.559999999999999998e-01 +4.482599999999999918e-01 +2.061300000000000077e-01 +1.008799999999999975e-01 +3.936299999999999799e-01 +2.715300000000000005e-02 +1.925300000000000067e-01 +7.901000000000000245e-01 +8.361399999999999388e-02 +1.099200000000000038e-01 +2.430499999999999883e-01 +1.576599999999999946e-01 +4.493099999999999872e-01 +3.713600000000000234e-01 +9.182400000000000284e-02 +2.855400000000000160e-01 +1.515100000000000058e-01 +1.397900000000000011e-02 +2.048000000000000098e-01 +1.317599999999999882e-01 +1.321100000000000052e-01 +1.526299999999999879e-01 +3.274199999999999888e-01 +2.704900000000000082e-01 +4.834399999999999809e-02 +4.674200000000000021e-01 +1.793500000000000094e-01 +1.458500000000000074e-01 +1.995500000000000052e-01 +3.515300000000000091e-01 +5.660800000000000276e-01 +2.330700000000000133e-02 +7.552500000000000185e-03 +1.272199999999999998e-01 +6.947900000000000187e-01 +3.052199999999999913e-01 +3.094500000000000028e-01 +5.508199999999999902e-02 +3.943400000000000238e-01 +1.851299999999999890e-01 +8.292599999999999971e-02 +5.627900000000000125e-01 +9.646000000000000407e-02 +1.138399999999999967e-01 +1.223000000000000059e-01 +1.635999999999999954e-01 +1.287400000000000003e-02 +7.535999999999999643e-02 +1.918799999999999950e-01 +7.111399999999999666e-02 +1.877199999999999980e-01 +2.186400000000000010e-01 +3.547400000000000032e-03 +9.750399999999999345e-02 +1.989099999999999896e-02 +6.654200000000000392e-02 +9.965599999999999459e-02 +2.308100000000000082e-02 +1.285499999999999976e-01 +2.162700000000000039e-02 +3.595300000000000162e-01 +4.421399999999999775e-01 +5.994300000000000184e-01 +1.253400000000000070e-01 +5.614999999999999991e-01 +3.900800000000000101e-02 +7.403099999999999958e-02 +8.973100000000000520e-02 +5.957299999999999818e-01 +2.938500000000000001e-01 +3.848400000000000154e-01 +1.450200000000000100e-01 +4.611100000000000199e-01 +7.760299999999999976e-01 +2.322400000000000020e-01 +1.329200000000000104e-01 +5.673899999999999499e-01 +6.174800000000000288e-01 +5.132400000000000295e-01 +2.086800000000000044e-01 +2.828100000000000058e-01 +2.731500000000000039e-01 +6.304600000000000204e-01 +2.684699999999999864e-01 +1.048800000000000010e-01 +2.585100000000000176e-01 +2.340299999999999880e-01 +2.940300000000000136e-01 +5.132299999999999640e-01 +3.469499999999999806e-01 +2.998999999999999999e-01 +3.206800000000000206e-01 +3.134100000000000219e-01 +1.810700000000000087e-01 +2.750600000000000180e-03 +2.286299999999999999e-01 +1.158399999999999985e-01 +1.751999999999999946e-01 +4.801000000000000267e-01 +1.086199999999999943e-01 +9.781900000000000317e-02 +5.616299999999999765e-02 +2.916200000000000042e-02 +3.771000000000000046e-02 +2.183599999999999985e-01 +7.662399999999999767e-02 +3.521900000000000031e-01 +5.848299999999999610e-01 +1.263600000000000001e-01 +3.563799999999999746e-01 +2.246400000000000063e-01 +4.433500000000000218e-01 +3.635200000000000098e-01 +1.002500000000000058e-01 +3.424899999999999819e-03 +7.998499999999999499e-01 +1.832499999999999962e-01 +1.614200000000000010e-02 +1.823599999999999943e-01 +5.683899999999999508e-01 +1.886099999999999999e-01 +3.494400000000000284e-02 +2.912799999999999834e-01 +2.011400000000000132e-01 +1.101499999999999979e-01 +2.973600000000000132e-01 +4.752700000000000258e-01 +3.194100000000000272e-01 +1.486499999999999974e-02 +8.158899999999999486e-02 +7.402900000000000036e-01 +2.042200000000000126e-01 +3.319599999999999773e-01 +3.058799999999999852e-01 +5.975099999999999856e-02 +3.595400000000000262e-01 +3.285100000000000242e-01 +5.279199999999999865e-02 +3.852300000000000169e-01 +2.548699999999999855e-01 +9.010500000000000453e-02 +2.047899999999999998e-01 +7.039400000000000102e-01 +9.964699999999999946e-02 +2.959800000000000209e-01 +5.671099999999999752e-02 +5.249299999999999800e-02 +5.950999999999999623e-01 +4.399899999999999922e-01 +1.270000000000000018e-01 +7.141899999999999638e-02 +3.310600000000000209e-01 +5.574599999999999556e-01 +2.525200000000000222e-01 +6.865999999999999881e-01 +4.874499999999999944e-01 +2.915799999999999989e-02 +2.127799999999999969e-01 +5.412999999999999756e-02 +1.640600000000000114e-01 +1.155999999999999944e-01 +1.640000000000000069e-01 +4.480599999999999861e-02 +2.190799999999999970e-01 +3.410599999999999743e-02 +1.820499999999999896e-01 +3.549399999999999777e-01 +1.707299999999999929e-01 +4.045799999999999952e-01 +5.072699999999999987e-01 +2.042200000000000126e-01 +7.184699999999999420e-02 +1.128299999999999997e-01 +1.316499999999999962e-02 +5.242299999999999738e-02 +4.228000000000000091e-01 +4.576299999999999812e-01 +3.245399999999999952e-01 +2.383599999999999886e-01 +1.352299999999999891e-01 +4.051400000000000140e-02 +1.312199999999999998e-02 +3.938900000000000179e-01 +6.122299999999999964e-02 +2.076099999999999890e-01 +3.865199999999999747e-01 +3.347800000000000220e-01 +1.583900000000000030e-01 +5.614100000000000340e-02 +2.475400000000000170e-02 +4.540399999999999991e-01 +1.586400000000000032e-01 +3.150700000000000167e-01 +5.822899999999999743e-01 +2.677100000000000035e-01 +2.846199999999999841e-01 +1.735899999999999943e-01 +9.174100000000000310e-02 +9.669899999999999329e-02 +7.354700000000000126e-02 +5.277900000000000300e-03 +3.641800000000000037e-01 +1.264799999999999952e-03 +3.813199999999999923e-01 +1.047600000000000059e-01 +1.443099999999999938e-01 +3.757300000000000084e-01 +7.195200000000000207e-02 +1.562999999999999945e-01 +3.675499999999999878e-01 +1.773899999999999921e-01 +3.452500000000000013e-01 +4.618499999999999689e-02 +1.405800000000000105e-01 +7.545699999999999630e-02 +3.633000000000000118e-01 +5.888099999999999445e-01 +7.237000000000000377e-02 +1.466899999999999871e-01 +1.463700000000000070e-02 +1.644899999999999973e-01 +2.489300000000000124e-01 +9.376600000000000212e-02 +3.044900000000000037e-02 +3.271000000000000019e-01 +1.996300000000000019e-01 +3.011300000000000088e-01 +1.662299999999999889e-01 +9.862200000000000133e-02 +1.001999999999999939e-02 +3.379599999999999826e-01 +9.136299999999999977e-02 +1.109300000000000043e-02 +4.747399999999999710e-03 +4.313299999999999912e-01 +2.413099999999999967e-02 +2.535200000000000231e-01 +1.501500000000000057e-01 +7.947300000000000197e-02 +2.712399999999999811e-01 +9.812500000000000389e-02 +1.514199999999999990e-01 +2.780199999999999894e-01 +2.989899999999999780e-01 +3.116099999999999981e-01 +3.128600000000000270e-01 +3.820200000000000262e-01 +1.121199999999999974e-02 +3.965899999999999981e-01 +1.770599999999999952e-01 +9.905799999999999328e-02 +1.080300000000000010e-01 +2.533000000000000251e-01 +4.947200000000000208e-02 +4.983600000000000252e-01 +4.179399999999999782e-01 +5.882800000000000251e-01 +6.712999999999999523e-02 +1.046399999999999969e-01 +1.774799999999999989e-03 +2.287800000000000111e-01 +9.266800000000000037e-02 +1.177499999999999936e-01 +1.467799999999999938e-01 +2.728300000000000169e-01 +5.642699999999999799e-02 +1.251200000000000090e-01 +2.658300000000000107e-01 +3.274199999999999888e-01 +4.481299999999999867e-02 +1.199199999999999988e-01 +1.025399999999999923e-02 +5.334200000000000053e-02 +9.019099999999999340e-02 +3.072799999999999837e-02 +2.889399999999999746e-01 +7.503700000000000647e-02 +6.976999999999999869e-02 +2.103399999999999992e-01 +1.606100000000000028e-01 +1.494399999999999895e-01 +3.951999999999999957e-01 +6.840500000000000469e-01 +8.912999999999999812e-01 +8.223899999999999544e-01 +1.886200000000000029e-02 +1.054900000000000004e-01 +3.804199999999999804e-01 +8.155600000000000349e-02 +1.890800000000000120e-02 +1.917099999999999915e-01 +1.037399999999999989e-01 +4.735600000000000226e-02 +3.440099999999999825e-01 +6.068699999999999789e-02 +1.277800000000000047e-01 +2.389300000000000018e-03 +4.212199999999999833e-01 +5.707999999999999879e-02 +1.610399999999999887e-01 +1.838700000000000057e-01 +4.181300000000000017e-01 +5.085699999999999943e-02 +6.136599999999999833e-01 +6.489000000000000323e-01 +3.072599999999999776e-01 +4.697399999999999909e-01 +9.780099999999999905e-02 +1.726900000000000102e-01 +1.919099999999999973e-01 +2.137799999999999978e-01 +9.991800000000000334e-03 +4.438899999999999790e-02 +1.099600000000000022e-01 +2.947799999999999865e-01 +1.567199999999999982e-01 +1.430299999999999905e-01 +2.565100000000000158e-01 +2.496700000000000030e-01 +7.473299999999999388e-02 +2.061499999999999999e-01 +1.225300000000000000e-01 +9.258600000000000163e-02 +2.632499999999999840e-01 +3.609299999999999731e-01 +1.585999999999999910e-01 +2.749400000000000108e-02 +1.821800000000000086e-01 +1.466099999999999903e-01 +3.101700000000000013e-01 +1.106000000000000039e-01 +6.462299999999999711e-01 +6.510399999999999521e-02 +3.672700000000000270e-02 +3.885399999999999965e-01 +3.894599999999999729e-01 +5.535700000000000065e-01 +2.704499999999999960e-02 +1.161299999999999971e-01 +2.139099999999999890e-01 +1.205800000000000066e-01 +7.571700000000000652e-02 +3.447999999999999954e-01 +3.043100000000000249e-01 +2.580999999999999961e-01 +3.734200000000000019e-02 +1.048400000000000026e-01 +8.703899999999999970e-01 +5.101999999999999869e-01 +2.172999999999999932e-01 +3.152499999999999747e-01 +5.825500000000000123e-01 +1.206699999999999995e-01 +4.071600000000000219e-01 +5.599800000000000264e-03 +4.660299999999999998e-01 +4.439400000000000013e-01 +4.724600000000000327e-02 +1.547699999999999909e-01 +1.329700000000000049e-01 +1.420299999999999896e-01 +4.317100000000000104e-02 +7.079699999999999882e-02 +1.751399999999999901e-01 +1.327699999999999991e-01 +2.924300000000000163e-02 +8.777699999999999392e-02 +6.765199999999999859e-03 +1.518899999999999972e-01 +7.308799999999999741e-01 +5.412500000000000089e-01 +2.086399999999999921e-01 +1.037300000000000028e-02 +2.539299999999999891e-01 +5.215899999999999703e-02 +6.651700000000000390e-01 +1.350000000000000089e-01 +2.379600000000000048e-01 +1.476699999999999957e-01 +5.314499999999999780e-01 +2.135100000000000053e-01 +1.957500000000000073e-01 +1.415299999999999891e-01 +6.081899999999999806e-02 +2.914300000000000224e-01 +7.193599999999999994e-01 +4.394100000000000228e-01 +1.423800000000000066e-01 +4.633900000000000241e-01 +5.162700000000000101e-03 +1.570900000000000074e-01 +2.004900000000000085e-02 +7.735999999999999821e-02 +4.018100000000000005e-01 +3.693000000000000171e-01 +7.023500000000000576e-02 +4.680099999999999816e-01 +2.994999999999999885e-01 +3.837099999999999955e-01 +1.906200000000000117e-01 +1.188199999999999951e-01 +3.011199999999999988e-01 +3.752400000000000180e-01 +9.050400000000000111e-02 +1.670000000000000095e-01 +3.239199999999999857e-01 +4.750099999999999878e-01 +1.513599999999999945e-01 +9.221699999999999342e-02 +3.840799999999999770e-01 +1.046099999999999947e-01 +2.156599999999999837e-02 +8.865099999999999369e-02 +8.695700000000000651e-02 +1.900100000000000122e-01 +3.528299999999999770e-01 +1.736699999999999910e-01 +2.058899999999999897e-01 +6.523200000000000109e-01 +3.409900000000000153e-01 +3.521199999999999886e-01 +2.321300000000000030e-01 +2.041600000000000081e-01 +2.704199999999999937e-01 +2.438600000000000143e-02 +7.090799999999999881e-02 +4.522300000000000209e-01 +6.848999999999999533e-01 +1.267300000000000093e-01 +8.648899999999999644e-02 +5.395999999999999755e-03 +1.559800000000000075e-01 +4.812500000000000111e-01 +6.973500000000000254e-01 +1.120099999999999985e-01 +2.038699999999999957e-01 +2.016000000000000084e-02 +1.922300000000000120e-01 +4.149200000000000110e-01 +3.389699999999999935e-01 +2.364999999999999880e-01 +1.108699999999999963e-01 +5.994900000000000229e-02 +1.400299999999999878e-01 +3.095399999999999818e-01 +2.801100000000000256e-01 +1.721999999999999920e-01 +7.070899999999999963e-01 +3.251700000000000146e-01 +6.382799999999999585e-01 +3.704999999999999960e-01 +6.916099999999999470e-01 +5.431500000000000217e-01 +8.425599999999999756e-02 +2.488400000000000056e-01 +2.655699999999999728e-01 +5.893000000000000460e-01 +5.810699999999999893e-02 +4.155699999999999950e-01 +3.026599999999999846e-01 +1.753500000000000059e-01 +4.619099999999999873e-01 +4.229200000000000181e-01 +2.396399999999999919e-01 +1.968799999999999994e-01 +3.746099999999999985e-01 +4.138899999999999801e-01 +3.658100000000000240e-01 +1.904299999999999882e-01 +2.661999999999999922e-01 +1.139099999999999974e-01 +1.357599999999999918e-01 +4.179000000000000076e-02 +7.021399999999999864e-01 +1.025299999999999961e-01 +6.144399999999999862e-01 +2.944100000000000050e-01 +4.476600000000000024e-01 +6.878199999999999870e-01 +7.143300000000000205e-01 +3.522700000000000276e-01 +4.104300000000000170e-01 +5.782500000000000140e-02 +9.459800000000000153e-02 +5.553099999999999703e-02 +1.587800000000000045e-01 +4.919300000000000062e-02 +9.189999999999999558e-02 +1.633900000000000075e-01 +1.392100000000000004e-01 +2.371300000000000074e-01 +3.924400000000000110e-01 +3.916299999999999781e-01 +3.594300000000000272e-01 +2.176499999999999962e-02 +7.136900000000000188e-02 +1.535700000000000121e-01 +2.898100000000000120e-01 +3.295699999999999741e-01 +5.664600000000000191e-02 +9.081300000000000483e-02 +8.608799999999999786e-01 +4.998400000000000065e-01 +5.696999999999999981e-02 +1.885499999999999954e-01 +2.660299999999999887e-01 +1.403200000000000003e-01 +3.136200000000000099e-01 +1.917300000000000115e-01 +1.236899999999999944e-01 +6.991400000000000392e-02 +2.898299999999999835e-02 +2.225900000000000101e-01 +2.530999999999999917e-01 +2.423399999999999999e-01 +2.247999999999999998e-02 +4.133800000000000252e-01 +2.350599999999999912e-01 +7.483600000000000252e-01 +4.424199999999999799e-01 +3.371500000000000052e-01 +1.786600000000000132e-01 +5.818499999999999783e-01 +1.228299999999999947e-01 +6.811899999999999900e-02 +7.706199999999999856e-03 +2.967399999999999812e-03 +3.828099999999999836e-01 +5.834300000000000042e-01 +6.528799999999999881e-02 +1.254300000000000137e-01 +1.415500000000000091e-01 +6.896900000000000253e-02 +8.086999999999999744e-02 +2.945800000000000154e-02 +2.373500000000000054e-01 +7.253399999999999848e-01 +1.592200000000000004e-01 +9.258500000000000063e-02 +9.531599999999999795e-02 +1.015500000000000014e-01 +4.817100000000000271e-01 +3.571799999999999975e-01 +1.387500000000000122e-01 +5.489699999999999580e-01 +2.198400000000000094e-04 +3.020300000000000207e-01 +2.038500000000000034e-01 +1.241899999999999948e-01 +4.631799999999999806e-02 +1.530100000000000071e-01 +5.882600000000000329e-02 +7.564300000000000468e-01 +2.175300000000000011e-01 +4.268600000000000172e-01 +1.244799999999999934e-01 +3.919000000000000261e-01 +2.192999999999999949e-01 +2.691799999999999748e-01 +3.462600000000000122e-01 +1.671799999999999979e-03 +3.212400000000000255e-01 +1.433300000000000129e-01 +3.783599999999999741e-01 +1.159199999999999953e-01 +5.100999999999999979e-02 +2.775299999999999989e-01 +4.943000000000000171e-01 +4.634499999999999731e-01 +1.952000000000000124e-01 +5.248400000000000287e-02 +7.232100000000000195e-01 +2.076700000000000074e-02 +4.013999999999999790e-01 +5.288400000000000045e-02 +1.937200000000000033e-01 +4.427699999999999969e-01 +1.741699999999999846e-02 +4.144599999999999951e-01 +3.950699999999999767e-01 +4.941599999999999882e-01 +2.001100000000000101e-01 +8.287200000000000122e-02 +4.455999999999999892e-03 +5.081599999999999451e-01 +3.997299999999999638e-03 +5.682700000000000529e-01 +1.672299999999999898e-01 +2.210600000000000065e-02 +3.562100000000000266e-01 +2.537300000000000111e-01 +5.813500000000000334e-01 +1.264399999999999968e-01 +3.411499999999999949e-02 +4.114799999999999708e-02 +2.970499999999999807e-01 +2.312500000000000111e-01 +4.125700000000000200e-02 +3.017099999999999782e-01 +3.571400000000000269e-02 +2.584600000000000092e-02 +3.655900000000000261e-01 +6.339599999999999402e-02 +3.885100000000000220e-01 +1.691600000000000048e-01 +5.460899999999999643e-01 +3.753499999999999892e-02 +7.101399999999999935e-01 +6.165800000000000169e-01 +2.969800000000000217e-01 +7.652799999999999880e-02 +2.720699999999999785e-01 +1.316499999999999962e-02 +1.990999999999999992e-01 +1.569399999999999962e-01 +3.560499999999999776e-01 +2.416999999999999982e-01 +8.158200000000000174e-02 +4.788200000000000095e-02 +3.906100000000000128e-01 +5.455399999999999833e-02 +1.077400000000000024e-01 +9.150099999999999900e-02 +1.369499999999999884e-01 +4.467800000000000243e-02 +4.438799999999999968e-01 +5.527999999999999581e-01 +8.851499999999999646e-02 +1.283700000000000119e-01 +1.977200000000000069e-01 +7.143399999999999750e-01 +1.194800000000000029e-01 +1.819800000000000029e-01 +4.132799999999999668e-02 +1.502699999999999869e-01 +4.918600000000000194e-01 +3.688699999999999757e-01 +2.675299999999999900e-01 +7.755999999999999561e-01 +2.088099999999999956e-01 +5.467400000000000038e-02 +2.945300000000000140e-01 +1.021699999999999969e-01 +1.409299999999999997e-01 +4.471399999999999680e-02 +5.264999999999999680e-01 +8.974000000000000032e-02 +1.542300000000000060e-01 +2.280999999999999972e-01 +3.809699999999999753e-01 +4.799499999999999877e-01 +3.945500000000000118e-01 +9.491900000000000337e-02 +4.252399999999999930e-02 +5.832800000000000207e-01 +1.914299999999999891e-01 +1.696600000000000052e-01 +5.615499999999999936e-01 +5.728299999999999503e-01 +3.459800000000000098e-01 +7.701299999999999812e-02 +2.718099999999999961e-01 +4.806499999999999662e-02 +3.619499999999999940e-01 +2.459399999999999920e-01 +1.663800000000000001e-01 +5.845100000000000295e-02 +3.210099999999999759e-02 +3.743799999999999906e-01 +4.028399999999999759e-01 +2.166299999999999892e-01 +1.517199999999999938e-01 +1.313799999999999968e-01 +1.535100000000000076e-01 +7.216900000000000537e-01 +3.141200000000000103e-01 +2.627700000000000036e-01 +4.679699999999999971e-01 +4.932400000000000118e-01 +2.096800000000000053e-01 +4.709499999999999797e-02 +4.031899999999999928e-01 +2.531999999999999806e-01 +6.702800000000000424e-02 +3.940299999999999914e-01 +2.888800000000000257e-01 +8.369999999999999662e-02 +1.862900000000000111e-01 +1.774799999999999989e-01 +4.726799999999999891e-01 +1.850299999999999861e-02 +1.257499999999999937e-02 +4.267900000000000027e-01 +5.222299999999999720e-01 +3.099799999999999778e-01 +9.634999999999999468e-03 +2.887000000000000122e-01 +1.203300000000000064e-01 +3.014899999999999802e-01 +2.090200000000000113e-01 +5.111700000000000133e-01 +5.047700000000000520e-01 +4.884800000000000253e-01 +5.258699999999999486e-01 +9.639999999999999958e-02 +9.927400000000000113e-02 +4.580199999999999827e-01 +4.420499999999999985e-01 +1.898600000000000010e-01 +1.364600000000000014e-02 +1.301799999999999902e-01 +1.519899999999999862e-01 +9.966500000000000359e-02 +3.809899999999999953e-01 +1.231600000000000056e-01 +2.051900000000000113e-01 +4.051799999999999846e-01 +1.293600000000000028e-01 +6.837200000000000222e-02 +2.786100000000000243e-01 +2.293000000000000038e-01 +4.970700000000000118e-01 +1.069100000000000050e-01 +5.847800000000000220e-02 +3.703899999999999970e-01 +1.668300000000000061e-01 +3.794299999999999895e-01 +2.310999999999999999e-01 +1.579899999999999916e-01 +1.133600000000000024e-01 +7.765999999999999570e-01 +7.453499999999999570e-01 +6.193499999999999700e-02 +1.677800000000000125e-01 +1.845799999999999941e-01 +1.813099999999999989e-01 +5.586499999999999799e-02 +1.980600000000000138e-01 +1.555700000000000138e-01 +2.530399999999999872e-01 +3.407100000000000128e-01 +3.777300000000000102e-01 +5.829499999999999682e-01 +1.268700000000000105e-01 +3.382700000000000151e-01 +3.410500000000000337e-02 +1.473500000000000087e-01 +3.096099999999999894e-02 +7.822900000000000686e-02 +3.708199999999999830e-01 +3.526699999999999835e-01 +1.165000000000000063e-01 +2.389099999999999904e-02 +3.249900000000000011e-01 +5.430800000000000072e-01 +2.457399999999999862e-01 +1.007399999999999962e-01 +6.588800000000000212e-01 +4.503199999999999981e-01 +2.369100000000000095e-01 +4.543300000000000116e-01 +1.233999999999999958e-01 +1.748999999999999860e-02 +5.211299999999999960e-02 +8.156900000000000261e-01 +2.563999999999999960e-02 +2.505200000000000135e-02 +1.457799999999999929e-01 +2.031200000000000019e-02 +2.373999999999999999e-01 +3.095899999999999763e-01 +1.485200000000000131e-01 +6.518200000000000383e-02 +2.884200000000000097e-01 +1.332200000000000051e-02 +3.889699999999999824e-01 +3.501099999999999768e-01 +3.693799999999999861e-01 +5.023400000000000087e-01 +1.376000000000000001e-01 +1.608199999999999907e-01 +2.184800000000000075e-01 +7.193800000000000194e-01 +9.022299999999999764e-02 +5.780699999999999728e-02 +7.921099999999999808e-01 +2.776600000000000179e-01 +8.222100000000000242e-02 +1.126199999999999979e-01 +2.249900000000000164e-02 +7.502199999999999980e-01 +3.046900000000000164e-01 +1.788599999999999912e-01 +3.055599999999999983e-01 +1.539699999999999958e-01 +2.971099999999999852e-01 +2.325000000000000122e-01 +6.506100000000000216e-01 +2.367499999999999882e-01 +1.312599999999999878e-01 +4.978099999999999747e-01 +2.199099999999999944e-01 +1.140800000000000008e-01 +2.423399999999999999e-01 +4.512700000000000045e-01 +4.206199999999999939e-01 +3.336799999999999766e-01 +2.721899999999999875e-01 +5.567699999999999871e-01 +3.091800000000000104e-01 +3.260300000000000004e-02 +4.742799999999999794e-01 +1.798399999999999999e-02 +4.911300000000000110e-01 +3.427700000000000191e-01 +2.435700000000000087e-01 +3.982600000000000029e-01 +2.591999999999999860e-02 +3.726599999999999913e-01 +9.430600000000000094e-02 +3.941000000000000059e-01 +1.582899999999999863e-01 +1.484000000000000041e-01 +1.737100000000000033e-01 +2.389999999999999902e-01 +2.173699999999999938e-02 +6.963099999999999845e-01 +6.047399999999999998e-02 +1.777199999999999993e-04 +1.571500000000000119e-01 +3.019399999999999862e-02 +2.196099999999999997e-01 +5.807400000000000340e-01 +4.467900000000000205e-01 +4.097500000000000031e-01 +2.587900000000000200e-01 +3.885700000000000265e-01 +2.870300000000000074e-01 +1.532900000000000096e-01 +6.249199999999999894e-02 +2.928000000000000047e-01 +9.992099999999999593e-02 +1.797499999999999931e-01 +9.419700000000000295e-02 +2.301900000000000057e-01 +3.164899999999999936e-01 +3.949199999999999933e-01 +3.607899999999999996e-01 +3.608899999999999886e-01 +1.730299999999999894e-01 +1.560699999999999865e-01 +2.454699999999999938e-01 +2.607999999999999763e-01 +2.902399999999999980e-01 +1.940399999999999903e-01 +3.456099999999999728e-01 +6.527100000000000124e-01 +4.778000000000000302e-02 +8.924899999999999500e-02 +4.849399999999999822e-01 +6.598999999999999831e-03 +1.224900000000000017e-01 +6.923799999999999955e-01 +3.327999999999999847e-01 +5.766799999999999704e-01 +3.930899999999999950e-01 +3.137699999999999934e-01 +4.865099999999999980e-01 +5.700100000000000305e-02 +2.802799999999999736e-01 +2.285800000000000054e-01 +4.110500000000000265e-01 +1.395099999999999951e-01 +9.470000000000000639e-02 +6.394699999999999829e-01 +8.585500000000000076e-02 +1.015000000000000069e-01 +1.427200000000000135e-01 +3.415000000000000258e-01 +1.637800000000000020e-02 +5.399500000000000410e-01 +4.220999999999999752e-01 +1.928199999999999914e-01 +7.917699999999999738e-02 +2.836699999999999985e-02 +1.038800000000000001e-01 +1.100000000000000006e-01 +1.475200000000000122e-01 +5.075199999999999712e-01 +6.061200000000000095e-03 +7.356699999999999351e-02 +3.625700000000000034e-01 +5.535299999999999665e-01 +4.183100000000000152e-01 +3.233300000000000063e-01 +1.221700000000000008e-01 +2.404900000000000093e-01 +3.159399999999999986e-01 +1.759799999999999975e-01 +1.674200000000000133e-01 +1.936799999999999911e-01 +2.394199999999999939e-01 +3.766599999999999809e-02 +2.976499999999999979e-02 +2.043300000000000116e-01 +9.826800000000000118e-03 +5.379699999999999482e-01 +3.794100000000000250e-01 +1.763599999999999890e-01 +3.853499999999999981e-02 +2.857299999999999840e-01 +4.359899999999999887e-01 +1.200299999999999978e-01 +3.829300000000000065e-02 +8.119799999999999934e-03 +2.758099999999999996e-01 +2.812100000000000155e-01 +1.707599999999999951e-01 +2.186700000000000033e-01 +6.840600000000000014e-01 +2.161299999999999888e-01 +3.154899999999999927e-01 +1.648999999999999910e-01 +3.194600000000000217e-01 +6.696199999999999375e-02 +2.317500000000000115e-02 +3.325199999999999823e-01 +2.233300000000000007e-01 +8.334500000000000242e-02 +6.587399999999999922e-01 +1.593599999999999878e-02 +1.392299999999999961e-02 +2.098200000000000065e-01 +6.840499999999999359e-02 +9.104199999999999793e-03 +8.461200000000000665e-02 +3.287700000000000344e-02 +2.161299999999999888e-01 +4.528800000000000048e-01 +6.589000000000000412e-02 +1.595799999999999996e-01 +7.235100000000000385e-03 +1.990000000000000102e-01 +5.007800000000000029e-01 +3.763599999999999723e-01 +7.449500000000000566e-02 +1.248800000000000049e-01 +7.827800000000000036e-02 +4.103100000000000080e-01 +2.603800000000000003e-01 +3.634700000000000153e-01 +4.825999999999999734e-02 +3.390500000000000180e-01 +2.733499999999999819e-01 +1.889699999999999991e-01 +9.269499999999999962e-02 +2.955099999999999949e-01 +1.442499999999999893e-01 +2.837999999999999967e-01 +5.253799999999999581e-01 +1.463099999999999956e-01 +2.624199999999999866e-01 +5.346100000000000296e-01 +3.198799999999999977e-01 +6.086300000000000043e-01 +4.833100000000000174e-01 +1.029199999999999976e-01 +1.292200000000000015e-01 +2.245000000000000051e-01 +2.111099999999999921e-01 +5.646500000000000130e-02 +5.525799999999999601e-01 +2.762399999999999925e-02 +2.010800000000000087e-01 +3.208400000000000141e-01 +9.983499999999999319e-02 +3.008799999999999808e-01 +3.192099999999999937e-01 +5.448699999999999655e-01 +3.768699999999999828e-03 +3.779600000000000182e-01 +7.646100000000000119e-02 +3.911699999999999899e-02 +7.245299999999999657e-03 +2.788100000000000023e-01 +3.008000000000000118e-01 +3.019900000000000004e-05 +5.479200000000000043e-02 +5.161999999999999922e-01 +3.613800000000000345e-02 +2.096200000000000008e-01 +4.541400000000000298e-02 +3.057599999999999763e-01 +3.626400000000000179e-01 +8.044999999999999929e-01 +2.395799999999999874e-01 +6.991400000000000392e-02 +4.308599999999999930e-02 +3.234699999999999798e-01 +2.644900000000000029e-02 +3.919000000000000261e-02 +1.860799999999999954e-01 +2.622499999999999831e-01 +9.873700000000000532e-02 +4.293299999999999894e-02 +7.406699999999999395e-02 +2.979200000000000181e-01 +5.249099999999999877e-01 +2.214899999999999924e-01 +2.260600000000000109e-01 +1.274000000000000132e-01 +5.205900000000000111e-02 +4.332199999999999940e-01 +5.655700000000000310e-02 +2.113200000000000078e-01 +2.177999999999999936e-01 +3.661800000000000211e-03 +1.450200000000000100e-01 +1.641400000000000081e-01 +6.134099999999999969e-02 +1.331299999999999983e-01 +1.843500000000000000e-02 +1.339899999999999945e-02 +1.820400000000000074e-01 +2.817799999999999749e-01 +8.568299999999999528e-02 +2.202300000000000091e-01 +5.596899999999999792e-02 +3.240999999999999992e-01 +7.690900000000000514e-02 +2.118099999999999844e-02 +1.518100000000000005e-02 +2.682200000000000140e-01 +6.060100000000000209e-02 +1.054800000000000043e-01 +7.686800000000000577e-02 +4.923500000000000099e-01 +3.493899999999999784e-01 +2.199500000000000066e-01 +2.341000000000000025e-01 +1.626900000000000013e-01 +6.696299999999999475e-01 +5.215999999999999526e-01 +5.282799999999999718e-01 +7.335700000000000554e-02 +2.987900000000000000e-01 +2.777299999999999769e-01 +1.934700000000000031e-01 +5.479200000000000043e-02 +4.478399999999999742e-02 +1.676100000000000159e-02 +7.074799999999999978e-01 +1.854899999999999882e-01 +8.000899999999999679e-02 +3.012500000000000178e-01 +2.213600000000000012e-01 +8.427700000000000191e-01 +3.433399999999999785e-01 +2.395400000000000029e-01 +4.065699999999999870e-01 +3.525400000000000200e-01 +1.783200000000000063e-01 +5.346300000000000496e-01 +5.967100000000000182e-02 +2.156599999999999906e-01 +4.687399999999999900e-01 +7.380799999999999583e-01 +1.579099999999999948e-02 +2.435499999999999887e-01 +2.533599999999999741e-01 +2.702600000000000002e-01 +1.870199999999999918e-01 +1.460299999999999931e-01 +2.419099999999999862e-01 +1.582500000000000018e-01 +6.730899999999999661e-01 +1.875999999999999890e-01 +2.305999999999999994e-01 +2.377799999999999914e-01 +1.065200000000000036e-01 +3.679199999999999832e-02 +4.487400000000000277e-01 +1.905600000000000072e-01 +4.688300000000000245e-01 +6.027500000000000219e-02 +2.860199999999999965e-01 +4.542700000000000071e-01 +2.862500000000000044e-01 +2.868499999999999869e-02 +1.744100000000000095e-01 +3.197900000000000187e-01 +1.383800000000000030e-01 +1.105000000000000079e-02 +3.806999999999999829e-01 +1.709400000000000086e-01 +4.481499999999999928e-01 +3.450300000000000034e-01 +1.977599999999999913e-01 +9.538199999999999457e-02 +1.193899999999999961e-01 +2.042200000000000126e-01 +6.041100000000000358e-01 +1.269200000000000050e-01 +8.604599999999999749e-02 +5.290300000000000002e-01 +4.491499999999999659e-02 +1.327200000000000046e-01 +2.640399999999999969e-01 +2.611499999999999932e-01 +4.652600000000000069e-01 +1.778700000000000003e-01 +4.977199999999999958e-01 +1.743999999999999995e-01 +2.888100000000000112e-01 +1.581200000000000105e-01 +6.036599999999999744e-01 +1.595999999999999919e-01 +5.157599999999999962e-01 +1.442199999999999871e-01 +3.157699999999999951e-01 +1.075900000000000051e-01 +1.575799999999999979e-01 +1.370999999999999996e-01 +7.189200000000000035e-01 +1.361799999999999955e-01 +8.848000000000000309e-02 +2.135400000000000076e-01 +3.142999999999999960e-02 +7.350499999999999812e-01 +6.332100000000000228e-02 +2.801899999999999946e-01 +3.166599999999999970e-01 +7.607500000000000373e-02 +7.566699999999999537e-01 +9.220200000000000617e-02 +2.090799999999999881e-01 +1.412599999999999967e-01 +6.527399999999999869e-02 +2.296999999999999875e-01 +3.148699999999999832e-01 +9.482899999999999663e-02 +6.723400000000000036e-03 +1.700200000000000045e-01 +4.083499999999999908e-01 +3.383399999999999741e-01 +1.870400000000000118e-01 +5.208199999999999497e-01 +7.828100000000000058e-01 +7.476500000000000368e-01 +3.403300000000000214e-01 +3.897399999999999753e-01 +2.391099999999999892e-01 +1.345099999999999907e-01 +8.022899999999999476e-02 +2.840900000000000092e-01 +1.260100000000000109e-01 +1.225699999999999984e-01 +2.969999999999999862e-01 +5.146300000000000319e-01 +3.161399999999999766e-01 +7.785100000000000353e-01 +3.780399999999999872e-01 +2.543599999999999750e-01 +4.898000000000000131e-01 +6.788699999999999735e-01 +6.339500000000000135e-01 +7.261400000000000077e-01 +1.155999999999999944e-01 +2.969399999999999817e-01 +2.999800000000000244e-01 +4.552499999999999880e-01 +8.014099999999999557e-01 +9.370000000000000551e-02 +5.406999999999999584e-01 +1.597399999999999931e-01 +1.837199999999999944e-01 +3.481199999999999850e-01 +1.423399999999999943e-01 +5.443800000000000028e-02 +3.589899999999999758e-01 +2.352599999999999830e-02 +2.204599999999999962e-02 +3.674899999999999833e-01 +4.456500000000000045e-02 +2.872299999999999853e-01 +2.177399999999999891e-01 +1.064400000000000068e-02 +2.952199999999999963e-02 +3.507100000000000217e-01 +4.371900000000000230e-01 +1.437000000000000083e-02 +1.703199999999999992e-01 +4.626199999999999757e-01 +1.761800000000000033e-01 +1.164400000000000018e-01 +5.219800000000000134e-02 +1.874000000000000110e-01 +3.901000000000000023e-01 +2.824099999999999944e-01 +2.830500000000000238e-01 +4.338899999999999979e-01 +1.251599999999999935e-01 +1.710299999999999876e-01 +4.175499999999999767e-01 +1.216900000000000065e-01 +9.648099999999999732e-02 +2.001800000000000194e-03 +4.734599999999999920e-01 +1.342500000000000082e-01 +4.680599999999999761e-01 +2.938299999999999801e-01 +5.397600000000000176e-01 +4.467700000000000005e-01 +6.313299999999999468e-02 +3.499200000000000088e-01 +1.719100000000000142e-02 +6.850499999999999645e-02 +1.589300000000000088e-02 +1.784799999999999998e-01 +1.233199999999999991e-01 +2.226899999999999991e-01 +2.679899999999999990e-02 +8.193400000000000682e-02 +1.234999999999999987e-01 +1.167499999999999961e-02 +2.112999999999999878e-01 +2.802700000000000191e-01 +1.414200000000000006e-02 +4.851800000000000002e-01 +6.535300000000000553e-01 +5.639600000000000168e-01 +2.728300000000000169e-01 +1.008300000000000030e-01 +4.820699999999999985e-01 +1.258700000000000097e-01 +1.053199999999999970e-01 +2.152999999999999914e-01 +3.763199999999999878e-01 +2.403500000000000081e-01 +1.519799999999999970e-02 +1.231399999999999995e-01 +4.944100000000000161e-01 +2.046900000000000108e-01 +2.152199999999999946e-01 +3.741399999999999726e-01 +1.615399999999999892e-01 +1.474900000000000100e-01 +2.725299999999999945e-01 +4.493400000000000172e-01 +4.264600000000000057e-01 +3.069100000000000161e-01 +7.251900000000000013e-01 +6.701599999999999779e-01 +3.090800000000000214e-01 +4.497300000000000186e-01 +7.404500000000000526e-01 +3.676999999999999713e-02 +1.465500000000000136e-01 +4.836400000000000143e-01 +3.809699999999999892e-02 +5.407700000000000007e-02 +5.012300000000000089e-02 +4.272599999999999731e-01 +3.016699999999999937e-01 +2.882499999999999993e-02 +3.182300000000000129e-01 +3.434199999999999753e-02 +2.835199999999999942e-01 +3.391399999999999970e-01 +8.848699999999999621e-02 +1.327800000000000091e-01 +2.660600000000000187e-01 +3.772300000000000098e-01 +2.595399999999999929e-01 +6.339999999999999802e-02 +3.760100000000000109e-01 +3.404700000000000087e-02 +6.345099999999999352e-02 +2.130900000000000016e-01 +8.633499999999999508e-02 +2.966599999999999793e-01 +1.584500000000000075e-01 +1.986100000000000088e-01 +2.180400000000000116e-01 +1.892800000000000038e-01 +3.860999999999999988e-01 +7.356599999999999598e-03 +1.177499999999999936e-01 +7.479700000000000237e-02 +1.777900000000000036e-01 +1.363300000000000067e-01 +3.321299999999999808e-01 +7.075800000000000145e-02 +9.778499999999999692e-02 +3.362299999999999733e-01 +1.975300000000000111e-01 +2.378200000000000036e-01 +3.617900000000000005e-01 +2.073699999999999988e-01 +4.076199999999999823e-01 +1.115400000000000003e-01 +3.351699999999999818e-02 +3.038299999999999890e-01 +1.579200000000000048e-02 +6.054799999999999766e-02 +2.716700000000000226e-01 +1.686499999999999944e-01 +7.975200000000000344e-02 +9.060099999999999751e-03 +1.010100000000000060e-02 +1.379400000000000071e-01 +3.692200000000000191e-04 +3.160700000000000315e-02 +1.125799999999999995e-01 +3.258499999999999730e-01 +1.166999999999999982e-01 +1.730500000000000094e-01 +4.830900000000000194e-01 +7.553400000000000392e-02 +1.821400000000000102e-02 +8.562599999999999378e-02 +2.782200000000000228e-01 +5.113899999999999696e-02 +8.971400000000000208e-02 +1.658600000000000074e-01 +5.935500000000000220e-01 +4.129499999999999837e-01 +3.601000000000000034e-03 +1.895499999999999963e-02 +1.609500000000000097e-01 +7.008499999999999730e-01 +3.368399999999999728e-01 +5.806200000000000076e-03 +4.550000000000000155e-01 +2.326199999999999934e-01 +1.051700000000000031e-02 +1.659400000000000042e-01 +1.175499999999999982e-02 +2.820199999999999929e-01 +7.008199999999999985e-01 +3.480099999999999860e-01 +1.460100000000000009e-01 +5.590099999999999930e-02 +1.754099999999999973e-03 +1.938199999999999923e-01 +2.565200000000000258e-01 +8.685299999999999965e-03 +7.666399999999999881e-01 +1.057300000000000045e-01 +4.693700000000000094e-01 +2.881199999999999872e-01 +3.060800000000000187e-01 +4.275800000000000156e-01 +1.198700000000000043e-01 +3.701900000000000329e-02 +1.683499999999999996e-01 +3.425500000000000211e-01 +1.309500000000000074e-02 +4.028200000000000114e-01 +2.126300000000000134e-01 +1.293400000000000105e-01 +2.281199999999999894e-01 +6.887699999999999378e-02 +4.422400000000000220e-01 +1.871500000000000108e-01 +1.829600000000000115e-01 +4.917799999999999949e-01 +9.228999999999999704e-02 +6.002600000000000158e-01 +3.916700000000000181e-01 +1.890000000000000013e-01 +7.311800000000000521e-01 +4.395899999999999808e-01 +3.214500000000000135e-01 +2.044499999999999929e-01 +8.086400000000000532e-02 +3.542199999999999793e-01 +5.575999999999999707e-02 +5.275699999999999834e-01 +2.068200000000000038e-01 +4.641799999999999815e-01 +1.890699999999999881e-01 +1.383500000000000008e-01 +2.171899999999999942e-01 +3.892199999999999827e-02 +8.573200000000000265e-02 +6.085899999999999643e-01 +2.053200000000000025e-01 +4.938199999999999812e-01 +2.027500000000000135e-02 +7.213399999999999812e-01 +3.901899999999999813e-01 +5.457199999999999829e-01 +2.664699999999999847e-01 +1.616900000000000004e-01 +1.553499999999999881e-01 +2.982900000000000135e-02 +1.670599999999999863e-02 +2.752899999999999792e-01 +2.063800000000000079e-01 +1.427999999999999929e-02 +2.723700000000000010e-01 +3.133600000000000274e-01 +1.645300000000000096e-01 +4.198100000000000165e-01 +3.892399999999999749e-01 +1.030599999999999988e-01 +2.989899999999999780e-01 +4.818100000000000160e-01 +1.016100000000000059e-01 +9.001199999999999479e-02 +6.148900000000000199e-02 +1.648900000000000088e-01 +2.546999999999999820e-01 +2.665299999999999891e-01 +4.275499999999999856e-01 +2.060500000000000109e-01 +2.893799999999999845e-02 +1.081700000000000023e-01 +9.878699999999999981e-02 +7.628000000000000336e-01 +4.143100000000000255e-02 +3.039999999999999925e-01 +1.203800000000000009e-02 +3.974400000000000155e-01 +1.182799999999999963e-01 +4.364599999999999730e-02 +2.219399999999999845e-02 +5.563900000000000512e-01 +4.401800000000000157e-01 +2.580700000000000216e-01 +6.454299999999999482e-01 +1.683199999999999974e-01 +6.035900000000000293e-03 +1.664200000000000124e-01 +1.355500000000000038e-01 +1.053399999999999996e-02 +3.609200000000000186e-01 +4.904200000000000226e-01 +5.987200000000000161e-02 +3.612600000000000255e-01 +3.093500000000000139e-01 +2.210699999999999887e-01 +9.173099999999999310e-02 +5.192499999999999893e-01 +5.123799999999999466e-01 +4.904300000000000326e-02 +2.751299999999999926e-02 +1.548899999999999999e-01 +2.172099999999999864e-01 +4.628900000000000237e-01 +3.313999999999999724e-01 +3.310400000000000009e-01 +6.631800000000000195e-02 +5.305299999999999461e-01 +1.146100000000000035e-01 +1.201600000000000029e-01 +1.925099999999999867e-01 +3.117300000000000071e-01 +1.178000000000000019e-01 +3.296700000000000186e-01 +2.347300000000000081e-02 +5.217899999999999761e-01 +1.051500000000000004e-02 +3.033299999999999885e-02 +8.154500000000000637e-02 +1.329299999999999926e-01 +3.642699999999999827e-01 +2.911799999999999944e-01 +2.793499999999999872e-01 +1.763000000000000123e-01 +5.183299999999999574e-01 +1.140300000000000064e-01 +6.126000000000000334e-01 +4.391100000000000003e-01 +2.264100000000000001e-01 +1.530499999999999916e-01 +4.982800000000000007e-01 +6.257599999999999829e-01 +3.840999999999999970e-01 +7.024500000000000188e-01 +7.982799999999999896e-01 +1.361100000000000088e-01 +2.732499999999999860e-02 +1.731600000000000084e-01 +3.213099999999999984e-02 +3.414099999999999913e-01 +2.621800000000000241e-01 +5.009600000000000164e-02 +5.460500000000000076e-02 +4.120699999999999918e-01 +1.608900000000000052e-01 +2.089799999999999991e-01 +1.460900000000000046e-02 +3.140700000000000158e-01 +1.771800000000000042e-01 +2.095899999999999985e-01 +4.290900000000000269e-01 +1.116000000000000048e-01 +5.197399999999999937e-02 +3.493399999999999839e-01 +1.554200000000000026e-01 +3.227400000000000269e-01 +1.353600000000000081e-01 +5.737799999999999567e-01 +3.902599999999999958e-01 +3.047000000000000264e-01 +1.578100000000000058e-01 +5.854700000000000459e-01 +1.312599999999999878e-01 +1.191299999999999998e-01 +3.276299999999999768e-01 +4.071799999999999864e-01 +4.738200000000000189e-01 +3.838500000000000245e-02 +2.377100000000000046e-01 +6.427399999999999780e-02 +5.205499999999999572e-01 +7.710299999999999931e-01 +3.957800000000000207e-01 +6.613700000000000134e-03 +2.178799999999999834e-02 +3.528100000000000125e-01 +3.084500000000000020e-01 +2.643599999999999839e-01 +3.872899999999999954e-02 +1.425000000000000051e-02 +2.052100000000000035e-01 +1.122699999999999948e-01 +1.932899999999999896e-01 +3.312599999999999989e-01 +3.028100000000000236e-01 +5.757700000000000040e-01 +2.554199999999999804e-01 +8.838300000000000323e-02 +1.159599999999999936e-01 +4.636799999999999811e-01 +1.203199999999999964e-01 +3.716599999999999904e-01 +3.783299999999999996e-01 +1.496099999999999930e-01 +2.730899999999999994e-01 +2.241100000000000037e-01 +7.088500000000000356e-02 +1.278299999999999992e-01 +7.107199999999999629e-02 +4.127500000000000058e-01 +1.356799999999999951e-01 +2.946299999999999961e-02 +1.956199999999999883e-01 +1.974499999999999866e-01 +1.379299999999999971e-01 +9.894799999999999429e-02 +7.771200000000000330e-02 +3.870600000000000152e-01 +9.736100000000000310e-02 +1.389600000000000002e-01 +1.699799999999999922e-01 +2.898899999999999810e-01 +4.094800000000000106e-01 +3.229900000000000132e-02 +4.187199999999999811e-01 +5.146899999999999809e-01 +1.548599999999999977e-01 +4.819100000000000050e-01 +5.102499999999999813e-01 +1.208199999999999968e-01 +4.703300000000000258e-01 +6.251099999999999712e-02 +3.753799999999999915e-01 +1.462700000000000111e-01 +3.686900000000000177e-01 +6.069399999999999795e-02 +3.126800000000000135e-01 +1.879699999999999982e-01 +1.768099999999999949e-01 +1.752099999999999838e-02 +3.349699999999999900e-02 +7.231300000000000228e-02 +1.931599999999999984e-01 +1.311599999999999988e-01 +3.387800000000000256e-01 +3.469099999999999961e-01 +2.879900000000000237e-01 +2.309599999999999986e-01 +5.762300000000000061e-02 +4.327099999999999835e-01 +1.698099999999999957e-02 +4.687200000000000255e-01 +4.206499999999999823e-02 +1.764300000000000035e-01 +2.079900000000000151e-02 +6.301499999999999879e-01 +1.767199999999999882e-01 +1.351400000000000101e-01 +7.385500000000000398e-02 +1.751500000000000001e-01 +1.765599999999999947e-01 +1.313699999999999868e-01 +2.566999999999999837e-01 +3.455300000000000038e-01 +2.363000000000000100e-01 +5.570899999999999741e-01 +5.991300000000000514e-01 +1.045600000000000002e-01 +4.817799999999999860e-02 +1.976199999999999901e-01 +4.088899999999999757e-01 +1.871300000000000047e-02 +3.310100000000000264e-01 +2.762399999999999856e-01 +4.895700000000000052e-01 +1.140400000000000025e-01 +6.243600000000000261e-01 +3.542299999999999893e-01 +1.522300000000000042e-01 +5.548299999999999760e-02 +1.233400000000000052e-01 +9.054299999999999571e-01 +2.647399999999999753e-01 +4.932000000000000273e-01 +6.445099999999999441e-02 +4.271500000000000297e-02 +4.126500000000000168e-01 +4.631700000000000261e-01 +2.697300000000000253e-01 +6.644900000000000251e-01 +2.793499999999999872e-01 +1.939299999999999913e-01 +2.979800000000000226e-01 +5.616499999999999826e-01 +8.086900000000000199e-01 +8.692999999999999339e-03 +2.511700000000000044e-01 +2.562800000000000078e-01 +5.021600000000000508e-01 +7.537199999999999456e-02 +3.355799999999999894e-01 +1.415700000000000014e-01 +1.308400000000000118e-01 +3.059799999999999742e-01 +1.461999999999999966e-01 +4.116100000000000314e-02 +8.740299999999999736e-01 +4.905100000000000016e-01 +7.619599999999999984e-02 +1.702600000000000077e-03 +8.838100000000000123e-02 +4.816900000000000071e-01 +2.344600000000000017e-01 +5.225600000000000245e-01 +9.290199999999999847e-02 +3.667199999999999800e-03 +3.421399999999999997e-01 +1.257999999999999952e-01 +1.768299999999999872e-01 +5.051700000000000079e-01 +6.759500000000000508e-01 +3.171399999999999914e-02 +2.478499999999999870e-01 +1.541500000000000092e-01 +2.036399999999999877e-01 +2.442999999999999894e-01 +4.022200000000000220e-01 +1.915699999999999903e-01 +1.470100000000000018e-01 +5.082699999999999996e-01 +8.001500000000000279e-02 +1.717400000000000038e-01 +2.345099999999999962e-01 +2.918700000000000183e-01 +6.163399999999999990e-01 +1.151100000000000040e-02 +3.481800000000000173e-02 +2.784300000000000108e-01 +6.288000000000000256e-01 +3.422600000000000087e-01 +3.526299999999999990e-01 +2.197099999999999886e-01 +7.489899999999999336e-02 +8.866999999999999882e-02 +3.167899999999999883e-02 +2.514100000000000223e-01 +1.125099999999999989e-01 +1.583299999999999985e-01 +2.398200000000000054e-01 +2.507499999999999729e-01 +8.915099999999999414e-02 +4.782800000000000246e-02 +8.710299999999999987e-02 +6.610199999999999410e-02 +3.797599999999999865e-01 +4.233399999999999941e-01 +1.085400000000000080e-02 +1.535799999999999943e-01 +5.887000000000000011e-01 +4.010099999999999776e-01 +3.653500000000000081e-01 +3.405900000000000039e-01 +2.088200000000000056e-01 +2.913899999999999824e-01 +5.560399999999999787e-01 +4.430899999999999769e-03 +5.212599999999999872e-02 +2.385099999999999998e-01 +3.396299999999999875e-01 +2.878100000000000103e-01 +2.520800000000000263e-01 +6.372200000000000086e-02 +1.233800000000000001e-02 +1.303499999999999936e-01 +7.805299999999999738e-02 +1.465299999999999936e-01 +1.110899999999999943e-01 +1.342599999999999905e-01 +1.242299999999999932e-01 +5.419899999999999718e-02 +9.134399999999999464e-02 +5.282599999999999518e-01 +1.128900000000000042e-01 +8.702299999999999480e-01 +4.746600000000000263e-01 +3.461099999999999732e-01 +8.394199999999999232e-03 +3.412200000000000233e-01 +8.883099999999999330e-02 +4.389199999999999768e-01 +8.197999999999999732e-02 +4.835999999999999743e-01 +6.008800000000000252e-02 +4.343199999999999839e-01 +2.895700000000000010e-02 +4.062700000000000200e-01 +4.667000000000000037e-01 +1.875000000000000000e-01 +3.756599999999999939e-01 +9.175400000000000222e-01 +1.779399999999999871e-01 +2.029199999999999893e-01 +9.717699999999999949e-02 +2.143100000000000005e-01 +7.006499999999999950e-01 +8.095900000000000318e-01 +1.290499999999999980e-01 +1.244200000000000028e-01 +2.074799999999999908e-02 +7.916299999999999448e-01 +7.544199999999999795e-01 +5.786400000000000432e-01 +2.304100000000000037e-01 +9.398000000000000104e-03 +1.261599999999999944e-01 +1.231300000000000033e-01 +5.663099999999999801e-01 +4.526499999999999968e-01 +2.522099999999999898e-01 +1.267600000000000116e-01 +7.130699999999999539e-02 +8.730999999999999872e-02 +5.191200000000000259e-01 +5.557000000000000134e-02 +4.716000000000000192e-01 +2.088699999999999932e-02 +2.492900000000000116e-01 +1.695699999999999985e-01 +1.796399999999999941e-01 +3.491799999999999904e-01 +1.618400000000000116e-01 +2.818899999999999739e-01 +2.647100000000000009e-01 +6.391299999999999759e-01 +4.694599999999999884e-01 +1.349799999999999889e-01 +3.882399999999999740e-02 +3.049399999999999888e-01 +3.158199999999999896e-03 +1.006299999999999972e-01 +5.641000000000000181e-02 +4.220499999999999807e-01 +1.861599999999999921e-01 +6.876499999999999835e-01 +5.599099999999999910e-02 +2.174300000000000122e-01 +8.665899999999999992e-02 +1.887000000000000066e-01 +4.380899999999999794e-01 +9.367200000000000526e-02 +2.227500000000000036e-01 +3.473399999999999821e-01 +2.343699999999999950e-01 +1.541299999999999962e-02 +1.041600000000000026e-01 +1.333999999999999908e-01 +1.703600000000000114e-01 +2.809200000000000030e-01 +1.350299999999999938e-02 +1.258199999999999874e-01 +3.951700000000000212e-01 +1.833700000000000052e-01 +1.811200000000000032e-01 +2.004400000000000071e-01 +5.656200000000000117e-01 +3.857099999999999973e-01 +3.561399999999999982e-02 +1.227099999999999996e-01 +4.093100000000000072e-01 +3.475500000000000256e-01 +3.081599999999999895e-01 +6.112199999999999855e-01 +6.387899999999999689e-01 +1.428000000000000103e-01 +5.918299999999999672e-01 +2.602700000000000014e-01 +7.969500000000000195e-02 +2.860000000000000042e-02 +1.832000000000000017e-01 +1.906499999999999861e-01 +2.750600000000000267e-01 +1.159000000000000030e-01 +4.739800000000000124e-01 +4.263299999999999867e-01 +1.194000000000000061e-01 +7.158299999999999663e-01 +3.783699999999999841e-01 +3.166299999999999670e-02 +3.104999999999999982e-01 +1.157900000000000040e-01 +2.073500000000000065e-01 +5.162299999999999667e-01 +3.539499999999999869e-01 +7.062500000000000444e-01 +2.640299999999999869e-01 +4.057700000000000196e-01 +4.606000000000000094e-01 +7.802400000000000446e-01 +2.769499999999999740e-01 +5.669600000000000195e-01 +2.571800000000000197e-01 +2.368500000000000050e-01 +1.822199999999999931e-01 +4.747000000000000108e-01 +2.105200000000000127e-01 +4.342099999999999849e-01 +5.316600000000000215e-01 +4.287199999999999900e-01 +1.790200000000000125e-01 +5.805399999999999450e-01 +4.099599999999999911e-01 +5.768199999999999716e-02 +2.480600000000000166e-02 +2.508000000000000160e-02 +7.842200000000000559e-02 +6.103699999999999681e-01 +4.602100000000000080e-01 +2.907600000000000184e-01 +1.224200000000000010e-01 +5.400199999999999445e-01 +4.598200000000000065e-01 +6.132599999999999857e-02 +3.102300000000000058e-01 +5.972300000000000386e-01 +3.514400000000000163e-02 +2.680299999999999905e-01 +2.891299999999999981e-01 +3.227200000000000207e-02 +4.647899999999999809e-01 +4.870499999999999829e-01 +1.116599999999999954e-01 +8.266600000000000337e-02 +3.324900000000000078e-01 +4.537300000000000222e-01 +2.002400000000000013e-01 +5.167000000000000481e-01 +2.524000000000000132e-01 +2.605100000000000124e-02 +5.873599999999999655e-02 +1.102400000000000047e-01 +1.038899999999999962e-01 +3.104199999999999737e-01 +1.054199999999999998e-01 +7.155400000000000649e-02 +1.471600000000000130e-01 +2.709599999999999786e-01 +4.884499999999999953e-02 +3.486000000000000210e-02 +4.216199999999999809e-02 +2.095499999999999863e-01 +3.204199999999999826e-01 +3.817499999999999782e-01 +2.168400000000000050e-01 +5.073800000000000532e-01 +8.197799999999999532e-02 +6.593299999999999716e-01 +1.852300000000000058e-01 +5.191299999999999804e-01 +4.204700000000000104e-02 +4.113700000000000134e-01 +2.478400000000000047e-01 +5.557100000000000234e-02 +1.681600000000000039e-01 +3.333499999999999658e-02 +3.383800000000000141e-01 +2.239899999999999947e-01 +7.316799999999999693e-02 +4.266500000000000153e-02 +1.487100000000000088e-01 +1.732599999999999973e-01 +4.222500000000000142e-01 +6.004299999999999915e-02 +4.364299999999999846e-01 +1.367200000000000082e-01 +3.804099999999999843e-02 +4.495000000000000107e-01 +3.679299999999999793e-01 +2.378000000000000114e-01 +3.002199999999999869e-01 +3.079399999999999915e-01 +1.111899999999999972e-01 +1.917500000000000038e-01 +3.281600000000000072e-01 +4.971999999999999753e-01 +3.385199999999999876e-01 +1.157099999999999934e-01 +5.753300000000000081e-02 +1.519800000000000040e-01 +5.411000000000000254e-01 +5.740300000000000402e-01 +1.393600000000000047e-02 +4.225999999999999895e-02 +5.500399999999999734e-01 +2.145600000000000007e-01 +7.228799999999999670e-01 +4.600500000000000145e-01 +2.304000000000000145e-02 +4.368900000000000006e-01 +1.729600000000000026e-01 +2.347200000000000120e-01 +7.233000000000000540e-01 +4.228300000000000114e-02 +5.714099999999999735e-02 +2.277700000000000002e-01 +5.563200000000000367e-01 +3.613600000000000145e-01 +2.711399999999999921e-01 +5.472900000000000161e-03 +5.575200000000000156e-01 +3.038400000000000128e-02 +4.314700000000000202e-01 +1.846299999999999886e-01 +1.629700000000000037e-01 +4.408599999999999741e-01 +2.862399999999999944e-01 +2.873399999999999843e-01 +2.363599999999999868e-01 +3.042699999999999849e-01 +6.321300000000000530e-02 +5.987999999999999989e-01 +2.617099999999999982e-01 +1.107199999999999990e-01 +1.268999999999999989e-02 +1.764499999999999957e-01 +2.737699999999999856e-02 +1.793299999999999894e-01 +1.565199999999999925e-02 +2.920700000000000032e-02 +6.060600000000000431e-01 +1.995699999999999974e-01 +4.132600000000000162e-01 +3.936200000000000254e-01 +7.207800000000000318e-02 +1.396799999999999951e-02 +4.301699999999999968e-02 +1.279000000000000137e-01 +6.163300000000000028e-02 +1.545700000000000025e-02 +1.747399999999999995e-02 +2.054900000000000060e-01 +8.375200000000000422e-01 +1.098399999999999932e-01 +8.656399999999999859e-03 +5.673899999999999499e-01 +7.681000000000000327e-02 +5.802100000000000313e-02 +1.662200000000000066e-01 +3.273000000000000215e-02 +1.142299999999999982e-01 +4.293000000000000149e-01 +3.359900000000000109e-01 +1.680399999999999949e-01 +7.294799999999999895e-02 +2.665000000000000008e-02 +4.632800000000000112e-02 +4.286200000000000010e-01 +1.723500000000000032e-01 +2.442399999999999953e-03 +3.242399999999999727e-01 +2.342899999999999983e-01 +2.770500000000000185e-01 +1.770200000000000107e-01 +7.514999999999999458e-01 +3.366000000000000103e-01 +2.745400000000000063e-01 +1.372700000000000031e-01 +2.410999999999999949e-02 +2.918199999999999961e-02 +2.170700000000000129e-01 +1.771699999999999942e-01 +1.059800000000000048e-01 +2.706799999999999762e-01 +1.402700000000000058e-01 +4.475999999999999979e-01 +3.479999999999999760e-01 +1.977500000000000091e-02 +1.007799999999999946e-01 +1.662700000000000029e-03 +4.013399999999999745e-01 +4.337300000000000044e-01 +5.531899999999999595e-01 +4.051600000000000340e-02 +6.876900000000000027e-03 +2.994399999999999840e-01 +5.888100000000000278e-03 +3.896399999999999864e-01 +2.743399999999999728e-01 +3.722300000000000053e-01 +3.459099999999999953e-01 +2.255999999999999950e-01 +1.714600000000000013e-01 +1.113999999999999990e-01 +3.799600000000000199e-01 +5.134600000000000275e-02 +1.264799999999999952e-02 +3.919699999999999851e-01 +9.332500000000000517e-02 +1.113600000000000007e-02 +2.063500000000000056e-01 +4.322500000000000231e-01 +2.470700000000000118e-01 +1.739900000000000058e-01 +5.744700000000000362e-01 +3.732599999999999807e-02 +8.185599999999999821e-02 +3.264900000000000024e-01 +1.278900000000000037e-01 +9.763800000000000257e-02 +2.536100000000000021e-01 +2.962400000000000033e-01 +6.489000000000000323e-01 +2.777999999999999914e-01 +6.207300000000000040e-01 +2.007500000000000118e-01 +3.633299999999999863e-01 +6.197399999999999611e-03 +1.165100000000000025e-01 +2.611899999999999986e-02 +6.682799999999999851e-01 +4.575400000000000300e-02 +6.212400000000000144e-01 +5.830800000000000427e-01 +3.130499999999999949e-02 +8.320800000000000418e-02 +2.393800000000000094e-02 +2.531700000000000061e-01 +2.006400000000000128e-01 +1.242999999999999938e-01 +8.239100000000000590e-02 +4.925299999999999817e-02 +7.005700000000000260e-01 +3.949699999999999878e-01 +3.449300000000000144e-01 +5.514499999999999957e-01 +5.379700000000000280e-03 +5.696199999999999571e-04 +6.254999999999999449e-01 +3.171100000000000030e-01 +5.482500000000000151e-01 +1.285300000000000054e-01 +3.811200000000000004e-02 +1.444699999999999873e-01 +3.288800000000000057e-01 +3.750299999999999745e-01 +1.451699999999999935e-01 +6.259099999999999664e-01 +1.652399999999999980e-01 +3.884600000000000275e-01 +1.433200000000000029e-01 +1.414999999999999869e-01 +4.830900000000000194e-01 +9.299599999999999533e-02 +5.699800000000000005e-02 +2.108899999999999941e-01 +2.779699999999999949e-01 +3.280600000000000183e-02 +2.922399999999999998e-01 +8.450599999999999778e-02 +4.899499999999999966e-01 +3.302499999999999880e-01 +2.308600000000000096e-01 +3.184000000000000163e-01 +3.523499999999999965e-01 +3.531800000000000217e-02 +1.180599999999999983e-01 +5.179000000000000270e-02 +4.261400000000000188e-01 +2.950699999999999990e-01 +4.102399999999999936e-01 +6.516700000000000270e-02 +1.770100000000000007e-01 +5.283499999999999863e-01 +1.868400000000000061e-01 +1.140800000000000008e-01 +1.654100000000000015e-02 +1.737499999999999878e-01 +1.302200000000000024e-01 +5.508199999999999902e-02 +2.749599999999999822e-01 +3.257399999999999740e-01 +7.808800000000000463e-02 +1.549300000000000122e-01 +5.834200000000000323e-03 +7.376599999999999824e-02 +6.454400000000000415e-02 +1.479499999999999982e-01 +1.900000000000000022e-01 +2.185499999999999943e-02 +1.438200000000000069e-02 +5.448299999999999671e-02 +3.397899999999999809e-01 +2.516599999999999948e-01 +5.876399999999999679e-02 +2.355800000000000116e-01 +1.077899999999999969e-01 +5.672599999999999865e-01 +6.871000000000000441e-01 +1.219100000000000045e-01 +3.473800000000000221e-01 +1.594399999999999984e-01 +3.518799999999999706e-02 +1.038199999999999974e-03 +1.316400000000000070e-01 +2.221700000000000064e-01 +3.010999999999999788e-01 +2.726500000000000035e-01 +2.148700000000000054e-01 +1.680200000000000027e-01 +4.519400000000000084e-01 +2.573599999999999777e-01 +1.811899999999999900e-01 +2.674500000000000210e-01 +1.723999999999999892e-04 +4.340999999999999859e-01 +6.178000000000000158e-02 +2.787100000000000133e-01 +4.787700000000000289e-02 +5.652500000000000302e-01 +1.938100000000000100e-01 +3.529300000000000215e-01 +6.377800000000000136e-02 +2.228900000000000048e-01 +1.247000000000000053e-01 +3.734100000000000197e-01 +1.378600000000000103e-01 +1.372700000000000031e-01 +1.729600000000000026e-01 +1.388099999999999890e-01 +3.210200000000000276e-01 +1.537100000000000133e-01 +3.508600000000000052e-01 +3.900299999999999878e-01 +2.156800000000000106e-01 +4.158200000000000229e-01 +4.193600000000000105e-01 +7.582200000000000051e-01 +3.985199999999999854e-01 +1.590499999999999969e-01 +1.726000000000000034e-01 +2.349400000000000099e-01 +3.337700000000000111e-01 +2.422300000000000009e-01 +3.887200000000000100e-01 +3.496500000000000042e-03 +3.446899999999999964e-01 +3.012400000000000078e-01 +2.525899999999999812e-01 +8.346399999999999653e-02 +4.463300000000000045e-01 +2.968199999999999832e-03 +2.356900000000000106e-01 +4.328699999999999770e-01 +2.465799999999999936e-02 +1.598799999999999943e-01 +1.093900000000000011e-01 +1.400000000000000133e-01 +6.891300000000000203e-02 +5.877599999999999492e-01 +2.933600000000000096e-01 +6.076799999999999979e-01 +7.107399999999999829e-02 +3.082699999999999885e-01 +1.074399999999999938e-01 +4.325399999999999801e-01 +7.910300000000000664e-02 +5.496000000000000191e-02 +2.419999999999999929e-01 +9.745500000000000690e-03 +3.751300000000000190e-01 +3.172699999999999965e-01 +3.196700000000000097e-01 +7.126299999999999857e-01 +4.236199999999999966e-01 +2.601100000000000079e-01 +1.657299999999999884e-01 +2.479000000000000092e-01 +4.646100000000000230e-01 +2.120200000000000036e-03 +3.760100000000000109e-01 +2.970800000000000107e-01 +3.092099999999999849e-01 +1.581899999999999973e-02 +3.168900000000000050e-01 +1.551099999999999979e-01 +1.663499999999999979e-01 +1.995500000000000052e-01 +1.620199999999999974e-01 +4.971799999999999527e-04 +5.402200000000000335e-01 +4.324100000000000166e-01 +4.529699999999999838e-01 +3.451300000000000201e-02 +1.296599999999999975e-01 +3.082300000000000040e-01 +7.603199999999999958e-01 +2.005899999999999905e-01 +1.535299999999999998e-01 +4.654599999999999849e-01 +1.907899999999999874e-01 +2.537599999999999856e-01 +2.299400000000000055e-03 +4.795800000000000063e-01 +1.108600000000000002e-01 +1.593999999999999931e-02 +5.184600000000000319e-01 +5.822399999999999798e-01 +2.339199999999999890e-01 +1.179899999999999977e-01 +1.600600000000000078e-01 +1.975200000000000011e-01 +5.650700000000000167e-02 +8.223000000000000309e-01 +2.891400000000000081e-01 +3.061200000000000032e-01 +2.827100000000000168e-01 +1.361300000000000010e-01 +2.086300000000000099e-01 +4.922100000000000086e-02 +6.087900000000000256e-03 +4.306599999999999873e-01 +3.026999999999999830e-02 +2.716600000000000126e-01 +2.599400000000000044e-01 +3.992999999999999883e-01 +2.121899999999999897e-01 +2.979800000000000157e-02 +5.128399999999999626e-01 +1.274099999999999955e-01 +2.141099999999999948e-01 +3.195899999999999852e-01 +6.525999999999999579e-01 +4.377099999999999880e-01 +1.285799999999999998e-01 +5.008399999999999519e-01 +3.087699999999999889e-01 +3.389900000000000135e-01 +1.563799999999999912e-01 +3.214699999999999780e-01 +9.313799999999999857e-02 +2.511099999999999999e-01 +3.492199999999999749e-01 +2.821199999999999819e-01 +4.627299999999999747e-01 +2.120799999999999907e-01 +2.323699999999999932e-01 +1.465200000000000113e-01 +2.527699999999999947e-01 +8.976900000000000157e-02 +1.958100000000000118e-01 +2.089100000000000124e-01 +3.251600000000000046e-01 +2.205300000000000038e-01 +3.065999999999999837e-01 +6.072699999999999765e-01 +7.014099999999999502e-02 +2.554600000000000204e-01 +3.538399999999999879e-01 +1.769000000000000017e-01 +7.084100000000000119e-02 +3.178300000000000014e-01 +2.217699999999999949e-01 +5.232099999999999529e-01 +7.532999999999999419e-02 +3.664700000000000180e-01 +5.540400000000000186e-02 +2.672800000000000176e-01 +4.122399999999999953e-01 +5.524499999999999966e-01 +5.335600000000000342e-01 +3.786999999999999811e-01 +6.290499999999999980e-01 +2.352399999999999977e-02 +3.357999999999999874e-01 +1.576200000000000101e-01 +3.783500000000000196e-01 +1.146699999999999942e-01 +8.280899999999999372e-02 +5.422699999999999699e-04 +2.346300000000000052e-01 +2.151800000000000102e-01 +2.090500000000000136e-01 +6.610800000000000010e-02 +9.835099999999999398e-03 +7.917699999999999738e-01 +5.044600000000000195e-01 +1.765399999999999955e-02 +2.721999999999999975e-01 +1.343900000000000095e-01 +1.007600000000000023e-01 +4.576800000000000312e-02 +3.261399999999999855e-01 +7.660400000000000542e-01 +1.820299999999999956e-03 +4.457400000000000251e-02 +2.035599999999999909e-01 +6.097799999999999887e-01 +1.862900000000000111e-01 +4.218299999999999828e-02 +3.825500000000000012e-01 +4.301699999999999968e-02 +2.961199999999999943e-01 +5.983899999999999775e-01 +6.932599999999999874e-01 +2.167600000000000082e-01 +2.814099999999999935e-01 +8.913499999999999548e-03 +1.418999999999999984e-01 +2.293499999999999983e-01 +4.637899999999999801e-01 +2.440100000000000047e-01 +5.565900000000000292e-01 +1.444699999999999873e-01 +1.697200000000000097e-01 +2.849099999999999966e-01 +3.957499999999999907e-02 +4.899300000000000183e-02 +4.297799999999999954e-01 +6.037700000000000289e-01 +6.610000000000000320e-01 +2.957899999999999974e-01 +1.723800000000000054e-01 +1.136200000000000057e-02 +2.322599999999999942e-01 +7.584100000000000286e-01 +1.251099999999999990e-01 +5.561300000000000132e-01 +1.540799999999999947e-01 +1.873499999999999888e-01 +4.058599999999999985e-01 +1.803200000000000081e-01 +6.044800000000000173e-02 +4.417499999999999899e-02 +2.955900000000000194e-01 +2.610799999999999788e-01 +5.594299999999999828e-01 +1.633000000000000007e-01 +5.762300000000000061e-02 +3.043699999999999878e-02 +1.155400000000000038e-01 +1.433899999999999897e-01 +2.399300000000000044e-01 +4.457300000000000151e-01 +3.149000000000000132e-01 +4.122900000000000176e-02 +1.828599999999999948e-01 +4.503800000000000026e-01 +1.191799999999999943e-01 +8.201300000000000257e-01 +7.574999999999999789e-02 +1.455100000000000005e-01 +1.810900000000000010e-01 +2.345299999999999885e-01 +4.983000000000000207e-01 +2.686899999999999844e-01 +2.792200000000000237e-01 +4.887900000000000023e-01 +2.241700000000000081e-01 +4.661699999999999733e-01 +3.205200000000000271e-01 +2.831899999999999973e-01 +2.074499999999999955e-01 +3.063299999999999912e-01 +4.062500000000000000e-01 +4.793700000000000183e-01 +6.050200000000000022e-02 +2.536399999999999853e-03 +4.760699999999999932e-01 +1.178000000000000019e-01 +1.012500000000000067e-01 +2.185699999999999865e-01 +1.661100000000000076e-01 +4.612700000000000133e-02 +6.948100000000000387e-01 +3.390599999999999725e-01 +3.374400000000000177e-01 +2.226299999999999946e-01 +2.904900000000000260e-01 +4.388000000000000234e-01 +3.432200000000000251e-01 +1.122100000000000042e-01 +1.260600000000000054e-01 +1.339100000000000013e-01 +1.200700000000000031e-02 +2.946500000000000230e-01 +6.206799999999999817e-02 +1.569800000000000084e-01 +2.865099999999999869e-01 +2.305999999999999994e-01 +2.406699999999999950e-01 +2.825799999999999979e-01 +2.943700000000000205e-01 +1.322200000000000042e-01 +4.941999999999999865e-02 +3.573599999999999693e-02 +5.303399999999999781e-02 +2.477100000000000135e-01 +2.812699999999999922e-02 +1.517000000000000015e-01 +3.350699999999999790e-01 +1.970300000000000107e-01 +4.856800000000000006e-02 +3.684399999999999897e-01 +1.829600000000000115e-01 +5.935599999999999765e-01 +3.358999999999999764e-01 +3.303900000000000170e-01 +2.514299999999999868e-01 +4.640099999999999780e-01 +9.541499999999999981e-02 +1.041699999999999918e-02 +6.243999999999999551e-01 +1.154599999999999932e-01 +4.515199999999999769e-01 +1.092599999999999960e-01 +3.080100000000000060e-01 +1.296200000000000130e-01 +1.070399999999999963e-01 +1.386799999999999977e-01 +1.901599999999999957e-01 +5.140200000000000324e-01 +7.220100000000000129e-02 +2.265900000000000136e-01 +7.282800000000000384e-01 +1.848299999999999943e-01 +6.155699999999999505e-01 +4.368699999999999806e-01 +5.666400000000000325e-01 +1.710100000000000162e-02 +3.111099999999999977e-01 +4.882800000000000334e-02 +3.537199999999999789e-01 +1.935399999999999898e-01 +3.665100000000000025e-01 +2.448799999999999935e-02 +2.817899999999999849e-01 +8.498500000000000498e-02 +1.661499999999999921e-01 +6.543599999999999417e-02 +2.000599999999999878e-01 +6.030100000000000460e-01 +4.882100000000000328e-02 +5.191900000000000404e-01 +5.164300000000000140e-02 +6.673800000000000565e-02 +1.746399999999999897e-01 +1.051499999999999935e-01 +9.022399999999999864e-02 +2.729599999999999804e-01 +1.392900000000000041e-02 +1.739999999999999880e-02 +1.835499999999999909e-01 +5.647799999999999487e-01 +1.165299999999999947e-01 +4.041399999999999992e-01 +9.297199999999999909e-02 +6.389099999999999779e-01 +5.378499999999999948e-02 +1.319599999999999940e-01 +2.883399999999999852e-01 +1.718500000000000028e-01 +3.707300000000000179e-02 +5.460199999999999498e-01 +2.842999999999999972e-01 +1.092299999999999938e-01 +2.475900000000000045e-01 +9.871000000000000607e-02 +4.441799999999999915e-02 +2.501300000000000190e-01 +7.509599999999999609e-01 +6.547100000000000142e-01 +2.012500000000000122e-01 +2.161899999999999933e-01 +1.871299999999999908e-01 +1.907800000000000051e-01 +3.093500000000000139e-01 +2.553900000000000059e-01 +9.673700000000000354e-02 +1.164199999999999957e-01 +3.293099999999999916e-01 +6.030400000000000343e-02 +6.106400000000000022e-02 +7.931599999999999762e-02 +3.535200000000000009e-01 +3.748299999999999965e-01 +6.427399999999999780e-01 +1.526899999999999924e-01 +2.817500000000000004e-01 +1.177300000000000013e-01 +3.799799999999999844e-01 +4.133499999999999952e-01 +4.184700000000000086e-01 +4.619099999999999873e-01 +2.257099999999999940e-01 +2.274500000000000133e-01 +5.494499999999999940e-01 +3.818199999999999927e-01 +3.863899999999999973e-02 +5.053200000000000053e-02 +2.940400000000000236e-01 +2.261499999999999899e-01 +2.719400000000000150e-01 +9.148000000000000576e-02 +2.735099999999999754e-01 +2.498700000000000088e-01 +6.208500000000000130e-01 +3.129200000000000037e-02 +3.783199999999999896e-01 +2.849400000000000266e-01 +4.364799999999999791e-01 +1.052600000000000063e-01 +2.579299999999999995e-02 +1.254599999999999882e-01 +3.474400000000000266e-01 +1.173899999999999944e-01 +4.991900000000000226e-01 +2.462999999999999912e-01 +3.352999999999999869e-01 +3.371999999999999997e-01 +7.484699999999999687e-02 +4.029499999999999749e-01 +1.871500000000000108e-01 +1.094600000000000017e-01 +9.448199999999999654e-02 +2.322700000000000112e-02 +2.966400000000000148e-01 +4.154300000000000215e-01 +8.738100000000000034e-02 +1.731699999999999906e-01 +3.139100000000000223e-01 +5.951999999999999513e-01 +6.869199999999999751e-01 +3.451600000000000223e-01 +1.517699999999999882e-01 +2.292299999999999893e-01 +2.520000000000000018e-01 +1.195699999999999957e-01 +4.794800000000000173e-01 +5.016100000000000003e-01 +6.614100000000000361e-03 +9.269399999999999862e-02 +2.007700000000000040e-01 +2.812500000000000000e-01 +1.517799999999999983e-01 +1.029199999999999976e-01 +7.041000000000000036e-02 +3.086499999999999799e-01 +3.047300000000000009e-01 +3.423700000000000077e-01 +1.367800000000000127e-01 +1.197600000000000053e-01 +1.998199999999999976e-01 +3.438000000000000084e-02 +1.105600000000000055e-01 +6.231400000000000272e-01 +2.962600000000000233e-01 +1.903799999999999937e-02 +4.217600000000000238e-01 +4.684300000000000269e-02 +5.035799999999999998e-02 +2.190000000000000002e-01 +6.112800000000000178e-02 +5.354799999999999838e-02 +5.781300000000000328e-01 +1.234600000000000003e-01 +2.507199999999999984e-01 +1.056900000000000062e-01 +2.225399999999999878e-01 +3.748500000000000096e-03 +4.402999999999999796e-03 +1.173000000000000015e-01 +2.414000000000000035e-01 +1.458899999999999954e-02 +4.353400000000000047e-01 +8.843900000000000372e-02 +2.535700000000000176e-01 +2.029299999999999854e-02 +7.538899999999999491e-01 +1.153399999999999981e-01 +7.046999999999999931e-01 +7.195700000000000429e-01 +7.131800000000000639e-02 +3.246399999999999841e-01 +9.920700000000000351e-02 +4.431700000000000084e-01 +7.265800000000000036e-01 +5.116100000000000161e-03 +9.316299999999999581e-02 +3.257499999999999979e-02 +4.283500000000000085e-01 +1.048999999999999932e-01 +4.345000000000000251e-02 +1.498899999999999955e-01 +7.288999999999999646e-02 +7.951900000000000635e-02 +8.772299999999999542e-02 +8.571499999999999952e-02 +3.146399999999999891e-02 +5.962399999999999645e-03 +8.059099999999999597e-02 +4.569900000000000073e-01 +5.971100000000000296e-01 +4.668599999999999972e-01 +1.350899999999999879e-01 +5.028200000000000031e-02 +1.007500000000000062e-01 +9.166799999999999254e-03 +1.550999999999999879e-01 +1.484999999999999931e-01 +1.594899999999999929e-01 +3.805799999999999739e-01 +8.710400000000000087e-02 +4.914600000000000218e-02 +4.049500000000000322e-02 +3.146999999999999797e-01 +3.048199999999999799e-01 +2.376000000000000056e-01 +1.974700000000000066e-01 +1.031500000000000056e-01 +3.893900000000000139e-02 +1.005700000000000066e-01 +1.171200000000000019e-01 +2.875800000000000023e-01 +5.072699999999999987e-01 +5.611599999999999921e-02 +4.655000000000000249e-01 +3.284799999999999942e-01 +4.139499999999999846e-01 +5.175600000000000200e-01 +3.988300000000000178e-01 +5.898999999999999799e-01 +5.054000000000000159e-02 +2.421500000000000041e-01 +3.725100000000000078e-01 +5.807999999999999968e-02 +2.655799999999999828e-01 +9.802099999999999702e-02 +3.223999999999999783e-02 +2.494099999999999928e-01 +1.159400000000000014e-01 +2.495400000000000118e-01 +2.367999999999999966e-02 +3.706800000000000095e-01 +4.395200000000000218e-01 +3.391700000000000270e-02 +6.013700000000000295e-02 +4.538500000000000173e-02 +2.388200000000000045e-01 +8.806500000000000439e-02 +1.653299999999999909e-02 +2.623999999999999944e-02 +3.151599999999999957e-01 +1.827999999999999903e-01 +1.270799999999999985e-01 +7.014600000000000002e-02 +1.536800000000000110e-01 +5.561399999999999677e-01 +1.568900000000000017e-01 +1.480599999999999972e-01 +3.913599999999999857e-01 +1.265600000000000058e-01 +1.593900000000000039e-01 +1.654299999999999937e-01 +2.123099999999999987e-01 +8.797599999999999865e-01 +1.423800000000000066e-01 +4.377400000000000180e-01 +1.123200000000000032e-01 +2.938000000000000056e-01 +1.938300000000000023e-01 +2.372300000000000103e-02 +2.295000000000000095e-01 +1.356600000000000028e-01 +2.733099999999999974e-01 +2.686200000000000254e-01 +7.777499999999999691e-02 +3.863000000000000114e-03 +1.058000000000000052e-01 +5.254299999999999526e-01 +8.833499999999999686e-02 +6.115599999999999925e-01 +5.978400000000000380e-01 +5.426499999999999657e-01 +3.207600000000000035e-02 +9.987899999999999556e-02 +4.392099999999999893e-01 +1.394900000000000029e-01 +5.212900000000000172e-02 +3.251800000000000246e-01 +5.545499999999999735e-02 +6.169400000000000439e-01 +7.005799999999999528e-02 +5.799999999999999600e-01 +1.325800000000000034e-01 +4.740900000000000114e-01 +1.523500000000000132e-01 +2.682899999999999868e-02 +2.996599999999999819e-01 +4.843200000000000283e-02 +3.158799999999999941e-01 +4.136600000000000277e-01 +2.674000000000000266e-01 +9.159899999999999987e-02 +1.316700000000000093e-01 +4.046399999999999997e-01 +4.336599999999999899e-01 +2.168799999999999895e-01 +3.536999999999999866e-02 +3.626300000000000079e-01 +5.497699999999999809e-02 +8.628099999999999659e-02 +2.790199999999999902e-01 +7.275900000000000423e-02 +6.174500000000000301e-03 +3.483299999999999730e-01 +1.213999999999999975e-02 +3.239199999999999857e-01 +1.487900000000000056e-01 +1.775700000000000056e-01 +1.124300000000000022e-01 +1.310999999999999943e-01 +3.315500000000000114e-01 +3.113600000000000256e-01 +4.446200000000000152e-01 +2.164200000000000013e-01 +3.803500000000000214e-01 +4.381999999999999784e-01 +1.859899999999999887e-01 +3.371000000000000107e-01 +3.181899999999999729e-01 +5.370300000000000074e-02 +1.729600000000000026e-01 +1.551899999999999981e-02 +5.269199999999999925e-03 +3.542399999999999993e-01 +2.204500000000000071e-01 +2.620000000000000107e-02 +2.840399999999999869e-02 +5.900300000000000544e-01 +1.648600000000000065e-01 +1.804000000000000048e-01 +9.513699999999999934e-02 +7.186799999999999855e-01 +1.039599999999999969e-01 +6.230399999999999827e-02 +2.177799999999999875e-02 +1.034500000000000003e-02 +6.670199999999999740e-02 +6.274699999999999722e-02 +5.628499999999999615e-01 +1.329200000000000104e-01 +2.640600000000000169e-01 +1.700299999999999867e-01 +8.458599999999999453e-02 +4.600799999999999890e-01 +2.138599999999999945e-01 +1.656799999999999939e-01 +2.824699999999999989e-01 +2.672999999999999821e-01 +2.096099999999999908e-01 +1.605499999999999983e-01 +1.386799999999999977e-01 +4.165400000000000214e-01 +2.949999999999999845e-01 +4.594599999999999795e-01 +2.017199999999999809e-03 +1.568499999999999894e-01 +2.926500000000000212e-01 +3.862600000000000061e-02 +4.263200000000000323e-02 +1.098500000000000032e-01 +8.037499999999999506e-03 +5.409400000000000319e-02 +8.507000000000000672e-02 +2.596499999999999919e-01 +4.788100000000000134e-01 +1.699600000000000000e-01 +1.727400000000000047e-01 +2.047100000000000031e-01 +5.218600000000000322e-02 +2.741700000000000248e-01 +1.069699999999999956e-01 +4.041000000000000147e-01 +2.970800000000000107e-01 +7.269099999999999910e-04 +2.963399999999999923e-01 +8.020199999999999552e-02 +5.824899999999999523e-01 +1.949099999999999999e-01 +1.692899999999999960e-01 +4.142500000000000071e-01 +9.562900000000000567e-02 +9.648099999999999732e-02 +4.842099999999999738e-01 +3.846399999999999819e-02 +4.218000000000000083e-01 +3.706400000000000250e-01 +3.662800000000000084e-02 +3.919599999999999751e-01 +4.821199999999999930e-01 +2.880699999999999927e-02 +1.006599999999999995e-01 +6.918699999999999850e-01 +9.110300000000000342e-02 +5.149200000000000443e-01 +9.264699999999999325e-02 +4.017100000000000115e-01 +6.045899999999999608e-01 +1.792799999999999949e-01 +1.992599999999999927e-01 +1.535199999999999898e-01 +2.433899999999999952e-01 +2.350899999999999934e-01 +1.591100000000000014e-01 +3.993099999999999983e-01 +3.522199999999999775e-01 +1.007500000000000062e-01 +2.436800000000000077e-01 +4.720400000000000151e-01 +2.372299999999999964e-01 +2.777100000000000124e-01 +2.535800000000000276e-01 +8.872399999999999731e-02 +1.277500000000000024e-01 +1.886400000000000021e-01 +1.971700000000000119e-01 +3.095800000000000218e-01 +2.330399999999999833e-02 +3.692400000000000126e-01 +1.721699999999999897e-01 +1.548899999999999999e-01 +1.146500000000000019e-01 +6.056000000000000272e-01 +5.527400000000000022e-03 +2.893899999999999945e-02 +1.257800000000000029e-01 +4.699400000000000244e-01 +3.938900000000000179e-01 +2.682300000000000240e-01 +4.884899999999999798e-01 +3.010499999999999843e-01 +4.055900000000000061e-01 +4.559200000000000058e-02 +3.072400000000000131e-02 +1.450799999999999867e-01 +1.423899999999999888e-01 +7.301199999999999357e-02 +2.989599999999999896e-02 +1.026100000000000068e-01 +1.077000000000000041e-01 +1.380200000000000038e-01 +4.467499999999999805e-01 +6.044899999999999718e-01 +5.199800000000000082e-03 +8.195000000000000062e-01 +2.702700000000000102e-01 +1.654899999999999982e-01 +1.550400000000000111e-01 +5.690200000000000119e-02 +3.921700000000000186e-01 +1.765799999999999870e-01 +4.625600000000000267e-01 +1.557000000000000051e-02 +7.629700000000000371e-02 +3.562100000000000266e-01 +3.516500000000000181e-02 +3.242600000000000343e-02 +1.100799999999999973e-01 +5.989900000000000224e-01 +1.199999999999999956e-01 +1.196600000000000025e-01 +2.485999999999999877e-01 +2.776599999999999902e-02 +1.506500000000000061e-01 +7.838800000000000212e-01 +9.849099999999999522e-02 +4.549699999999999855e-01 +3.244799999999999907e-01 +2.979600000000000026e-01 +4.431300000000000239e-01 +1.077300000000000063e-01 +2.944100000000000050e-01 +8.572799999999999865e-02 +2.074900000000000008e-02 +3.193900000000000072e-01 +6.015999999999999820e-02 +3.953999999999999737e-01 +5.344999999999999751e-01 +1.631400000000000072e-01 +2.019299999999999984e-01 +6.275500000000000522e-02 +7.886400000000000077e-01 +5.510500000000000120e-02 +2.925400000000000222e-01 +4.421900000000000136e-02 +1.799900000000000111e-01 +3.918699999999999961e-01 +9.776100000000000068e-02 +5.060400000000000453e-01 +2.882700000000000262e-01 +8.296699999999999908e-02 +6.279799999999999827e-01 +1.636799999999999922e-01 +3.128799999999999915e-01 +3.667399999999999827e-02 +6.095500000000000362e-01 +2.537199999999999872e-03 +3.473299999999999998e-02 +9.066899999999999959e-02 +1.691900000000000071e-01 +2.867999999999999994e-01 +5.519600000000000062e-01 +6.139400000000000412e-01 +1.790900000000000131e-02 +4.788100000000000134e-01 +8.585399999999999976e-02 +5.019700000000000273e-01 +6.911000000000000476e-01 +6.276399999999999757e-01 +5.119800000000000045e-02 +2.470999999999999933e-02 +6.607600000000000140e-01 +4.458799999999999986e-01 +3.117099999999999871e-01 +1.052000000000000018e-01 +7.031600000000000072e-01 +3.726200000000000068e-01 +1.670699999999999963e-01 +2.208199999999999885e-01 +2.000200000000000033e-01 +2.186299999999999910e-01 +2.424800000000000011e-01 +5.017899999999999583e-01 +2.556200000000000139e-01 +1.255900000000000072e-01 +1.710400000000000115e-02 +4.666599999999999915e-02 +2.576800000000000201e-01 +2.301400000000000112e-01 +6.623500000000000221e-02 +3.830700000000000216e-01 +3.133600000000000274e-01 +2.921799999999999953e-01 +5.845100000000000295e-02 +2.021999999999999909e-01 +3.771900000000000253e-01 +1.124700000000000005e-01 +4.265800000000000147e-01 +3.782300000000000245e-02 +5.081099999999999506e-01 +1.852100000000000135e-01 +2.016999999999999904e-01 +1.880500000000000010e-03 +6.840899999999999759e-01 +3.618199999999999750e-01 +5.931100000000000261e-01 +1.214699999999999946e-01 +5.157300000000000217e-01 +2.107900000000000051e-01 +2.654400000000000093e-01 +3.123000000000000220e-01 +1.442400000000000071e-01 +7.719899999999999540e-01 +2.301199999999999912e-01 +1.927800000000000069e-01 +3.158299999999999996e-02 +2.428800000000000125e-01 +4.901300000000000101e-02 +3.266999999999999904e-01 +1.351199999999999971e-02 +1.510599999999999998e-01 +3.329700000000000021e-02 +5.616499999999999826e-01 +4.432300000000000129e-01 +2.669400000000000106e-01 +5.987799999999999789e-01 +2.105899999999999994e-01 +2.693400000000000238e-01 +2.197400000000000048e-02 +3.175899999999999834e-01 +4.029900000000000149e-01 +2.908499999999999974e-01 +5.459499999999999770e-02 +2.933600000000000096e-01 +5.854300000000000059e-01 +8.651200000000000556e-02 +2.191500000000000045e-02 +5.389699999999999491e-01 +2.837999999999999967e-01 +7.154500000000000304e-01 +1.238299999999999956e-01 +1.588900000000000035e-02 +1.873900000000000010e-01 +1.817499999999999949e-01 +1.794699999999999906e-01 +4.626399999999999957e-02 +2.958700000000000219e-01 +2.780199999999999894e-01 +2.586899999999999963e-02 +4.805599999999999872e-01 +6.914799999999999836e-01 +2.491900000000000018e-02 +1.698999999999999955e-01 +1.974299999999999944e-01 +4.364100000000000201e-01 +8.478399999999999825e-02 +4.382699999999999790e-02 +4.968199999999999839e-01 +2.620899999999999896e-01 +2.634799999999999920e-01 +6.939199999999999813e-01 +2.738300000000000178e-01 +7.504299999999999859e-02 +6.230999999999999872e-01 +9.706800000000000150e-02 +2.947999999999999926e-02 +1.965899999999999870e-01 +2.786399999999999988e-01 +4.216699999999999893e-01 +1.760400000000000020e-01 +2.568099999999999827e-01 +2.707999999999999852e-01 +4.085599999999999787e-01 +7.978200000000000569e-02 +1.944399999999999948e-02 +3.932100000000000040e-01 +5.204299999999999482e-01 +7.281300000000000550e-01 +2.169000000000000095e-01 +2.354400000000000104e-01 +7.503200000000000147e-02 +4.608700000000000019e-01 +1.294899999999999940e-01 +1.503700000000000037e-01 +1.882699999999999999e-02 +1.565199999999999925e-02 +9.263599999999999612e-02 +5.460600000000000176e-02 +4.386399999999999744e-01 +4.497600000000000209e-02 +2.278999999999999915e-01 +1.354700000000000071e-01 +7.822999999999999399e-02 +2.225199999999999956e-01 +4.691400000000000015e-01 +1.218400000000000039e-01 +4.047899999999999832e-01 +3.864400000000000057e-01 +2.025700000000000001e-01 +4.581199999999999856e-02 +3.928499999999999770e-01 +2.429300000000000070e-01 +1.703000000000000069e-01 +3.059499999999999997e-01 +3.216899999999999760e-01 +2.077299999999999980e-01 +5.626499999999999835e-01 +6.128399999999999820e-02 +2.085899999999999976e-01 +3.740999999999999881e-01 +3.291200000000000236e-01 +1.369700000000000084e-01 +3.265400000000000247e-02 +6.126399999999999624e-01 +2.867299999999999849e-01 +2.242899999999999894e-01 +2.765099999999999780e-01 +2.870299999999999935e-02 +4.023800000000000154e-01 +1.498800000000000132e-01 +2.715799999999999881e-01 +2.916000000000000258e-01 +2.053599999999999870e-01 +4.570199999999999957e-02 +5.178300000000000125e-01 +3.573100000000000165e-01 +6.019900000000000251e-02 +5.140500000000000069e-01 +3.427299999999999791e-01 +5.656999999999999806e-01 +2.359900000000000053e-01 +4.187600000000000211e-01 +3.335400000000000170e-02 +4.902799999999999936e-01 +8.533499999999999419e-02 +7.396300000000000097e-02 +1.819099999999999884e-01 +2.876699999999999813e-01 +9.320699999999999819e-02 +5.063900000000000068e-01 +1.097000000000000058e-01 +3.420500000000000207e-01 +3.816399999999999793e-01 +5.547100000000000364e-01 +2.851899999999999991e-01 +2.949999999999999845e-01 +1.130599999999999938e-01 +5.678800000000000514e-01 +1.216099999999999959e-01 +3.786100000000000021e-01 +1.208700000000000052e-01 +6.989099999999999480e-02 +2.447799999999999976e-01 +2.403099999999999958e-01 +4.998000000000000220e-01 +5.475499999999999812e-01 +1.205299999999999983e-01 +5.224800000000000277e-02 +4.651600000000000179e-01 +1.286299999999999943e-01 +6.550799999999999956e-01 +6.191900000000000182e-01 +5.597699999999999898e-01 +1.488400000000000001e-01 +3.292800000000000171e-01 +3.805999999999999939e-01 +1.290399999999999880e-01 +7.799399999999999666e-01 +1.279399999999999982e-02 +1.342800000000000105e-01 +5.473200000000000287e-02 +2.415899999999999992e-01 +6.591500000000000137e-02 +7.302799999999999569e-02 +5.633000000000000229e-01 +1.927000000000000102e-01 +1.883900000000000019e-01 +6.752700000000000369e-01 +7.045200000000000073e-02 +1.250499999999999945e-01 +4.452200000000000046e-01 +3.506299999999999972e-01 +2.563400000000000054e-02 +3.534300000000000219e-01 +1.890699999999999881e-01 +2.314099999999999838e-02 +5.920299999999999452e-01 +5.674000000000000155e-01 +1.052000000000000018e-01 +1.452400000000000080e-01 +2.085599999999999954e-01 +4.168100000000000138e-01 +3.884100000000000052e-02 +1.907500000000000029e-01 +7.455399999999999805e-01 +2.184500000000000053e-01 +6.035199999999999454e-01 +1.170500000000000013e-02 +1.052000000000000018e-01 +5.015300000000000313e-01 +2.262800000000000089e-01 +4.525399999999999978e-01 +6.440700000000000314e-01 +5.611800000000000122e-02 +3.451600000000000223e-01 +2.631299999999999958e-02 +1.211699999999999999e-01 +2.275399999999999923e-01 +2.198299999999999907e-02 +5.561700000000000367e-04 +1.213299999999999934e-01 +4.081400000000000305e-02 +1.316400000000000070e-01 +3.011899999999999994e-02 +5.622000000000000044e-04 +2.689699999999999869e-01 +2.501499999999999904e-02 +2.239700000000000024e-01 +5.330000000000000293e-01 +8.087900000000000297e-03 +2.290099999999999913e-01 +7.362000000000000488e-02 +3.893599999999999839e-01 +3.840100000000000180e-01 +5.205800000000000427e-01 +5.470200000000000062e-02 +3.330099999999999727e-01 +5.336899999999999977e-01 +3.551200000000000190e-02 +2.766199999999999909e-02 +1.976700000000000124e-01 +1.340999999999999970e-01 +1.345000000000000084e-01 +2.481399999999999995e-01 +1.714299999999999990e-01 +2.062900000000000011e-01 +1.919299999999999895e-01 +2.179500000000000048e-01 +4.257900000000000018e-01 +2.531800000000000161e-01 +5.488399999999999945e-01 +1.957099999999999951e-01 +2.509700000000000264e-01 +1.849999999999999978e-01 +2.248999999999999888e-01 +3.009200000000000208e-01 +1.811399999999999955e-01 +1.624499999999999902e-02 +4.512700000000000045e-01 +2.317700000000000038e-01 +5.194000000000000006e-02 +2.698099999999999943e-01 +4.149100000000000010e-01 +4.512900000000000245e-01 +5.153400000000000203e-01 +4.830499999999999794e-01 +4.518900000000000139e-01 +4.252500000000000169e-01 +4.920999999999999819e-01 +4.434400000000000147e-02 +1.658799999999999997e-01 +1.948600000000000054e-01 +2.872600000000000153e-01 +8.612899999999999723e-02 +5.625299999999999745e-01 +6.046300000000000008e-01 +1.937500000000000056e-01 +7.718099999999999961e-02 +5.019200000000000328e-01 +8.996500000000000330e-02 +1.225300000000000000e-01 +6.113500000000000184e-02 +2.768599999999999950e-01 +3.343700000000000006e-01 +5.409300000000000219e-02 +3.210600000000000120e-01 +3.246700000000000141e-01 +1.811699999999999977e-01 +6.464600000000000346e-01 +1.063899999999999985e-01 +1.433099999999999929e-01 +7.197200000000000264e-01 +4.364100000000000201e-01 +5.306400000000000006e-02 +3.071400000000000241e-01 +1.443599999999999918e-02 +2.772999999999999909e-01 +7.861799999999999344e-02 +2.585100000000000176e-01 +1.437400000000000067e-01 +1.421399999999999886e-01 +5.550599999999999978e-02 +4.344000000000000083e-01 +1.684700000000000086e-01 +1.968000000000000027e-01 +1.248299999999999965e-01 +3.851499999999999924e-01 +4.179999999999999688e-03 +1.021800000000000069e-01 +3.309799999999999964e-01 +9.660499999999999643e-02 +4.813000000000000056e-01 +3.003500000000000059e-01 +2.528999999999999998e-02 +1.300999999999999934e-01 +8.121300000000000185e-01 +3.667300000000000004e-01 +2.751299999999999926e-02 +6.886200000000000654e-02 +1.108399999999999941e-01 +1.057700000000000029e-01 +7.587800000000000100e-01 +2.882299999999999862e-01 +5.282400000000000290e-02 +2.616700000000000137e-01 +5.521999999999999825e-02 +1.706700000000000014e-03 +7.308999999999999941e-01 +1.209199999999999997e-01 +3.902900000000000258e-01 +4.881099999999999883e-01 +1.598100000000000076e-01 +3.103799999999999892e-01 +1.858599999999999974e-01 +2.801199999999999801e-01 +3.418100000000000027e-01 +5.276100000000000234e-02 +4.124999999999999778e-01 +1.683900000000000119e-01 +2.657599999999999893e-02 +4.127999999999999725e-03 +2.326999999999999902e-01 +3.512399999999999967e-01 +5.205999999999999517e-01 +2.939999999999999836e-01 +1.030400000000000066e-01 +7.549799999999999567e-02 +3.364199999999999829e-02 +1.431399999999999895e-01 +4.108700000000000130e-01 +3.242300000000000182e-01 +4.703100000000000336e-02 +5.003799999999999915e-02 +7.939100000000000046e-01 +3.628699999999999981e-02 +2.838999999999999857e-02 +3.469400000000000261e-01 +3.733400000000000052e-01 +6.663999999999999924e-01 +2.944200000000000150e-01 +5.402400000000000535e-01 +4.354100000000000192e-01 +4.005800000000000333e-02 +2.273300000000000043e-01 +3.359400000000000164e-01 +2.330500000000000071e-01 +5.459500000000000464e-01 +2.170799999999999952e-01 +3.661599999999999855e-01 +2.354499999999999926e-01 +8.460800000000000265e-02 +3.339500000000000246e-01 +1.919899999999999940e-01 +1.716900000000000093e-01 +1.333999999999999908e-01 +2.779800000000000049e-01 +1.938300000000000023e-01 +3.402299999999999769e-01 +4.313499999999999973e-02 +2.078599999999999892e-01 +1.439400000000000054e-02 +2.007000000000000103e-02 +1.907299999999999968e-02 +2.793599999999999972e-01 +5.631699999999999900e-02 +1.560699999999999935e-02 +4.850300000000000167e-01 +7.657900000000000254e-04 +5.246100000000000069e-02 +1.016000000000000063e-02 +3.251299999999999746e-01 +1.842600000000000071e-01 +2.927799999999999847e-01 +5.345499999999999696e-01 +1.984499999999999875e-01 +6.098799999999999777e-01 +5.426000000000000267e-03 +4.874399999999999844e-01 +4.538699999999999957e-01 +1.270799999999999985e-01 +6.651599999999999735e-01 +3.922399999999999776e-01 +7.355300000000000171e-01 +3.900100000000000094e-02 +1.513599999999999945e-01 +9.549799999999999955e-02 +6.116700000000000470e-01 +2.769099999999999895e-01 +1.658699999999999897e-01 +3.338499999999999801e-01 +4.456999999999999851e-02 +1.694799999999999918e-01 +1.955900000000000138e-01 +2.184500000000000053e-01 +1.084299999999999986e-01 +5.350499999999999701e-02 +7.853799999999999670e-02 +6.116499999999999715e-02 +3.095399999999999818e-01 +2.261599999999999999e-01 +1.225500000000000062e-01 +2.698200000000000043e-01 +4.292699999999999849e-01 +7.432400000000000118e-02 +2.942200000000000024e-02 +2.598400000000000154e-01 +3.776800000000000157e-01 +2.632400000000000018e-02 +3.736900000000000222e-01 +2.501399999999999735e-01 +1.036399999999999960e-01 +2.830500000000000238e-01 +1.005100000000000021e-01 +1.541200000000000070e-01 +1.027700000000000002e-01 +5.153900000000000148e-01 +3.161900000000000266e-01 +7.455799999999999927e-02 +2.111999999999999988e-01 +3.500700000000000339e-02 +3.307599999999999985e-01 +1.471500000000000030e-01 +3.742800000000000016e-01 +4.126099999999999768e-01 +2.275800000000000045e-01 +8.148100000000000134e-03 +1.076399999999999996e-01 +2.957199999999999829e-01 +3.646400000000000197e-01 +4.274200000000000221e-01 +1.660800000000000054e-01 +2.602099999999999969e-01 +3.009000000000000008e-01 +1.055200000000000027e-01 +5.072499999999999787e-01 +1.422799999999999898e-01 +5.938800000000000155e-03 +4.016200000000000325e-02 +6.010800000000000171e-02 +2.323800000000000032e-01 +8.235800000000000065e-02 +1.183600000000000069e-01 +2.179299999999999987e-02 +1.092400000000000038e-01 +1.329700000000000049e-01 +7.415300000000000225e-01 +5.079000000000000181e-01 +2.679599999999999760e-01 +1.583799999999999930e-01 +3.708299999999999930e-01 +5.175699999999999745e-01 +4.599299999999999916e-02 +5.266899999999999915e-01 +1.655999999999999833e-02 +4.076899999999999968e-02 +1.765299999999999925e-01 +2.840900000000000092e-01 +3.906399999999999872e-01 +3.971800000000000330e-02 +4.862500000000000155e-01 +4.255900000000000238e-01 +3.404200000000000004e-01 +2.039499999999999993e-02 +2.036600000000000077e-01 +2.177800000000000014e-01 +2.782100000000000128e-01 +2.775099999999999789e-01 +3.026999999999999830e-02 +3.942700000000000093e-01 +2.613800000000000012e-01 +2.081500000000000017e-01 +5.512600000000000139e-02 +3.097000000000000100e-02 +2.549000000000000155e-01 +5.659899999999999931e-01 +2.460700000000000109e-01 +2.847399999999999931e-02 +4.361800000000000122e-01 +2.104900000000000104e-01 +1.561500000000000110e-01 +1.934599999999999931e-01 +4.269399999999999862e-01 +4.777000000000000135e-01 +2.893499999999999961e-01 +3.723600000000000087e-03 +2.389100000000000112e-01 +4.420499999999999950e-03 +1.111899999999999972e-01 +2.018099999999999894e-01 +6.461000000000000076e-01 +3.650900000000000256e-01 +2.000300000000000133e-01 +2.881199999999999872e-01 +1.927899999999999892e-01 +2.188700000000000090e-01 +5.897400000000000420e-01 +2.094300000000000050e-01 +5.093999999999999639e-01 +6.647600000000000176e-01 +2.052499999999999880e-01 +6.338799999999999990e-01 +2.375200000000000089e-01 +6.288799999999999946e-01 +5.408399999999999874e-01 +1.572600000000000109e-01 +5.067899999999999627e-01 +3.425500000000000073e-02 +1.684299999999999964e-01 +1.459399999999999864e-01 +1.156800000000000050e-01 +2.556100000000000039e-01 +4.890300000000000202e-01 +3.946000000000000063e-01 +1.773299999999999876e-01 +2.033200000000000007e-01 +2.743399999999999728e-01 +2.937299999999999911e-01 +6.289400000000000546e-02 +1.601700000000000068e-01 +4.396599999999999953e-01 +7.639599999999999724e-01 +6.713000000000000078e-01 +2.879300000000000193e-01 +4.284999999999999747e-03 +6.000300000000000078e-02 +1.305000000000000049e-01 +2.842799999999999772e-01 +3.121499999999999830e-01 +3.752099999999999880e-01 +1.848400000000000043e-02 +5.441200000000000481e-01 +1.184400000000000036e-01 +5.666600000000000109e-02 +3.115200000000000191e-01 +3.362299999999999733e-01 +3.004199999999999926e-02 +3.718600000000000239e-01 +6.100299999999999612e-01 +1.557900000000000118e-01 +6.571699999999999764e-02 +3.313800000000000079e-01 +1.420800000000000118e-01 +7.356800000000000006e-01 +4.998299999999999965e-01 +1.395500000000000074e-01 +1.189300000000000079e-02 +1.355300000000000116e-01 +2.762500000000000198e-03 +3.199400000000000160e-02 +5.683900000000000063e-02 +2.905099999999999905e-01 +4.124399999999999733e-01 +1.000500000000000000e-02 +1.704199999999999882e-01 +1.039299999999999946e-01 +6.035599999999999854e-01 +1.160999999999999949e-01 +3.606099999999999861e-01 +5.642500000000000293e-01 +4.721400000000000041e-01 +8.027700000000000113e-02 +2.374699999999999867e-01 +4.001199999999999757e-01 +5.165600000000000191e-01 +1.438699999999999979e-01 +3.049699999999999980e-02 +2.158400000000000041e-01 +1.420299999999999896e-01 +3.414200000000000013e-01 +1.569500000000000062e-01 +4.545500000000000235e-02 +4.265800000000000147e-01 +3.462500000000000022e-01 +1.977500000000000091e-01 +5.778400000000000203e-02 +3.244600000000000262e-01 +8.027099999999999513e-02 +3.787900000000000156e-01 +6.661000000000000254e-02 +2.378899999999999904e-01 +3.265199999999999769e-01 +1.825600000000000001e-01 +9.322600000000000331e-02 +1.351899999999999977e-02 +6.608899999999999775e-01 +4.381099999999999994e-01 +2.674500000000000210e-01 +5.820800000000000279e-02 +1.394900000000000029e-01 +3.985400000000000054e-01 +5.417399999999999993e-01 +1.400500000000000078e-01 +4.841300000000000048e-01 +3.675899999999999723e-01 +1.001599999999999990e-01 +2.057400000000000062e-01 +8.199599999999999597e-03 +3.081900000000000195e-01 +2.981699999999999906e-01 +6.201200000000000045e-01 +1.338199999999999945e-01 +1.085399999999999976e-01 +3.796999999999999820e-01 +1.490200000000000032e-02 +3.316100000000000297e-02 +3.456400000000000028e-01 +1.085699999999999998e-01 +5.486100000000000421e-01 +7.579099999999999726e-02 +4.782299999999999884e-01 +4.689400000000000235e-01 +8.167599999999999860e-02 +4.326699999999999990e-01 +4.631500000000000061e-01 +4.094199999999999923e-02 +4.457099999999999951e-01 +2.441700000000000120e-02 +8.784400000000000541e-02 +7.350900000000000489e-02 +3.701000000000000123e-02 +2.210100000000000120e-01 +4.679400000000000226e-01 +1.611100000000000032e-01 +3.161499999999999866e-01 +1.883700000000000088e-03 +3.557699999999999751e-01 +5.183200000000000029e-01 +3.229400000000000326e-02 +2.667700000000000071e-01 +5.810600000000000209e-01 +1.635800000000000101e-02 +6.206099999999999950e-01 +4.026799999999999824e-02 +1.983599999999999947e-02 +4.154900000000000260e-01 +3.353999999999999759e-01 +4.034299999999999692e-02 +2.337400000000000033e-01 +6.484099999999999586e-02 +1.703399999999999914e-01 +9.335000000000000242e-02 +6.897399999999999365e-02 +4.669599999999999862e-01 +4.035299999999999998e-01 +2.612200000000000077e-01 +7.867300000000000404e-01 +6.044000000000000067e-02 +7.821799999999999864e-01 +6.116399999999999615e-01 +2.716799999999999771e-01 +1.469999999999999918e-01 +1.619800000000000129e-01 +2.387299999999999839e-02 +9.018400000000000027e-02 +2.868600000000000039e-01 +3.084399999999999920e-01 +2.295200000000000018e-01 +1.373300000000000076e-01 +5.720899999999999874e-01 +4.284000000000000030e-01 +1.483800000000000119e-01 +7.729600000000000359e-02 +5.663300000000000278e-02 +6.318200000000000482e-01 +3.635599999999999943e-01 +6.200599999999999862e-02 +2.689099999999999824e-01 +1.331799999999999928e-01 +2.947299999999999920e-01 +1.065699999999999981e-01 +1.583799999999999930e-01 +4.977199999999999958e-01 +1.942200000000000037e-01 +2.259400000000000019e-01 +3.376500000000000057e-01 +1.387299999999999922e-01 +4.977299999999999780e-02 +3.197300000000000142e-01 +2.326699999999999879e-01 +1.637299999999999867e-01 +1.571400000000000019e-01 +5.775400000000000533e-01 +3.194899999999999962e-01 +3.278499999999999748e-01 +4.375499999999999945e-01 +3.480500000000000260e-01 +1.560199999999999920e-01 +1.297000000000000097e-01 +5.768199999999999716e-02 +1.807200000000000126e-02 +7.305100000000000135e-03 +1.425800000000000123e-01 +4.362499999999999711e-02 +9.536400000000000432e-02 +4.446399999999999797e-01 +2.639299999999999979e-01 +2.035399999999999987e-01 +1.912000000000000088e-01 +1.440099999999999991e-01 +4.692399999999999904e-01 +6.813000000000000167e-01 +2.041699999999999904e-01 +4.984299999999999842e-01 +7.652499999999999580e-02 +5.414399999999999769e-02 +5.495400000000000285e-01 +6.948500000000000509e-02 +3.960400000000000031e-01 +4.840900000000000203e-01 +4.851599999999999663e-02 +3.766499999999999848e-01 +5.947900000000000409e-01 +8.303599999999999870e-02 +1.001400000000000068e-01 +1.890199999999999936e-01 +8.561900000000000066e-02 +2.318600000000000105e-01 +1.010999999999999954e-01 +5.362799999999999789e-01 +2.616200000000000192e-01 +5.428899999999999837e-01 +6.927999999999999714e-01 +3.328599999999999892e-01 +1.081799999999999984e-01 +4.684900000000000175e-01 +2.954899999999999749e-01 +4.227099999999999747e-01 +5.137699999999999906e-02 +4.485200000000000298e-02 +5.289599999999999858e-01 +1.372899999999999954e-01 +7.462199999999999389e-02 +1.572999999999999954e-01 +2.502700000000000063e-03 +1.994199999999999862e-01 +2.791199999999999792e-01 +1.324400000000000022e-01 +2.536599999999999966e-01 +4.084499999999999797e-01 +3.529600000000000098e-02 +5.976099999999999746e-01 +5.214400000000000146e-01 +1.759999999999999898e-01 +3.661599999999999855e-01 +1.075500000000000067e-01 +6.058999999999999803e-02 +6.872099999999999875e-01 +1.502699999999999869e-01 +9.268999999999999462e-03 +2.164999999999999980e-01 +1.328400000000000136e-01 +3.543999999999999928e-01 +4.328799999999999870e-01 +4.519499999999999906e-02 +1.733099999999999918e-01 +3.708400000000000030e-01 +2.738300000000000178e-01 +5.913100000000000023e-01 +2.479200000000000015e-01 +2.908299999999999774e-01 +1.384799999999999920e-01 +3.121300000000000185e-01 +2.803399999999999781e-01 +7.885600000000000387e-01 +2.419099999999999862e-01 +2.653400000000000203e-01 +3.614700000000000135e-01 +3.325100000000000278e-02 +3.061400000000000232e-01 +5.097500000000000364e-01 +2.873399999999999843e-01 +1.704299999999999982e-01 +6.824900000000000411e-01 +1.426199999999999968e-01 +8.154999999999999749e-02 +9.000099999999999767e-02 +2.616800000000000029e-02 +2.061800000000000022e-01 +2.024199999999999958e-02 +1.499199999999999977e-01 +2.179200000000000026e-01 +1.869599999999999873e-01 +3.342300000000000271e-01 +5.554400000000000309e-02 +3.477199999999999736e-01 +1.679700000000000082e-01 +1.373900000000000121e-01 +4.968399999999999900e-02 +8.850900000000000434e-02 +5.289099999999999913e-01 +1.544200000000000017e-01 +1.030100000000000043e-01 +6.435899999999999954e-01 +3.406000000000000139e-01 +3.832699999999999996e-01 +1.019899999999999973e-01 +2.752999999999999892e-02 +2.444900000000000129e-01 +3.572899999999999687e-02 +1.216399999999999981e-01 +1.517900000000000083e-01 +8.030000000000000471e-01 +3.447399999999999909e-01 +1.032700000000000007e-01 +2.643300000000000163e-02 +4.463199999999999945e-01 +3.172900000000000026e-02 +3.911000000000000032e-01 +2.616399999999999976e-02 +5.138500000000000290e-01 +1.806200000000000028e-01 +2.602800000000000114e-01 +1.590699999999999892e-01 +9.956700000000000272e-02 +1.860700000000000132e-01 +4.746000000000000218e-01 +4.211900000000000088e-01 +3.422600000000000087e-01 +3.841100000000000070e-01 +6.218399999999999483e-01 +4.943299999999999778e-02 +5.190800000000000275e-02 +1.435999999999999950e-02 +5.909299999999999969e-02 +4.354199999999999737e-02 +3.186200000000000143e-01 +2.017500000000000127e-01 +4.808399999999999896e-01 +3.204600000000000226e-01 +4.587800000000000211e-01 +4.612100000000000088e-01 +8.311399999999999344e-02 +3.712300000000000044e-01 +7.582200000000000051e-01 +2.224700000000000028e-03 +3.545599999999999863e-01 +8.794699999999999740e-01 +7.861099999999999338e-03 +9.742399999999999671e-02 +4.311599999999999877e-01 +1.719299999999999995e-01 +4.181199999999999917e-01 +4.169700000000000073e-01 +2.027700000000000058e-01 +1.213700000000000057e-01 +1.951499999999999901e-01 +1.431000000000000050e-01 +3.341399999999999926e-01 +5.325100000000000389e-01 +5.548600000000000199e-01 +2.369600000000000040e-01 +4.583599999999999897e-01 +5.678500000000000214e-02 +8.755899999999999794e-02 +3.603900000000000159e-02 +1.314400000000000013e-01 +2.780599999999999739e-01 +7.602299999999999336e-02 +1.287400000000000003e-02 +1.930199999999999971e-01 +1.468899999999999928e-01 +4.304600000000000093e-01 +1.112400000000000055e-01 +5.175300000000000455e-01 +5.669300000000000034e-02 +3.595500000000000085e-02 +2.741299999999999848e-01 +7.914999999999999813e-02 +5.451899999999999802e-02 +2.912799999999999834e-01 +2.508200000000000013e-02 +5.368699999999999861e-02 +6.461099999999999621e-01 +2.982600000000000251e-01 +1.451000000000000068e-01 +2.295599999999999863e-01 +1.586700000000000055e-01 +1.251099999999999955e-02 +5.841999999999999971e-02 +2.182999999999999940e-01 +8.232399999999999440e-02 +5.459800000000000070e-02 +2.396600000000000119e-01 +2.280200000000000005e-01 +5.773699999999999666e-02 +3.541400000000000103e-01 +2.637000000000000021e-03 +4.788200000000000234e-01 +4.501700000000000146e-01 +8.453000000000000513e-01 +4.023499999999999854e-01 +7.897499999999999520e-01 +8.401199999999999293e-03 +4.106599999999999834e-02 +7.548100000000000642e-02 +5.990199999999999692e-02 +3.390799999999999925e-01 +2.827700000000000005e-02 +2.546499999999999875e-01 +6.949199999999999822e-01 +4.568800000000000083e-01 +1.142900000000000027e-01 +2.962699999999999778e-01 +8.491500000000000783e-03 +4.385399999999999854e-01 +1.089200000000000029e-01 +7.806999999999999496e-01 +5.513700000000000268e-01 +1.269099999999999950e-01 +6.292699999999999683e-02 +5.386799999999999748e-03 +3.008700000000000263e-01 +5.388800000000000257e-01 +3.120200000000000196e-01 +7.537399999999999656e-02 +6.196700000000000125e-02 +3.314799999999999691e-02 +1.163499999999999951e-01 +1.369299999999999962e-01 +2.089100000000000124e-01 +3.796300000000000230e-01 +8.238199999999999690e-02 +1.713699999999999946e-02 +4.398699999999999832e-01 +3.761200000000000099e-01 +4.309799999999999742e-01 +2.668200000000000016e-01 +6.119900000000000340e-02 +2.471500000000000086e-01 +6.543900000000000272e-01 +1.395699999999999996e-01 +1.688800000000000023e-01 +1.505700000000000094e-01 +2.158299999999999941e-01 +4.870300000000000185e-01 +3.454100000000000226e-02 +1.431000000000000050e-01 +1.871199999999999947e-02 +8.312700000000000644e-02 +2.068399999999999961e-01 +4.142900000000000055e-02 +2.165799999999999947e-01 +2.256299999999999972e-01 +3.307100000000000040e-01 +2.153100000000000014e-01 +2.501400000000000151e-02 +8.417199999999999682e-02 +2.997800000000000117e-02 +1.467199999999999893e-01 +1.556599999999999928e-01 +3.397600000000000064e-01 +1.927899999999999892e-01 +1.008600000000000052e-01 +1.258900000000000019e-01 +1.115700000000000025e-01 +8.625900000000000234e-02 +4.442499999999999782e-01 +2.509500000000000064e-01 +2.190000000000000002e-01 +1.229999999999999982e-01 +1.880499999999999880e-02 +2.849499999999999811e-01 +4.253700000000000259e-01 +1.167500000000000066e-01 +3.702099999999999835e-01 +1.910299999999999845e-02 +2.661899999999999822e-01 +1.001200000000000007e-02 +4.080900000000000083e-01 +3.701200000000000045e-01 +3.472500000000000031e-01 +4.078799999999999613e-03 +1.655200000000000005e-01 +3.085300000000000264e-01 +5.841800000000000326e-01 +2.418999999999999970e-02 +7.842000000000000082e-01 +4.579300000000000037e-01 +1.580100000000000116e-01 +2.444899999999999851e-03 +1.052499999999999963e-01 +9.253999999999999726e-02 +7.373999999999999999e-02 +1.605300000000000060e-01 +7.162600000000000078e-01 +2.688599999999999879e-01 +1.677500000000000102e-01 +8.791699999999999515e-02 +2.301300000000000012e-01 +8.520300000000000096e-02 +4.712399999999999922e-01 +1.035299999999999936e-02 +4.976499999999999813e-01 +2.907899999999999929e-01 +2.870100000000000082e-02 +7.963699999999999946e-02 +2.824099999999999944e-01 +4.067300000000000082e-02 +4.892400000000000082e-01 +6.291600000000000525e-01 +2.237899999999999889e-01 +1.688300000000000078e-01 +3.827800000000000091e-01 +1.830100000000000060e-01 +4.534699999999999842e-01 +2.451599999999999890e-01 +6.007400000000000517e-01 +8.928900000000000031e-03 +2.613199999999999967e-01 +1.984799999999999898e-01 +3.222099999999999964e-01 +7.853900000000000464e-03 +2.076900000000000135e-01 +5.567800000000000527e-01 +8.427999999999999381e-02 +1.260400000000000062e-02 +3.695899999999999880e-02 +1.908699999999999980e-02 +7.808500000000000163e-02 +9.991800000000000681e-02 +9.877600000000000269e-02 +5.234299999999999509e-01 +5.572599999999999776e-01 +4.151699999999999835e-01 +3.942300000000000249e-01 +3.152699999999999947e-01 +4.905100000000000016e-01 +2.690600000000000214e-01 +6.627600000000000158e-02 +4.178499999999999992e-01 +6.581799999999999873e-01 +3.486399999999999916e-02 +2.209099999999999953e-01 +1.249699999999999978e-01 +2.815099999999999825e-01 +2.061200000000000011e-03 +9.308900000000000161e-03 +2.147399999999999864e-01 +5.187399999999999789e-01 +3.393700000000000050e-01 +3.796700000000000075e-01 +3.300500000000000100e-01 +2.006900000000000073e-01 +1.845400000000000096e-01 +1.111000000000000043e-01 +5.338100000000000067e-01 +3.214899999999999980e-01 +1.859200000000000019e-01 +3.088699999999999779e-01 +3.283400000000000207e-01 +1.854300000000000115e-01 +3.436799999999999855e-01 +5.483599999999999586e-01 +3.669600000000000084e-01 +1.868599999999999983e-01 +2.682599999999999985e-01 +1.789199999999999957e-01 +1.390699999999999922e-02 +1.847499999999999976e-01 +5.315199999999999925e-01 +5.845399999999999902e-02 +2.021399999999999864e-01 +1.707700000000000051e-01 +1.605000000000000038e-01 +2.158899999999999986e-01 +1.519199999999999995e-01 +1.060600000000000015e-01 +6.040799999999999503e-01 +2.080100000000000005e-01 +5.552099999999999813e-01 +1.560499999999999943e-01 +2.464200000000000002e-01 +2.717399999999999816e-01 +1.741999999999999937e-01 +5.906700000000000284e-01 +1.054500000000000055e-02 +6.783400000000000540e-01 +1.985599999999999865e-01 +2.280699999999999950e-01 +7.255399999999999350e-02 +1.091599999999999931e-01 +5.758600000000000385e-01 +8.354099999999999859e-01 +2.480699999999999919e-02 +1.696900000000000075e-01 +5.936700000000000310e-01 +2.928000000000000047e-01 +3.318599999999999883e-01 +2.170199999999999907e-01 +6.954899999999999971e-02 +2.509000000000000119e-01 +9.089200000000000057e-02 +1.676100000000000090e-01 +6.928400000000000114e-01 +5.330899999999999528e-01 +2.948799999999999755e-01 +3.101200000000000068e-01 +1.547199999999999964e-01 +1.899099999999999955e-01 +6.979100000000000581e-02 +2.459800000000000042e-01 +7.016400000000000414e-01 +2.764599999999999835e-01 +1.069100000000000050e-01 +3.029100000000000126e-01 +1.482499999999999929e-01 +9.304800000000000570e-02 +1.289899999999999936e-01 +3.601400000000000157e-01 +6.784400000000000153e-02 +8.042900000000000049e-02 +7.852699999999999958e-02 +3.205299999999999816e-01 +8.980000000000000482e-02 +2.327799999999999869e-01 +1.628799999999999970e-01 +4.845800000000000107e-02 +2.688699999999999979e-01 +2.123800000000000132e-01 +4.208999999999999964e-01 +3.795799999999999730e-01 +4.852600000000000247e-01 +1.362900000000000049e-02 +1.585300000000000042e-01 +2.639699999999999824e-01 +4.071400000000000019e-01 +1.748200000000000032e-01 +4.691400000000000015e-01 +1.371200000000000023e-02 +7.960399999999999421e-02 +3.133299999999999974e-01 +3.636699999999999933e-01 +2.796899999999999942e-01 +2.935300000000000131e-01 +3.767900000000000138e-01 +3.014000000000000012e-01 +2.252899999999999903e-01 +1.049400000000000055e-01 +3.314300000000000024e-01 +4.985600000000000032e-01 +1.578400000000000081e-01 +7.453699999999999770e-01 +6.853399999999999492e-01 +4.558499999999999774e-01 +4.149100000000000010e-02 +1.457900000000000029e-01 +5.598299999999999804e-02 +5.145399999999999974e-01 +1.416900000000000104e-01 +4.209200000000000164e-01 +4.331099999999999950e-01 +7.023500000000000298e-01 +2.293399999999999883e-01 +4.044200000000000017e-01 +7.869399999999999729e-01 +6.154300000000000048e-02 +1.968999999999999917e-01 +2.860300000000000065e-01 +1.397799999999999876e-01 +1.575900000000000079e-01 +1.327500000000000069e-01 +1.305399999999999894e-01 +5.486299999999999510e-01 +2.109800000000000009e-01 +3.699100000000000166e-01 +1.157099999999999969e-02 +2.318900000000000128e-01 +3.617800000000000182e-02 +1.192600000000000049e-01 +1.276700000000000057e-01 +2.364600000000000035e-01 +5.371399999999999508e-01 +1.284399999999999986e-01 +1.567199999999999982e-01 +1.869699999999999973e-01 +1.746400000000000036e-02 +2.734199999999999964e-01 +5.979600000000000193e-02 +4.686699999999999894e-02 +4.442300000000000137e-01 +8.199299999999999644e-02 +4.674699999999999966e-01 +1.956600000000000006e-01 +1.691300000000000026e-01 +5.148500000000000298e-02 +3.203099999999999836e-01 +1.012699999999999989e-01 +1.136199999999999988e-01 +5.441799999999999971e-01 +1.026399999999999951e-01 +1.032900000000000068e-01 +3.936499999999999999e-01 +4.075400000000000134e-01 +2.520499999999999963e-01 +5.775200000000000333e-01 +3.428100000000000036e-01 +2.065699999999999828e-02 +9.671299999999999342e-02 +4.779900000000000121e-02 +2.389400000000000135e-01 +1.197600000000000053e-01 +3.144600000000000173e-01 +1.293900000000000050e-01 +4.884200000000000347e-02 +1.194400000000000045e-01 +2.370099999999999985e-02 +4.353899999999999992e-01 +1.104600000000000026e-01 +5.908400000000000284e-03 +1.465799999999999881e-01 +3.563200000000000256e-01 +3.321200000000000263e-01 +8.508999999999999897e-02 +1.028000000000000025e-01 +1.983199999999999963e-01 +1.912300000000000111e-02 +3.212899999999999784e-02 +3.944199999999999928e-01 +1.431200000000000007e-02 +2.404199999999999948e-01 +1.121299999999999936e-01 +2.228799999999999948e-01 +8.344200000000000228e-02 +1.355500000000000038e-01 +1.279700000000000004e-01 +2.355899999999999939e-01 +6.589399999999999702e-01 +4.112299999999999844e-01 +1.384400000000000075e-01 +3.857499999999999818e-02 +1.148900000000000060e-01 +2.645000000000000129e-01 +8.557099999999999707e-01 +2.551200000000000134e-01 +3.920100000000000251e-01 +1.242399999999999928e-02 +3.943200000000000038e-01 +3.359199999999999964e-01 +1.382500000000000118e-01 +6.321900000000000297e-01 +1.265100000000000113e-01 +2.209399999999999975e-01 +3.925600000000000200e-01 +3.971800000000000330e-02 +4.319500000000000006e-01 +6.836699999999999722e-02 +2.795500000000000207e-01 +6.808299999999999769e-03 +4.239200000000000190e-01 +1.793399999999999855e-02 +1.160700000000000065e-01 +3.905399999999999983e-01 +9.607599999999999474e-02 +2.203600000000000003e-01 +4.130599999999999827e-01 +2.878299999999999748e-01 +2.092700000000000116e-01 +2.742600000000000038e-01 +7.974200000000000177e-01 +7.142900000000000638e-02 +1.460100000000000009e-01 +1.113399999999999945e-01 +4.199600000000000000e-01 +3.215900000000000009e-02 +8.717200000000000504e-01 +2.541399999999999770e-01 +1.865900000000000059e-01 +2.855199999999999960e-01 +4.429400000000000004e-01 +2.227300000000000113e-01 +4.264000000000000012e-01 +5.177199999999999858e-02 +6.300000000000000044e-02 +2.742400000000000046e-02 +3.611199999999999966e-01 +3.021800000000000042e-01 +4.861300000000000066e-01 +5.837200000000000166e-01 +5.017100000000000032e-02 +5.285699999999999843e-01 +1.128099999999999936e-01 +3.152900000000000147e-01 +7.803000000000000214e-02 +3.906499999999999972e-01 +1.964299999999999935e-01 +1.098399999999999932e-01 +4.253799999999999804e-01 +1.615199999999999969e-01 +1.472100000000000075e-01 +3.276700000000000168e-01 +7.396300000000000097e-01 +1.373800000000000021e-01 +3.009700000000000153e-01 +7.424899999999999556e-02 +4.490100000000000202e-01 +1.513700000000000045e-01 +2.183199999999999863e-01 +5.313799999999999635e-01 +6.178599999999999648e-01 +3.695800000000000196e-01 +2.120900000000000007e-01 +1.379599999999999993e-01 +4.814599999999999991e-01 +6.193999999999999506e-01 +2.131800000000000084e-01 +3.204000000000000181e-01 +2.010699999999999987e-01 +3.568999999999999950e-02 +2.116699999999999970e-01 +3.854300000000000087e-02 +4.749399999999999733e-01 +7.752100000000000657e-02 +3.707799999999999985e-01 +2.884799999999999864e-03 +3.552000000000000157e-01 +8.621199999999999974e-01 +1.422400000000000053e-01 +3.984500000000000264e-01 +3.589899999999999758e-01 +2.077700000000000033e-02 +2.192999999999999949e-01 +1.603600000000000164e-02 +3.284699999999999842e-01 +4.671100000000000252e-01 +4.036800000000000110e-03 +3.058299999999999907e-01 +2.969999999999999862e-01 +7.426700000000000523e-01 +8.609099999999999739e-03 +1.978399999999999881e-01 +9.676800000000000679e-02 +2.879300000000000193e-01 +2.786999999999999981e-03 +6.577100000000000168e-01 +3.557299999999999907e-01 +1.752700000000000091e-01 +3.508300000000000307e-02 +9.020599999999999730e-01 +2.505399999999999849e-01 +5.400400000000000339e-02 +5.657999999999999696e-01 +2.574799999999999867e-01 +8.347100000000000353e-02 +9.414699999999999458e-02 +2.009400000000000075e-01 +1.270100000000000048e-02 +3.257800000000000140e-01 +5.164299999999999446e-01 +1.274000000000000132e-01 +5.167399999999999771e-01 +1.302599999999999938e-02 +2.712499999999999911e-01 +2.993700000000000250e-01 +1.677899999999999947e-01 +1.090200000000000058e-01 +6.476400000000000212e-02 +1.193499999999999978e-01 +2.124800000000000022e-01 +2.138100000000000001e-01 +2.259799999999999864e-01 +2.087900000000000034e-01 +1.628999999999999893e-01 +2.732999999999999874e-01 +3.250900000000000317e-02 +1.465799999999999881e-01 +5.878099999999999992e-02 +5.007800000000000029e-01 +2.663099999999999842e-02 +2.684000000000000274e-01 +5.182700000000000085e-01 +2.192099999999999882e-01 +3.171900000000000275e-01 +3.780600000000000072e-01 +1.658499999999999905e-02 +3.416899999999999937e-01 +9.002400000000000679e-02 +1.454000000000000015e-01 +3.326600000000000112e-01 +8.612299999999999817e-03 +4.555299999999999974e-03 +8.538700000000000179e-01 +1.618499999999999939e-01 +1.904399999999999843e-02 +2.036799999999999999e-01 +8.106799999999999562e-01 +1.894699999999999995e-01 +2.216200000000000114e-01 +2.767200000000000215e-01 +9.675499999999999379e-02 +1.767900000000000027e-01 +2.081800000000000039e-01 +8.422499999999999432e-02 +2.890199999999999991e-01 +4.591900000000000148e-02 +1.108699999999999963e-01 +5.826699999999999935e-02 +1.783099999999999963e-01 +2.884200000000000097e-01 +1.310699999999999921e-01 +4.677600000000000091e-01 +5.008599999999999719e-01 +4.897699999999999831e-01 +2.060400000000000009e-01 +2.382900000000000018e-01 +1.053299999999999931e-01 +7.906299999999999786e-03 +2.309100000000000041e-01 +8.866300000000000570e-03 +4.425299999999999789e-01 +1.214299999999999963e-01 +4.334799999999999764e-02 +4.867699999999999805e-02 +6.982299999999999618e-02 +3.701999999999999735e-01 +9.043400000000000050e-02 +2.040500000000000091e-01 +1.832100000000000117e-01 +4.546499999999999847e-02 +1.435999999999999950e-02 +1.585699999999999957e-02 +7.603600000000000636e-02 +3.311700000000000199e-01 +1.007600000000000023e-01 +3.214299999999999935e-01 +5.029599999999999627e-01 +1.552199999999999969e-01 +3.166399999999999770e-02 +1.457199999999999988e-02 +3.446199999999999819e-01 +2.875400000000000178e-01 +7.323999999999999955e-02 +4.944700000000000206e-01 +1.840199999999999891e-01 +2.906400000000000095e-01 +3.393199999999999689e-02 +3.608299999999999841e-01 +7.013900000000000690e-02 +4.307699999999999863e-01 +5.002399999999999902e-02 +1.844200000000000006e-01 +2.649299999999999988e-01 +2.840700000000000169e-02 +8.643399999999999972e-01 +5.198899999999999633e-01 +3.950499999999999845e-02 +2.400899999999999909e-02 +1.663900000000000101e-01 +4.249700000000000005e-02 +6.611700000000000355e-01 +2.025500000000000078e-01 +2.980200000000000071e-01 +1.318600000000000050e-01 +1.521099999999999952e-01 +5.191300000000000081e-02 +9.001499999999999779e-02 +9.553999999999999992e-02 +2.471899999999999931e-01 +6.730500000000000371e-01 +2.846099999999999741e-01 +1.992599999999999927e-01 +2.943600000000000105e-01 +3.281600000000000072e-01 +1.606400000000000050e-01 +1.694499999999999895e-01 +1.295900000000000107e-01 +3.196600000000000136e-02 +2.891799999999999926e-01 +1.267500000000000016e-01 +2.506999999999999854e-02 +8.955599999999999672e-02 +8.362799999999999401e-02 +3.260100000000000220e-01 +2.406699999999999950e-01 +1.949400000000000022e-01 +2.614600000000000257e-01 +5.173099999999999921e-02 +4.893299999999999733e-02 +3.142400000000000193e-01 +2.059600000000000042e-01 +5.419399999999999773e-01 +4.618499999999999689e-02 +4.090400000000000147e-01 +1.128999999999999969e-02 +3.954900000000000082e-01 +2.352799999999999891e-01 +1.586200000000000110e-02 +4.034900000000000153e-01 +5.317899999999999849e-01 +6.349299999999999944e-01 +3.955600000000000227e-01 +2.312599999999999933e-01 +6.818699999999999761e-02 +2.698699999999999988e-01 +5.756200000000000205e-01 +3.503000000000000003e-01 +8.611099999999999310e-02 +1.698300000000000087e-01 +6.243100000000000038e-02 +2.867899999999999894e-01 +6.172199999999999909e-01 +5.208099999999999952e-01 +1.664200000000000124e-01 +1.629800000000000137e-01 +1.723699999999999954e-01 +1.262199999999999989e-01 +4.207600000000000229e-02 +3.558499999999999996e-01 +2.194600000000000023e-02 +9.452199999999999491e-02 +6.774900000000000366e-03 +5.844799999999999822e-03 +4.239600000000000035e-01 +4.057000000000000051e-01 +3.114600000000000146e-01 +2.856000000000000205e-01 +2.600799999999999987e-02 +2.603900000000000103e-01 +5.678999999999999604e-01 +9.174000000000000210e-02 +2.114300000000000068e-01 +5.351200000000000401e-01 +5.053299999999999459e-01 +1.387500000000000122e-01 +3.479999999999999760e-01 +5.628600000000000270e-01 +3.989600000000000091e-02 +6.505699999999999816e-01 +1.362700000000000022e-01 +1.587500000000000022e-01 +5.472500000000000281e-02 +5.603700000000000347e-01 +4.401800000000000157e-01 +3.049500000000000127e-02 +7.978499999999999481e-02 +1.500800000000000051e-03 +1.664799999999999891e-01 +2.911799999999999944e-01 +6.105800000000000116e-01 +7.988899999999999890e-01 +2.339700000000000113e-01 +5.138800000000000034e-01 +9.460000000000000353e-02 +4.070900000000000074e-01 +2.343599999999999850e-02 +2.872200000000000100e-02 +1.463299999999999879e-01 +5.479199999999999626e-01 +2.340800000000000103e-01 +3.130700000000000149e-01 +4.305700000000000083e-01 +2.052899999999999864e-02 +3.936399999999999899e-01 +6.317300000000000137e-01 +1.047799999999999981e-01 +1.789499999999999980e-01 +4.596399999999999930e-01 +2.184200000000000030e-01 +1.804999999999999938e-01 +2.042499999999999871e-01 +2.156299999999999883e-03 +2.228100000000000080e-01 +4.286699999999999955e-01 +2.384499999999999953e-01 +2.435299999999999965e-01 +4.113700000000000134e-01 +4.237600000000000221e-03 +7.443400000000000016e-01 +5.960699999999999887e-01 +3.454900000000000193e-01 +1.165400000000000047e-01 +5.159599999999999742e-01 +5.521000000000000352e-01 +6.680400000000000227e-02 +7.220999999999999641e-01 +9.497400000000000286e-02 +2.152499999999999969e-01 +1.665200000000000014e-01 +4.607200000000000184e-02 +5.158200000000000285e-02 +3.692300000000000026e-01 +1.419400000000000106e-01 +2.561300000000000243e-01 +5.017499999999999738e-02 +3.104999999999999982e-01 +2.752399999999999847e-01 +1.668600000000000083e-01 +1.004599999999999937e-01 +5.498900000000000315e-02 +3.531500000000000195e-01 +2.585700000000000220e-01 +3.048199999999999799e-01 +2.630899999999999905e-01 +3.707799999999999985e-01 +1.978699999999999903e-01 +2.562999999999999723e-01 +5.302099999999999869e-02 +6.049899999999999722e-02 +5.848600000000000465e-01 +3.459900000000000198e-01 +5.703899999999999526e-01 +6.993599999999999817e-01 +2.220900000000000096e-01 +6.755400000000000293e-02 +5.458399999999999919e-01 +2.110700000000000076e-01 +3.907800000000000162e-02 +2.356499999999999984e-01 +6.157200000000000450e-01 +1.479000000000000037e-01 +4.886599999999999833e-01 +2.116000000000000103e-01 +5.356199999999999850e-02 +1.242599999999999955e-01 +1.779100000000000126e-01 +3.385699999999999821e-01 +1.964299999999999935e-01 +2.016000000000000014e-01 +3.406799999999999828e-01 +6.311600000000000543e-02 +1.395599999999999896e-01 +7.969800000000000495e-02 +4.097500000000000031e-01 +3.998199999999999671e-02 +2.925300000000000122e-01 +2.704500000000000237e-01 +1.481800000000000062e-01 +7.355399999999999716e-01 +3.286700000000000177e-01 +3.910899999999999932e-01 +2.144599999999999979e-02 +5.888700000000000045e-01 +2.430400000000000060e-01 +1.684799999999999909e-01 +6.501899999999999347e-02 +2.342299999999999938e-01 +2.670399999999999996e-01 +5.956500000000000128e-01 +1.477100000000000080e-01 +9.460000000000000353e-02 +1.138099999999999945e-01 +2.181099999999999983e-01 +6.811199999999999477e-01 +1.610300000000000065e-01 +2.265500000000000014e-01 +6.810599999999999987e-01 +3.765000000000000013e-01 +4.032200000000000228e-01 +8.754700000000000676e-03 +4.309799999999999742e-01 +1.452100000000000057e-01 +2.961400000000000143e-01 +1.183199999999999946e-01 +4.284899999999999820e-01 +7.199300000000000144e-02 +6.840899999999999759e-01 +3.079899999999999860e-01 +4.689300000000000135e-01 +3.678899999999999948e-01 +1.984200000000000130e-01 +1.507499999999999951e-01 +3.953499999999999792e-01 +6.716699999999999893e-01 +3.988399999999999584e-03 +1.528499999999999998e-02 +6.573700000000000099e-01 +3.303600000000000286e-02 +9.979699999999999682e-02 +8.275899999999999923e-02 +2.903899999999999815e-01 +2.029100000000000070e-01 +3.547000000000000153e-01 +5.575599999999999445e-01 +1.422200000000000131e-01 +2.877799999999999803e-03 +3.432199999999999834e-02 +8.585399999999999976e-02 +3.317799999999999916e-02 +2.384100000000000108e-01 +5.004899999999999904e-01 +3.653899999999999926e-01 +7.581899999999999751e-02 +1.714299999999999852e-02 +3.568200000000000260e-01 +4.287500000000000339e-02 +3.982999999999999874e-01 +4.905399999999999761e-01 +1.461500000000000021e-01 +4.682200000000000251e-01 +4.163200000000000234e-02 +3.832699999999999996e-01 +6.064899999999999736e-01 +4.962300000000000044e-01 +2.783700000000000063e-01 +2.688300000000000134e-01 +2.970300000000000162e-01 +3.980000000000000204e-01 +5.483200000000000296e-01 +1.929800000000000126e-01 +2.578699999999999881e-01 +6.015500000000000291e-01 +4.494700000000000084e-02 +1.249500000000000055e-01 +1.578799999999999926e-01 +1.497799999999999999e-02 +2.009400000000000075e-01 +7.534699999999999731e-01 +5.512000000000000233e-01 +1.322500000000000064e-01 +6.703099999999999337e-02 +2.415400000000000047e-01 +2.291199999999999903e-01 +1.265000000000000013e-01 +4.182700000000000133e-03 +1.688600000000000101e-01 +1.276899999999999979e-01 +4.199300000000000255e-01 +2.175100000000000089e-01 +2.263799999999999979e-01 +6.185000000000000220e-02 +4.228100000000000191e-01 +2.612899999999999945e-02 +1.913900000000000046e-01 +5.764500000000000179e-01 +4.983800000000000036e-02 +3.200999999999999956e-01 +3.326700000000000212e-01 +6.085200000000000331e-02 +1.837100000000000122e-01 +1.832300000000000040e-01 +4.406299999999999800e-02 +1.139199999999999935e-02 +4.738799999999999957e-02 +6.484400000000000164e-01 +2.222099999999999909e-01 +2.242099999999999926e-01 +6.018300000000000038e-02 +3.004700000000000149e-01 +1.774499999999999966e-01 +1.262800000000000034e-02 +1.118299999999999988e-01 +9.377999999999999184e-03 +4.256800000000000028e-01 +1.181200000000000028e-01 +2.605100000000000193e-01 +2.319499999999999895e-01 +2.151200000000000057e-01 +3.417499999999999982e-01 +2.725000000000000200e-01 +2.379600000000000048e-01 +4.298199999999999799e-01 +1.040200000000000014e-01 +1.558100000000000041e-01 +7.430599999999999705e-02 +1.399700000000000111e-01 +4.792399999999999993e-01 +6.695799999999999530e-01 +2.165799999999999947e-01 +2.248999999999999888e-01 +1.633400000000000130e-01 +2.708099999999999952e-01 +3.914400000000000102e-01 +1.819999999999999951e-01 +1.156800000000000016e-02 +1.181500000000000042e-03 +4.120599999999999818e-01 +4.012199999999999794e-02 +6.393900000000000139e-01 +1.389499999999999902e-01 +6.362400000000000000e-02 +8.486599999999999699e-01 +3.567599999999999938e-02 +1.032099999999999962e-01 +6.233400000000000052e-01 +2.647399999999999753e-01 +1.772199999999999886e-01 +2.749699999999999922e-01 +3.663399999999999990e-01 +2.002500000000000113e-01 +9.127500000000000197e-03 +1.529600000000000126e-01 +3.514599999999999946e-01 +2.687700000000000089e-01 +5.910900000000000182e-02 +4.347400000000000153e-01 +5.760300000000000420e-01 +5.026599999999999818e-02 +2.075700000000000045e-01 +5.421300000000000008e-01 +2.084999999999999909e-01 +1.421399999999999886e-01 +7.262199999999999767e-01 +1.769600000000000062e-01 +2.318099999999999883e-01 +5.613200000000000411e-01 +1.967299999999999952e-02 +1.979700000000000071e-01 +3.030900000000000261e-01 +3.592199999999999838e-01 +8.215400000000000480e-01 +3.508200000000000207e-01 +3.340200000000000113e-02 +1.585999999999999910e-01 +3.916900000000000243e-02 +2.065200000000000091e-01 +2.918000000000000108e-02 +2.377700000000000091e-01 +2.580600000000000116e-01 +1.706699999999999884e-01 +1.135899999999999965e-01 +1.023300000000000043e-01 +2.181700000000000028e-01 +3.029800000000000271e-01 +1.195999999999999980e-01 +3.310299999999999909e-01 +1.198000000000000037e-01 +2.958600000000000119e-02 +2.103800000000000114e-01 +1.072099999999999997e-01 +4.363400000000000056e-01 +4.429799999999999849e-01 +1.299599999999999922e-01 +1.338000000000000023e-01 +3.566900000000000071e-01 +9.951200000000000323e-02 +1.495199999999999863e-01 +2.212999999999999967e-01 +4.038100000000000023e-01 +2.184200000000000030e-01 +3.321600000000000108e-01 +5.922199999999999687e-01 +2.167900000000000105e-01 +2.255600000000000105e-01 +4.532399999999999797e-03 +2.679099999999999884e-02 +3.851999999999999869e-02 +1.946099999999999913e-02 +2.886699999999999822e-01 +1.312699999999999978e-01 +3.409100000000000324e-02 +8.031899999999999595e-01 +7.493700000000000361e-02 +2.017899999999999971e-01 +2.449000000000000066e-01 +3.080999999999999850e-01 +8.620899999999999397e-02 +1.479100000000000137e-01 +7.892399999999999416e-02 +3.922499999999999876e-01 +1.883199999999999874e-01 +8.781600000000000517e-03 +8.558300000000000629e-02 +2.182199999999999973e-01 +1.566500000000000115e-01 +3.774399999999999977e-01 +4.504099999999999770e-01 +1.048700000000000049e-01 +5.720399999999999929e-01 +3.396600000000000313e-02 +2.334100000000000064e-01 +1.163799999999999973e-01 +4.340300000000000269e-01 +3.364300000000000068e-01 +4.807799999999999851e-01 +1.127699999999999952e-01 +6.428700000000000525e-01 +4.247000000000000081e-02 +1.811700000000000116e-02 +3.123799999999999910e-01 +6.018900000000000361e-01 +3.591300000000000048e-01 +1.529099999999999904e-01 +1.019700000000000051e-01 +2.476500000000000090e-01 +2.899799999999999947e-02 +3.203600000000000197e-02 +2.072799999999999920e-01 +2.270600000000000118e-01 +1.659400000000000111e-02 +3.049600000000000088e-01 +2.877600000000000158e-01 +8.742499999999999716e-01 +3.535599999999999854e-01 +5.071200000000000013e-02 +1.558700000000000085e-01 +4.505800000000000083e-02 +1.249600000000000016e-01 +3.424900000000000166e-01 +4.957699999999999885e-01 +1.645699999999999941e-01 +6.332900000000000196e-01 +2.089999999999999913e-01 +6.651700000000000668e-02 +4.644900000000000140e-01 +7.513400000000000079e-01 +1.363499999999999990e-01 +4.373900000000000010e-01 +1.084399999999999947e-02 +6.750800000000000134e-01 +3.532899999999999929e-01 +2.675699999999999745e-01 +9.112399999999999667e-03 +3.262600000000000222e-02 +9.085300000000000320e-02 +4.504299999999999971e-01 +4.331800000000000095e-01 +4.755300000000000082e-01 +7.731799999999999784e-02 +2.064199999999999924e-01 +4.109199999999999658e-02 +5.340200000000000502e-01 +6.414699999999999847e-01 +4.256400000000000183e-01 +2.986800000000000010e-01 +1.752799999999999914e-01 +1.484499999999999986e-01 +4.264899999999999802e-01 +4.022000000000000020e-01 +2.968000000000000083e-01 +3.496000000000000218e-01 +4.924100000000000144e-01 +4.343500000000000139e-01 +4.923199999999999799e-01 +7.661800000000000554e-02 +3.530900000000000011e-02 +1.455599999999999949e-01 +1.652800000000000102e-01 +4.242699999999999805e-01 +2.837899999999999867e-01 +2.779699999999999949e-01 +2.167600000000000082e-01 +1.751399999999999901e-01 +6.651799999999999935e-01 +1.128099999999999936e-01 +1.412799999999999889e-01 +4.194699999999999818e-02 +5.474700000000000122e-01 +1.002200000000000035e-01 +3.952399999999999802e-01 +1.143499999999999933e-01 +5.303999999999999826e-01 +5.074999999999999512e-01 +2.440299999999999969e-01 +2.494500000000000051e-01 +4.145499999999999741e-01 +7.119999999999999593e-04 +4.890499999999999847e-01 +4.466599999999999737e-02 +7.428900000000000503e-01 +1.200100000000000056e-01 +1.279599999999999904e-01 +2.051600000000000090e-01 +3.673200000000000076e-02 +1.708999999999999964e-01 +5.324999999999999734e-01 +1.469699999999999895e-01 +6.580000000000000293e-01 +4.059599999999999875e-01 +3.833500000000000241e-01 +5.711299999999999710e-02 +1.871299999999999908e-01 +4.727300000000000252e-02 +3.899799999999999933e-01 +8.109499999999999487e-01 +1.820700000000000096e-01 +1.816699999999999982e-01 +2.664900000000000047e-01 +2.501300000000000190e-01 +3.850199999999999734e-01 +3.382600000000000051e-01 +1.388099999999999890e-01 +4.392499999999999738e-01 +1.916700000000000070e-01 +3.537699999999999873e-02 +1.190699999999999953e-01 +2.627099999999999991e-01 +4.147300000000000292e-02 +2.421399999999999941e-01 +5.082699999999999996e-01 +4.371300000000000185e-01 +1.961499999999999910e-01 +4.008200000000000096e-01 +1.508400000000000019e-01 +3.646200000000000135e-02 +3.397399999999999864e-01 +1.418600000000000139e-01 +4.120099999999999874e-01 +8.953600000000000447e-02 +6.108799999999999786e-01 +6.336800000000000210e-01 +1.014100000000000001e-01 +5.235100000000000170e-02 +2.396899999999999985e-03 +2.390899999999999970e-01 +2.886299999999999977e-01 +2.281299999999999994e-01 +1.750299999999999911e-01 +4.358600000000000252e-01 +1.111899999999999972e-01 +3.340000000000000191e-01 +5.070299999999999807e-01 +6.901699999999999502e-02 +4.703999999999999848e-02 +2.357499999999999873e-01 +2.045700000000000122e-03 +2.654700000000000115e-02 +3.114600000000000146e-01 +1.668600000000000083e-01 +8.050000000000000488e-01 +7.607899999999999385e-02 +2.080500000000000127e-01 +1.927699999999999969e-01 +5.404199999999999976e-02 +5.921799999999999981e-02 +3.763799999999999785e-02 +2.059900000000000064e-01 +5.651399999999999757e-01 +3.483700000000000130e-01 +1.917300000000000115e-01 +4.049099999999999921e-01 +4.278699999999999726e-01 +1.706799999999999984e-01 +8.615499999999999547e-02 +2.361199999999999966e-01 +3.050300000000000233e-01 +3.437899999999999845e-01 +6.659199999999999842e-02 +1.364699999999999941e-02 +1.198400000000000021e-01 +3.095200000000000173e-01 +1.498999999999999985e-02 +5.418699999999999628e-01 +2.237699999999999967e-01 +1.753200000000000036e-01 +1.400200000000000056e-01 +1.423899999999999888e-01 +1.866500000000000103e-01 +9.782899999999999929e-02 +1.008000000000000007e-01 +2.186700000000000033e-01 +1.090700000000000003e-01 +6.665799999999999503e-02 +1.433500000000000052e-01 +2.630800000000000152e-02 +5.257899999999999796e-01 +5.486800000000000010e-02 +1.092999999999999944e-01 +1.577000000000000068e-01 +6.079800000000000438e-04 +9.909900000000000653e-02 +2.957600000000000229e-01 +4.019300000000000095e-01 +2.313699999999999923e-01 +1.507100000000000106e-01 +5.350399999999999601e-01 +2.384400000000000130e-01 +1.951299999999999979e-01 +7.155699999999999561e-02 +8.236799999999999677e-02 +3.904199999999999893e-01 +3.631900000000000128e-01 +1.097800000000000026e-01 +9.731499999999999873e-02 +1.939899999999999958e-01 +1.383900000000000130e-01 +6.288199999999999346e-02 +2.576800000000000201e-01 +4.839800000000000213e-01 +1.942000000000000115e-01 +1.938999999999999890e-01 +1.261500000000000121e-01 +1.310699999999999921e-01 +4.289999999999999925e-01 +1.122500000000000026e-01 +4.820699999999999985e-01 +3.556400000000000117e-01 +2.920100000000000126e-02 +1.877800000000000025e-01 +6.381400000000000405e-01 +3.111800000000000122e-01 +4.467700000000000005e-01 +7.606599999999999473e-02 +5.244399999999999756e-02 +1.983800000000000008e-01 +1.786599999999999994e-02 +1.057199999999999980e-02 +1.360399999999999943e-01 +1.088900000000000007e-01 +1.423800000000000066e-01 +2.644299999999999984e-01 +1.151599999999999985e-01 +5.642400000000000193e-02 +1.691900000000000071e-01 +1.607099999999999917e-01 +1.286899999999999988e-01 +4.661000000000000143e-01 +3.190100000000000158e-01 +3.373999999999999777e-01 +5.935800000000000104e-02 +1.021699999999999969e-01 +1.322800000000000087e-01 +6.518199999999999550e-01 +3.719899999999999873e-01 +4.853100000000000191e-01 +5.203499999999999792e-01 +2.162000000000000033e-01 +2.032499999999999862e-01 +4.077200000000000268e-01 +1.790200000000000125e-01 +4.254899999999999793e-01 +1.304099999999999981e-01 +3.012400000000000078e-01 +1.643799999999999983e-01 +1.994400000000000062e-01 +3.998700000000000032e-01 +4.123999999999999888e-01 +1.933600000000000041e-01 +6.475699999999999512e-02 +8.039499999999999424e-02 +5.490000000000000435e-01 +2.193400000000000072e-01 +2.092600000000000016e-03 +2.213100000000000067e-01 +3.992499999999999938e-01 +4.192600000000000215e-01 +9.944400000000000461e-02 +4.740900000000000114e-01 +1.375499999999999987e-02 +2.133400000000000019e-01 +3.896899999999999809e-01 +4.744099999999999984e-01 +8.585099999999999676e-02 +5.562899999999999512e-01 +3.541900000000000048e-01 +5.978400000000000380e-01 +9.739599999999999647e-02 +1.408600000000000130e-01 +4.729200000000000070e-01 +5.070700000000000034e-03 +4.320399999999999796e-01 +2.068899999999999906e-01 +2.501099999999999990e-01 +4.654599999999999849e-01 +4.752799999999999803e-01 +4.796699999999999853e-01 +3.275199999999999778e-01 +6.517299999999999482e-02 +4.647400000000000142e-02 +6.443400000000000516e-02 +3.484900000000000220e-01 +1.106000000000000039e-01 +1.114499999999999935e-01 +2.630000000000000115e-01 +2.472600000000000076e-01 +4.368199999999999861e-01 +8.587799999999999601e-02 +3.328400000000000247e-01 +2.136299999999999866e-01 +1.957000000000000128e-01 +4.991400000000000003e-02 +3.319500000000000228e-01 +1.001800000000000052e-01 +1.904099999999999959e-01 +1.982099999999999973e-01 +3.816200000000000148e-01 +1.209500000000000020e-01 +9.098499999999999643e-02 +4.817600000000000215e-01 +5.688800000000000523e-01 +9.480900000000000438e-02 +9.613199999999999523e-02 +5.897600000000000064e-02 +1.077700000000000012e-02 +2.394499999999999962e-01 +3.191899999999999737e-01 +6.847299999999999498e-01 +6.232299999999999507e-01 +6.551600000000000479e-02 +3.483599999999999891e-03 +2.958799999999999764e-01 +1.099399999999999961e-01 +3.944199999999999928e-01 +3.078399999999999800e-03 +9.700499999999999401e-02 +4.057200000000000251e-01 +3.330199999999999827e-01 +1.813299999999999981e-02 +1.891100000000000003e-01 +1.512600000000000056e-01 +7.108299999999999341e-02 +1.101599999999999940e-01 +1.197099999999999970e-01 +4.618800000000000128e-01 +3.634499999999999953e-01 +4.752399999999999958e-01 +4.695300000000000029e-01 +5.031299999999999661e-01 +1.788899999999999935e-01 +2.634199999999999875e-01 +4.440299999999999889e-04 +3.187200000000000033e-01 +2.210399999999999865e-01 +7.953799999999999759e-01 +5.706399999999999667e-02 +4.831599999999999784e-01 +1.665300000000000114e-01 +1.772900000000000031e-01 +1.505900000000000016e-01 +7.405899999999999983e-02 +1.561399999999999941e-02 +1.578700000000000103e-01 +1.791399999999999937e-01 +2.763399999999999745e-01 +5.372299999999999992e-03 +9.298199999999999521e-03 +2.316199999999999856e-02 +3.436000000000000165e-02 +1.535100000000000076e-01 +2.279899999999999982e-01 +3.810799999999999743e-01 +1.419799999999999951e-01 +5.552100000000000091e-02 +5.802999999999999825e-02 +2.121300000000000130e-01 +1.311599999999999919e-02 +1.963799999999999921e-02 +1.422499999999999876e-01 +2.377399999999999999e-02 +5.881999999999999451e-01 +3.288699999999999957e-01 +3.924300000000000010e-01 +1.178300000000000042e-01 +1.719700000000000117e-01 +5.496700000000000197e-02 +8.120299999999999740e-02 +1.663199999999999956e-01 +1.069399999999999934e-01 +1.725500000000000089e-01 +1.277399999999999924e-01 +4.690799999999999970e-01 +1.211600000000000038e-01 +5.289800000000000058e-01 +3.083799999999999875e-01 +6.309099999999999431e-02 +8.093999999999999806e-02 +1.195300000000000052e-03 +2.829600000000000171e-02 +3.513000000000000012e-01 +4.066699999999999759e-01 +4.234100000000000086e-01 +2.544299999999999895e-01 +6.672900000000000498e-01 +1.492900000000000060e-01 +1.380000000000000115e-01 +3.472799999999999776e-01 +4.543400000000000216e-02 +3.025999999999999801e-01 +5.184199999999999919e-01 +2.267000000000000126e-01 +6.232900000000000246e-02 +7.798500000000000432e-01 +3.595899999999999791e-02 +6.454600000000000615e-02 +2.492000000000000118e-02 +1.555100000000000093e-01 +1.008799999999999975e-01 +5.578500000000000125e-02 +2.651899999999999813e-01 +2.167000000000000037e-01 +2.444199999999999984e-01 +3.556300000000000017e-01 +5.353800000000000225e-02 +5.570399999999999796e-01 +4.790200000000000014e-02 +5.070999999999999952e-01 +4.309700000000000336e-02 +2.629899999999999946e-02 +1.294099999999999973e-01 +2.654900000000000038e-01 +1.164199999999999957e-01 +7.921400000000000663e-02 +8.002900000000000291e-02 +1.377800000000000032e-02 +2.371399999999999897e-01 +1.001600000000000060e-02 +2.153500000000000136e-01 +3.988399999999999723e-01 +7.708700000000000552e-01 +1.983199999999999963e-01 +2.471100000000000033e-02 +3.689300000000000218e-02 +1.062199999999999950e-01 +1.948900000000000077e-01 +2.838100000000000067e-01 +8.298899999999999680e-03 +3.144399999999999973e-01 +7.610000000000000098e-01 +6.268600000000000561e-02 +4.699499999999999789e-01 +1.632599999999999885e-01 +3.063899999999999957e-01 +3.681499999999999773e-01 +4.912899999999999906e-02 +4.764599999999999946e-01 +1.734900000000000053e-01 +1.499000000000000055e-01 +6.216700000000000004e-02 +6.077599999999999669e-02 +3.412400000000000155e-02 +4.563099999999999934e-01 +5.625000000000000139e-02 +1.514300000000000108e-03 +2.180299999999999946e-02 +2.976799999999999932e-02 +1.632099999999999940e-01 +6.647699999999999720e-01 +7.726199999999999735e-02 +1.073999999999999955e-01 +4.952699999999999880e-01 +4.856300000000000061e-01 +1.487999999999999878e-01 +1.045800000000000063e-01 +2.653300000000000103e-01 +3.533999999999999919e-01 +6.355100000000000193e-01 +7.390299999999999647e-01 +6.080200000000000049e-01 +2.080500000000000127e-01 +1.655399999999999927e-01 +4.868899999999999895e-01 +5.821400000000000186e-02 +2.919399999999999773e-01 +2.126300000000000134e-01 +3.092299999999999910e-02 +7.479500000000000037e-02 +2.023300000000000098e-01 +1.250199999999999922e-01 +1.442700000000000093e-01 +1.219200000000000006e-01 +9.261800000000000588e-02 +2.173400000000000054e-01 +9.076599999999999946e-02 +5.568300000000000333e-02 +1.880999999999999894e-01 +2.897800000000000029e-02 +2.615299999999999847e-01 +3.759100000000000219e-01 +1.687299999999999911e-01 +2.900499999999999953e-02 +6.766999999999999682e-01 +5.578800000000000425e-01 +3.939299999999999746e-03 +8.856500000000000483e-02 +6.610800000000000010e-02 +3.764500000000000068e-01 +4.383000000000000090e-02 +1.327200000000000046e-01 +1.848100000000000021e-01 +6.406100000000000683e-02 +2.983000000000000096e-01 +2.409799999999999998e-01 +5.402599999999999625e-01 +1.936299999999999966e-01 +1.234200000000000019e-01 +1.288999999999999868e-01 +8.766599999999999393e-02 +1.307399999999999951e-01 +1.342599999999999905e-01 +5.551099999999999923e-01 +4.493099999999999872e-02 +3.420799999999999952e-01 +4.839700000000000113e-01 +8.531600000000000295e-02 +4.002999999999999892e-01 +1.841599999999999904e-01 +3.009500000000000022e-02 +2.525499999999999967e-01 +4.132199999999999762e-02 +8.212399999999999700e-01 +3.747099999999999875e-01 +1.078800000000000037e-01 +8.058600000000000207e-01 +2.902299999999999880e-01 +7.996599999999999542e-02 +3.428699999999999803e-02 +1.144499999999999962e-01 +2.267699999999999994e-01 +3.034999999999999920e-01 +3.471600000000000241e-01 +3.532100000000000239e-01 +2.746299999999999852e-01 +1.968600000000000072e-01 +5.274699999999999944e-01 +1.435899999999999954e-01 +1.323300000000000032e-01 +3.165499999999999980e-01 +1.178499999999999964e-01 +7.902199999999999502e-02 +8.918600000000000139e-02 +1.139399999999999996e-01 +1.502499999999999947e-01 +1.179400000000000032e-01 +5.072999999999999732e-01 +2.598699999999999899e-01 +1.455700000000000049e-01 +5.422699999999999743e-02 +1.449100000000000110e-01 +3.824500000000000122e-01 +1.377700000000000036e-01 +4.154499999999999860e-02 +4.212799999999999878e-01 +3.196700000000000097e-01 +3.139799999999999813e-01 +7.674300000000000566e-02 +1.501399999999999957e-01 +3.889000000000000234e-01 +3.694999999999999951e-01 +1.002600000000000019e-01 +6.530299999999999994e-01 +2.782700000000000173e-01 +5.506199999999999983e-01 +3.468100000000000072e-01 +7.323100000000000442e-02 +2.406600000000000128e-01 +2.987400000000000055e-01 +1.010500000000000009e-01 +6.271400000000000585e-02 +7.536899999999999711e-01 +2.556200000000000139e-01 +5.956999999999999795e-02 +2.501499999999999835e-01 +2.770799999999999930e-01 +6.792399999999999827e-02 +9.779400000000000592e-02 +6.722000000000000197e-02 +5.603799999999999754e-02 +7.193900000000000294e-02 +1.076000000000000012e-01 +3.226399999999999824e-01 +7.421800000000000619e-02 +1.963399999999999868e-02 +2.228799999999999948e-01 +3.412100000000000133e-01 +3.495100000000000290e-02 +1.123900000000000038e-01 +5.533299999999999885e-01 +1.851099999999999968e-01 +3.075200000000000156e-01 +5.740800000000000347e-01 +3.225899999999999879e-01 +3.529999999999999805e-01 +5.589100000000000179e-01 +1.829900000000000138e-01 +4.791399999999999826e-02 +6.292900000000000160e-01 +2.298999999999999932e-01 +3.785399999999999876e-01 +2.974499999999999922e-01 +6.990499999999999492e-01 +2.468599999999999961e-01 +2.533499999999999988e-02 +4.377699999999999925e-01 +2.025599999999999901e-01 +1.265000000000000013e-01 +9.127599999999999603e-02 +2.606700000000000128e-01 +5.664899999999999797e-02 +3.264699999999999824e-01 +2.329700000000000104e-01 +9.082700000000000495e-02 +1.220699999999999980e-01 +4.123399999999999843e-01 +7.015599999999999614e-02 +3.862099999999999977e-01 +2.734199999999999964e-01 +4.199100000000000055e-01 +5.220299999999999940e-01 +1.733300000000000118e-01 +9.755099999999999882e-02 +1.530700000000000116e-01 +6.058999999999999803e-02 +8.932099999999999762e-02 +8.639199999999999657e-02 +1.901399999999999965e-02 +3.223500000000000254e-01 +1.281700000000000027e-02 +6.224299999999999972e-02 +2.402400000000000091e-01 +4.525199999999999778e-01 +1.450500000000000053e-02 +8.560600000000000154e-02 +4.559799999999999964e-01 +3.551099999999999812e-01 +1.468200000000000061e-01 +3.460799999999999987e-01 +6.655400000000000205e-01 +1.983000000000000040e-01 +1.541899999999999937e-01 +5.956000000000000183e-01 +6.382700000000000040e-01 +8.142000000000000626e-02 +2.038999999999999979e-01 +3.872499999999999831e-01 +7.249800000000000688e-02 +2.707499999999999837e-02 +5.380599999999999827e-01 +2.671300000000000063e-02 +2.305200000000000027e-01 +5.378699999999999593e-01 +4.562200000000000144e-01 +2.913499999999999979e-01 +6.478300000000000169e-01 +2.306499999999999939e-01 +3.624499999999999944e-01 +2.305699999999999972e-01 +4.525699999999999723e-01 +1.833100000000000007e-02 +9.506999999999999826e-03 +2.121500000000000052e-01 +3.531199999999999894e-01 +5.982699999999999685e-01 +8.012000000000000233e-01 +3.357999999999999874e-01 +1.060900000000000037e-01 +4.085199999999999942e-02 +2.761100000000000221e-01 +2.995599999999999929e-01 +1.527600000000000069e-01 +2.272500000000000075e-01 +5.939200000000000035e-01 +2.872600000000000153e-01 +3.214800000000000296e-02 +3.426899999999999946e-01 +1.853899999999999992e-01 +1.325499999999999942e-02 +2.757899999999999796e-01 +1.293400000000000105e-01 +6.101199999999999957e-01 +7.508199999999999597e-02 +3.674200000000000244e-01 +1.282500000000000029e-01 +1.024299999999999933e-01 +1.190699999999999953e-01 +3.447700000000000209e-01 +1.852699999999999902e-01 +2.795900000000000052e-01 +9.911899999999999877e-02 +1.539899999999999880e-01 +2.065200000000000091e-01 +3.170700000000000185e-01 +3.253499999999999726e-01 +1.791600000000000137e-01 +3.020700000000000052e-01 +1.738999999999999990e-01 +5.319099999999999939e-01 +5.729999999999999538e-01 +3.335500000000000131e-01 +1.718000000000000083e-02 +1.243699999999999944e-01 +4.421999999999999820e-01 +5.967399999999999788e-02 +9.243300000000000127e-02 +5.050600000000000228e-02 +7.140100000000000335e-01 +1.588499999999999912e-01 +2.451899999999999913e-01 +1.740200000000000080e-01 +4.964100000000000179e-01 +2.764499999999999735e-01 +1.264299999999999868e-01 +5.444300000000000007e-03 +5.704599999999999671e-01 +7.078099999999999670e-02 +3.421299999999999897e-01 +1.239600000000000007e-01 +3.886399999999999855e-01 +4.641699999999999993e-02 +2.838999999999999857e-02 +1.672399999999999928e-02 +2.327299999999999924e-01 +1.455100000000000005e-01 +3.973099999999999965e-01 +1.585699999999999887e-01 +3.121300000000000185e-01 +2.262699999999999989e-01 +9.782599999999999629e-02 +3.769600000000000173e-01 +2.514900000000000121e-02 +1.057600000000000068e-01 +3.904500000000000193e-01 +1.399700000000000111e-01 +6.925499999999999989e-01 +1.612800000000000067e-01 +3.171100000000000030e-01 +4.008799999999999863e-02 +4.362800000000000011e-01 +9.673800000000000454e-02 +1.360800000000000030e-02 +1.643699999999999883e-01 +5.953399999999999803e-01 +6.607300000000000673e-02 +4.238199999999999745e-01 +3.677900000000000058e-01 +1.534699999999999953e-01 +3.000900000000000095e-02 +2.362900000000000000e-01 +9.839799999999999935e-02 +5.353499999999999925e-01 +2.329099999999999920e-02 +3.569599999999999856e-02 +2.146800000000000097e-01 +4.431399999999999784e-01 +1.561600000000000011e-03 +4.302000000000000268e-01 +2.810000000000000275e-01 +1.998199999999999976e-01 +4.470600000000000129e-01 +4.447300000000000142e-01 +3.924199999999999910e-01 +4.746600000000000263e-01 +3.020300000000000207e-01 +8.879599999999999715e-01 +3.379599999999999826e-01 +8.155400000000000149e-02 +2.772299999999999764e-01 +4.818500000000000005e-01 +2.715299999999999936e-01 +2.396699999999999942e-01 +2.399799999999999989e-01 +2.871199999999999863e-01 +4.475000000000000089e-01 +4.697599999999999693e-02 +6.684199999999999864e-02 +4.740500000000000269e-01 +3.316299999999999804e-01 +6.284499999999999809e-02 +1.672399999999999998e-01 +4.002499999999999947e-01 +2.123599999999999932e-01 +3.255000000000000115e-01 +2.341000000000000025e-01 +4.306299999999999711e-02 +5.380700000000000066e-02 +5.847700000000000120e-02 +9.190900000000000458e-02 +5.547900000000000054e-01 +7.043800000000000061e-02 +5.692700000000000538e-01 +3.300400000000000000e-01 +3.131999999999999784e-01 +3.983500000000000235e-02 +2.979800000000000226e-01 +6.795700000000000005e-03 +8.781600000000000517e-02 +8.675199999999999578e-02 +6.733799999999999786e-01 +1.367700000000000027e-01 +1.440200000000000091e-01 +3.967399999999999816e-01 +2.291799999999999948e-01 +2.914599999999999969e-01 +5.372900000000000453e-01 +1.069299999999999973e-01 +1.708999999999999964e-01 +4.787399999999999989e-02 +4.840499999999999803e-01 +2.865699999999999914e-01 +1.019400000000000028e-01 +1.105000000000000010e-01 +1.455700000000000049e-01 +1.274299999999999877e-01 +4.882299999999999973e-01 +3.158500000000000196e-02 +5.733499999999999708e-02 +2.139399999999999913e-01 +5.300599999999999756e-01 +9.122700000000000253e-02 +2.592400000000000260e-01 +6.940799999999999748e-02 +5.536200000000000010e-01 +2.000500000000000056e-01 +5.148399999999999643e-01 +3.471799999999999886e-02 +3.257499999999999840e-01 +3.035900000000000265e-01 +4.074699999999999850e-02 +2.157300000000000051e-01 +2.964999999999999858e-01 +1.411100000000000132e-01 +5.131899999999999656e-02 +5.964500000000000357e-01 +3.349800000000000000e-01 +2.792299999999999782e-01 +5.303999999999999687e-02 +1.501599999999999879e-01 +5.124400000000000066e-01 +5.474400000000000377e-01 +4.836599999999999788e-01 +1.721100000000000130e-01 +1.066300000000000026e-01 +4.868600000000000150e-01 +2.885599999999999832e-01 +2.176700000000000162e-02 +9.375999999999999612e-02 +3.631699999999999928e-01 +2.546599999999999975e-01 +2.003199999999999981e-01 +3.204200000000000104e-02 +3.126400000000000012e-02 +2.463100000000000012e-01 +1.205500000000000044e-01 +3.995299999999999963e-01 +4.375600000000000045e-01 +7.211100000000000287e-01 +3.386700000000000266e-01 +9.910599999999999965e-02 +1.530100000000000071e-01 +1.936700000000000088e-01 +1.754100000000000104e-02 +2.228400000000000103e-01 +7.343399999999999928e-01 +2.682700000000000085e-01 +2.069300000000000028e-01 +3.412899999999999961e-02 +8.740000000000000546e-02 +2.608199999999999963e-01 +4.209100000000000064e-01 +3.352999999999999869e-01 +1.503400000000000014e-01 +9.303000000000000158e-02 +1.862800000000000011e-01 +3.330299999999999927e-01 +2.357100000000000029e-01 +1.102200000000000055e-02 +2.318800000000000028e-01 +1.930099999999999871e-01 +1.880699999999999872e-01 +4.869800000000000240e-01 +1.902500000000000024e-01 +8.283999999999999968e-05 +3.401699999999999724e-01 +2.884900000000000242e-01 +5.166500000000000259e-02 +1.362800000000000122e-01 +5.102799999999999558e-01 +2.752800000000000247e-01 +3.012599999999999723e-01 +1.946200000000000013e-02 +3.592300000000000094e-03 +5.079199999999999687e-02 +4.020900000000000030e-01 +5.883199999999999541e-01 +7.572600000000000442e-01 +1.993199999999999972e-01 +4.352199999999999819e-02 +5.149399999999999811e-02 +1.010999999999999954e-01 +9.110600000000000642e-02 +5.621600000000000208e-02 +2.600299999999999834e-01 +2.719599999999999795e-01 +3.930100000000000260e-02 +2.397600000000000009e-01 +1.357500000000000026e-02 +6.238399999999999501e-01 +3.484999999999999903e-02 +2.309799999999999909e-01 +4.093700000000000117e-01 +4.316200000000000037e-01 +2.471599999999999839e-02 +4.668999999999999817e-01 +1.517999999999999905e-01 +6.921499999999999875e-02 +4.495000000000000107e-01 +8.863000000000000045e-02 +7.272199999999999498e-02 +1.641000000000000097e-02 +1.046599999999999961e-02 +1.338199999999999945e-01 +5.921699999999999742e-01 +6.486600000000000144e-01 +6.236800000000000122e-01 +1.412799999999999889e-01 +1.352700000000000014e-01 +4.002700000000000147e-01 +2.285600000000000132e-01 +5.554599999999999815e-02 +4.019699999999999940e-01 +5.144699999999999829e-01 +1.903400000000000092e-01 +1.581799999999999873e-02 +4.038999999999999813e-01 +1.368900000000000117e-01 +3.279000000000000248e-01 +2.318500000000000005e-01 +4.575299999999999923e-01 +5.936199999999999810e-02 +3.419099999999999917e-01 +5.804399999999999560e-01 +1.062199999999999950e-01 +5.316600000000000215e-01 +6.370599999999999596e-01 +5.534799999999999720e-01 +5.910499999999999782e-02 +1.613199999999999912e-01 +5.541500000000000314e-01 +4.032600000000000073e-01 +3.648399999999999976e-01 +6.046200000000000185e-02 +6.019499999999999851e-02 +1.714600000000000152e-02 +3.069000000000000061e-01 +3.444900000000000184e-01 +2.068699999999999983e-01 +2.072799999999999920e-01 +5.935599999999999904e-02 +5.902199999999999808e-02 +5.619999999999999996e-02 +5.731100000000000083e-01 +7.542900000000000160e-01 +4.333699999999999792e-04 +2.234500000000000097e-01 +4.561999999999999944e-01 +1.294599999999999917e-01 +6.109400000000000247e-02 +3.566199999999999926e-01 +3.519200000000000106e-01 +4.026299999999999879e-01 +1.494900000000000048e-02 +3.912399999999999767e-01 +1.670899999999999885e-01 +8.427700000000000469e-02 +2.470400000000000096e-01 +6.307599999999999318e-02 +3.815299999999999803e-01 +1.708600000000000119e-01 +3.296000000000000041e-01 +3.115800000000000236e-01 +1.638799999999999979e-01 +1.459600000000000064e-01 +1.643499999999999961e-01 +1.539899999999999880e-01 +2.648400000000000198e-01 +1.489399999999999925e-02 +7.106400000000000217e-02 +5.995000000000000329e-01 +1.800700000000000078e-01 +2.775799999999999934e-01 +4.258399999999999963e-01 +9.049000000000000099e-02 +3.398899999999999838e-02 +1.378500000000000003e-01 +2.369600000000000040e-01 +1.915600000000000080e-01 +6.880200000000000378e-03 +8.250399999999999956e-01 +6.054899999999999727e-01 +3.857300000000000173e-01 +6.018799999999999845e-02 +1.961800000000000002e-02 +2.405400000000000038e-01 +9.065600000000000047e-02 +1.181999999999999995e-01 +6.236800000000000122e-01 +1.365699999999999970e-01 +1.999199999999999866e-01 +1.806200000000000028e-01 +4.002499999999999947e-01 +3.229500000000000148e-01 +1.230500000000000066e-01 +1.205100000000000060e-01 +2.605399999999999938e-01 +1.040900000000000020e-01 +6.334199999999999831e-01 +2.745000000000000218e-01 +4.485299999999999704e-02 +7.631299999999999750e-01 +7.358999999999999986e-01 +6.514600000000000390e-01 +3.820299999999999807e-01 +1.949899999999999967e-01 +5.906500000000000083e-01 +1.597200000000000009e-01 +2.799499999999999766e-01 +5.932500000000000273e-02 +1.206399999999999972e-01 +4.132899999999999907e-01 +1.816200000000000037e-01 +2.808899999999999730e-01 +1.126700000000000063e-01 +1.598900000000000043e-01 +4.635699999999999821e-01 +5.857099999999999529e-01 +1.405299999999999883e-01 +5.205100000000000005e-02 +2.824699999999999989e-01 +3.429900000000000171e-01 +5.435699999999999976e-01 +2.651100000000000123e-01 +4.196199999999999930e-01 +5.709999999999999520e-01 +9.742499999999999771e-02 +1.188599999999999934e-01 +5.844200000000000506e-01 +1.411199999999999954e-01 +3.999799999999999883e-02 +9.702399999999999913e-02 +2.961099999999999843e-01 +2.591800000000000215e-01 +2.898600000000000065e-01 +3.380199999999999871e-01 +1.770200000000000107e-01 +2.501399999999999735e-01 +7.483800000000000452e-01 +7.004599999999999715e-02 +3.697199999999999931e-01 +8.771800000000000430e-02 +3.621699999999999919e-01 +1.384599999999999997e-01 +7.103599999999999914e-01 +9.806299999999999739e-02 +1.739600000000000035e-01 +2.785500000000000198e-01 +3.216000000000000109e-02 +4.200900000000000190e-01 +2.685199999999999809e-01 +2.775299999999999989e-02 +2.437499999999999944e-01 +3.639100000000000112e-01 +2.057799999999999907e-01 +1.385099999999999942e-01 +1.196300000000000002e-01 +5.949399999999999827e-02 +2.396699999999999942e-01 +1.453500000000000070e-01 +6.837300000000000322e-02 +2.726000000000000090e-01 +3.459599999999999898e-01 +2.736500000000000044e-01 +1.466399999999999995e-02 +3.593700000000000228e-01 +4.856400000000000300e-02 +1.014100000000000001e-01 +3.698100000000000276e-01 +5.291699999999999876e-02 +5.188399999999999956e-02 +4.670300000000000007e-01 +2.217999999999999972e-01 +1.880300000000000027e-01 +6.265500000000000513e-01 +7.145500000000000185e-01 +2.189500000000000057e-01 +7.195599999999999774e-01 +2.945900000000000185e-01 +2.163299999999999945e-01 +2.819299999999999931e-02 +3.629600000000000048e-01 +6.887999999999999678e-01 +3.578000000000000069e-01 +3.715999999999999859e-01 +1.039000000000000062e-01 +1.879099999999999937e-01 +3.861299999999999732e-01 +6.536000000000000143e-02 +6.528899999999999981e-02 +3.129299999999999859e-01 +1.932999999999999996e-01 +4.534199999999999897e-01 +1.808699999999999891e-02 +5.015199999999999658e-01 +5.162400000000000322e-01 +6.007099999999999662e-01 +9.561300000000000354e-02 +3.012000000000000233e-01 +1.576200000000000101e-01 +5.299199999999999466e-01 +6.047600000000000198e-03 +4.797699999999999743e-01 +5.934299999999999992e-02 +2.769800000000000040e-01 +7.441400000000000237e-01 +6.618499999999999384e-02 +1.513299999999999923e-01 +7.073199999999999488e-01 +1.298700000000000132e-01 +5.152000000000000329e-02 +6.099999999999999867e-01 +2.408500000000000085e-01 +3.268599999999999839e-01 +3.009299999999999753e-01 +4.863600000000000145e-01 +1.437700000000000089e-01 +4.986800000000000122e-01 +3.223300000000000054e-01 +3.681499999999999773e-01 +5.798900000000000166e-01 +1.174499999999999988e-01 +3.879299999999999971e-01 +3.224099999999999744e-01 +9.724199999999999511e-02 +4.275499999999999787e-03 +1.578799999999999926e-01 +1.366499999999999937e-01 +4.422999999999999848e-02 +2.943700000000000205e-01 +1.038099999999999960e-02 +1.145300000000000068e-01 +2.754699999999999857e-02 +2.764199999999999990e-01 +6.351700000000000401e-02 +3.489099999999999840e-02 +1.562800000000000022e-01 +4.078600000000000281e-02 +2.770799999999999930e-01 +3.757900000000000129e-02 +1.013400000000000065e-02 +1.470499999999999863e-01 +5.204299999999999482e-01 +8.360800000000000176e-02 +2.447300000000000170e-02 +3.469300000000000161e-01 +4.634300000000000086e-01 +7.047499999999999876e-01 +1.070699999999999985e-01 +1.892500000000000016e-01 +3.115700000000000136e-01 +2.534600000000000047e-02 +1.155700000000000061e-01 +7.551499999999999879e-02 +2.623599999999999821e-01 +7.820299999999999474e-02 +5.686000000000000082e-02 +4.401200000000000112e-01 +1.891899999999999832e-02 +2.106500000000000039e-01 +3.481399999999999946e-03 +2.734199999999999964e-01 +8.757099999999999884e-01 +2.012200000000000100e-01 +1.079100000000000024e-02 +5.799299999999999455e-01 +6.161900000000000155e-01 +3.044799999999999729e-01 +4.483699999999999908e-01 +2.772999999999999909e-01 +4.628700000000000037e-01 +2.738999999999999768e-01 +6.537100000000000133e-01 +6.491900000000000448e-02 +2.490300000000000014e-01 +2.058999999999999997e-01 +3.650700000000000056e-01 +1.999100000000000044e-01 +2.615299999999999847e-01 +8.279999999999999860e-02 +5.316999999999999504e-01 +5.564600000000000102e-02 +2.147100000000000120e-01 +2.102499999999999925e-01 +5.592099999999999849e-02 +1.262500000000000011e-01 +7.974699999999999844e-02 +3.650699999999999779e-02 +2.606600000000000028e-01 +2.254700000000000107e-02 +1.870699999999999863e-01 +3.647099999999999786e-01 +2.543799999999999881e-02 +5.936099999999999710e-01 +3.692799999999999971e-01 +5.832100000000000062e-01 +2.857499999999999971e-02 +9.729699999999999460e-02 +1.524000000000000077e-01 +5.365899999999999836e-02 +5.077599999999999891e-01 +1.529300000000000104e-01 +5.307400000000000312e-02 +7.918600000000000638e-02 +4.637200000000000211e-01 +2.268100000000000116e-01 +6.552599999999999536e-01 +1.348900000000000099e-01 +1.181999999999999995e-01 +2.253400000000000125e-01 +1.423599999999999866e-01 +4.666199999999999792e-01 +1.795100000000000168e-02 +1.299099999999999977e-01 +6.256299999999999362e-02 +3.486000000000000210e-01 +8.351600000000000690e-02 +4.985299999999999732e-01 +2.948100000000000165e-01 +4.841100000000000264e-02 +2.892099999999999879e-03 +8.668900000000000217e-02 +3.227300000000000169e-01 +4.764499999999999846e-01 +4.414799999999999836e-01 +7.518800000000000483e-02 +1.455899999999999972e-01 +1.942699999999999982e-02 +3.759199999999999764e-01 +4.020799999999999930e-01 +2.479999999999999982e-01 +2.932899999999999952e-01 +3.759300000000000141e-02 +7.274800000000000155e-01 +1.162799999999999945e-01 +5.463299999999999823e-01 +2.797899999999999832e-01 +5.076300000000000257e-01 +6.639500000000000401e-01 +4.072000000000000099e-03 +1.151900000000000007e-01 +4.765099999999999891e-01 +4.236599999999999810e-01 +3.178000000000000269e-01 +2.706700000000000217e-01 +1.639899999999999969e-01 +2.675200000000000147e-02 +7.001100000000000101e-01 +4.494599999999999984e-02 +8.175899999999999834e-02 +1.431600000000000095e-01 +4.679699999999999971e-01 +1.122599999999999987e-01 +6.204300000000000370e-01 +6.539800000000000058e-01 +4.783499999999999974e-01 +6.580799999999999983e-01 +1.565000000000000002e-01 +2.165199999999999902e-01 +4.894899999999999807e-01 +4.088600000000000012e-01 +4.942599999999999771e-01 +3.054999999999999938e-01 +3.824799999999999867e-01 +5.746400000000000119e-02 +4.441399999999999793e-01 +6.193400000000000294e-02 +9.881900000000000406e-02 +4.392300000000000093e-01 +1.516599999999999893e-01 +2.784400000000000208e-01 +9.818699999999999650e-02 +4.844699999999999701e-02 +1.530700000000000116e-01 +2.213100000000000067e-01 +2.132400000000000129e-01 +2.581100000000000061e-01 +1.810799999999999910e-01 +2.726700000000000235e-01 +4.203799999999999759e-01 +1.350600000000000134e-01 +3.326000000000000068e-01 +1.548299999999999954e-01 +3.430000000000000271e-01 +6.014100000000000001e-02 +2.397799999999999931e-02 +4.223299999999999832e-01 +1.825799999999999923e-01 +2.238700000000000134e-01 +4.797799999999999843e-01 +6.134200000000000069e-02 +2.556599999999999984e-01 +4.672299999999999787e-01 +3.684000000000000052e-01 +4.648999999999999799e-01 +1.430700000000000027e-01 +1.288400000000000101e-01 +3.149000000000000132e-01 +1.789300000000000057e-01 +5.861700000000000244e-02 +1.734900000000000053e-01 +4.499600000000000266e-01 +1.020699999999999941e-01 +4.401999999999999663e-02 +1.644400000000000028e-01 +2.842500000000000027e-01 +2.543199999999999905e-01 +1.628499999999999948e-01 +3.554299999999999821e-02 +6.300400000000000444e-02 +1.980899999999999883e-01 +2.146800000000000097e-01 +6.772200000000000442e-01 +2.056900000000000117e-01 +5.656300000000000217e-02 +7.679999999999999327e-02 +2.683699999999999801e-03 +1.260699999999999876e-01 +5.217200000000000309e-02 +1.589599999999999902e-01 +1.469300000000000050e-01 +5.142299999999999649e-01 +3.235000000000000098e-01 +1.413099999999999912e-01 +7.839000000000000135e-02 From 859b2f5b6b39791932f3fb1fb4f471c841382b71 Mon Sep 17 00:00:00 2001 From: jmoo2880 Date: Tue, 28 Jul 2026 13:27:05 +1000 Subject: [PATCH 8/9] add more unit tests --- tests/unit_tests.py | 62 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/tests/unit_tests.py b/tests/unit_tests.py index 48e2098..508538e 100644 --- a/tests/unit_tests.py +++ b/tests/unit_tests.py @@ -1,4 +1,5 @@ import pycatch22 as catch22 +import catch22_C import pytest import numpy as np @@ -97,3 +98,64 @@ def test_individual_feature_methods(): method(data) except Exception as excinfo: pytest.fail(f"Method {method.__name__} raised an exception: {excinfo}") + +def test_deterministic_output(): + # the same input must always produce identical feature values + tsData = np.random.randn(100) + res1 = catch22.catch22_all(tsData, catch24=True) + res2 = catch22.catch22_all(tsData, catch24=True) + assert res1['names'] == res2['names'], "Feature names differ between identical calls." + assert res1['values'] == res2['values'], "Feature values are not deterministic for identical input." + +def test_input_types_return_identical_values(): + # tuple/list/numpy inputs of the same data must give identical values, not just valid structure + data_as_list = list(np.random.randn(100)) + vals_list = catch22.catch22_all(data_as_list, catch24=True)['values'] + vals_tuple = catch22.catch22_all(tuple(data_as_list), catch24=True)['values'] + vals_numpy = catch22.catch22_all(np.array(data_as_list), catch24=True)['values'] + assert vals_list == vals_tuple, "List and tuple inputs produced different feature values." + assert vals_list == vals_numpy, "List and numpy inputs produced different feature values." + +def test_individual_methods_match_catch22_all(): + # each per-feature C method should return the same value as its entry in catch22_all + data = list(np.random.randn(200)) + res = catch22.catch22_all(data, catch24=True) + for name, val in zip(res['names'], res['values']): + individual = getattr(catch22_C, name)(data) + if np.isnan(val): + assert np.isnan(individual), f"{name}: catch22_all returned NaN but individual method returned {individual}." + else: + assert individual == val, f"{name}: individual method ({individual}) disagrees with catch22_all ({val})." + +def test_catch24_is_superset_of_catch22(): + # catch24 must be the 22 catch22 features (identical values) plus DN_Mean and DN_Spread_Std + data = np.random.randn(100) + res22 = catch22.catch22_all(data, catch24=False) + res24 = catch22.catch22_all(data, catch24=True) + assert res24['names'][:22] == res22['names'], "First 22 catch24 names do not match catch22 names." + assert res24['values'][:22] == res22['values'], "First 22 catch24 values do not match catch22 values." + assert res24['names'][22:] == ['DN_Mean', 'DN_Spread_Std'], "catch24 did not append DN_Mean and DN_Spread_Std." + +def test_catch24_mean_and_std_values(): + # the two extra catch24 features should equal the sample mean and (ddof=1) standard deviation + data = np.random.randn(500) + res = catch22.catch22_all(data, catch24=True) + values = dict(zip(res['names'], res['values'])) + assert np.isclose(values['DN_Mean'], np.mean(data)), "DN_Mean does not match numpy mean." + assert np.isclose(values['DN_Spread_Std'], np.std(data, ddof=1)), "DN_Spread_Std does not match numpy sample std." + +def test_input_not_mutated(): + # catch22_all should not modify the caller's input array + data = np.random.randn(100) + data_copy = data.copy() + catch22.catch22_all(data, catch24=True) + assert np.array_equal(data, data_copy), "Input array was mutated by catch22_all." + +def test_constant_time_series(): + # a flat (zero-variance) series should not crash and should return well-defined mean/std + data = [3.0] * 100 + res = catch22.catch22_all(data, catch24=True) + expected_output(res, catch24=True, short_names=False) + values = dict(zip(res['names'], res['values'])) + assert values['DN_Mean'] == 3.0, f"Expected DN_Mean of 3.0 for constant series, got {values['DN_Mean']}." + assert values['DN_Spread_Std'] == 0.0, f"Expected DN_Spread_Std of 0.0 for constant series, got {values['DN_Spread_Std']}." From 0ba45c0c242dd6bf87a97a58badf27cade9b5545 Mon Sep 17 00:00:00 2001 From: jmoo2880 Date: Tue, 28 Jul 2026 13:28:43 +1000 Subject: [PATCH 9/9] bump version number to v0.5.0 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index de9cddb..a1aa88d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "pycatch22" -version = "0.4.5" +version = "0.5.0" authors = [ {name = "Carl H Lubba"}, {email = "carl.lubba@gmx.de"},