From ab1a49ce39d4230681daae7489e61d6c9cde8c5a Mon Sep 17 00:00:00 2001 From: Gunj Joshi Date: Sun, 30 Aug 2026 13:21:59 +0530 Subject: [PATCH] feat: add fft/base/fftpack/float64/sinqi --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown_pkg_readmes status: passed - task: lint_markdown_docs status: na - task: lint_markdown status: na - task: lint_package_json status: passed - task: lint_repl_help status: passed - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: passed - task: lint_javascript_tests status: passed - task: lint_javascript_benchmarks status: passed - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: passed - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: passed - task: lint_license_headers status: passed --- --- .../fft/base/fftpack/float64/sinqi/README.md | 175 ++++++++++ .../float64/sinqi/benchmark/benchmark.js | 101 ++++++ .../base/fftpack/float64/sinqi/docs/repl.txt | 61 ++++ .../float64/sinqi/docs/types/index.d.ts | 60 ++++ .../fftpack/float64/sinqi/docs/types/test.ts | 95 ++++++ .../fftpack/float64/sinqi/examples/index.js | 45 +++ .../base/fftpack/float64/sinqi/lib/index.js | 56 ++++ .../base/fftpack/float64/sinqi/lib/main.js | 166 +++++++++ .../base/fftpack/float64/sinqi/package.json | 66 ++++ .../sinqi/test/fixtures/c/fftpack/Makefile | 137 ++++++++ .../sinqi/test/fixtures/c/fftpack/large.json | 1 + .../sinqi/test/fixtures/c/fftpack/medium.json | 1 + .../sinqi/test/fixtures/c/fftpack/runner.c | 304 +++++++++++++++++ .../sinqi/test/fixtures/c/fftpack/small.json | 1 + .../base/fftpack/float64/sinqi/test/test.js | 314 ++++++++++++++++++ 15 files changed, 1583 insertions(+) create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/README.md create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/benchmark/benchmark.js create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/docs/repl.txt create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/docs/types/index.d.ts create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/docs/types/test.ts create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/examples/index.js create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/lib/index.js create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/lib/main.js create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/package.json create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/test/fixtures/c/fftpack/Makefile create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/test/fixtures/c/fftpack/large.json create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/test/fixtures/c/fftpack/medium.json create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/test/fixtures/c/fftpack/runner.c create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/test/fixtures/c/fftpack/small.json create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/test/test.js diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/README.md b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/README.md new file mode 100644 index 000000000000..9bcbd34ce497 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/README.md @@ -0,0 +1,175 @@ + + +# sinqi + +> Initialize a double-precision floating-point workspace array for performing a quarter-wave sine transform. + + + +
+ +
+ + + + + +
+ +## Usage + +```javascript +var sinqi = require( '@stdlib/fft/base/fftpack/float64/sinqi' ); +``` + +#### sinqi( N, workspace, strideW, offsetW ) + +Initializes a double-precision floating-point workspace array for performing a quarter-wave sine transform. + +```javascript +var Float64Array = require( '@stdlib/array/float64' ); + +var N = 8; +var workspace = new Float64Array( ( 3*N ) + 34 ); + +var out = sinqi( N, workspace, 1, 0 ); +// returns + +var bool = ( out === workspace ); +// returns true + +var cosineTable = workspace.slice( 0, N ); +// returns [ ~0.98, ~0.92, ~0.83, ~0.7, ~0.56, ~0.38, ~0.2, ~0.0 ] + +var twiddleFactors = workspace.slice( 2*N, 3*N ); +// returns [ ~0.707, ~0.707, 0, 0, 0, 0, 0, 0 ] + +var factors = workspace.slice( 3*N, ( 3*N ) + 4 ); +// returns [ 8, 2, 2, 4 ] +``` + +The function accepts the following arguments: + +- **N**: length of the sequence to transform. +- **workspace**: workspace [`Float64Array`][@stdlib/array/float64]. +- **strideW**: stride length for `workspace`. +- **offsetW**: starting index for `workspace`. + +
+ + + + + +
+ +## Notes + +- The workspace array is divided into four sections: + + ```text + size = N N N 2+ceil(log2(N)/2) + ↓ ↓ ↓ ↓ + | cosine table | scratch / workspace | twiddle factors | radix factor table | + ↑ ↑ ↑ ↑ + i = 0 ... N ... 2N ... 3N ... + ``` + + - **cosine table**: a table of precomputed cosine coefficients used by quarter-wave sine transforms. + - **scratch/workspace**: used as a scratch space when performing transforms. This section is not updated during initialization. + - **twiddle factors**: a table of reusable complex-exponential constants stored as cosine/sine pairs. + - **radix factor table**: a table containing the sequence length `N`, the number of factors into which `N` was decomposed, and the individual integer radix factors. + +- In general, a workspace array should have `3N + 34` indexed elements (as `log2(N)/2 ≤ 32` for all `2^64`). During initialization, only the sections for storing the cosine coefficients, twiddle factors, and the factorization of `N` are updated. + +- The radix factor table is comprised as follows: + + ```text + | sequence_length | number_of_factors | integer_factors | + ``` + +
+ + + +
+ +## Examples + + + +```javascript +var Float64Array = require( '@stdlib/array/float64' ); +var zeroTo = require( '@stdlib/array/zero-to' ); +var logEach = require( '@stdlib/console/log-each' ); +var sinqi = require( '@stdlib/fft/base/fftpack/float64/sinqi' ); + +var N = 8; +var workspace = new Float64Array( ( 3*N ) + 34 ); + +sinqi( N, workspace, 1, 0 ); +console.log( 'Sequence length: %d', N ); + +console.log( 'Cosine table:' ); +var idx = zeroTo( N, 'float64' ); +logEach( ' workspace[ %d ] = %0.4f', idx, workspace.slice( 0, N ) ); + +console.log( 'Twiddle factors:' ); +idx = zeroTo( N, 'float64' ); +logEach( ' workspace[ %d ] = %0.4f', idx, workspace.slice( 2*N, 3*N ) ); + +console.log( 'Factorization:' ); +var nf = workspace[ (3*N)+1 ]; + +console.log( ' number of factors: %d', nf ); +idx = zeroTo( nf, 'float64' ); +logEach( ' factor[ %d ]: %d', idx, workspace.slice( (3*N)+2, (3*N)+2+nf ) ); +``` + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/benchmark/benchmark.js b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/benchmark/benchmark.js new file mode 100644 index 000000000000..6eca980065f6 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/benchmark/benchmark.js @@ -0,0 +1,101 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var bench = require( '@stdlib/bench' ); +var format = require( '@stdlib/string/format' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var Float64Array = require( '@stdlib/array/float64' ); +var pkg = require( './../package.json' ).name; +var sinqi = require( './../lib' ); + + +// FUNCTIONS // + +/** +* Creates a benchmark function. +* +* @private +* @param {PositiveInteger} N - sequence length +* @returns {Function} benchmark function +*/ +function createBenchmark( N ) { + var workspace = new Float64Array( ( 3*N ) + 34 ); + return benchmark; + + /** + * Benchmark function. + * + * @private + * @param {Benchmark} b - benchmark instance + */ + function benchmark( b ) { + var i; + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + sinqi( N, workspace, 1, 0 ); + if ( isnan( workspace[ 2*N ] ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnan( workspace[ 2*N ] ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); + } +} + + +// MAIN // + +/** +* Main execution sequence. +* +* @private +*/ +function main() { + var lengths; + var N; + var f; + var i; + + lengths = [ + 8, + 16, + 32, + 64, + 128, + 256, + 512, + 1024 + ]; + + for ( i = 0; i < lengths.length; i++ ) { + N = lengths[ i ]; + f = createBenchmark( N ); + bench( format( '%s:N=%d', pkg, N ), f ); + } +} + +main(); diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/docs/repl.txt b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/docs/repl.txt new file mode 100644 index 000000000000..99620ae6be2e --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/docs/repl.txt @@ -0,0 +1,61 @@ + +{{alias}}( N, workspace, strideW, offsetW ) + Initializes a double-precision floating-point workspace array for performing + a quarter-wave sine transform. + + The workspace array is divided into four sections: + + 1. cosine table: the section ranges from indices 0 to N-1 and is used to + store a table of precomputed cosine coefficients used by quarter-wave sine + transforms. + + 2. scratch/workspace: the section ranges from indices N to 2N-1 and is used + while performing transforms. This section is not updated during + initialization. + + 3. twiddle factors: the section ranges from indices 2N to 3N-1 and stores a + table of reusable complex exponential constants as cosine/sine pairs. + + 4. radix factor table: the section starts at index 3N and stores the + sequence length N, the number of factors into which N was decomposed, and + the individual integer radix factors. + + Any remaining array space remains as unused storage. + + Parameters + ---------- + N: integer + Length of the sequence. + + workspace: Float64Array + Workspace array. + + strideW: integer + Stride length for `workspace`. + + offsetW: integer + Starting index for `workspace`. + + Returns + ------- + out: Float64Array + Workspace array. + + Examples + -------- + > var N = 8; + > var workspace = new {{alias:@stdlib/array/float64}}( ( 3*N ) + 34 ); + > var out = {{alias}}( N, workspace, 1, 0 ) + + > var bool = ( out === workspace ) + true + > var cosineTable = workspace.slice( 0, N ) + [ ~0.98, ~0.92, ~0.83, ~0.7, ~0.56, ~0.38, ~0.2, ~0.0 ] + > var twiddleFactors = workspace.slice( 2*N, 3*N ) + [ ~0.707, ~0.707, 0, 0, 0, 0, 0, 0 ] + > var factors = workspace.slice( 3*N, ( 3*N ) + 4 ) + [ 8, 2, 2, 4 ] + + See Also + -------- + diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/docs/types/index.d.ts b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/docs/types/index.d.ts new file mode 100644 index 000000000000..45208451a73e --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/docs/types/index.d.ts @@ -0,0 +1,60 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +// TypeScript Version: 4.1 + +/** +* Initializes a double-precision floating-point workspace array for performing a quarter-wave sine transform. +* +* ## Notes +* +* - The workspace array should have a length of at least `( 3*N ) + 34` elements. +* +* @param N - length of the sequence +* @param workspace - workspace array +* @param strideW - stride length for `workspace` +* @param offsetW - starting index for `workspace` +* @returns workspace array +* +* @example +* var Float64Array = require( '@stdlib/array/float64' ); +* +* var N = 8; +* var workspace = new Float64Array( ( 3*N ) + 34 ); +* +* var out = sinqi( N, workspace, 1, 0 ); +* // returns +* +* var bool = ( out === workspace ); +* // returns true +* +* var cosineTable = workspace.slice( 0, N ); +* // returns [ ~0.98, ~0.92, ~0.83, ~0.7, ~0.56, ~0.38, ~0.2, ~0.0 ] +* +* var twiddleFactors = workspace.slice( 2*N, 3*N ); +* // returns [ ~0.707, ~0.707, 0, 0, 0, 0, 0, 0 ] +* +* var factors = workspace.slice( 3*N, ( 3*N ) + 4 ); +* // returns [ 8, 2, 2, 4 ] +*/ +declare function sinqi( N: number, workspace: Float64Array, strideW: number, offsetW: number ): Float64Array; + + +// EXPORTS // + +export = sinqi; diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/docs/types/test.ts b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/docs/types/test.ts new file mode 100644 index 000000000000..1d2cb5245c3c --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/docs/types/test.ts @@ -0,0 +1,95 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +import sinqi = require( './index' ); + + +// TESTS // + +// The function returns a Float64Array... +{ + const workspace = new Float64Array( ( 3*8 ) + 34 ); + + sinqi( 8, workspace, 1, 0 ); // $ExpectType Float64Array +} + +// The compiler throws an error if the function is provided a first argument which is not a number... +{ + const workspace = new Float64Array( ( 3*8 ) + 34 ); + + sinqi( '8', workspace, 1, 0 ); // $ExpectError + sinqi( true, workspace, 1, 0 ); // $ExpectError + sinqi( false, workspace, 1, 0 ); // $ExpectError + sinqi( null, workspace, 1, 0 ); // $ExpectError + sinqi( void 0, workspace, 1, 0 ); // $ExpectError + sinqi( [], workspace, 1, 0 ); // $ExpectError + sinqi( {}, workspace, 1, 0 ); // $ExpectError + sinqi( ( x: number ): number => x, workspace, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a second argument which is not a Float64Array... +{ + sinqi( 8, '50', 1, 0 ); // $ExpectError + sinqi( 8, 50, 1, 0 ); // $ExpectError + sinqi( 8, true, 1, 0 ); // $ExpectError + sinqi( 8, false, 1, 0 ); // $ExpectError + sinqi( 8, null, 1, 0 ); // $ExpectError + sinqi( 8, void 0, 1, 0 ); // $ExpectError + sinqi( 8, [], 1, 0 ); // $ExpectError + sinqi( 8, {}, 1, 0 ); // $ExpectError + sinqi( 8, ( x: number ): number => x, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a third argument which is not a number... +{ + const workspace = new Float64Array( ( 3*8 ) + 34 ); + + sinqi( 8, workspace, '1', 0 ); // $ExpectError + sinqi( 8, workspace, true, 0 ); // $ExpectError + sinqi( 8, workspace, false, 0 ); // $ExpectError + sinqi( 8, workspace, null, 0 ); // $ExpectError + sinqi( 8, workspace, void 0, 0 ); // $ExpectError + sinqi( 8, workspace, [], 0 ); // $ExpectError + sinqi( 8, workspace, {}, 0 ); // $ExpectError + sinqi( 8, workspace, ( x: number ): number => x, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a fourth argument which is not a number... +{ + const workspace = new Float64Array( ( 3*8 ) + 34 ); + + sinqi( 8, workspace, 1, '0' ); // $ExpectError + sinqi( 8, workspace, 1, true ); // $ExpectError + sinqi( 8, workspace, 1, false ); // $ExpectError + sinqi( 8, workspace, 1, null ); // $ExpectError + sinqi( 8, workspace, 1, void 0 ); // $ExpectError + sinqi( 8, workspace, 1, [] ); // $ExpectError + sinqi( 8, workspace, 1, {} ); // $ExpectError + sinqi( 8, workspace, 1, ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function is provided an unsupported number of arguments... +{ + const workspace = new Float64Array( ( 3*8 ) + 34 ); + + sinqi(); // $ExpectError + sinqi( 8 ); // $ExpectError + sinqi( 8, workspace ); // $ExpectError + sinqi( 8, workspace, 1 ); // $ExpectError + sinqi( 8, workspace, 1, 0, 123 ); // $ExpectError +} diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/examples/index.js b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/examples/index.js new file mode 100644 index 000000000000..a798e42c0383 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/examples/index.js @@ -0,0 +1,45 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +var Float64Array = require( '@stdlib/array/float64' ); +var zeroTo = require( '@stdlib/array/zero-to' ); +var logEach = require( '@stdlib/console/log-each' ); +var sinqi = require( './../lib' ); + +var N = 8; +var workspace = new Float64Array( ( 3*N ) + 34 ); + +sinqi( N, workspace, 1, 0 ); +console.log( 'Sequence length: %d', N ); + +console.log( 'Cosine table:' ); +var idx = zeroTo( N, 'float64' ); +logEach( ' workspace[ %d ] = %0.4f', idx, workspace.slice( 0, N ) ); + +console.log( 'Twiddle factors:' ); +idx = zeroTo( N, 'float64' ); +logEach( ' workspace[ %d ] = %0.4f', idx, workspace.slice( 2*N, 3*N ) ); + +console.log( 'Factorization:' ); +var nf = workspace[ (3*N)+1 ]; + +console.log( ' number of factors: %d', nf ); +idx = zeroTo( nf, 'float64' ); +logEach( ' factor[ %d ]: %d', idx, workspace.slice( (3*N)+2, (3*N)+2+nf ) ); diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/lib/index.js b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/lib/index.js new file mode 100644 index 000000000000..42c6e848e9ff --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/lib/index.js @@ -0,0 +1,56 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +/** +* Initialize a double-precision floating-point workspace array for performing a quarter-wave sine transform. +* +* @module @stdlib/fft/base/fftpack/float64/sinqi +* +* @example +* var Float64Array = require( '@stdlib/array/float64' ); +* var sinqi = require( '@stdlib/fft/base/fftpack/float64/sinqi' ); +* +* var N = 8; +* var workspace = new Float64Array( ( 3*N ) + 34 ); +* +* var out = sinqi( N, workspace, 1, 0 ); +* // returns +* +* var bool = ( out === workspace ); +* // returns true +* +* var cosineTable = workspace.slice( 0, N ); +* // returns [ ~0.98, ~0.92, ~0.83, ~0.7, ~0.56, ~0.38, ~0.2, ~0.0 ] +* +* var twiddleFactors = workspace.slice( 2*N, 3*N ); +* // returns [ ~0.707, ~0.707, 0, 0, 0, 0, 0, 0 ] +* +* var factors = workspace.slice( 3*N, ( 3*N ) + 4 ); +* // returns [ 8, 2, 2, 4 ] +*/ + +// MODULES // + +var main = require( './main.js' ); + + +// EXPORTS // + +module.exports = main; diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/lib/main.js b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/lib/main.js new file mode 100644 index 000000000000..fc8f1579ddd4 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/lib/main.js @@ -0,0 +1,166 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +* +* ## Notice +* +* The original C code and copyright notice are from the [PFFFT library]{@link https://github.com/marton78/pffft/blob/0b4ee12c4ba45a4a8e567550c16d96d1679f50ce/src/fftpack.c}. The implementation follows the original, but has been modified for JavaScript. +* +* ```text +* Copyright (c) 2004 the University Corporation for Atmospheric +* Research ("UCAR"). All rights reserved. Developed by NCAR's +* Computational and Information Systems Laboratory, UCAR, +* www.cisl.ucar.edu. +* +* Redistribution and use of the Software in source and binary forms, +* with or without modification, is permitted provided that the +* following conditions are met: +* +* - Neither the names of NCAR's Computational and Information Systems +* Laboratory, the University Corporation for Atmospheric Research, +* nor the names of its sponsors or contributors may be used to +* endorse or promote products derived from this Software without +* specific prior written permission. +* +* - Redistributions of source code must retain the above copyright +* notices, this list of conditions, and the disclaimer below. +* +* - Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions, and the disclaimer below in the +* documentation and/or other materials provided with the +* distribution. +* +* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +* EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +* NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT +* HOLDERS BE LIABLE FOR ANY CLAIM, INDIRECT, INCIDENTAL, SPECIAL, +* EXEMPLARY, OR CONSEQUENTIAL DAMAGES OR OTHER LIABILITY, WHETHER IN AN +* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE +* SOFTWARE. +* ``` +*/ + +'use strict'; + +// MODULES // + +var cosqi = require( '@stdlib/fft/base/fftpack/float64/cosqi' ); + + +// MAIN // + +/** +* Initializes a double-precision floating-point workspace array for performing a quarter-wave sine transform. +* +* ## Notes +* +* The workspace array is divided into four sections: +* +* ```text +* size = N N N 2+ceil(log2(N)/2) +* ↓ ↓ ↓ ↓ +* | cosine table | scratch/workspace | twiddle factors | radix factor table | +* ↑ ↑ ↑ ↑ +* i = 0 ... N ... 2N ... 3N ... +* ``` +* +* where +* +* - **cosine table**: a table of precomputed cosine coefficients used by quarter-wave sine transforms. +* - **scratch/workspace**: used as a scratch space when performing transforms. This section is not updated during initialization. +* - **twiddle factors**: a table of reusable complex-exponential constants stored as cosine/sine pairs. +* - **radix factor table**: a table containing the radix factorization of `N`. +* +* In general, a workspace array should have `3N + 34` indexed elements (as `log2(N)/2 ≤ 32` for all `2^64`). During initialization, only the sections for storing the cosine coefficients, twiddle factors, and the factorization of `N` are updated. +* +* > Note: FFTPACK only requires `3N+15`, but we increase that number here to accommodate larger workspace arrays, where `N` may exceed `2^30` indexed elements. +* +* The factorization section is comprised as follows: +* +* ```text +* | sequence_length | number_of_factors | integer_factors | +* ``` +* +* The sequence length and number of factors (`nf`) comprise a single element each. Only the first `nf` elements in the integer factors section are written to, with the rest being unused. +* +* As for twiddle factors, these are small, reusable complex-exponential constants that appear inside each "butterfly" stage of a Cooley–Tukey–style FFT. Every arithmetic step in an FFT multiplies one intermediate value by some +* +* ```tex +* W_N^k +* ``` +* +* where `W_N^k` is an N-th root of unity. Formally, in a forward FFT, +* +* ```tex +* W_N^k = e^{-2\pi ik/N} +* ``` +* +* In a backward FFT, +* +* ```tex +* W_N^k = e^{+2\pi ik/N} +* ``` +* +* As may be observed, `W_N^k` for forward and backward FFTs is the same, except the sign of the exponent is flipped. As a consequence, both forward and backward FFT callers can reuse the same set of twiddle factors, with those performing a forward transform (e.g., `sinqf`) multiplying with `(cos,-sin)` and those performing a backward transform (e.g., `sinqb`) multiplying with `(cos,+sin)`. +* +* Because these constants only depend on the transform length `N` (and **not** on the input data), we can pre-compute and store them once, then "twiddle" them (i.e., reuse them with different indices) as we proceed through the factorization. +* +* > As a quick aside regarding the name "twiddle", early FFT papers (notably Gentleman & Sande, 1966) described how you "twiddle" one branch of each butterfly by a complex rotation before adding/subtracting. The coefficients themselves inherited the nickname "twiddle factors," and the term stuck. +* +* By reusing the workspace array when computing multiple transforms of the same length `N`, every subsequent `*f` (forward) or `*b` (backward) call can simply look up the pre-stored twiddle factors instead of recomputing sine and cosine on-the-fly. +* +* In short, twiddle factors are cached roots of unity that allow each stage of the algorithm to rotate data quickly and predictably. +* +* During initialization, `sinqi` first writes the cosine table, and then initializes the remaining three sections using `rffti`. +* +* @param {PositiveInteger} N - length of the sequence to transform +* @param {Float64Array} workspace - workspace array +* @param {integer} strideW - stride length for `workspace` +* @param {NonNegativeInteger} offsetW - starting index for `workspace` +* @returns {Float64Array} workspace array +* +* @example +* var Float64Array = require( '@stdlib/array/float64' ); +* +* var N = 8; +* var workspace = new Float64Array( ( 3*N ) + 34 ); +* +* var out = sinqi( N, workspace, 1, 0 ); +* // returns +* +* var bool = ( out === workspace ); +* // returns true +* +* var cosineTable = workspace.slice( 0, N ); +* // returns [ ~0.98, ~0.92, ~0.83, ~0.7, ~0.56, ~0.38, ~0.2, ~0.0 ] +* +* var twiddleFactors = workspace.slice( 2*N, 3*N ); +* // returns [ ~0.707, ~0.707, 0, 0, 0, 0, 0, 0 ] +* +* var factors = workspace.slice( 3*N, ( 3*N ) + 4 ); +* // returns [ 8, 2, 2, 4 ] +*/ +function sinqi( N, workspace, strideW, offsetW ) { + return cosqi( N, workspace, strideW, offsetW ); +} + + +// EXPORTS // + +module.exports = sinqi; diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/package.json b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/package.json new file mode 100644 index 000000000000..d588da404959 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/package.json @@ -0,0 +1,66 @@ +{ + "name": "@stdlib/fft/base/fftpack/float64/sinqi", + "version": "0.0.0", + "description": "Initialize a double-precision floating-point workspace array for performing a quarter-wave sine transform.", + "license": "Apache-2.0", + "author": { + "name": "The Stdlib Authors", + "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" + }, + "contributors": [ + { + "name": "The Stdlib Authors", + "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" + } + ], + "main": "./lib", + "directories": { + "benchmark": "./benchmark", + "doc": "./docs", + "example": "./examples", + "lib": "./lib", + "test": "./test" + }, + "types": "./docs/types", + "scripts": {}, + "homepage": "https://github.com/stdlib-js/stdlib", + "repository": { + "type": "git", + "url": "git://github.com/stdlib-js/stdlib.git" + }, + "bugs": { + "url": "https://github.com/stdlib-js/stdlib/issues" + }, + "dependencies": {}, + "devDependencies": {}, + "engines": { + "node": ">=0.10.0", + "npm": ">2.7.0" + }, + "os": [ + "aix", + "darwin", + "freebsd", + "linux", + "macos", + "openbsd", + "sunos", + "win32", + "windows" + ], + "keywords": [ + "stdlib", + "fft", + "fftpack", + "sinqi", + "fourier", + "transform", + "twiddle", + "workspace", + "initialization", + "sine", + "double", + "float64" + ], + "__stdlib__": {} +} diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/test/fixtures/c/fftpack/Makefile b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/test/fixtures/c/fftpack/Makefile new file mode 100644 index 000000000000..7ce16281940d --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/test/fixtures/c/fftpack/Makefile @@ -0,0 +1,137 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2026 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +endif + +# Specify the path to FFTPACK: +FFTPACK ?= + +# Specify a list of FFTPACK source files: +FFTPACK_SRC ?= + +# Determine the OS: +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +endif +endif +endif + +# Define the program used for compiling C source files: +ifdef C_COMPILER + CC := $(C_COMPILER) +else + CC := gcc +endif + +# Define the command-line options when compiling C files: +CFLAGS ?= \ + -std=c99 \ + -O3 \ + -Wall \ + -pedantic + +# Determine whether to generate [position independent code][1]: +# +# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options +# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option +ifeq ($(OS), WINNT) + fPIC ?= +else + fPIC ?= -fPIC +endif + +# List of C targets: +c_targets := runner.out + + +# RULES # + +#/ +# Compiles C source files. +# +# @param {string} [C_COMPILER] - C compiler +# @param {string} [CFLAGS] - C compiler flags +# @param {(string|void)} [fPIC] - flag indicating whether to generate position independent code +# +# @example +# make +# +# @example +# make all +#/ +all: $(c_targets) + +.PHONY: all + +#/ +# Compiles C source files. +# +# @private +# @param {string} CC - C compiler +# @param {string} CFLAGS - C compiler flags +# @param {(string|void)} fPIC - flag indicating whether to generate position independent code +#/ +$(c_targets): %.out: %.c + $(QUIET) $(CC) $(CFLAGS) -DFFTPACK_DOUBLE_PRECISION $(fPIC) -o $@ $(FFTPACK_SRC) $< -lm + +#/ +# Generates test fixtures. +# +# @example +# make run +#/ +run: $(c_targets) + $(QUIET) ./$< + +.PHONY: run + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean + +#/ +# Removes generated test fixtures. +# +# @example +# make clean-fixtures +#/ +clean-fixtures: + $(QUIET) -rm -f *.json + +.PHONY: clean-fixtures diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/test/fixtures/c/fftpack/large.json b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/test/fixtures/c/fftpack/large.json new file mode 100644 index 000000000000..a30f2dad0a07 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/test/fixtures/c/fftpack/large.json @@ -0,0 +1 @@ +{"lengths":[182,520,707,663,796,605,690,141,329,583],"offsets":[0,182,702,1409,2072,2868,3473,4163,4304,4633],"cosines":[0.99996275531662915,0.99985102404084947,0.99966481449545286,0.99940414055107041,0.99906902162513944,0.99865948268045612,0.9981755542233175,0.99761727230124764,0.99698467850031336,0.99627781994202647,0.99549674927983323,0.99464152469519274,0.9937122098932426,0.99270887409805397,0.99163159204747497,0.99048044398756319,0.98925551566660874,0.98795689832874645,0.98658468870715954,0.9851389890168738,0.98361990694714363,0.98202755565343036,0.98036205374897345,0.97862352529595531,0.97681209979625916,0.97492791218182362,0.97297110280459076,0.97094181742605201,0.96884020720639019,0.9666664286932195,0.96442064380992509,0.96210301984360058,0.95971372943258759,0.95725295055361581,0.9547208665085456,0.95211766591071412,0.94944354267088538,0.94669869598280598,0.94388333030836757,0.94099765536237645,0.93804188609693195,0.93501624268541483,0.93192095050608681,0.92875624012530233,0.92552234728033345,0.92221951286181036,0.91884798289577718,0.91540800852536641,0.91189984599209006,0.90832375661675402,0.90468000677999105,0.90096886790241915,0.8971906164244231,0.89334553378556314,0.88943390640360986,0.88545602565320991,0.88141218784418141,0.87730269419944207,0.87312785083257083,0.86888796872500662,0.86458336370288247,0.86021435641350075,0.85578127230144752,0.85128444158435124,0.84672419922828424,0.84210088492281177,0.8374148430556887,0.83266642268720636,0.82785597752419093,0.82298386589365635,0.81805045071611282,0.81305609947853252,0.80800118420697664,0.80288608143888252,0.7977111721950163,0.79247684195109047,0.78718348060905019,0.7818314824680298,0.77642124619498165,0.7709531747949796,0.76542767558119951,0.75984516014457881,0.75420604432315719,0.74851074817110119,0.74275969592741442,0.73695331598433678,0.73109204085543333,0.72517630714337655,0.71920655550742452,0.7131832306305963,0.70710678118654757,0.70097765980614946,0.69479632304377226,0.68856323134327702,0.68227884900371749,0.67594364414475439,0.66955808867178579,0.6631226582407953,0.65663783222292027,0.65010409366874433,0.64352192927231477,0.6368918293348893,0.63021428772841359,0.62348980185873359,0.61671887262854308,0.60990200440007281,0.60303970495752024,0.59613248546922537,0.58918086044959372,0.5821853477207708,0.5751464683740698,0.56806474673115581,0.5609407103049896,0.55377488976053313,0.54656781887522088,0.5393200344991993,0.53203207651533657,0.52470448779900813,0.51733781417765679,0.50993260439013599,0.50248941004583303,0.49500878558358147,0.48749128823036003,0.47993747795978642,0.47234791745040378,0.46472317204376862,0.45706380970233751,0.44937040096716135,0.44164351891538467,0.43388373911755818,0.42609163959476548,0.41826780077556519,0.41041280545275693,0.40252723873996754,0.39461168802806834,0.38666674294141884,0.37869299529394779,0.37069103904506751,0.36266147025543211,0.35460488704253557,0.34652188953615992,0.33841307983367058,0.33027906195516715,0.32212044179849075,0.31393782709409007,0.30573182735975302,0.29750305385520298,0.28925211953656776,0.28097963901071932,0.27268622848949386,0.26437250574378884,0.25603909005754721,0.24768660218162589,0.23931566428755782,0.23092689992120563,0.22252093395631445,0.21409839254796631,0.20565990308593662,0.19720609414796211,0.18873759545291671,0.18025503781390587,0.17175905309127604,0.16325027414554949,0.15472933479028123,0.14619686974484827,0.13765351458716818,0.12909990570635696,0.12053668025532323,0.11196447610330791,0.10338393178837031,0.09479568646982231,0.086200379880619543,0.077598652279706345,0.06899114440432505,0.060378497422286063,0.051761352884209494,0.043140352675734663,0.034516138969708218,0.025889354178347337,0.017260640905388574,0.0086306418982192157,6.123233995736766e-17,0.99999543750143483,0.99998175004737233,0.99995893776271016,0.9999270008556107,0.99988593961749794,0.9998357544230555,0.9997764457302234,0.99970801408019294,0.99963046009740297,0.9995437844895334,0.99944798804749868,0.99934307164544123,0.9992290362407229,0.99910588287391644,0.99897361266879592,0.99883222683232664,0.99868172665465382,0.99852211350909126,0.99835338885210856,0.9981755542233175,0.99798861124545868,0.99779256162438623,0.99758740714905236,0.99737314969149116,0.99714979120680114,0.99691733373312796,0.99667577939164542,0.99642513038653613,0.99616538900497154,0.99589655761709095,0.99561863867598022,0.99533163471764863,0.99503554836100661,0.99473038230784139,0.99441613934279216,0.99409282233332519,0.99376043422970717,0.9934189780649787,0.99306845695492629,0.99270887409805397,0.99234023277555439,0.9919625363512784,0.99157578827170501,0.99117999206590912,0.99077515134553018,0.99036126980473838,0.9899383512202018,0.98950639945105112,0.9890654184388451,0.98861541220753424,0.98815638486342405,0.98768834059513777,0.98721128367357791,0.98672521845188765,0.98623014936541065,0.98572608093165093,0.9852130177502314,0.98469096450285232,0.98415992595324797,0.98361990694714363,0.98307091241221101,0.98251294735802386,0.98194601687601168,0.98137012613941343,0.98078528040323043,0.98019148500417841,0.97958874536063856,0.97897706697260856,0.97835645542165173,0.97772691637084685,0.977088455564736,0.97644107882927211,0.97578479207176594,0.97511960128083253,0.97444551252633571,0.97376253195933349,0.97307066581202151,0.97236992039767656,0.97166030211059851,0.97094181742605201,0.9702144729002079,0.96947827517008289,0.96873323095347907,0.96797934704892286,0.96721663033560268,0.96644508777330629,0.96566472640235745,0.96487555334355146,0.96407757579809017,0.96327080104751628,0.96245523645364728,0.96163088945850761,0.96079776758426128,0.95995587843314301,0.95910522968738887,0.95824582910916623,0.95737768454050287,0.95650080390321557,0.95561519519883753,0.9547208665085456,0.95381782599308673,0.95290608189270276,0.9519856425270562,0.95105651629515353,0.95011871167526907,0.94917223722486699,0.9482171015805243,0.94725331345785069,0.94628088165141022,0.94529981503464022,0.94431012255977087,0.94331181325774316,0.94230489623812641,0.94128938068903578,0.94026527587704756,0.93923259114711521,0.93819133592248416,0.93714151970460513,0.93608315207304815,0.93501624268541483,0.93394080127725032,0.93285683766195426,0.93176436173069166,0.93066338345230215,0.92955391287320943,0.92843596011732932,0.9273095353859776,0.92617464895777646,0.92503131118856163,0.92387953251128674,0.922719323435929,0.92155069454939298,0.9203736565154137,0.91918822007445999,0.91799439604363597,0.9167921953165824,0.91558162886337757,0.91436270773043693,0.91313544304041216,0.91189984599209006,0.91065592786029037,0.9094036999957622,0.90814317382508125,0.9068743608505454,0.9055972726500694,0.90431192087707912,0.90301831726040604,0.9017164736041795,0.90040640178771891,0.89908811376542597,0.89776162156667516,0.89642693729570377,0.89508407313150218,0.89373304132770193,0.89237385421246429,0.8910065241883679,0.88963106373229528,0.88824748539531906,0.88685580180258772,0.88545602565320991,0.88404816972013911,0.88263224685005659,0.88120826996325452,0.87977625205351784,0.87833620618800601,0.87688814550713323,0.87543208322444921,0.87396803262651801,0.87249600707279718,0.87101601999551559,0.86952808489955113,0.86803221536230735,0.86652842503358951,0.86501672763547988,0.86349713696221297,0.86196966688004928,0.86043433132714897,0.85889114431344449,0.85734011992051296,0.85578127230144752,0.85421461568072821,0.85264016435409229,0.85105793268840335,0.84946793512152108,0.84787018616216847,0.8462647003898004,0.8446514924544698,0.8430305770766946,0.84140196904732267,0.83976568322739797,0.83812173454802363,0.83647013801022674,0.834810908684821,0.83314406171226929,0.83146961230254524,0.82978757573499506,0.82809796735819763,0.82640080258982451,0.82469609691649937,0.82298386589365646,0.82126412514539904,0.81953689036435651,0.81780217731154115,0.81606000181620486,0.81431037977569387,0.81255332715530426,0.8107888599881361,0.80901699437494745,0.8072377464840067,0.80545113255094591,0.80365716887861205,0.80185587183691853,0.80004725786269559,0.7982313434595405,0.79640814519766712,0.79457767971375426,0.79273996371079436,0.79089501395794048,0.7890428472903539,0.78718348060905019,0.78531693088074495,0.7834432151376991,0.78156235047756328,0.7796743540632225,0.77777924312263813,0.77587703494869242,0.77396774689902925,0.77205139639589682,0.77012800092598788,0.76819757804028055,0.7662601453538781,0.76431572054584829,0.76236432135906196,0.76040596560003093,0.75844067113874603,0.75646845590851353,0.75448933790579176,0.75250333519002677,0.75051046588348769,0.74851074817110119,0.74650420030028564,0.74449084058078463,0.74247068738449984,0.74044375914532334,0.73841007435896955,0.73636965158280632,0.73432250943568556,0.73226866659777357,0.73020814181038018,0.72814095387578848,0.7260671216570822,0.7239866640779743,0.72189960012263443,0.71980594883551507,0.71770572932117838,0.7155989607441211,0.71348566232860067,0.71136585335845903,0.70923955317694698,0.70710678118654757,0.70496755684879897,0.70282189968411724,0.70066982927161781,0.69851136524893709,0.69634652731205293,0.69417533521510544,0.69199780877021611,0.68981396784730775,0.68762383237392233,0.68542742233503984,0.68322475777289549,0.68101585878679716,0.67880074553294178,0.67657943822423139,0.67435195713008877,0.67211832257627269,0.66987855494469184,0.66763267467321952,0.66538070225550672,0.6631226582407953,0.66085856323373038,0.65858843789417254,0.65631230293700882,0.65403017913196437,0.65174208730341221,0.64944804833018366,0.64714808314537797,0.64484221273617059,0.64253045814362275,0.64021284046248805,0.63788938084102154,0.63556010048078526,0.63322502063645614,0.63088416261563085,0.62853754777863213,0.6261851975383137,0.62382713335986473,0.62146337676061414,0.61909394930983397,0.61671887262854308,0.61433816838930932,0.61195185831605192,0.60955996418384351,0.60716250781871128,0.60475951109743753,0.60235099594736063,0.59993698434617415,0.59751749832172729,0.59509255995182297,0.59266219136401688,0.59022641473541537,0.58778525229247314,0.58533872631079054,0.58288685911491034,0.58042967307811322,0.57796719062221502,0.57549943421736105,0.57302642638182133,0.57054818968178533,0.56806474673115581,0.56557612019134262,0.56308233277105568,0.56058340722609823,0.55807936635915845,0.55557023301960229,0.5530560301032641,0.55053678055223843,0.54801250735467011,0.54548323354454475,0.5429489822014788,0.54040977645050825,0.5378656394618786,0.53531659445083235,0.53276266467739786,0.53020387344617725,0.52764024410613275,0.52507180005037524,0.52249856471594891,0.5199205615836191,0.51733781417765679,0.51475034606562486,0.51215818085816212,0.50956134220876903,0.50695985381359043,0.50435373941120076,0.50174302278238636,0.49912772774992875,0.49650787817838798,0.49388349797388348,0.49125461108387752,0.48862124149695496,0.48598341324260619,0.48334115039100606,0.48069447705279583,0.4780434173788618,0.47538799556011624,0.47272823582727524,0.47006416245063914,0.46739579973986961,0.46472317204376862,0.46204630375005651,0.45936521928514851,0.45667994311393295,0.45399049973954686,0.45129691370315361,0.4485992095837178,0.4458974119977821,0.44319154559924134,0.44048163507911903,0.43776770516534047,0.43504978062250876,0.4323278862516774,0.42960204689012443,0.42687228741112665,0.42413863272373109,0.42140110777252926,0.41865973753742813,0.41591454703342362,0.4131655613103708,0.41041280545275693,0.40765630457947083,0.40489608384357556,0.402132168432077,0.39936458356569565,0.39659335449863536,0.39381850651835321,0.39104006494532945,0.38825805513283501,0.38547250246670189,0.38268343236508984,0.3798908702782558,0.37709484168832047,0.37429537210903713,0.37149248708555721,0.36868621219419895,0.36587657304221222,0.36306359526754667,0.3602473045386162,0.35742772655406541,0.35460488704253579,0.35177881176242931,0.34894952650167527,0.34611705707749302,0.34328142933615846,0.34044266915276611,0.33760080243099494,0.3347558551028702,0.33190785312852855,0.32905682249597934,0.32620278922086943,0.32334577934624398,0.32048581894230971,0.31762293410619752,0.31475715096172285,0.31188849565914922,0.30901699437494745,0.30614267331155909,0.30326555869715505,0.30038567678539846,0.29750305385520298,0.2946177162104951,0.29172969017997202,0.28883900211686342,0.28594567839868945,0.28304974542702049,0.28015122962723693,0.27725015744828685,0.27434655536244584,0.27144044986507432,0.26853186747437691,0.26562083473115922,0.26270737819858708,0.25979152446194254,0.25687330012838305,0.25395273182669686,0.25102984620706176,0.24810466994080038,0.24517722972013758,0.24224755225795738,0.23931566428755782,0.23638159256240865,0.23344536385590547,0.23050700496112725,0.22756654269059004,0.22462400387600404,0.2216794153680271,0.2187328040360213,0.21578419676780636,0.21283362046941495,0.20988110206484778,0.20692666849582633,0.2039703467215489,0.20101216371844277,0.19805214647991978,0.19509032201612833,0.19212671735370854,0.18916135953554403,0.18619427562051682,0.18322549268325869,0.18025503781390587,0.17728293811785026,0.17430922071549287,0.17133391274199691,0.16835704134703863,0.16537863369456143,0.16239871696252614,0.15941731834266484,0.15643446504023092,0.15345018427375265,0.15046450327478306,0.14747744928765308,0.14448904956922135,0.14149933138862716,0.13850832202704014,0.13551604877741186,0.13252253894422761,0.12952781984325559,0.12653191880129944,0.12353486315594711,0.12053668025532323,0.1175373974578377,0.1145370421319379,0.11153564165585711,0.1085332234173665,0.10552981481352347,0.10252544325042331,0.099520136142947732,0.09651392091451523,0.093506824996831564,0.09049887582963792,0.087490100860462258,0.084480527544367107,0.081470183343700778,0.078459095727844999,0.075447292172966099,0.072434800161762403,0.069421647183215321,0.066407860732336704,0.063393468309919696,0.060378497422286286,0.057362975581036937,0.054346930302800259,0.051330389108980308,0.048313379525507266,0.045295929082584473,0.042278065314439013,0.039259815759068666,0.036241207957992405,0.033222269455997315,0.030203027800888991,0.027183510543238441,0.024163745236132416,0.021143759434920455,0.018123580696964108,0.015103236581386131,0.012082754648817468,0.0090621624611475337,0.0060414875812709237,0.0030207575728376955,6.123233995736766e-17,0.99999753185453477,0.99999012743032256,0.99997778676391391,0.99996050991622576,0.99993829697254166,0.99991114804251124,0.99987906326014953,0.99984204278383626,0.99980008679631538,0.99975319550469377,0.9997013691404405,0.99964460795938559,0.9995829122417188,0.99951628229198808,0.99944471843909821,0.99936822103630929,0.9992867904612347,0.99920042711583945,0.99910913142643809,0.99901290384369279,0.9989117448426108,0.99880565492254259,0.99869463460717856,0.99857868444454756,0.99845780500701309,0.99833199689127139,0.99820126071834792,0.99806559713359433,0.99792500680668572,0.99777949043161662,0.99762904872669844,0.99747368243455514,0.9973133923221198,0.99714817918063114,0.99697804382562927,0.99680298709695181,0.99662300985872976,0.99643811299938312,0.99624829743161647,0.99605356409241474,0.99585391394303835,0.99564934796901861,0.99543986718015254,0.99522547261049832,0.99500616531836983,0.99478194638633188,0.99455281692119413,0.99431877805400637,0.99407983094005259,0.99383597675884516,0.99358721671411931,0.99333355203382712,0.99307498397013094,0.99281151379939825,0.99254314282219436,0.99226987236327646,0.99199170377158719,0.99170863842024737,0.99142067770655018,0.99112782305195324,0.99083007590207262,0.99052743772667462,0.99021991001966947,0.9899074942991033,0.98959019210715116,0.9892680050101087,0.9889409345983855,0.98860898248649598,0.9882721503130526,0.98793043974075667,0.98758385245639124,0.98723239017081188,0.98687605461893868,0.98651484755974761,0.98614877077626173,0.98577782607554265,0.98540201528868132,0.98502134027078903,0.98463580290098851,0.98424540508240432,0.98385014874215371,0.98345003583133694,0.9830450683250278,0.98263524822226367,0.98222057754603576,0.98180105834327935,0.98137669268486305,0.9809474826655793,0.98051343040413363,0.98007453804313427,0.97963080774908162,0.97918224171235757,0.97872884214721445,0.97827061129176451,0.97780755140796849,0.97733966478162482,0.97686695372235788,0.976389420563607,0.97590706766261492,0.97541989740041568,0.97492791218182362,0.97443111443542074,0.97392950661354538,0.97342309119227965,0.97291187067143747,0.97239584757455189,0.97187502444886309,0.97134940386530566,0.97081898841849557,0.97028378072671795,0.96974378343191348,0.96919899919966612,0.96864943071918919,0.96809508070331252,0.9675359518884693,0.96697204703468187,0.96640336892554868,0.96582992036823023,0.96525170419343564,0.96466872325540798,0.96408098043191093,0.96348847862421383,0.96289122075707823,0.96228920977874255,0.96168244866090824,0.96107094039872454,0.96045468801077427,0.95983369453905854,0.9592079630489817,0.95857749662933645,0.9579422983922885,0.95730237147336106,0.95665771903141972,0.95600834424865633,0.95535425033057375,0.95469544050596999,0.95403191802692189,0.95336368616876954,0.95269074823009969,0.95201310753272994,0.95133076742169165,0.9506437312652144,0.94995200245470846,0.94925558440474833,0.94855448055305636,0.94784869436048491,0.94713822931100022,0.94642308891166416,0.945703276692618,0.94497879620706415,0.94424965103124925,0.94351584476444583,0.94277738102893516,0.94203426346998909,0.9412864957558521,0.94053408157772322,0.93977702464973767,0.93901532870894866,0.9382489975153091,0.93747803485165249,0.93670244452367502,0.93592223035991617,0.93513739621173986,0.93434794595331605,0.93355388348160073,0.93275521271631723,0.931951937599937,0.93114406209765954,0.93033159019739342,0.92951452590973627,0.92869287326795524,0.92786663632796662,0.92703581916831657,0.92620042589016016,0.92536046061724153,0.92451592749587386,0.92366683069491828,0.92281317440576349,0.92195496284230549,0.92109220024092608,0.92022489086047254,0.9193530389822363,0.91847664890993186,0.91759572496967556,0.91671027150996443,0.91582029290165401,0.9149257935379379,0.91402677783432518,0.91312325022861884,0.91221521518089399,0.91130267717347579,0.91038564071091743,0.90946411031997765,0.90853809054959855,0.90760758597088309,0.9066726011770726,0.90573314078352396,0.90478920942768715,0.90384081176908193,0.902887952489275,0.90193063629185699,0.90096886790241915,0.90000265206853003,0.89903199355971219,0.89805689716741832,0.89707736770500801,0.89609341000772358,0.89510502893266652,0.89411222935877332,0.89311501618679157,0.89211339433925563,0.89110736876046215,0.89009694441644627,0.88908212629495653,0.88806291940543025,0.88703932877896929,0.88601135946831477,0.88497901654782229,0.88394230511343663,0.88290123028266743,0.88185579719456253,0.88080601100968403,0.87975187691008194,0.87869340009926877,0.87763058580219411,0.87656343926521851,0.87549196575608768,0.87441617056390653,0.87333605899911326,0.87225163639345282,0.87116290809995045,0.87006987949288594,0.86897255596776646,0.86787094294130018,0.86676504585136949,0.86565487015700404,0.86454042133835418,0.86342170489666348,0.86229872635424187,0.86117149125443782,0.86004000516161205,0.85890427366110911,0.85776430235922974,0.8566200968832044,0.85547166288116383,0.85431900602211264,0.8531621319959003,0.85200104651319353,0.85083575530544819,0.84966626412488067,0.84849257874443962,0.8473147049577775,0.8461326485792221,0.8449464154437476,0.84375601140694589,0.84256144234499752,0.84136271415464303,0.84015983275315331,0.8389528040783012,0.83774163408833124,0.83652632876193078,0.83530689409820058,0.834083336116625,0.8328556608570421,0.83162387437961405,0.83038798276479753,0.8291479921133128,0.82790390854611473,0.82665573820436156,0.82540348724938528,0.82414716186266102,0.82288676824577622,0.82162231262040064,0.82035380122825496,0.81908124033108054,0.81780463621060817,0.81652399516852725,0.81523932352645456,0.81395062762590287,0.81265791382825026,0.81136118851470806,0.81006045808628968,0.80875572896377901,0.8074470075876985,0.80613430041827749,0.80481761393542073,0.80349695463867565,0.80217232904720082,0.80084374369973332,0.7995112051545572,0.7981747199894702,0.79683429480175205,0.79548993620813147,0.79414165084475352,0.79278944536714691,0.79143332645019149,0.79007330078808469,0.78870937509430872,0.78734155610159784,0.78596985056190438,0.78459426524636589,0.7832148069452719,0.7818314824680298,0.78044429864313158,0.77905326231812044,0.77765838035955603,0.77625965965298172,0.7748571071028898,0.77345072963268768,0.77204053418466378,0.77062652771995299,0.7692087172185027,0.76778710967903796,0.76636171211902737,0.76493253157464769,0.76349957510074995,0.76206284977082428,0.76062236267696481,0.75917812092983505,0.75773013165863234,0.75627840201105312,0.75482293915325693,0.75336375026983227,0.75190084256375977,0.75043422325637765,0.74896389958734522,0.74748987881460816,0.74601216821436167,0.74453077508101517,0.74304570672715631,0.74155697048351432,0.74006457369892464,0.7385685237402918,0.73706882799255369,0.73556549385864489,0.73405852875946009,0.7325479401338173,0.73103373543842143,0.72951592214782768,0.72799450775440355,0.72646949976829367,0.72494090571738068,0.72340873314724974,0.72187298962115032,0.72033368271995935,0.71879082004214345,0.71724440920372168,0.71569445783822794,0.71414097359667283,0.71258396414750691,0.71102343717658156,0.70945940038711175,0.70789186149963845,0.70632082825198961,0.70474630839924213,0.70316830971368427,0.70158683998477667,0.7000019070191138,0.69841351864038614,0.69682168268934064,0.69522640702374283,0.69362769951833736,0.69202556806480964,0.69042002057174678,0.68881106496459799,0.68719870918563664,0.68558296119391959,0.68396382896524921,0.68234132049213314,0.68071544378374527,0.67908620686588594,0.67745361778094271,0.67581768458785041,0.67417841536205081,0.67253581819545416,0.67088990119639769,0.6692406724896065,0.66758814021615354,0.66593231253341878,0.66427319761504933,0.66261080365091918,0.66094513884708861,0.65927621142576343,0.65760402962525533,0.65592860169993994,0.65424993592021696,0.65256804057246898,0.65088292395902092,0.64919459439809857,0.64750306022378767,0.64580832978599334,0.64411041145039771,0.64240931359841991,0.64070504462717381,0.63899761294942681,0.63728702699355844,0.63557329520351857,0.633856426038786,0.63213642797432634,0.63041330950055052,0.6286870791232726,0.62695774536366788,0.62522531675823101,0.62348980185873348,0.62175120923218186,0.62000954746077519,0.61826482514186243,0.61651705088790076,0.61476623332641245,0.61301238109994205,0.61125550286601471,0.6094956072970924,0.60773270308053162,0.60596679891854055,0.60419790352813574,0.60242602564109959,0.60065117400393675,0.59887335737783143,0.59709258453860359,0.59530886427666596,0.59352220539698086,0.59173261671901634,0.58994010707670252,0.5881446853183887,0.58634636030679899,0.58454514091898868,0.5827410360463009,0.58093405459432212,0.57912420548283838,0.57731149764579159,0.57549594003123494,0.57367754160128892,0.57185631133209736,0.57003225821378267,0.5682053912504017,0.56637571945990128,0.56454325187407373,0.56270799753851197,0.56086996551256552,0.55902916486929521,0.55718560469542844,0.55533929409131477,0.55349024217088028,0.55163845806158318,0.54978395090436882,0.5479267298536239,0.54606680407713171,0.54420418275602733,0.5423388750847512,0.5404708902710047,0.53860023753570463,0.53672692611293671,0.53485096524991116,0.53297236420691707,0.53109113225727511,0.52920727868729367,0.52732081279622245,0.52543174389620528,0.52354008131223628,0.52164583438211232,0.51974901245638694,0.51784962489832531,0.51594768108385725,0.51404319040153013,0.5121361622524645,0.51022660605030612,0.50831453122117964,0.5063999472036429,0.5044828634486398,0.50256328941945305,0.50064123459165888,0.49871670845307908,0.49678972050373438,0.49486028025579798,0.49292839723354848,0.4909940809733222,0.4890573410234671,0.48711818694429526,0.48517662830803493,0.48323267469878467,0.48128633571246515,0.47933762095677157,0.47738654005112696,0.47543310262663463,0.47347731832602957,0.4715191968036323,0.46955874772530054,0.46759598076838083,0.46563090562166221,0.46366353198532739,0.46169386957090464,0.45972192810122092,0.45774771731035319,0.45577124694357984,0.45379252675733389,0.451811566519154,0.44982837600763581,0.44784296501238491,0.4458553433339677,0.44386552078386277,0.44187350718441321,0.43987931236877797,0.43788294618088242,0.43588441847537102,0.43388373911755818,0.43188091798337885,0.42987596495934105,0.42786888994247646,0.42585970284029079,0.42384841357071634,0.4218350320620623,0.41981956825296518,0.4178020320923409,0.41578243353933503,0.41376078256327325,0.41173708914361312,0.40971136326989438,0.40768361494168881,0.40565385416855232,0.40362209096997476,0.40158833537533006,0.39955259742382765,0.39751488716446259,0.39547521465596508,0.39343358996675226,0.39139002317487775,0.38934452436798134,0.38729710364324055,0.38524777110731984,0.38319653687632038,0.38114341107573141,0.3790884038403794,0.37703152531437739,0.3749727856510765,0.37291219501301487,0.37084976357186694,0.36878550150839456,0.36671941901239596,0.36465152628265513,0.36258183352689227,0.3605103509617133,0.35843708881255831,0.35636205731365267,0.35428526670795579,0.35220672724710989,0.35012644919139058,0.34804444280965585,0.34596071837929449,0.34387528618617674,0.34178815652460276,0.33969933969725136,0.33760884601513041,0.33551668579752497,0.33342286937194626,0.33132740707408148,0.32923030924774233,0.32713158624481342,0.32503124842520226,0.32292930615678761,0.32082576981536759,0.31872064978460979,0.31661395645599932,0.31450570022878693,0.31239589150993891,0.31028454071408518,0.30817165826346704,0.30605725458788718,0.30394134012465751,0.30182392531854702,0.29970502062173138,0.29758463649374084,0.29546278340140791,0.29333947181881703,0.29121471222725209,0.28908851511514411,0.28696089097802113,0.28483185031845437,0.28270140364600821,0.28056956147718748,0.27843633433538478,0.2763017327508302,0.27416576726053843,0.27202844840825607,0.269889786744411,0.26774979282605965,0.26560847721683412,0.26346585048689142,0.26132192321286074,0.2591767059777903,0.25703020937109683,0.25488244398851218,0.25273342043203073,0.2505831493098582,0.24843164123635861,0.24627890683200135,0.24412495672330992,0.24196980154280895,0.23981345192897097,0.23765591852616522,0.23549721198460452,0.23333734296029193,0.23117632211496955,0.22901416011606521,0.22685086763663911,0.22468645535533258,0.22252093395631445,0.22035431412922801,0.21818660656913924,0.21601782197648356,0.2138479710570122,0.21167706452174084,0.2095051130868959,0.20733212747386115,0.20515811840912593,0.20298309662423175,0.20080707285571844,0.19863005784507262,0.19645206233867399,0.19427309708774154,0.1920931728482819,0.18991230038103557,0.18773049045142304,0.18554775382949315,0.18336410128986907,0.18117954361169464,0.17899409157858226,0.17680775597855927,0.17462054760401377,0.17243247725164287,0.17024355572239863,0.16805379382143409,0.16586320235805127,0.1636717921456472,0.16147957400165974,0.15928655874751571,0.1570927572085766,0.15489818021408464,0.15270283859711054,0.15050674319449944,0.14830990484681672,0.1461123343982958,0.14391404269678401,0.14171504059368825,0.1395153389439229,0.1373149486058555,0.13511388044125247,0.13291214531522683,0.13070975409618393,0.12850671765576716,0.12630304686880553,0.12409875261325937,0.12189384577016599,0.11968833722358725,0.11748223786055523,0.11527555857101773,0.11306831024778596,0.11086050378648003,0.10865215008547449,0.10644326004584591,0.10423384457131837,0.10202391456820901,0.099813480945375482,0.097602554614161452,0.095391146488342071,0.093179267484071432,0.09096692851982803,0.088754140516360186,0.086540914396633473,0.084327261085776123,0.082113191511024475,0.079898716601670305,0.077683847289006236,0.075468594506271136,0.07325296918859743,0.071036982272956531,0.068820644698104075,0.06660396740452737,0.06438696133439066,0.062169637431480462,0.059952006641152855,0.057734079910278825,0.055515868187189538,0.053297382421623622,0.051078633564672467,0.048859632568725483,0.046640390387417387,0.044420917975573446,0.042201226289154764,0.039981326285205496,0.037761228921798125,0.035540945157978676,0.033320485953713987,0.031099862269836912,0.028879085067991556,0.026658165310580493,0.024437113960710011,0.022215941982135296,0.019994660339207666,0.017773279996819765,0.015551811920350793,0.013330267075613684,0.011108656428800332,0.0088869909464267781,0.0066652815952804173,0.0044435393423651916,0.0022217751548467887,6.123233995736766e-17,0.99999719338722015,0.99998877356463456,0.99997474057950564,0.99995509451060383,0.9999298354682068,0.99989896359409935,0.99986247906157222,0.99982038207542134,0.9997726728719466,0.99971935171895043,0.99966041891573665,0.99959587479310819,0.9995257197133659,0.99944995407030601,0.99936857828921821,0.99928159282688311,0.99918899817156959,0.99909079484303265,0.99898698339250935,0.99887756440271702,0.99876253848784913,0.99864190629357197,0.99851566849702134,0.99838382580679841,0.99824637896296586,0.9981033287370441,0.99795467593200604,0.99780042138227354,0.9976405659537122,0.99747511054362648,0.99730405608075501,0.99712740352526508,0.99694515386874727,0.99675730813421004,0.99656386737607383,0.99636483268016529,0.99616020516371107,0.99594998597533158,0.99573417629503447,0.99551277733420829,0.99528579033561526,0.99505321657338452,0.99481505735300524,0.99457131401131871,0.99432198791651127,0.99406708046810666,0.99380659309695774,0.993540527265239,0.99326888446643791,0.99299166622534674,0.99270887409805397,0.99242050967193574,0.99212657456564657,0.99182707042911045,0.99152199894351167,0.99121136182128533,0.99089516080610762,0.99057339767288621,0.99024607422775013,0.98991319230803976,0.9895747537822962,0.98923076055025139,0.98888121454281697,0.98852611772207344,0.98816547208125938,0.98779927964476011,0.98742754246809639,0.98705026263791285,0.98666744227196623,0.98627908351911364,0.9858851885593003,0.98548575960354756,0.98508079889394018,0.98467030870361394,0.98425429133674291,0.98383274912852636,0.98340568444517584,0.98297309968390179,0.98253499727289995,0.98209137967133797,0.98164224936934164,0.98118760888798051,0.98072746077925421,0.98026180762607795,0.97979065204226767,0.97931399667252617,0.97883184419242752,0.97834419730840216,0.97785105875772227,0.9773524313084857,0.97684831775960068,0.97633872094077045,0.97582364371247676,0.97530308896596429,0.97477705962322436,0.97424555863697815,0.97370858899066071,0.97316615369840376,0.97261825580501893,0.97206489838598065,0.97150608454740894,0.97094181742605201,0.97037210018926845,0.96979693603500949,0.96921632819180137,0.96863027991872686,0.96803879450540709,0.96744187527198322,0.96683952556909736,0.96623174877787432,0.96561854830990246,0.96499992760721409,0.96437589014226688,0.96374643941792393,0.96311157896743405,0.96247131235441208,0.96182564317281904,0.9611745750469417,0.96051811163137235,0.95985625661098795,0.95918901370093035,0.95851638664658434,0.9578383792235573,0.95715499523765779,0.95646623852487433,0.95577211295135367,0.95507262241337931,0.95436777083734936,0.95365756217975461,0.9529420004271566,0.95222108959616469,0.95149483373341415,0.95076323691554288,0.9500263032491687,0.94928403687086682,0.94853644194714548,0.9477835226744239,0.9470252832790077,0.94626172801706554,0.94549286117460551,0.94471868706745044,0.94393921004121428,0.94315443447127745,0.9423643647627622,0.94156900535050803,0.94076836069904668,0.93996243530257717,0.93915123368494058,0.93833476039959463,0.93751302002958781,0.93668601718753441,0.93585375651558778,0.93501624268541483,0.93417348039816961,0.93332547438446689,0.93247222940435581,0.93161375024729276,0.93075004173211495,0.92988110870701324,0.92900695604950445,0.92812758866640466,0.92724301149380151,0.92635322949702603,0.92545824767062534,0.92455807103833432,0.92365270465304739,0.92274215359679035,0.92182642298069151,0.92090551794495357,0.91997944365882423,0.91904820532056719,0.91811180815743332,0.91717025742563107,0.91622355841029723,0.91527171642546679,0.91431473681404363,0.91335262494777003,0.91238538622719689,0.91141302608165342,0.9104355499692165,0.9094529633766798,0.90846527181952375,0.90747248084188359,0.90647459601651925,0.90547162294478323,0.90446356725658961,0.90345043461038232,0.90243223069310341,0.90140896122016123,0.90038063193539808,0.8993472486110583,0.89830881704775534,0.89726534307443995,0.89621683254836693,0.89516329135506234,0.89410472540829045,0.89304114065002083,0.89197254305039442,0.89089893860769087,0.8898203333482938,0.88873673332665803,0.88764814462527475,0.88655457335463805,0.88545602565320991,0.88435250768738649,0.88324402565146309,0.8821305857675994,0.88101219428578448,0.87988885748380219,0.87876058166719528,0.87762737316923034,0.87648923835086234,0.87534618360069882,0.87419821533496378,0.87304533999746203,0.87188756405954304,0.87072489402006403,0.86955733640535449,0.86838489776917849,0.86720758469269865,0.86602540378443871,0.86483836168024675,0.86364646504325793,0.86244972056385683,0.86124813495964037,0.86004171497537929,0.85883046738298119,0.85761439898145209,0.85639351659685825,0.85516782708228767,0.8539373373178123,0.85270205421044853,0.85146198469411916,0.85021713572961422,0.84896751430455153,0.84771312743333804,0.8464539821571303,0.84519008554379482,0.84392144468786812,0.84264806671051762,0.84136995875950127,0.8400871280091271,0.83879958166021362,0.8375073269400487,0.83621037110234964,0.83490872142722217,0.83360238522111951,0.83229136981680141,0.83097568257329302,0.82965533087584364,0.82833032213588509,0.82700066379099046,0.8256663633048319,0.82432742816713878,0.82298386589365635,0.82163568402610265,0.82028289013212641,0.81892549180526508,0.81756349666490147,0.81619691235622172,0.81482574655017159,0.81345000694341429,0.81206970125828626,0.81068483724275475,0.80929542267037402,0.80790146534024121,0.8065029730769534,0.80509995373056309,0.80369241517653423,0.80228036531569835,0.80086381207420965,0.79944276340350118,0.79801722728023949,0.79658721170628055,0.79515272470862419,0.79371377433936952,0.79227036867566958,0.79082251581968599,0.78937022389854328,0.78791350106428359,0.78645235549382086,0.7849867953888946,0.78351682897602448,0.78204246450646342,0.78056371025615168,0.77908057452567048,0.77759306564019515,0.77610119194944871,0.77460496182765459,0.77310438367348999,0.77159946591003847,0.77009021698474311,0.76857664536935844,0.76705875955990321,0.76553656807661297,0.76401007946389188,0.76247930229026473,0.76094424514832915,0.75940491665470711,0.75786132544999674,0.75631348019872346,0.75476138958929195,0.7532050623339368,0.75164450716867404,0.75007973285325169,0.74851074817110108,0.74693756192928695,0.74536018295845874,0.74377862011280027,0.74219288226998037,0.74060297833110356,0.73900891722065909,0.73741070788647156,0.73580835929965049,0.73420188045453971,0.73259128036866761,0.73097656808269573,0.72935775266036817,0.72773484318846116,0.72610784877673162,0.72447677855786607,0.7228416416874297,0.72120244734381456,0.71955920472818813,0.71791192306444196,0.71626061159913945,0.71460527960146458,0.71294593636316905,0.71128259119852066,0.70961525344425114,0.70794393245950349,0.70626863762577907,0.70458937834688595,0.70290616404888506,0.70121900418003802,0.69952790821075372,0.69783288563353518,0.69613394596292655,0.6944310987354595,0.69272435350959938,0.69101371986569227,0.68929920740591066,0.68758082575419965,0.68585858455622306,0.68413249347930927,0.68240256221239681,0.68066880046598,0.67893121797205469,0.67718982448406329,0.67544462977684039,0.67369564364655721,0.67194287591066759,0.6701863364078523,0.6684260349979636,0.66666198156197043,0.66489418600190253,0.66312265824079519,0.66134740822263338,0.6595684459122958,0.65778578129549925,0.65599942437874215,0.65420938518924898,0.65241567377491338,0.65061830020424216,0.64881727456629856,0.64701260697064555,0.64520430754728975,0.64339238644662344,0.64157685383936869,0.63975771991651931,0.63793499488928429,0.63610868898903061,0.63427881246722495,0.63244537559537728,0.63060838866498192,0.62876786198746126,0.62692380589410646,0.62507623073602037,0.62322514688405906,0.62137056472877372,0.61951249468035241,0.61765094716856128,0.61578593264268644,0.6139174615714752,0.61204554444307702,0.61017019176498499,0.60829141406397669,0.60640922188605528,0.60452362579638963,0.60263463637925641,0.60074226423797894,0.59884651999486893,0.5969474142911666,0.59504495778698041,0.593139161161228,0.59123003511157568,0.58931759035437847,0.58740183762462017,0.58548278767585316,0.58356045128013745,0.58163483922798098,0.57970596232827853,0.577773831408251,0.57583845731338545,0.57389985090737283,0.57195802307204846,0.57001298470732975,0.56806474673115581,0.56611332007942594,0.56415871570593801,0.56220094458232739,0.5602400176980048,0.55827594606009534,0.55630874069337599,0.55433841264021422,0.5523649729605058,0.55038843273161286,0.54840880304830142,0.54642609502267958,0.54444031978413465,0.54245148847927083,0.54045961227184691,0.53846470234271349,0.53646676988974951,0.53446582612780102,0.53246188228861646,0.53045494962078465,0.52844503938967125,0.52643216287735584,0.52441633138256816,0.52239755622062534,0.52037584872336751,0.51835122023909463,0.51632368213250368,0.51429324578462299,0.51225992259274977,0.51022372397038585,0.50818466134717333,0.50614274616883059,0.50409798989708809,0.5020504040096242,0.50000000000000011,0.49794678937759596,0.49589078366754641,0.49383199441067516,0.49177043316343055,0.48970611149782101,0.48763904100134964,0.48556923327694934,0.48349669994291772,0.48142145263285191,0.47934350299558298,0.47726286269511126,0.47517954341053997,0.47309355683601007,0.47100491468063477,0.46891362866843356,0.4668197105382666,0.46472317204376862,0.46262402495328309,0.46052228104979592,0.45841795213087005,0.45631105000857825,0.45420158650943732,0.4520895734743417,0.44997502275849688,0.44785794623135311,0.44573835577653831,0.44361626329179193,0.44149168068889771,0.43936461989361675,0.43723509284562156,0.43510311149842756,0.43296868781932696,0.43083183378932127,0.42869256140305423,0.42655088266874419,0.424406809608117,0.42226035425633834,0.42011152866194607,0.41796034488678335,0.41580681500592975,0.41365095110763422,0.41149276529324708,0.40933226967715208,0.40716947638669854,0.40500439756213297,0.40283704535653114,0.40066743193572968,0.39849556947825848,0.39632147017527125,0.39414514623047769,0.39196660986007509,0.38978587329267939,0.38760294876925688,0.38541784854305527,0.38323058487953504,0.38104117005630045,0.37884961636303061,0.37665593610141102,0.37446014158506363,0.37226224513947842,0.37006225910194385,0.36786019582147772,0.36565606765875802,0.36344988698605318,0.36124166618715303,0.35903141765729879,0.35681915380311435,0.35460488704253557,0.35238862980474123,0.35017039453008308,0.34795019367001606,0.34572803968702837,0.3435039450545716,0.3412779222569905,0.339049983789453,0.3368201421578807,0.33458840987887734,0.33235479947965962,0.33011932349798656,0.32788199448208905,0.32564282499059954,0.32340182759248137,0.32115901486695853,0.31891439940344446,0.31666799380147242,0.31441981067062363,0.3121698626304571,0.30991816231043862,0.30766472234987002,0.30540955539781806,0.30315267411304359,0.30089409116393018,0.29863381922841353,0.29637187099390949,0.29410825915724426,0.29184299642458128,0.28957609551135138,0.28730756914218064,0.28503743005081927,0.28276569098007004,0.28049236468171679,0.27821746391645275,0.27594100145380884,0.27366299007208278,0.27138344255826613,0.26910237170797313,0.26681979032536912,0.26453571122309816,0.26225014722221146,0.25996311115209536,0.25767461585039908,0.25538467416296284,0.25309329894374616,0.25080050305475488,0.24850629936596941,0.24621070075527257,0.24391372010837717,0.24161537031875366,0.23931566428755782,0.23701461492355838,0.23471223514306436,0.23240853786985263,0.23010353603509603,0.22779724257728959,0.22548967044217863,0.22318083258268606,0.2208707419588396,0.21855941153769895,0.21624685429328311,0.21393308320649754,0.21161811126506103,0.20930195146343364,0.20698461680274258,0.20466612029070999,0.20234647494157976,0.20002569377604446,0.19770378982117223,0.19538077611033372,0.19305666568312885,0.19073147158531342,0.18840520686872689,0.18607788459121755,0.18374951781657031,0.18142011961443305,0.17908970306024333,0.17675828123515486,0.17442586722596429,0.17209247412503748,0.1697581150302363,0.16742280304484458,0.16508655127749577,0.16274937284209776,0.16041128085776024,0.15807228844872093,0.1557324087442718,0.15339165487868545,0.15105003999114125,0.14870757722565175,0.14636427973098862,0.14402016066060969,0.14167523317258379,0.13932951042951788,0.13698300559848278,0.13463573185093938,0.13228770236266471,0.1299389303136779,0.12758942888816624,0.12523921127441093,0.12288829066471406,0.12053668025532301,0.11818439324635746,0.11583144284173497,0.11347784224909689,0.11112360467973423,0.10876874334851348,0.10641327147380246,0.10405720227739611,0.10170054898444202,0.099343324823367149,0.096985543025802173,0.094627216826508168,0.092268359463302016,0.089908984176982162,0.087549104211254267,0.085188732812656875,0.082827883230487051,0.080466568716725792,0.078104802525964537,0.075742597915329377,0.073379968144407642,0.071016926475173145,0.068653486171911776,0.066289660501147055,0.063925462731565671,0.061560906133942946,0.059196003981068203,0.056830769547671099,0.054465216110345792,0.052099356947477291,0.049733205339166718,0.047366774567156766,0.045000077914757131,0.042633128666769951,0.040265940109415241,0.037898525530256098,0.035530898218124995,0.033163071463047852,0.030795058556170325,0.028426872789682998,0.026058527456746743,0.023690035851418118,0.021321411268574737,0.018952667003840653,0.016583816353511714,0.014214872614480721,0.011845849084163661,0.0094767590604237437,0.0071076158414976436,0.0047384327259206334,0.0023692230124519324,6.123233995736766e-17,0.99999805292140698,0.99999221169321018,0.99998247633815629,0.99996884689415633,0.99995132341428539,0.99992990596678277,0.99990459463505132,0.99987538951765731,0.99984229072833009,0.99980529839596155,0.9997644126646057,0.99971963369347794,0.99967096165695468,0.99961839674457242,0.9995619391610272,0.99950158912617382,0.99943734687502461,0.99936921265774914,0.99929718673967272,0.99922126940127565,0.99914146093819189,0.99905776166120808,0.99897017189626258,0.99887869198444357,0.9987833222819883,0.99868406316028113,0.998580915005853,0.99847387822037881,0.99836295322067681,0.99824814043870613,0.99812944032156603,0.99800685333149342,0.9978803799458611,0.99775002065717644,0.99761577597307904,0.99747764641633874,0.9973356325248538,0.99718973485164863,0.99703995396487166,0.9968862904477932,0.99672874489880314,0.99656731793140862,0.99640201017423169,0.99623282227100673,0.99605975488057796,0.99588280867689694,0.99570198434902013,0.99551728260110595,0.99532870415241181,0.99513624973729198,0.99493992010519428,0.99473971602065692,0.99453563826330638,0.99432768762785317,0.9941158649240901,0.99390017097688776,0.99368060662619251,0.99345717272702239,0.99322987014946418,0.99299869977866961,0.99276366251485271,0.99252475927328543,0.99228199098429448,0.99203535859325775,0.99178486306060065,0.9915305053617921,0.991272286487341,0.99101020744279211,0.9907442692487225,0.99047447294073732,0.99020081956946582,0.98992331020055713,0.98964194591467647,0.98935672780750061,0.98906765698971355,0.9887747345870026,0.98847796174005365,0.98817733960454668,0.98787286935115171,0.98756455216552375,0.98725238924829828,0.98693638181508681,0.98661653109647196,0.98629283833800274,0.98596530480018951,0.98563393175849956,0.98529872050335143,0.9849596723401105,0.98461678858908352,0.98427007058551386,0.98391951967957592,0.98356513723636996,0.98320692463591686,0.98284488327315289,0.98247901455792397,0.98210931991498041,0.98173580078397127,0.98135845861943871,0.98097729489081253,0.98059231108240408,0.98020350869340089,0.97981088923786064,0.97941445424470508,0.97901420525771454,0.97861014383552125,0.97820227155160422,0.97779058999428192,0.97737510076670719,0.97695580548686045,0.97653270578754336,0.97610580331637264,0.9756750997357736,0.9752405967229737,0.97480229596999612,0.97436019918365258,0.97391430808553781,0.97346462441202153,0.97301114991424276,0.97255388635810258,0.97209283552425696,0.97162799920811049,0.97115937921980877,0.97068697738423171,0.97021079554098633,0.96973083554439943,0.96924709926351094,0.96875958858206579,0.96826830539850717,0.96777325162596917,0.96727442919226903,0.96677184003989947,0.96626548612602181,0.96575536942245788,0.96524149191568209,0.96472385560681428,0.96420246251161168,0.96367731466046103,0.96314841409837038,0.96261576288496187,0.96207936309446285,0.96153921681569854,0.96099532615208361,0.96044769322161339,0.959896320156857,0.95934120910494758,0.95878236222757496,0.95821978170097655,0.95765346971592957,0.95708342847774175,0.95650966020624328,0.955932167135778,0.95535095151519478,0.95476601560783858,0.95417736169154177,0.95358499205861513,0.95298890901583921,0.9523891148844551,0.95178561200015543,0.95117840271307519,0.9505674893877829,0.94995287440327092,0.94933456015294682,0.94871254904462332,0.94808684350050954,0.94745744595720116,0.94682435886567118,0.9461875846912603,0.94554712591366707,0.94490298502693881,0.94425516453946134,0.94360366697394948,0.94294849486743704,0.94228965077126736,0.94162713725108282,0.94096095688681514,0.94029111227267559,0.93961760601714417,0.93894044074296013,0.93825961908711164,0.93757514370082506,0.93688701724955525,0.93619524241297469,0.9354998218849635,0.93480075837359833,0.93409805460114248,0.93339171330403481,0.9326817372328795,0.93196812915243488,0.93125089184160292,0.93053002809341856,0.92980554071503851,0.92907743252773056,0.92834570636686231,0.92761036508189054,0.92687141153634967,0.92612884860784117,0.92538267918802175,0.9246329061825922,0.92387953251128674,0.92312256110786073,0.92236199492007986,0.92159783690970831,0.9208300900524975,0.92005875733817455,0.9192838417704301,0.91850534636690717,0.91772327415918942,0.91693762819278879,0.91614841152713422,0.91535562723555941,0.91455927840529105,0.91375936813743674,0.91295589954697265,0.91214887576273185,0.91133829992739179,0.9105241751974622,0.90970650474327275,0.9088852917489606,0.90806053941245846,0.90723225094548132,0.90640042957351485,0.90556507853580215,0.90472620108533153,0.90388380048882355,0.90303788002671859,0.90218844299316381,0.90133549269600066,0.90047903245675165,0.89961906561060756,0.89875559550641437,0.8978886255066606,0.89701815898746351,0.8961441993385566,0.89526674996327615,0.89438581427854802,0.89350139571487408,0.89261349771631926,0.89172212374049808,0.89082727725856081,0.88992896175518033,0.88902718072853826,0.88812193769031189,0.88721323616565984,0.88630107969320859,0.88538547182503902,0.88446641612667187,0.88354391617705452,0.88261797556854693,0.88168859790690723,0.8807557868112782,0.87981954591417277,0.87887987886146035,0.87793678931235197,0.87699028093938669,0.87604035742841668,0.87508702247859371,0.87413027980235369,0.87317013312540304,0.87220658618670399,0.87123964273845955,0.87026930654609969,0.8692955813882659,0.86831847105679716,0.86733797935671464,0.866354110106207,0.86536686713661604,0.86437625429242071,0.86338227543122337,0.86238493442373387,0.86138423515375495,0.86038018151816675,0.85937277742691198,0.85836202680298057,0.85734793358239425,0.85633050171419145,0.85530973516041187,0.85428563789608081,0.8532582139091941,0.85222746720070208,0.85119340178449465,0.85015602168738491,0.84911533094909408,0.84807133362223552,0.84702403377229896,0.84597343547763437,0.84491954282943693,0.84386235993173031,0.8428018909013506,0.84173813986793111,0.84067111097388558,0.83960080837439222,0.83852723623737735,0.83745039874350002,0.83637030008613444,0.83528694447135454,0.83420033611791755,0.83311047925724702,0.83201737813341703,0.83092103700313502,0.82982146013572589,0.82871865181311455,0.82761261632981009,0.82650335799288854,0.82539088112197623,0.82427519004923289,0.82315628911933492,0.8220341826894586,0.82090887512926258,0.81978037082087141,0.81864867415885822,0.8175137895502278,0.81637572141439907,0.8152344741831884,0.81409005230079179,0.81294246022376793,0.81179170242102072,0.81063778337378212,0.80948070757559409,0.80832047953229169,0.80715710376198535,0.80599058479504315,0.80482092717407328,0.80364813545390645,0.80247221420157799,0.80129316799631001,0.80011100142949365,0.79892571910467158,0.79773732563751931,0.79654582565582788,0.79535122379948553,0.79415352472045964,0.79295273308277858,0.7917488535625139,0.79054189084776161,0.78933184963862424,0.7881187346471924,0.78690255059752656,0.78568330222563876,0.78446099427947358,0.78323563151889042,0.78200721871564449,0.78077576065336818,0.77954126212755293,0.77830372794552993,0.77706316292645194,0.77581957190127393,0.7745729597127351,0.77332333121533914,0.77207069127533567,0.77081504477070173,0.76955639659112218,0.76829475163797079,0.76703011482429118,0.76576249107477823,0.76449188532575785,0.76321830252516842,0.76194174763254197,0.76066222561898356,0.75937974146715304,0.75809430017124557,0.75680590673697123,0.7555145661815369,0.75422028353362547,0.75292306383337704,0.75162291213236909,0.75031983349359677,0.74901383299145297,0.74770491571170916,0.74639308675149463,0.74507835121927779,0.74376071423484547,0.74244018092928321,0.741116756444955,0.73979044593548415,0.73846125456573208,0.73712918751177903,0.73579424996090326,0.73445644711156177,0.73311578417336876,0.73177226636707671,0.73042589892455523,0.72907668708877038,0.72772463611376548,0.72636975126463943,0.72501203781752677,0.72365150105957698,0.72228814628893434,0.72092197881471642,0.71955300395699417,0.71818122704677068,0.71680665342596128,0.7154292884473713,0.71404913747467669,0.71266620588240226,0.71128049905590085,0.70989202239133287,0.70850078129564453,0.70710678118654757,0.70571002749249723,0.70431052565267216,0.70290828111695247,0.70150329934589872,0.70009558581073073,0.69868514599330644,0.69727198538610025,0.69585610949218135,0.69443752382519341,0.69301623390933176,0.69159224527932284,0.69016556348040214,0.6887361940682929,0.68730414260918427,0.68586941467970974,0.68443201586692537,0.68299195176828809,0.68154922799163375,0.68010385015515573,0.67865582388738233,0.6772051548271556,0.67575184862360871,0.6742959109361446,0.67283734743441337,0.67137616379829068,0.66991236571785517,0.66844595889336678,0.66697694903524407,0.66550534186404231,0.66403114311043121,0.66255435851517253,0.6610749938290974,0.65959305481308472,0.65810854723803769,0.65662147688486217,0.65513184954444414,0.65363967101762632,0.65214494711518667,0.65064768365781467,0.64914788647609001,0.64764556141045837,0.64614071431120967,0.64463335103845532,0.64312347746210463,0.64161109946184269,0.64009622292710722,0.63857885375706547,0.6370589978605915,0.63553666115624308,0.63401184957223866,0.63248456904643424,0.63095482552630022,0.62942262496889834,0.62788797334085844,0.62635087661835509,0.62481134078708456,0.62326937184224152,0.62172497578849528,0.62017815863996673,0.61862892642020517,0.61707728516216442,0.61552324090817911,0.61396679970994228,0.61240796762848038,0.61084675073413053,0.60928315510651665,0.60771718683452614,0.60614885201628543,0.60457815675913684,0.60300510717961453,0.601429709403421,0.59985196956540265,0.5982718938095265,0.59668948828885593,0.59510475916552674,0.59351771261072317,0.591928354804654,0.59033669193652838,0.58874273020453172,0.58714647581580148,0.58554793498640323,0.58394711394130627,0.58234401891435916,0.58073865614826614,0.57913103189456216,0.57752115241358859,0.5759090239744693,0.57429465285508585,0.57267804534205302,0.57105920773069474,0.5694381463250191,0.56781486743769383,0.56618937739002217,0.56456168251191807,0.56293178914188102,0.56129970362697201,0.55966543232278865,0.55802898159344017,0.55639035781152302,0.55474956735809589,0.55310661662265459,0.55146151200310756,0.54981425990575061,0.54816486674524256,0.54651333894457954,0.54485968293507037,0.54320390515631167,0.54154601205616215,0.53988601009071824,0.53822390572428869,0.53655970542936871,0.53489341568661619,0.53322504298482531,0.53155459382090142,0.52988207469983628,0.52820749213468232,0.52653085264652699,0.52485216276446822,0.52317142902558844,0.5214886579749286,0.51980385616546376,0.51811703015807742,0.51642818652153477,0.51473733183245862,0.51304447267530262,0.51134961564232662,0.50965276733357046,0.5079539343568279,0.50625312332762173,0.50455034086917749,0.50284559361239756,0.50113888819583574,0.49943023126567154,0.4977196294756831,0.49600708948722294,0.49429261796919111,0.4925762215980089,0.49085790705759363,0.48913768103933247,0.48741555024205563,0.48569152137201116,0.48396560114283876,0.48223779627554275,0.48050811349846717,0.47877655954726828,0.47704314116488955,0.47530786510153483,0.47357073811464145,0.47183176696885515,0.47009095843600313,0.46834831929506698,0.46660385633215778,0.46485757634048858,0.4631094861203478,0.46135959247907377,0.45960790223102754,0.45785442219756589,0.45609915920701588,0.45434212009464775,0.45258331170264748,0.45082274088009194,0.44906041448292017,0.44729633937390839,0.44553052242264257,0.44376297050549107,0.44199369050557907,0.44022268931276126,0.43844997382359419,0.43667555094131083,0.43489942757579308,0.43312161064354399,0.43134210706766241,0.42956092377781518,0.4277780677102096,0.4259935458075676,0.42420736501909823,0.4224195323004698,0.42063005461378417,0.41883893892754892,0.41704619221664962,0.41525182146232426,0.41345583365213412,0.41165823577993826,0.40985903484586561,0.40805823785628692,0.40625585182378898,0.40445188376714647,0.40264634071129424,0.4008392296873009,0.39903055773234103,0.39722033188966716,0.39540855920858342,0.39359524674441759,0.39178040155849314,0.38996403071810259,0.38814614129647973,0.38632674037277132,0.38450583503201097,0.38268343236508984,0.38085953946873058,0.37903416344545909,0.37720731140357605,0.37537899045713069,0.37354920772589234,0.37171797033532222,0.36988528541654681,0.36805116010632932,0.36621560154704169,0.3643786168866377,0.36254021327862451,0.3607003978820344,0.35885917786139787,0.35701656038671531,0.3551725526334284,0.35332716178239354,0.35148039501985245,0.34963225953740534,0.34778276253198248,0.34593191120581557,0.34407971276641075,0.34222617442652009,0.34037130340411287,0.3385151069223486,0.33665759220954833,0.3347987664991659,0.33293863702976106,0.33107721104497057,0.32921449579347928,0.32735049852899351,0.32548522651021178,0.32361868700079605,0.32175088726934481,0.31988183458936403,0.31801153623923822,0.31613999950220351,0.31426723166631776,0.31239324002443353,0.31051803187416893,0.30864161451787897,0.30676399526262788,0.30488518142016052,0.30300518030687273,0.30112399924378469,0.29924164555651134,0.29735812657523336,0.29547344963466998,0.29358762207404965,0.29170065123708089,0.28981254447192489,0.28792330913116654,0.28603295257178463,0.2841414821551253,0.28224890524687113,0.28035522921701439,0.27846046143982733,0.27656460929383314,0.27466768016177828,0.27276968143060321,0.27087062049141281,0.26897050473944917,0.26706934157406187,0.26516713839867867,0.26326390262077803,0.26135964165185938,0.25945436290741386,0.25754807380689659,0.25564078177369715,0.25373249423511013,0.25182321862230739,0.24991296237030841,0.24800173291795094,0.24608953770786332,0.24417638418643381,0.24226227980378318,0.24034723201373495,0.23843124827378581,0.23651433604507785,0.23459650279236882,0.23267775598400239,0.2307581030918805,0.2288375515914334,0.22691610896159015,0.22499378268475057,0.22307058024675555,0.22114650913685727,0.21922157684769125,0.21729579087524667,0.21536915871883633,0.21344168788106913,0.21151338586781906,0.20958426018819751,0.20765431835452325,0.20572356788229276,0.20379201629015206,0.20185967109986691,0.19992653983629277,0.19799263002734685,0.19605794920397812,0.19412250490013744,0.19218630465274933,0.19024935600168211,0.18831166648971787,0.18637324366252436,0.18443409506862499,0.18249422825936873,0.18055365078890231,0.178612370214139,0.17667039409473073,0.17472772999303793,0.17278438547409958,0.17084036810560491,0.16889568545786332,0.16695034510377432,0.16500435461879923,0.16305772158093107,0.1611104535706645,0.15916255817096739,0.15721404296725086,0.15526491554733896,0.15331518350144044,0.15136485442211858,0.14941393590426094,0.14746243554505112,0.14551036094393846,0.14355771970260789,0.14160451942495175,0.13965076771703849,0.13769647218708461,0.13574164044542428,0.13378628010447915,0.13183039877872996,0.12987400408468627,0.12791710364085607,0.1259597050677175,0.12400181598768853,0.12204344402509652,0.12008459680614997,0.11812528195890805,0.11616550711325033,0.11420527990084831,0.11224460795513511,0.11028349891127502,0.10832196040613537,0.10636000007825498,0.104397625567816,0.10243484451661342,0.10047166456802474,0.098508093366981506,0.096544138559938819,0.094579807794844983,0.092615108721112963,0.090650048989590004,0.088684636252527135,0.086718878163550728,0.084752782377631966,0.082786356551056456,0.080819608341395691,0.078852545407476549,0.076885175409350845,0.074917506008266826,0.072949544866638655,0.070981299648015903,0.069012778017055271,0.067043987639488975,0.065074936182096435,0.063105631312673757,0.061136080700003204,0.059166292013824666,0.057196272924805142,0.055226031104508168,0.05325557422536531,0.051284909960645615,0.049314045984425035,0.047342989971557919,0.045371749597646421,0.043400332539009961,0.041428746472656673,0.039456999076252823,0.037485098028092252,0.035513051007068058,0.033540865692640864,0.031568549764810501,0.029596110904085451,0.02762355679145222,0.025650895108346807,0.0236781335366241,0.021705279758527311,0.019732341456659374,0.01775932631395238,0.015786242013636979,0.013813096239213804,0.011839896674422867,0.0098666510032129912,0.0078933669097132116,0.0059200520782021794,0.0039467141930775839,0.0019733609388275517,6.123233995736766e-17,0.99999662946559087,0.99998651788508452,0.99996966532664378,0.99994607190387297,0.99991573777581688,0.99987866314696006,0.99983484826722502,0.99978429343197095,0.99972699898199147,0.9996629653035124,0.99959219282818923,0.99951468203310401,0.99943043344076232,0.99933944761908977,0.99924172518142806,0.99913726678653092,0.9990260731385594,0.9989081449870777,0.99878348312704746,0.99865208839882302,0.99851396168814521,0.99836910392613565,0.99821751608929055,0.99805919919947395,0.99789415432391082,0.99772238257518009,0.99754388511120695,0.99735866313525501,0.99716671789591849,0.99696805068711336,0.99676266284806891,0.99655055576331875,0.99633173086269133,0.99610618962130049,0.99587393355953502,0.9956349642430492,0.99538928328275156,0.99513689233479441,0.99487779310056235,0.99461198732666134,0.99433947680490631,0.99406026337230946,0.99377434891106775,0.99348173534855022,0.99318242465728501,0.99287641885494615,0.99256372000433979,0.99224433021339042,0.99191825163512659,0.99158548646766631,0.99124603695420266,0.99089990538298811,0.99054709408731934,0.99018760544552165,0.98982144188093268,0.98944860586188632,0.98906909990169567,0.98868292655863654,0.98829008843593014,0.98789058818172515,0.98748442848908036,0.98707161209594618,0.98665214178514626,0.98622602038435903,0.98579325076609803,0.98535383584769298,0.98490777859127021,0.98445508200373244,0.98399574913673826,0.98352978308668237,0.98305718699467393,0.98257796404651565,0.98209211747268255,0.98159965054829967,0.98110056659312039,0.98059486897150416,0.98008256109239345,0.97956364640929072,0.97903812842023585,0.97850601066778153,0.97796729673897032,0.97742199026530974,0.97687009492274823,0.97631161443165049,0.9757465525567719,0.97517491310723325,0.97459669993649556,0.97401191694233347,0.97342056806680965,0.97282265729624728,0.97221818866120424,0.97160716623644505,0.9709895941409139,0.97036547653770699,0.96973481763404379,0.96909762168123947,0.96845389297467588,0.96780363585377238,0.96714685470195716,0.96648355394663699,0.96581373805916793,0.96513741155482513,0.96445457899277187,0.96376524497602956,0.96306941415144631,0.96236709120966546,0.96165828088509442,0.9609429879558723,0.96022121724383791,0.95949297361449737,0.9587582619769911,0.95801708728406076,0.95726945453201606,0.95651536876070076,0.95575483505345882,0.95498785853710055,0.9542144443818672,0.95343459780139705,0.95264832405268929,0.95185562843606963,0.95105651629515353,0.95025099301681115,0.94943906403113021,0.94862073481137998,0.94779601087397392,0.94696489777843296,0.9461274011273475,0.94528352656634029,0.9444332797840278,0.94357666651198202,0.94271369252469195,0.94184436363952473,0.94096868571668613,0.94008666465918134,0.93919830641277491,0.93830361696595099,0.93740260234987272,0.93649526863834165,0.93558162194775674,0.9346616684370731,0.93373541430776086,0.9328028658037627,0.93186402921145228,0.93091891085959177,0.92996751711928893,0.92900985440395456,0.92804592916925865,0.92707574791308789,0.92609931717550065,0.92511664353868384,0.92412773362690792,0.92313259410648296,0.92213123168571265,0.92112365311485012,0.92010986518605187,0.91908987473333204,0.91806368863251653,0.9170313138011964,0.91599275719868145,0.91494802582595314,0.91389712672561774,0.91284006698185827,0.91177685372038719,0.91070749410839835,0.90963199535451844,0.9085503647087585,0.90746260946246526,0.90636873694827169,0.90526875454004763,0.9041626696528503,0.90305048974287383,0.90193222230739978,0.90080787488474567,0.89967745505421493,0.89854097043604553,0.89739842869135844,0.89624983752210607,0.89509520467102066,0.89393453792156174,0.89276784509786367,0.89159513406468316,0.89041641272734573,0.88923168903169336,0.88804097096402979,0.88684426655106763,0.88564158385987357,0.88443293099781439,0.88321831611250223,0.88199774739173964,0.88077123306346428,0.87953878139569375,0.87830040069646964,0.87705609931380124,0.8758058856356099,0.87454976808967211,0.87328775514356272,0.87201985530459769,0.87074607711977725,0.8694664291757277,0.86818092009864389,0.86688955855423111,0.86559235324764627,0.86428931292343958,0.86298044636549565,0.8616657623969739,0.86034526988024962,0.85901897771685365,0.85768689484741267,0.85634903025158904,0.85500539294802003,0.85365599199425712,0.85230083648670518,0.85093993556056069,0.84957329838975026,0.84820093418686937,0.84682285220311937,0.84543906172824579,0.8440495720904756,0.84265439265645381,0.84125353283118121,0.83984700205795015,0.83843480981828156,0.83701696563186023,0.83559347905647163,0.83416435968793656,0.83272961716004712,0.83128926114450152,0.82984330135083861,0.8283917475263729,0.82693460945612873,0.82547189696277401,0.82400361990655435,0.82252978818522637,0.82105041173399118,0.81956550052542743,0.81807506456942336,0.81657911391311067,0.81507765864079551,0.81357070887389127,0.81205827477085002,0.81054036652709405,0.80901699437494745,0.80748816858356653,0.80595389945887141,0.80441419734347575,0.80286907261661733,0.8013185356940884,0.79976259702816499,0.79820126710753669,0.79663455645723613,0.79506247563856747,0.7934850352490358,0.79190224592227521,0.79031411832797749,0.7887206631718201,0.787121891195394,0.7855178131761309,0.78390843992723136,0.78229378229759094,0.78067385117172805,0.77904865746970986,0.77741821214707885,0.77578252619477917,0.77414161063908249,0.7724954765415134,0.77084413499877513,0.76918759714267482,0.76752587414004791,0.76585897719268381,0.76418691753724921,0.76250970644521354,0.76082735522277223,0.75913987521077042,0.75744727778462728,0.75574957435425838,0.7540467763639993,0.75233889529252873,0.75062594265279026,0.74890792999191569,0.74718486889114644,0.74545677096575613,0.74372364786497158,0.74198551127189516,0.74024237290342509,0.73849424451017709,0.73674113787640494,0.73498306481992115,0.73322003719201723,0.73145206687738373,0.72967916579402992,0.72790134589320454,0.72611861915931353,0.72433099760984054,0.72253849329526543,0.72074111829898324,0.71893888473722245,0.71713180475896354,0.71531989054585698,0.71350315431214129,0.71168160830456029,0.70985526480228101,0.7080241361168107,0.70618823459191393,0.70434757260352909,0.70250216255968534,0.70065201690041889,0.69879714809768889,0.69693756865529344,0.6950732911087858,0.693204328025389,0.69133069200391195,0.68945239567466388,0.68756945169936978,0.68568187277108439,0.68378967161410731,0.68189286098389656,0.67999145366698333,0.67808546248088497,0.6761749002740195,0.67425977992561814,0.6723401143456389,0.67041591647467957,0.66848719928389044,0.66655397577488684,0.66461625897966148,0.66267406196049661,0.66072739780987599,0.65877627965039676,0.65682072063468044,0.6548607339452851,0.6528963327946159,0.6509275304248362,0.64895434010777819,0.64697677514485352,0.6449948488669639,0.64300857463441063,0.64101796583680504,0.63902303589297815,0.63702379825088973,0.6350202663875385,0.6330124538088705,0.63100037404968856,0.62898404067356095,0.62696346727272945,0.62493866746801863,0.62290965490874317,0.62087644327261637,0.618839046265658,0.61679747762210124,0.61475175110430103,0.61270188050264029,0.61064787963543821,0.60858976234885576,0.60652754251680319,0.6044612340408464,0.6023908508501129,0.60031640690119836,0.5982379161780722,0.59615539269198348,0.59406885048136626,0.59197830361174519,0.58988376617564042,0.58778525229247325,0.58568277610846997,0.58357635179656731,0.58146599355631645,0.57935171561378751,0.57723353222147378,0.57511145765819505,0.57298550622900213,0.57085569226507993,0.56872203012365075,0.56658453418787813,0.56444321886676929,0.56229809859507796,0.56014918783320766,0.55799650106711374,0.55584005280820581,0.55367985759324989,0.55151592998427068,0.54934828456845308,0.54717693595804406,0.54500189879025396,0.5428231877271581,0.54064081745559767,0.53845480268708068,0.5362651581576835,0.53407189862795013,0.5318750388827943,0.52967459373139858,0.52747057800711539,0.52526300656736613,0.52305189429354204,0.52083725609090292,0.51861910688847745,0.51639746163896216,0.51417233531862006,0.51194374292718137,0.50971169948774042,0.50747622004665582,0.5052373196734482,0.50299501346069919,0.50074931652394916,0.49850024400159587,0.49624781105479165,0.49399203286734245,0.49173292464560381,0.48947050161838013,0.48720477903682041,0.48493577217431677,0.48266349632640027,0.48038796681063922,0.4781091989665342,0.47582720815541657,0.47354200976034294,0.4712536191859934,0.46896205185856588,0.46666732322567384,0.4643694487562407,0.4620684439403962,0.45976432428937258,0.45745710533539857,0.45514680263159629,0.45283343175187485,0.45051700829082697,0.44819754786362226,0.44587506610590338,0.44354957867367939,0.44122110124322145,0.43888964951095577,0.43655523919335931,0.4342178860268523,0.43187760576769368,0.42953441419187333,0.42718832709500731,0.4248393602922298,0.422487529618088,0.42013285092643404,0.41777534009031941,0.41541501300188644,0.41305188557226291,0.41068597373145305,0.40831729342823175,0.40594586063003579,0.40357169132285664,0.40119480151113335,0.39881520721764341,0.39643292448339607,0.39404796936752273,0.39166035794717041,0.38927010631739156,0.3868772305910374,0.38448174689864739,0.38208367138834237,0.37968302022571399,0.37727980959371737,0.37487405569256038,0.37246577473959597,0.37005498296921135,0.36764169663272028,0.36522593199825149,0.36280770535064116,0.36038703299132102,0.35796393123821052,0.35553841642560485,0.35311050490406681,0.35068021304031471,0.34824755721711309,0.34581255383316273,0.34337521930298859,0.34093557005683084,0.3384936225405325,0.33604939321543031,0.33360289855824193,0.33115415506095663,0.3287031792307224,0.32624998758973639,0.32379459667513188,0.32133702303886846,0.31887728324761866,0.3164153938826581,0.313951371539752,0.31148523282904506,0.30901699437494745,0.30654667281602505,0.30407428480488491,0.3015998470080653,0.29912337610592121,0.29664488879251388,0.29416440177549663,0.29168193177600288,0.28919749552853424,0.28671110978084596,0.28422279129383587,0.28173255684142978,0.27924042321046993,0.27674640720060012,0.27425052562415442,0.27175279530604179,0.26925323308363469,0.26675185580665361,0.2642486803370554,0.26174372354891767,0.25923700232832697,0.25672853357326314,0.25421833419348711,0.25170642111042518,0.24919281125705678,0.24667752157779846,0.24416056902839151,0.24164197057578582,0.23912174319802729,0.23659990388414195,0.23407646963402193,0.23155145745831157,0.22902488437829133,0.22649676742576461,0.22396712364294136,0.2214359700823248,0.21890332380659488,0.21636920188849487,0.21383362141071455,0.21129659946577686,0.20875815315592092,0.20621829959298837,0.20367705589830648,0.20113443920257432,0.19859046664574553,0.19604515537691466,0.19349852255419972,0.19095058534462822,0.1884013609240198,0.18585086647687216,0.18329911919624348,0.18074613628363817,0.17819193494888955,0.17563653241004434,0.17307994589324741,0.17052219263262391,0.16796328987016507,0.16540325485561008,0.16284210484633155,0.16027985710721751,0.15771652891055676,0.15515213753592064,0.15258670027004831,0.15002023440672849,0.14745275724668463,0.14488428609745649,0.14231483827328534,0.13974443109499529,0.13717308188987851,0.13460080799157645,0.13202762673996496,0.12945355548103549,0.12687861156677996,0.1243028123550721,0.12172617520955206,0.11914871749950796,0.11657045659975937,0.11399140989054088,0.11141159475738342,0.10883102859099876,0.1062497287871606,0.10366771274658898,0.10108499787483129,0.098501601582146645,0.095917541283386823,0.093332834397880537,0.090747498349314365,0.088161550565616961,0.085575008478839837,0.082987889525041672,0.080400211144168912,0.077811990779940041,0.07522324587972623,0.072633993894435422,0.070044252278393018,0.067454038489225904,0.06486336998774303,0.062272264237819522,0.059680738706277311,0.057088810862768145,0.054496498179656419,0.051903818131899884,0.049310788196933623,0.046717425854550416,0.044123748586784743,0.041529773877793101,0.038935519213737967,0.036341002082668113,0.033746239974402521,0.031151250380410681,0.028556050793696476,0.025960658708678471,0.023365091621073766,0.020769367027778277,0.018173502426750567,0.015577515316892105,0.012981423197931097,0.010385243570302731,0.0077889939350329861,0.0051926917936188782,0.0025963546479122598,6.123233995736766e-17,0.99999740873762377,0.99998963496392435,0.99997667871918938,0.99995854007056517,0.99993521911205552,0.99990671596452207,0.99987303077568279,0.99983416372011225,0.99979011499923987,0.99974088484134915,0.99968647350157669,0.99962688126191068,0.9995621084311892,0.99949215534509905,0.99941702236617402,0.99933670988379253,0.99925121831417596,0.99916054810038646,0.99906469971232481,0.99896367364672756,0.99885747042716477,0.9987460906040373,0.99862953475457383,0.99850780348282797,0.99838089741967495,0.99824881722280867,0.99811156357673803,0.99796913719278335,0.99782153880907298,0.99766876919053915,0.99751082912891431,0.99734771944272649,0.99717944097729594,0.99700599460472983,0.99682738122391823,0.99664360176052957,0.99645465716700532,0.99626054842255563,0.99606127653315368,0.99585684253153128,0.99564724747717248,0.99543249245630883,0.99521257858191359,0.99498750699369598,0.99475727885809484,0.99452189536827329,0.99428135774411219,0.9940356672322036,0.99378482510584476,0.99352883266503123,0.99326769123644998,0.9930014021734731,0.99272996685615023,0.99245338669120153,0.99217166311201066,0.99188479757861703,0.9915927915777083,0.99129564662261282,0.99099336425329165,0.99068594603633076,0.99037339356493259,0.990055708458908,0.9897328923646681,0.98940494695521508,0.98907187393013429,0.98873367501558485,0.98839035196429093,0.98804190655553292,0.98768834059513777,0.98732965591546962,0.98696585437542084,0.98659693786040203,0.98622290828233194,0.98584376757962822,0.98545951771719686,0.98507016068642239,0.98467569850515735,0.98427613321771146,0.98387146689484206,0.98346170163374214,0.98304683955803029,0.98262688281773969,0.98220183358930646,0.98177169407555864,0.98133646650570494,0.98089615313532319,0.98045075624634814,0.98000027814706026,0.97954472117207336,0.97908408768232291,0.97861838006505319,0.97814760073380569,0.97767175212840562,0.97719083671495055,0.97670485698579612,0.97621381545954455,0.97571771468103075,0.97521655722130907,0.97471034567764048,0.9741990826734791,0.97368277085845778,0.97316141290837543,0.97263501152518261,0.9721035694369673,0.97156708939794145,0.97102557418842617,0.97047902661483731,0.96992744950967125,0.96937084573149002,0.96880921816490639,0.96824256972056921,0.96767090333514805,0.96709422197131811,0.96651252861774473,0.96592582628906831,0.96533411802588809,0.96473740689474663,0.96413569598811444,0.96352898842437296,0.96291728734779936,0.96230059592854933,0.96167891736264166,0.96105225487194079,0.96042061170414061,0.95978399113274748,0.95914239645706323,0.95849583100216829,0.95784429811890393,0.95718780118385549,0.95652634359933475,0.9558599287933619,0.95518856021964815,0.95451224135757773,0.95383097571218989,0.95314476681416083,0.95245361821978503,0.95175753351095715,0.95105651629515364,0.95035057020541325,0.9496396989003193,0.94892390606397992,0.94820319540600906,0.94747757066150762,0.94674703559104378,0.94601159398063372,0.94527124964172171,0.94452600641116058,0.94377586815119185,0.94302083874942566,0.94226092211882051,0.94149612219766321,0.94072644294954821,0.93995188836335741,0.93917246245323893,0.93838816925858692,0.93759901284402036,0.93680499729936173,0.93600612673961647,0.9352024053049508,0.93439383716067115,0.93358042649720174,0.93276217753006363,0.93193909449985235,0.93111118167221585,0.93027844333783316,0.92944088381239109,0.9285985074365628,0.92775131857598447,0.92689932162123356,0.92604252098780526,0.92518092111609007,0.92431452647135071,0.92344334154369878,0.92256737084807183,0.92168661892420956,0.92080109033663071,0.91991078967460904,0.91901572155214994,0.91811589060796583,0.91721130150545305,0.91630195893266697,0.91538786760229796,0.91446903225164689,0.91354545764260087,0.91261714856160814,0.91168410981965342,0.91074634625223316,0.90980386271933011,0.90885666410538868,0.90790475531928894,0.906948141294322,0.90598682698816357,0.90502081738284879,0.9040501174847464,0.90307473232453273,0.90209466695716545,0.9011099264618575,0.900120515942051,0.89912644052539037,0.89812770536369613,0.89712431563293793,0.89611627653320802,0.89510359328869371,0.89408627114765127,0.89306431538237763,0.89203773128918407,0.8910065241883679,0.8899706994241855,0.88893026236482431,0.88788521840237522,0.88683557295280446,0.88578133145592541,0.88472249937537084,0.88365908219856415,0.88259108543669118,0.88151851462467168,0.88044137532113032,0.87935967310836827,0.87827341359233391,0.87718260240259427,0.87608724519230519,0.87498734763818253,0.8738829154404727,0.87277395432292282,0.87166047003275127,0.87054246834061799,0.86941995504059455,0.86829293595013379,0.8671614169100399,0.86602540378443871,0.86488490246074601,0.8637399188496383,0.86259045888502128,0.86143652852399999,0.86027813374684692,0.85911528055697162,0.8579479749808897,0.85677622306819101,0.85560003089150904,0.85441940454648857,0.85323435015175519,0.85204487384888239,0.85085098180236063,0.84965268019956508,0.8484499752507233,0.84724287318888358,0.84603138026988212,0.8448155027723111,0.84359524699748578,0.8423706192694117,0.8411416259347525,0.8399082733627965,0.83867056794542405,0.83742851609707403,0.83618212425471095,0.83493139887779122,0.8336763464482303,0.83241697347036825,0.83115328647093689,0.82988529199902517,0.82861299662604604,0.82733640694570154,0.82605552957394957,0.82477037114896867,0.82348093833112401,0.82218723780293335,0.82088927626903163,0.8195870604561365,0.81828059711301382,0.81696989301044209,0.81565495494117779,0.81433578971992004,0.81301240418327514,0.81168480518972164,0.81035299961957397,0.80901699437494745,0.80767679637972245,0.80633241257950827,0.8049838499416071,0.80363111545497823,0.80227421613020167,0.80091315899944171,0.79954795111641075,0.79817859955633219,0.7968051114159046,0.79542749381326427,0.7940457538879484,0.7926598988008583,0.79126993573422244,0.78987587189155872,0.78847771449763748,0.7870754707984442,0.7856691480611413,0.78425875357403141,0.78284429464651872,0.7814257786090717,0.78000321281318474,0.77857660463134049,0.7771459614569709,0.77571129070441991,0.77427259980890395,0.77282989622647424,0.77138318743397805,0.76993248092901923,0.7684777842299203,0.76701910487568281,0.76555645042594878,0.76408982846096096,0.76261924658152391,0.76114471240896475,0.75966623358509344,0.75818381777216282,0.75669747265282972,0.75520720593011437,0.75371302532736117,0.75221493858819788,0.75071295347649614,0.749207077776331,0.74769731929194061,0.74618368584768557,0.74466618528800876,0.74314482547739436,0.74161961430032719,0.74009055966125192,0.73855766948453228,0.73702095171440929,0.73548041431496103,0.7339360652700605,0.73238791258333502,0.73083596427812414,0.72928022839743845,0.7277207130039175,0.72615742617978862,0.7245903760268243,0.72301957066630074,0.72144501823895568,0.71986672690494624,0.71828470484380591,0.71669896025440349,0.71510950135489948,0.71351633638270395,0.71191947359443375,0.71031892126586993,0.70871468769191448,0.70710678118654768,0.70549521008278449,0.70387998273263253,0.70226110750704729,0.70063859279588958,0.69901244700788212,0.69738267857056579,0.69574929593025592,0.69411230755199815,0.69247172191952577,0.69082754753521391,0.68917979292003739,0.68752846661352507,0.68587357717371655,0.68421513317711724,0.68255314321865423,0.68088761591163149,0.67921855988768565,0.67754598379674102,0.67586989630696415,0.67419030610472042,0.67250722189452738,0.67082065239901056,0.66913060635885824,0.66743709253277594,0.66574011969744074,0.66403969664745655,0.66233583219530767,0.66062853517131415,0.65891781442358499,0.65720367881797248,0.65548613723802729,0.65376519858495086,0.65204087177755043,0.65031316575219233,0.64858208946275597,0.64684765188058702,0.64510986199445097,0.64336872881048701,0.64162426135216122,0.63987646866021908,0.6381253597926394,0.63637094382458759,0.63461322984836765,0.63285222697337573,0.63108794432605286,0.6293203910498375,0.62754957630511832,0.62577550926918657,0.62399819913618848,0.62221765511707783,0.62043388643956809,0.61864690234808462,0.61685671210371673,0.6150633249841696,0.61326675028371647,0.61146699731314991,0.60966407539973466,0.60785799388715778,0.60604876213548176,0.6042363895210946,0.6024208854366625,0.60060225929108013,0.59878052050942254,0.59695567853289633,0.59512774281878977,0.59329672284042534,0.59146262808710903,0.58962546806408256,0.58778525229247325,0.58594199030924476,0.58409569166714781,0.58224636593467116,0.58039402269599094,0.57853867155092187,0.57668032211486719,0.57481898401876896,0.57295466690905794,0.57108738044760343,0.56921713431166399,0.56734393819383644,0.56546780180200606,0.56358873485929606,0.56170674710401747,0.55982184828961834,0.55793404818463344,0.5560433565726336,0.5541497832521749,0.55225333803674792,0.55035403075472689,0.54845187124931882,0.54654686937851249,0.5446390350150272,0.54272837804626173,0.54081490837424329,0.53889863591557563,0.53697957060138812,0.53505772237728466,0.53313310120329072,0.53120571705380337,0.52927557991753904,0.52734269979748072,0.52540708671082759,0.52346875068894261,0.5215277017772999,0.51958395003543356,0.51763750553688548,0.51568837836915182,0.51373657863363298,0.51178211644557892,0.50982500193403846,0.50786524524180621,0.50590285652536937,0.50393784595485625,0.50197022371398303,0.50000000000000011,0.49802718502364096,0.49605178900906821,0.49407382219382023,0.49209329482875941,0.49011021717801734,0.48812459951894338,0.48613645214205026,0.48414578535096059,0.48215260946235461,0.48015693480591576,0.47815877172427701,0.47615813057296824,0.47415502172036178,0.47214945554761861,0.47014144244863537,0.46813099282998927,0.46611811711088541,0.4641028257231023,0.46208512911093691,0.4600650377311522,0.45804256205292188,0.45601771255777579,0.45399049973954686,0.45196093410431576,0.44992902617035635,0.44789478646808217,0.44585822553999038,0.44381935394060867,0.44177818223643972,0.43973472100590599,0.43768898083929614,0.43564097233870935,0.4335907061180001,0.43153819280272393,0.42948344303008207,0.42742646744886575,0.42536727671940222,0.42330588151349796,0.42124229251438494,0.41917652041666431,0.41710857592625084,0.41503846976031805,0.41296621264724276,0.41089181532654828,0.4088152885488503,0.40673664307580037,0.4046558896800298,0.4025730391450949,0.40048810226541975,0.39840108984624156,0.39631201270355398,0.39422088166405067,0.3921277075650702,0.39003250125453937,0.38793527359091629,0.38583603544313544,0.38373479769055069,0.38163157122287839,0.37952636694014202,0.37741919575261462,0.37531006858076316,0.3731989963551916,0.37108599001658366,0.3689710605156471,0.36685421881305674,0.36473547587939659,0.36261484269510458,0.36049233025041488,0.35836794954530038,0.35624171158941709,0.35411362740204538,0.35198370801203449,0.34985196445774458,0.34771840778698893,0.34558304905697801,0.34344589933426156,0.34130696969467045,0.33916627122326071,0.33702381501425532,0.33487961217098627,0.33273367380583824,0.33058601104018953,0.32843663500435577,0.32628555683753163,0.32413278768773268,0.32197833871173842,0.31982222107503422,0.31766444595175269,0.31550502452461704,0.31334396798488245,0.31118128753227753,0.30901699437494767,0.30685109972939534,0.30468361482042333,0.30251455088107604,0.30034391915258057,0.29817173088428989,0.29599799733362364,0.29382272976600926,0.29164593945482503,0.28946763768134082,0.2872878357346591,0.28510654491165782,0.28292377651693018,0.2807395418627277,0.27855385226890073,0.27636671906283927,0.2741781535794155,0.27198816716092439,0.26979677115702444,0.2676039769246798,0.26540979582810104,0.2632142392386857,0.26101731853496052,0.25881904510252096,0.25661943033397372,0.25441848562887709,0.25221622239368091,0.25001265204166923,0.24780778599290015,0.24560163567414606,0.24339421251883583,0.24118552796699486,0.23897559346518502,0.23676442046644702,0.23455202043023923,0.2323384048223798,0.23012358511498668,0.22790757278641732,0.22569037932121072,0.22347201621002713,0.22125249494958782,0.21903182704261687,0.2168100239977809,0.21458709732962877,0.21236305855853341,0.2101379192106303,0.20791169081775945,0.20568438491740484,0.20345601305263397,0.20122658677203942,0.19899611762967828,0.19676461718501165,0.19453209700284604,0.1922985686532728,0.19006404371160743,0.18782853375833117,0.18559205037902926,0.18335460516433241,0.18111620970985601,0.17887687561613952,0.1766366144885875,0.17439543793740891,0.17215335757755626,0.16991038502866676,0.16766653191500136,0.16542180986538391,0.16317623051314248,0.16092980549604716,0.15868254645625143,0.15643446504023115,0.15418557289872342,0.15193588168666766,0.14968540306314451,0.14743414869131469,0.14518213023835988,0.14292935937542173,0.14067584777754052,0.13842160712359639,0.13616664909624682,0.13391098538186783,0.13165462767049271,0.12939758765575068,0.1271398770348077,0.12488150750830519,0.12262249078029867,0.12036283855819849,0.1181025625527084,0.11584167447776433,0.11358018605047492,0.11131810899106012,0.10905545502278986,0.10679223587192477,0.10452846326765368,0.10226414894203437,0.09999930462993209,0.097733942068958107,0.095468072999410208,0.093201709164211125,0.09093486230884712,0.08866754418130833,0.086399766532027286,0.084131541113817376,0.081862879681813397,0.079593793993408934,0.077324295808196955,0.075054396887908201,0.072784108996349572,0.070513443899344483,0.068242413364671226,0.065971029162001316,0.063699303062839829,0.061427246840463717,0.059154872269860159,0.056882191127667056,0.054609215192110233,0.052335956242943966,0.050062426061389248,0.047788636430072071,0.045514599132963712,0.043240325955318966,0.040965828683614432,0.038691119105488732,0.036416209009680796,0.034141110185968049,0.031865834425106911,0.029590393518769884,0.02731479925948601,0.025039063440579087,0.022763197856105883,0.020487214300796343,0.018211124569991799,0.015934940459583182,0.013658673765951201,0.011382336285904565,0.0091059398166181641,0.0068294961555734925,0.0045530171004957241,0.0022765144492941339,2.8327694488239898e-16,0.99993794639148958,0.99975179326725905,0.99944156373025461,0.99900729628220064,0.99844904481882168,0.99776687862315316,0.99696088235694325,0.99603115605014536,0.99497781508850403,0.99380099019923474,0.99250082743479928,0.99107748815478014,0.98953114900585404,0.9878620018998695,0.98607025399002857,0.9841561276451779,0.98211986042221133,0.97996170503658686,0.97768192933096332,0.97528081624195906,0.97275866376503717,0.97011578491752259,0.96735250769975389,0.96446917505437657,0.9614661448237809,0.95834378970569145,0.95510249720691243,0.95174266959523546,0.9482647238495151,0.94466909160791879,0.94095621911435745,0.9371265671631035,0.93318061104160255,0.92911884047148763,0.92494175954780011,0.92064988667642877,0.91624375450977158,0.91172390988062946,0.9070909137343407,0.90234534105916364,0.89748778081491598,0.89251883585988123,0.88743912287598925,0.88224927229228178,0.8769499282066715,0.87154174830600495,0.86602540378443871,0.86040157926013938,0.85467097269031778,0.8488342952846073,0.84289227141679701,0.8368456385349331,0.83069514706979442,0.8244415603417603,0.81808565446607595,0.81162821825653109,0.80507005312756297,0.79841197299479438,0.79165480417402123,0.78479938527866089,0.77784656711567413,0.77079721257997347,0.76365219654733207,0.75641240576580526,0.74907873874567898,0.74165210564795758,0.73413342817140648,0.72652363943816323,0.71882368387792939,0.71103451711076082,0.70315710582846791,0.69519242767464229,0.68714147112332402,0.67900523535632507,0.67078473013922346,0.66248097569604425,0.65409500258264219,0.64562785155880242,0.63708057345907454,0.62845422906235671,0.61974988896024485,0.61096863342416541,0.60211155227130453,0.59317974472935531,0.58417431930009445,0.57509639362181031,0.5659470943305952,0.55672755692052156,0.54743892560271978,0.53808235316337272,0.52865900082064654,0.51917003808057527,0.50961664259191741,0.50000000000000011,0.49032130379957212,0.48058175518668378,0.47078256290960829,0.46092494311882792,0.45101011921610185,0.44103932170263166,0.43101378802634799,0.420934762428335,0.41080349578840969,0.40062124546987971,0.39038927516349481,0.38010885473061484,0.36978126004560929,0.3594077728375128,0.34898968053095408,0.33852827608637565,0.32802485783956908,0.31748072934054261,0.30689719919173997,0.29627558088563394,0.2856171926417132,0.27492335724288042,0.26419540187128593,0.2534346579436158,0.24264246094585165,0.2318201502675282,0.22096906903550592,0.21009056394727799,0.19918598510383623,0.18825668584211347,0.17730402256702552,0.16632935458313017,0.15533404392592842,0.14431945519282666,0.13328695537377896,0.12223791368163442,0.11117370138220865,0.10009569162409844,0.089005259268264775,0.077903780717403323,0.066792633745121635,0.055673197324948361,0.04454685145919221,0.033414977007674644,0.022278955516353841,0.011140169045865553,6.123233995736766e-17,0.99998860230220921,0.99995440946865177,0.99989742227876688,0.99981764203160017,0.9997150705457738,0.99958971015944542,0.99944156373025461,0.99927063463525789,0.99907692677085147,0.99886044455268286,0.99862119291554985,0.99835917731328816,0.99807440371864697,0.99776687862315316,0.99743660903696285,0.99708360248870198,0.99670786702529446,0.99630941121177863,0.99588824413111265,0.99544437538396657,0.99497781508850403,0.99448857388015166,0.99397666291135633,0.99344209385133098,0.9928848788857888,0.99230503071666543,0.9917025625618292,0.99107748815478014,0.99042982174433647,0.98975957809431026,0.98906677248317076,0.98835142070369575,0.98761353906261218,0.98685314438022398,0.98607025399002857,0.98526488573832216,0.98443705798379266,0.98358678959710122,0.98271409996045211,0.98181900896715069,0.98090153702115024,0.97996170503658686,0.97899953443730225,0.9780150471563559,0.9770082656355249,0.97597921282479216,0.97492791218182362,0.97385438767143329,0.97275866376503717,0.97164076544009503,0.97050071817954142,0.96933854797120467,0.96815428130721437,0.96694794518339766,0.96571956709866358,0.96446917505437657,0.9631967975537179,0.96190246360103615,0.96058620270118555,0.95924804485885407,0.95788802057787925,0.9565061608605524,0.95510249720691243,0.95367706161402765,0.95222988657526619,0.95076100507955574,0.94927045061063076,0.94775825714627027,0.94622445915752229,0.94466909160791879,0.94309218995267841,0.94149379013789802,0.93987392859973384,0.93823264226357039,0.93656996854317887,0.93488594533986458,0.93318061104160255,0.93145400452216276,0.92970616514022375,0.92793713273847567,0.92614694764271188,0.92433565066090995,0.92250328308230101,0.92064988667642877,0.91877550369219763,0.91688017685690903,0.91496394937528802,0.91302686492849816,0.91106896767314549,0.90909030224027265,0.9070909137343407,0.90507084773220181,0.90303015028205935,0.90096886790241915,0.89888704758102833,0.89678473677380466,0.89466198340375469,0.89251883585988123,0.89035534299608021,0.88817155413002746,0.88596751904205395,0.88374328797401136,0.88149891162812677,0.87923444116584681,0.8769499282066715,0.87464542482697749,0.87232098355883081,0.86997665738878982,0.86761249975669685,0.86522856455446029,0.86282490612482621,0.86040157926013938,0.85795863920109416,0.85549614163547583,0.85301414269689024,0.85051269896348514,0.84799186745666,0.84545170563976613,0.84289227141679701,0.84031362313106828,0.83771581956388774,0.83509891993321517,0.83246298389231299,0.82980807152838576,0.82713424336121133,0.8244415603417603,0.82173008385080748,0.81899987569753174,0.81625099811810831,0.81348351377428885,0.81069748575197365,0.80789297755977385,0.80507005312756297,0.80222877680502003,0.79936921336016287,0.79649142797787142,0.79359548625840171,0.79068145421589109,0.78774939827685253,0.78479938527866089,0.7818314824680298,0.7788457574994776,0.77584227843378617,0.77282111373644879,0.76978233227611004,0.76672600332299523,0.76365219654733196,0.76056098201776168,0.75745243019974229,0.75432661195394224,0.75118359853462502,0.74802346158802469,0.74484627315071306,0.74165210564795758,0.73844103189206978,0.73521312508074632,0.73196845879539996,0.72870710699948194,0.72542914403679681,0.72213464462980681,0.71882368387792939,0.7154963372558244,0.71215268061167458,0.7087927901654556,0.70541674250719932,0.7020246145952479,0.69861648375449859,0.69519242767464229,0.69175252440839174,0.68829685236970273,0.68482549033198636,0.68133851742631357,0.67783601313961095,0.67431805731284933,0.67078473013922346,0.66723611216232392,0.66367228427430136,0.66009332771402207,0.65649932406521683,0.65289035525462047,0.64926650355010462,0.64562785155880242,0.64197448222522535,0.63830647882937275,0.63462392498483289,0.63092690463687751,0.62721550206054766,0.62348980185873359,0.61974988896024485,0.61599584861787571,0.61222776640646059,0.60844572822092435,0.60464982027432324,0.60084012909588058,0.59701674152901396,0.5931797447293552,0.5893292261627644,0.58546527360333533,0.58158797513139526,0.57769741913149653,0.57379369429040228,0.56987688959506422,0.56594709433059509,0.56200439807823255,0.55804889071329711,0.55408066240314402,0.55009980360510713,0.54610640506443786,0.54210055781223543,0.53808235316337272,0.53405188271441395,0.5300092383415278,0.52595451219839173,0.52188779671409213,0.51780918459101699,0.51371876880274348,0.50961664259191741,0.50550289946812854,0.50137763320577844,0.49724093784194379,0.49309290767423158,0.48893363725863032,0.48476322140735478,0.48058175518668378,0.47638933391479404,0.47218605315958662,0.46797200873650951,0.4637472967063721,0.45951201337315617,0.45526625528182108,0.45101011921610185,0.44674370219630377,0.44246710147709034,0.43818041454526713,0.43388373911755818,0.42957717313837962,0.4252608147776063,0.420934762428335,0.41659911470464006,0.41225397043932627,0.40789942868167639,0.40353558869519224,0.39916254995533251,0.39478041214724491,0.39038927516349481,0.38598923910178651,0.38158040426268242,0.37716287114731717,0.37273674045510541,0.36830211308144717,0.36385909011542744,0.3594077728375128,0.35494826271724123,0.35048066141091,0.34600507075925796,0.34152159278514493,0.33703032969122471,0.33253138385761594,0.32802485783956908,0.32351085436512711,0.31898947633278496,0.31446082680914322,0.30992500902655962,0.30538212638079465,0.30083228242865523,0.29627558088563394,0.29171212562354537,0.28714202066815731,0.28256537019681971,0.27798227853609109,0.27339285015935855,0.26879718968445737,0.26419540187128593,0.25958759161941825,0.25497386396571148,0.25035432408191238,0.24572907727226051,0.24109822897108632,0.23646188474040869,0.2318201502675282,0.2271731313626188,0.22252093395631445,0.21786366409729538,0.21320142794987015,0.20853433179155642,0.20386248201065718,0.19918598510383601,0.19450494767369031,0.1898194764263198,0.18512967816889506,0.18043565980722234,0.1757375283433075,0.17103539087291553,0.16632935458312995,0.16161952674991001,0.15690601473564408,0.15218892598670314,0.14746836803099095,0.14274444847549395,0.13801727500382685,0.13328695537377896,0.12855359741485722,0.12381730902582919,0.11907819817226206,0.11433637288406223,0.10959194125301334,0.10484501143031105,0.10009569162409844,0.095344090096999026,0.090590315163649696,0.085834475188230341,0.081076678581994313,0.076317033800797782,0.071555649342626149,0.066792633745121635,0.062028095583108754,0.057262143466120102,0.052494886035919286,0.047726431964025269,0.04295688994923471,0.038186368715145018,0.033414977007674644,0.028642823592584805,0.023870017253000822,0.019096666786931015,0.014322881004787508,0.0095487687269054083,0.004774438781063082,6.123233995736766e-17,0.9999963702861705,0.99998548117103148,0.99996733273363192,0.99994192510571889,0.99990925847173728,0.99986933306882808,0.9998221491868271,0.99976770716826213,0.99970600740835103,0.99963705035499884,0.99956083650879435,0.99947736642300633,0.99938664070357996,0.99928866000913186,0.99918342505094593,0.99907093659296775,0.99895119545179911,0.99882420249669213,0.99868995864954291,0.99854846488488513,0.99839972222988249,0.99824373176432146,0.99808049462060355,0.99791001198373697,0.99773228509132816,0.99754731523357265,0.99735510375324576,0.99715565204569268,0.99694896155881874,0.99673503379307871,0.99651387030146543,0.99628547268949963,0.9960498426152169,0.99580698178915694,0.99555689197435038,0.99529957498630595,0.99503503269299776,0.99476326701485163,0.99448427992473065,0.99419807344792144,0.99390464966211933,0.99360401069741289,0.99329615873626909,0.99298109601351692,0.9926588248163315,0.99232934748421708,0.99199266640899064,0.9916487840347642,0.99129770285792673,0.99093942542712676,0.99057395434325346,0.99020129225941766,0.98982144188093268,0.98943440596529508,0.98904018732216403,0.98863878881334111,0.98823021335274985,0.98781446390641425,0.98739154349243741,0.98696145518097933,0.98652420209423519,0.986079787406412,0.98562821434370596,0.98516948618427924,0.98470360625823561,0.98423057794759683,0.9837504046862775,0.98326308996006084,0.98276863730657271,0.98226705031525652,0.98175833262734669,0.98124248793584246,0.98071951998548101,0.98018943257271041,0.97965222954566189,0.97910791480412185,0.97855649229950403,0.97799796603481992,0.97743234006465074,0.97685961849511727,0.97627980548385018,0.97569290523996022,0.97509892202400716,0.97449786014796935,0.97388972397521179,0.97327451792045516,0.97265224644974324,0.97202291408041075,0.97138652538105064,0.97074308497148054,0.97009259752270949,0.96943506775690413,0.96877050044735424,0.96809890041843816,0.9674202725455876,0.9667346217552526,0.96604195302486551,0.96534227138280471,0.96463558190835863,0.96392188973168835,0.96320120003379062,0.96247351804645997,0.96173884905225149,0.9609971983844412,0.96024857142698883,0.95949297361449737,0.95873041043217466,0.95796088741579277,0.95718441015164857,0.95640098427652243,0.95561061547763793,0.95481330949262011,0.95400907210945407,0.95319790916644298,0.95237982655216558,0.9515548302054333,0.95072292611524756,0.94988412032075586,0.9490384189112081,0.94818582802591267,0.94732635385419139,0.9464600026353347,0.94558678065855672,0.94470669426294918,0.94381974983743555,0.94292595382072486,0.94202531270126455,0.94111783301719365,0.94020352135629526,0.9392823843559488,0.93835442870308172,0.9374196611341209,0.93647808843494385,0.93552971744082958,0.93457455503640863,0.93361260815561331,0.93264388378162755,0.93166838894683579,0.93068613073277229,0.92969711627006935,0.92870135273840604,0.92769884736645569,0.92668960743183348,0.9256736402610436,0.92465095322942648,0.92362155376110444,0.9225854493289285,0.92154264745442394,0.92049315570773538,0.91943698170757227,0.91837413312115346,0.91730461766415128,0.91622844310063578,0.91514561724301846,0.9140561479519953,0.91296004313648971,0.91185731075359533,0.91074795880851811,0.90963199535451833,0.90850942849285199,0.90738026637271185,0.90624451719116861,0.90510218919311158,0.9039532906711879,0.90279782996574354,0.90163581546476168,0.9004672556038027,0.89929215886594227,0.89811053378171024,0.89692238892902831,0.89572773293314822,0.89452657446658856,0.89331892224907261,0.89210478504746404,0.89088417167570411,0.88965709099474732,0.888423551912497,0.88718356338374105,0.88593713441008637,0.88468427403989403,0.88342499136821306,0.88215929553671513,0.88088719573362739,0.87960870119366652,0.87832382119797103,0.87703256507403438,0.87573494219563686,0.87443096198277792,0.87312063390160766,0.87180396746435795,0.87048097222927356,0.86915165780054271,0.86781603382822714,0.86647411000819285,0.86512589608203838,0.86377140183702528,0.86241063710600663,0.86104361176735555,0.85967033574489338,0.85829081900781845,0.85690507157063234,0.85551310349306853,0.8541149248800185,0.85271054588145878,0.85129997669237711,0.84988322755269852,0.84846030874721079,0.84703123060549024,0.84559600350182607,0.84415463785514566,0.84270714412893877,0.84125353283118121,0.83979381451425905,0.83832799977489214,0.83685609925405602,0.83537812363690644,0.83389408365270046,0.83240399007471877,0.83090785372018794,0.82940568545020188,0.82789749616964203,0.82638329682709977,0.82486309841479555,0.82333691196849967,0.82180474856745234,0.82026661933428302,0.81872253543492934,0.8171725080785569,0.81561654851747711,0.81405466804706583,0.81248687800568131,0.81091318977458193,0.8093336147778436,0.80774816448227682,0.80615685039734319,0.80455968407507217,0.80295667710997731,0.80134784113897162,0.79973318784128333,0.79811272893837137,0.79648647619384005,0.79485444141335326,0.79321663644454954,0.79157307317695558,0.78992376354190008,0.78826871951242694,0.78660795310320863,0.78494147637045864,0.78326930141184448,0.78159144036639905,0.77990790541443322,0.77821870877744759,0.77652386271804241,0.77482337953983038,0.77311727158734611,0.77140555124595667,0.76968823094177208,0.76796532314155519,0.76623684035263007,0.76450279512279273,0.76276320004021914,0.76101806773337377,0.75926741087091842,0.75751124216162014,0.75574957435425827,0.75398242023753304,0.75220979263997201,0.75043170442983675,0.74864816851503013,0.74685919784300214,0.74506480540065589,0.74326500421425357,0.74145980734932149,0.73964922791055598,0.73783327904172735,0.73601197392558504,0.73418532578376172,0.73235334787667772,0.73051605350344373,0.7286734560017657,0.72682556874784665,0.72497240515629058,0.72311397868000438,0.72125030281010083,0.7193813910757999,0.71750725704433116,0.71562791432083506,0.71374337654826403,0.71185365740728401,0.70995877061617407,0.70805872993072794,0.70615354914415351,0.70424324208697286,0.70232782262692195,0.70040730466884971,0.69848170215461736,0.69655102906299704,0.69461529940957034,0.69267452724662681,0.69072872666306129,0.6887779117842725,0.68682209677206019,0.68486129582452149,0.68289552317594937,0.68092479309672804,0.67894911989323004,0.67696851790771195,0.67498300151821056,0.67299258513843851,0.67099728321767971,0.66899711024068387,0.66699208072756211,0.66498220923368123,0.66296751034955781,0.6609479987007526,0.65892368894776454,0.65689459578592369,0.65486073394528499,0.65282211819052161,0.65077876332081697,0.64873068416975788,0.64667789560522693,0.64462041252929403,0.64255824987810872,0.64049142262179193,0.63841994576432626,0.6363438343434481,0.63426310343053838,0.63217776813051241,0.63008784358171099,0.6279933449557904,0.62589428745761155,0.62379068632513079,0.6216825568292883,0.61956991427389752,0.61745277399553433,0.61533115136342542,0.61320506177933687,0.61107452067746215,0.60893954352431023,0.60680014581859332,0.60465634309111449,0.60250815090465426,0.60035558485385854,0.59819866056512494,0.59603739369648912,0.59387179993751171,0.59170189500916393,0.58952769466371358,0.58734921468461077,0.58516647088637341,0.58297947911447212,0.58078825524521538,0.57859281518563455,0.57639317487336783,0.57418935027654483,0.57198135739367106,0.56976921225351085,0.56755293091497194,0.56533252946698842,0.56310802402840388,0.56087943074785462,0.55864676580365247,0.5564100454036669,0.55416928578520797,0.55192450321490816,0.54967571398860382,0.54742293443121781,0.5451661808966406,0.54290546976761078,0.54064081745559767,0.53837224040068055,0.53609975507143059,0.53382337796479062,0.53154312560595574,0.52925901454825286,0.52697106137302074,0.52467928268949038,0.5223836951346631,0.52008431537319044,0.51778116009725406,0.51547424602644265,0.51316358990763189,0.51084920851486315,0.50853111864922051,0.50620933713870953,0.50388388083813529,0.50155476662897969,0.49922201141927841,0.49688563214349962,0.49454564576241944,0.49220206926299959,0.48985491965826444,0.48750421398717658,0.48514996931451365,0.48279220273074486,0.48043093135190595,0.47806617231947557,0.47569794280025118,0.47332625998622346,0.47095114109445202,0.46857260336694107,0.46619066407051291,0.46380534049668343,0.46141664996153697,0.45902460980559939,0.45662923739371297,0.45423055011491092,0.45182856538228972,0.44942330063288366,0.44701477332753858,0.44460300095078398,0.44218800101070677,0.43976979103882469,0.43734838858995795,0.43492381124210244,0.43249607659630179,0.43006520227652051,0.42763120592951459,0.42519410522470424,0.42275391785404615,0.42031066153190388,0.41786435399491961,0.41541501300188644,0.41296265633361789,0.41050730179281963,0.40804896720396061,0.40558767041314286,0.40312342928797218,0.40065626171742907,0.39818618561173785,0.39571321890223715,0.39323737954125032,0.39075868550195386,0.38827715477824765,0.38579280538462485,0.38330565535604,0.38081572274777853,0.37832302563532655,0.37582758211423822,0.3733294103000051,0.37082852832792507,0.36832495435296969,0.36581870654965298,0.36330980311189998,0.36079826225291339,0.35828410220504231,0.35576734121965009,0.35324799756698078,0.35072608953602724,0.3482016354343988,0.34567465358818711,0.34314516234183395,0.3406131800579984,0.33807872511742249,0.33554181591879834,0.3330024708786351,0.33046070843112429,0.32791654702800621,0.325370005138437,0.32282110124885305,0.32026985386283752,0.31771628150098674,0.31516040270077433,0.31260223601641723,0.31004180001874199,0.30747911329504818,0.3049141944489745,0.30234706210036422,0.29977773488512871,0.29720623145511282,0.29463257047796004,0.29205677063697588,0.28947885063099271,0.28689882917423476,0.28431672499618099,0.28173255684142962,0.27914634346956285,0.27655810365500938,0.27396785618690866,0.27137561986897529,0.26878141351936102,0.26618525597051923,0.26358716606906762,0.26098716267565225,0.25838526466480949,0.25578149092482955,0.25317586035761985,0.25056839187856694,0.24795910441639932,0.24534801691305097,0.24273514832352255,0.24012051761574435,0.23750414377043927,0.23488604578098377,0.23226624265327059,0.22964475340557142,0.22702159706839764,0.22439679268436266,0.22177035930804448,0.21914231600584599,0.2165126818558572,0.21388147594771742,0.21124871738247539,0.20861442527245122,0.20597861874109838,0.20334131692286347,0.20070253896304804,0.19806230401767025,0.19542063125332443,0.19277753984704274,0.19013304898615643,0.18748717786815544,0.18483994570054949,0.18219137170072941,0.17954147509582638,0.17689027512257288,0.17423779102716375,0.17158404206511518,0.16892904750112558,0.16627282660893633,0.16361539867119065,0.16095678297929419,0.15829699883327569,0.1556360655416455,0.15297400242125617,0.15031082879716273,0.14764656400248127,0.14498122737824912,0.14231483827328512,0.13964741604404785,0.13697898005449582,0.13430954967594749,0.13163914428693935,0.12896778327308595,0.12629548602693977,0.12362227194784908,0.12094816044181793,0.11827317092136577,0.1155973228053853,0.11292063551900212,0.1102431284934344,0.10756482116585048,0.10488573297922862,0.10220588338221553,0.099525291828985923,0.096843977779100018,0.094161960697363004,0.091479260053684286,0.088795895322934901,0.086111885984806777,0.083427251523671975,0.080742011428439953,0.078056185192416694,0.075369792313163916,0.072682852292356145,0.069995384635639896,0.067307408852492631,0.064618944456079894,0.061930010963114242,0.059240627893714301,0.056550814771261684,0.053860591122259958,0.051169976476193528,0.048478990365384549,0.045787652324851803,0.043095981892169559,0.040403998607324361,0.037711722012573924,0.03501917165230585,0.032326367072894491,0.029633327822559667,0.026940073451225437,0.024246623510376857,0.021552997552918705,0.018859215133034204,0.01616529580604174,0.01347125912825356,0.010777124656834483,0.0080829119496585895,0.0053886405651678996,0.0026943300622310688,6.123233995736766e-17],"twiddles":[0.99940414055107041,0.034516138969708128,0.99761727230124764,0.068991144404324925,0.99464152469519274,0.10338393178837015,0.99048044398756319,0.13765351458716821,0.9851389890168738,0.17175905309127604,0.97862352529595531,0.20565990308593657,0.97094181742605201,0.23931566428755774,0.96210301984360058,0.27268622848949375,0.95211766591071412,0.30573182735975285,0.94099765536237645,0.33841307983367042,0.92875624012530233,0.37069103904506751,0.91540800852536641,0.40252723873996749,0.90096886790241915,0.43388373911755812,0.88545602565320991,0.46472317204376851,0.86888796872500662,0.49500878558358136,0.85128444158435124,0.52470448779900802,0.83266642268720636,0.55377488976053313,0.81305609947853252,0.58218534772077069,0.79247684195109047,0.60990200440007281,0.7709531747949796,0.63689182933488919,0.74851074817110119,0.66312265824079519,0.72517630714337655,0.68856323134327702,0.70097765980614946,0.71318323063059619,0.67594364414475439,0.73695331598433667,0.65010409366874433,0.75984516014457881,0.62348980185873359,0.7818314824680298,0.59613248546922537,0.80288608143888252,0.56806474673115581,0.82298386589365635,0.5393200344991993,0.84210088492281165,0.50993260439013599,0.86021435641350064,0.47993747795978642,0.87730269419944196,0.44937040096716135,0.89334553378556314,0.41826780077556519,0.90832375661675391,0.38666674294141884,0.92221951286181036,0.35460488704253557,0.93501624268541483,0.32212044179849075,0.94669869598280587,0.28925211953656776,0.9572529505536157,0.25603909005754721,0.9666664286932195,0.22252093395631445,0.97492791218182362,0.18873759545291671,0.98202755565343036,0.15472933479028123,0.98795689832874645,0.12053668025532323,0.99270887409805397,0.086200379880619543,0.99627781994202647,0.051761352884209494,0.99865948268045612,0.017260640905388574,0.99985102404084936,0,0.99761727230124764,0.068991144404324925,0.99048044398756319,0.13765351458716821,0.97862352529595531,0.20565990308593657,0.96210301984360058,0.27268622848949375,0.94099765536237645,0.33841307983367042,0.91540800852536641,0.40252723873996749,0,0.99048044398756319,0.13765351458716821,0.96210301984360058,0.27268622848949375,0.91540800852536641,0.40252723873996749,0.85128444158435124,0.52470448779900802,0.7709531747949796,0.63689182933488919,0.67594364414475439,0.73695331598433667,0,0.97862352529595531,0.20565990308593657,0.91540800852536641,0.40252723873996749,0.81305609947853252,0.58218534772077069,0.67594364414475439,0.73695331598433667,0.50993260439013599,0.86021435641350064,0.32212044179849075,0.94669869598280587,0,0.96210301984360058,0.27268622848949375,0.85128444158435124,0.52470448779900802,0.67594364414475439,0.73695331598433667,0.44937040096716135,0.89334553378556314,0.18873759545291671,0.98202755565343036,-0.086200379880619196,0.99627781994202647,0,0.94099765536237645,0.33841307983367042,0.7709531747949796,0.63689182933488919,0.50993260439013577,0.86021435641350075,0.18873759545291671,0.98202755565343036,-0.15472933479028111,0.98795689832874645,-0.47993747795978653,0.87730269419944185,0,0.91540800852536641,0.40252723873996749,0.67594364414475439,0.73695331598433667,0.32212044179849075,0.94669869598280587,-0.086200379880619196,0.99627781994202647,-0.47993747795978614,0.87730269419944207,-0.79247684195109025,0.60990200440007303,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.9999270008556107,0.012082754648817372,0.99970801408019294,0.024163745236132288,0.99934307164544123,0.036241207957992246,0.99883222683232664,0.048313379525507065,0.9981755542233175,0.06037849742228605,0.99737314969149116,0.072434800161762361,0.99642513038653613,0.084480527544367023,0.99533163471764863,0.096513920914515106,0.99409282233332519,0.10853322341736636,0.99270887409805397,0.12053668025532305,0.99117999206590912,0.13252253894422739,0.98950639945105112,0.14448904956922132,0.98768834059513777,0.15643446504023087,0.98572608093165093,0.16835704134703852,0.98361990694714363,0.18025503781390573,0.98137012613941343,0.19212671735370837,0.97897706697260856,0.20397034672154871,0.97644107882927211,0.21578419676780614,0.97376253195933349,0.22756654269058998,0.97094181742605201,0.23931566428755774,0.96797934704892286,0.25102984620706165,0.96487555334355146,0.26270737819858692,0.96163088945850761,0.27434655536244568,0.95824582910916623,0.28594567839868923,0.9547208665085456,0.29750305385520293,0.95105651629515353,0.3090169943749474,0.94725331345785069,0.3204858189423096,0.94331181325774316,0.33190785312852839,0.93923259114711521,0.34328142933615829,0.93501624268541483,0.35460488704253557,0.93066338345230215,0.36587657304221222,0.92617464895777646,0.37709484168832041,0.92155069454939298,0.3882580551328349,0.9167921953165824,0.39936458356569554,0.91189984599209006,0.41041280545275677,0.9068743608505454,0.42140110777252909,0.9017164736041795,0.43232788625167717,0.89642693729570377,0.44319154559924129,0.8910065241883679,0.45399049973954675,0.88545602565320991,0.46472317204376851,0.87977625205351784,0.47538799556011607,0.87396803262651801,0.48598341324260608,0.86803221536230735,0.49650787817838782,0.86196966688004928,0.50695985381359032,0.85578127230144752,0.51733781417765679,0.84946793512152108,0.52764024410613275,0.8430305770766946,0.53786563946187838,0.83647013801022674,0.54801250735467,0.82978757573499506,0.55807936635915845,0.82298386589365646,0.5680647467311557,0.81606000181620486,0.57796719062221491,0.80901699437494745,0.58778525229247314,0.80185587183691853,0.59751749832172718,0.79457767971375426,0.60716250781871117,0.78718348060905019,0.61671887262854308,0.7796743540632225,0.62618519753831359,0.77205139639589682,0.63556010048078515,0.76431572054584829,0.64484221273617059,0.75646845590851353,0.65403017913196437,0.74851074817110119,0.66312265824079519,0.74044375914532334,0.67211832257627258,0.73226866659777357,0.68101585878679716,0.7239866640779743,0.68981396784730764,0.7155989607441211,0.69851136524893698,0.70710678118654757,0.70710678118654746,0.69851136524893709,0.71559896074412099,0.68981396784730775,0.72398666407797418,0.68101585878679716,0.73226866659777345,0.67211832257627269,0.74044375914532323,0.6631226582407953,0.74851074817110108,0.65403017913196437,0.75646845590851353,0.64484221273617059,0.76431572054584829,0.63556010048078526,0.77205139639589671,0.6261851975383137,0.77967435406322239,0.61671887262854308,0.78718348060905019,0.60716250781871128,0.79457767971375426,0.59751749832172729,0.80185587183691842,0.58778525229247314,0.80901699437494745,0.57796719062221502,0.81606000181620475,0.56806474673115581,0.82298386589365635,0.55807936635915845,0.82978757573499506,0.54801250735467011,0.83647013801022663,0.5378656394618786,0.84303057707669449,0.52764024410613275,0.84946793512152097,0.51733781417765679,0.85578127230144752,0.50695985381359043,0.86196966688004928,0.49650787817838798,0.86803221536230735,0.48598341324260619,0.8739680326265179,0.47538799556011624,0.87977625205351784,0.46472317204376862,0.8854560256532098,0.45399049973954686,0.8910065241883679,0.44319154559924134,0.89642693729570377,0.4323278862516774,0.90171647360417939,0.42140110777252926,0.9068743608505454,0.41041280545275693,0.91189984599209006,0.39936458356569565,0.9167921953165824,0.38825805513283501,0.92155069454939287,0.37709484168832047,0.92617464895777646,0.36587657304221222,0.93066338345230215,0.35460488704253579,0.93501624268541472,0.34328142933615846,0.93923259114711521,0.33190785312852855,0.94331181325774305,0.32048581894230971,0.94725331345785069,0.30901699437494745,0.95105651629515353,0.29750305385520298,0.9547208665085456,0.28594567839868945,0.95824582910916611,0.27434655536244584,0.96163088945850761,0.26270737819858708,0.96487555334355146,0.25102984620706176,0.96797934704892274,0.23931566428755782,0.97094181742605201,0.22756654269059004,0.97376253195933338,0.21578419676780636,0.976441078829272,0.2039703467215489,0.97897706697260845,0.19212671735370854,0.98137012613941343,0.18025503781390587,0.98361990694714352,0.16835704134703863,0.98572608093165082,0.15643446504023092,0.98768834059513777,0.14448904956922135,0.98950639945105112,0.13252253894422761,0.99117999206590912,0.12053668025532323,0.99270887409805397,0.1085332234173665,0.99409282233332519,0.09651392091451523,0.99533163471764863,0.084480527544367107,0.99642513038653613,0.072434800161762403,0.99737314969149116,0.060378497422286286,0.9981755542233175,0.048313379525507266,0.99883222683232653,0.036241207957992405,0.99934307164544123,0.024163745236132416,0.99970801408019294,0.012082754648817468,0.9999270008556107,0,0,0.99970801408019294,0.024163745236132288,0.99883222683232664,0.048313379525507065,0.99737314969149116,0.072434800161762361,0.99533163471764863,0.096513920914515106,0.99270887409805397,0.12053668025532305,0.98950639945105112,0.14448904956922132,0.98572608093165093,0.16835704134703852,0.98137012613941343,0.19212671735370837,0.97644107882927211,0.21578419676780614,0.97094181742605201,0.23931566428755774,0.96487555334355146,0.26270737819858692,0.95824582910916623,0.28594567839868923,0.95105651629515353,0.3090169943749474,0.94331181325774316,0.33190785312852839,0.93501624268541483,0.35460488704253557,0.92617464895777646,0.37709484168832041,0.9167921953165824,0.39936458356569554,0.9068743608505454,0.42140110777252909,0.89642693729570377,0.44319154559924129,0.88545602565320991,0.46472317204376851,0.87396803262651801,0.48598341324260608,0.86196966688004928,0.50695985381359032,0.84946793512152108,0.52764024410613275,0.83647013801022674,0.54801250735467,0.82298386589365646,0.5680647467311557,0.80901699437494745,0.58778525229247314,0.79457767971375426,0.60716250781871117,0.7796743540632225,0.62618519753831359,0.76431572054584829,0.64484221273617059,0.74851074817110119,0.66312265824079519,0.73226866659777357,0.68101585878679716,0.7155989607441211,0.69851136524893698,0,0.99883222683232664,0.048313379525507065,0.99533163471764863,0.096513920914515106,0.98950639945105112,0.14448904956922132,0.98137012613941343,0.19212671735370837,0.97094181742605201,0.23931566428755774,0.95824582910916623,0.28594567839868923,0.94331181325774316,0.33190785312852839,0.92617464895777646,0.37709484168832041,0.9068743608505454,0.42140110777252909,0.88545602565320991,0.46472317204376851,0.86196966688004928,0.50695985381359032,0.83647013801022674,0.54801250735467,0.80901699437494745,0.58778525229247314,0.7796743540632225,0.62618519753831359,0.74851074817110119,0.66312265824079519,0.7155989607441211,0.69851136524893698,0.68101585878679716,0.73226866659777345,0.64484221273617059,0.76431572054584829,0.60716250781871128,0.79457767971375426,0.56806474673115581,0.82298386589365635,0.52764024410613275,0.84946793512152097,0.48598341324260619,0.8739680326265179,0.44319154559924134,0.89642693729570377,0.39936458356569565,0.9167921953165824,0.35460488704253579,0.93501624268541472,0.30901699437494745,0.95105651629515353,0.26270737819858708,0.96487555334355146,0.21578419676780636,0.976441078829272,0.16835704134703863,0.98572608093165082,0.12053668025532323,0.99270887409805397,0.072434800161762403,0.99737314969149116,0.024163745236132416,0.99970801408019294,0,0.99737314969149116,0.072434800161762361,0.98950639945105112,0.14448904956922132,0.97644107882927211,0.21578419676780614,0.95824582910916623,0.28594567839868923,0.93501624268541483,0.35460488704253557,0.9068743608505454,0.42140110777252909,0.87396803262651801,0.48598341324260608,0.83647013801022674,0.54801250735467,0.79457767971375426,0.60716250781871117,0.74851074817110119,0.66312265824079519,0.69851136524893709,0.71559896074412099,0.64484221273617059,0.76431572054584829,0.58778525229247314,0.80901699437494745,0.52764024410613275,0.84946793512152097,0.46472317204376862,0.8854560256532098,0.39936458356569565,0.9167921953165824,0.33190785312852855,0.94331181325774305,0.26270737819858708,0.96487555334355146,0.19212671735370854,0.98137012613941343,0.12053668025532323,0.99270887409805397,0.048313379525507266,0.99883222683232653,-0.024163745236132073,0.99970801408019294,-0.096513920914514884,0.99533163471764863,-0.16835704134703852,0.98572608093165093,-0.23931566428755771,0.97094181742605201,-0.30901699437494734,0.95105651629515364,-0.37709484168832036,0.92617464895777657,-0.44319154559924123,0.89642693729570377,-0.5069598538135901,0.86196966688004939,-0.5680647467311557,0.82298386589365646,-0.62618519753831337,0.77967435406322261,-0.68101585878679705,0.73226866659777368,0,0.99533163471764863,0.096513920914515106,0.98137012613941343,0.19212671735370837,0.95824582910916623,0.28594567839868923,0.92617464895777646,0.37709484168832041,0.88545602565320991,0.46472317204376851,0.83647013801022674,0.54801250735467,0,0.98137012613941343,0.19212671735370837,0.92617464895777646,0.37709484168832041,0.83647013801022674,0.54801250735467,0.7155989607441211,0.69851136524893698,0.56806474673115581,0.82298386589365635,0.39936458356569565,0.9167921953165824,0,0.95824582910916623,0.28594567839868923,0.83647013801022674,0.54801250735467,0.64484221273617059,0.76431572054584829,0.39936458356569565,0.9167921953165824,0.12053668025532323,0.99270887409805397,-0.16835704134703852,0.98572608093165093,0,0.92617464895777646,0.37709484168832041,0.7155989607441211,0.69851136524893698,0.39936458356569565,0.9167921953165824,0.024163745236132416,0.99970801408019294,-0.35460488704253545,0.93501624268541483,-0.68101585878679705,0.73226866659777368,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99996050991622576,0.0088869909464268631,0.99984204278383626,0.017773279996819775,0.99964460795938559,0.026658165310580649,0.99936822103630929,0.035540945157978752,0.99901290384369279,0.044420917975573453,0.99857868444454756,0.053297382421623768,0.99806559713359433,0.062169637431480532,0.99747368243455514,0.071036982272956517,0.99680298709695181,0.07989871660167043,0.99605356409241474,0.088754140516360241,0.99522547261049832,0.097602554614161452,0.99431877805400637,0.10644326004584603,0.99333355203382712,0.11527555857101779,0.99226987236327646,0.12409875261325935,0.99112782305195324,0.13291214531522696,0.9899074942991033,0.14171504059368831,0.98860898248649598,0.15050674319449941,0.98723239017081188,0.15928655874751582,0.98577782607554265,0.16805379382143412,0.98424540508240432,0.17680775597855924,0.98263524822226367,0.18554775382949326,0.9809474826655793,0.1942730970877416,0.97918224171235757,0.20298309662423172,0.97733966478162482,0.21167706452174093,0.97541989740041568,0.22035431412922804,0.97342309119227965,0.22901416011606515,0.97134940386530566,0.23765591852616533,0.96919899919966612,0.24627890683200138,0.96697204703468187,0.25488244398851212,0.96466872325540798,0.26346585048689153,0.96228920977874255,0.27202844840825607,0.95983369453905854,0.28056956147718737,0.95730237147336106,0.28908851511514422,0.95469544050596999,0.29758463649374084,0.95201310753272994,0.30605725458788735,0.94925558440474833,0.31450570022878699,0.94642308891166416,0.32292930615678761,0.94351584476444583,0.33132740707408159,0.94053408157772322,0.33969933969725141,0.93747803485165249,0.34804444280965585,0.93434794595331605,0.35636205731365284,0.93114406209765954,0.36465152628265518,0.92786663632796662,0.37291219501301487,0.92451592749587386,0.38114341107573158,0.92109220024092608,0.38934452436798139,0.91759572496967556,0.39751488716446259,0.91402677783432518,0.40565385416855237,0.91038564071091743,0.41376078256327331,0.9066726011770726,0.4218350320620623,0.902887952489275,0.42987596495934116,0,0.99984204278383626,0.017773279996819775,0.99936822103630929,0.035540945157978752,0.99857868444454756,0.053297382421623768,0.99747368243455514,0.071036982272956517,0.99605356409241474,0.088754140516360241,0.99431877805400637,0.10644326004584603,0.99226987236327646,0.12409875261325935,0.9899074942991033,0.14171504059368831,0.98723239017081188,0.15928655874751582,0.98424540508240432,0.17680775597855924,0.9809474826655793,0.1942730970877416,0.97733966478162482,0.21167706452174093,0.97342309119227965,0.22901416011606515,0.96919899919966612,0.24627890683200138,0.96466872325540798,0.26346585048689153,0.95983369453905854,0.28056956147718737,0.95469544050596999,0.29758463649374084,0.94925558440474833,0.31450570022878699,0.94351584476444583,0.33132740707408159,0.93747803485165249,0.34804444280965585,0.93114406209765954,0.36465152628265518,0.92451592749587386,0.38114341107573158,0.91759572496967556,0.39751488716446259,0.91038564071091743,0.41376078256327331,0.902887952489275,0.42987596495934116,0.89510502893266652,0.44585534333396765,0.88703932877896929,0.46169386957090469,0.87869340009926877,0.47738654005112707,0.87006987949288594,0.49292839723354842,0.86117149125443782,0.50831453122117976,0.85200104651319353,0.52354008131223628,0.84256144234499752,0.53860023753570463,0.8328556608570421,0.55349024217088028,0.82288676824577622,0.5682053912504017,0.81265791382825026,0.5827410360463009,0.80217232904720082,0.59709258453860359,0.79143332645019149,0.61125550286601482,0.78044429864313158,0.62522531675823112,0.7692087172185027,0.63899761294942681,0.75773013165863234,0.65256804057246909,0.74601216821436167,0.66593231253341889,0.73405852875946009,0.67908620686588594,0.72187298962115032,0.69202556806480975,0.70945940038711175,0.70474630839924224,0.69682168268934064,0.71724440920372179,0.68396382896524921,0.72951592214782768,0.67088990119639769,0.74155697048351432,0.65760402962525533,0.75336375026983238,0.64411041145039771,0.76493253157464769,0.63041330950055052,0.77625965965298172,0,0.99964460795938559,0.026658165310580649,0.99857868444454756,0.053297382421623768,0.99680298709695181,0.07989871660167043,0.99431877805400637,0.10644326004584603,0.99112782305195324,0.13291214531522696,0.98723239017081188,0.15928655874751582,0.98263524822226367,0.18554775382949326,0.97733966478162482,0.21167706452174093,0.97134940386530566,0.23765591852616533,0.96466872325540798,0.26346585048689153,0.95730237147336106,0.28908851511514422,0.94925558440474833,0.31450570022878699,0.94053408157772322,0.33969933969725141,0.93114406209765954,0.36465152628265518,0.92109220024092608,0.38934452436798139,0.91038564071091743,0.41376078256327331,0.89903199355971219,0.43788294618088247,0.88703932877896929,0.46169386957090469,0.87441617056390653,0.48517662830803499,0.86117149125443782,0.50831453122117976,0.8473147049577775,0.53109113225727511,0.8328556608570421,0.55349024217088028,0.81780463621060817,0.57549594003123494,0.80217232904720082,0.59709258453860359,0.78596985056190438,0.61826482514186243,0.7692087172185027,0.63899761294942681,0.75190084256375977,0.65927621142576354,0.73405852875946009,0.67908620686588594,0.71569445783822794,0.69841351864038614,0.69682168268934064,0.71724440920372179,0.67745361778094271,0.735565493858645,0.65760402962525533,0.75336375026983238,0.63728702699355844,0.7706265277199531,0.61651705088790076,0.78734155610159784,0.59530886427666596,0.80349695463867565,0.57367754160128892,0.81908124033108065,0.55163845806158318,0.834083336116625,0.52920727868729367,0.84849257874443962,0.5063999472036429,0.86229872635424187,0.48323267469878467,0.87549196575608768,0.45972192810122092,0.88806291940543036,0.43588441847537102,0.90000265206853014,0.41173708914361312,0.91130267717347591,0.38729710364324055,0.92195496284230549,0.36258183352689227,0.931951937599937,0.33760884601513041,0.94128649575585221,0.31239589150993891,0.94995200245470846,0.28696089097802113,0.9579422983922885,0.26132192321286074,0.96525170419343564,0.23549721198460452,0.97187502444886309,0,0.99936822103630929,0.035540945157978752,0.99747368243455514,0.071036982272956517,0.99431877805400637,0.10644326004584603,0.9899074942991033,0.14171504059368831,0.98424540508240432,0.17680775597855924,0.97733966478162482,0.21167706452174093,0.96919899919966612,0.24627890683200138,0.95983369453905854,0.28056956147718737,0.94925558440474833,0.31450570022878699,0.93747803485165249,0.34804444280965585,0.92451592749587386,0.38114341107573158,0.91038564071091743,0.41376078256327331,0.89510502893266652,0.44585534333396765,0.87869340009926877,0.47738654005112707,0.86117149125443782,0.50831453122117976,0.84256144234499752,0.53860023753570463,0.82288676824577622,0.5682053912504017,0.80217232904720082,0.59709258453860359,0.78044429864313158,0.62522531675823112,0.75773013165863234,0.65256804057246909,0.73405852875946009,0.67908620686588594,0.70945940038711175,0.70474630839924224,0.68396382896524921,0.72951592214782768,0.65760402962525533,0.75336375026983238,0.63041330950055052,0.77625965965298172,0.60242602564109959,0.7981747199894702,0.57367754160128892,0.81908124033108065,0.54420418275602733,0.8389528040783012,0.51404319040153013,0.85776430235922985,0.48323267469878467,0.87549196575608768,0.451811566519154,0.89211339433925552,0.41981956825296518,0.90760758597088309,0.38729710364324055,0.92195496284230549,0.35428526670795579,0.93513739621173986,0.32082576981536759,0.94713822931100022,0.28696089097802113,0.9579422983922885,0.25273342043203073,0.9675359518884693,0.21818660656913924,0.97590706766261492,0.18336410128986907,0.9830450683250278,0.14830990484681672,0.9889409345983855,0.11306831024778596,0.99358721671411943,0.077683847289006236,0.99697804382562927,0.042201226289154764,0.99910913142643809,0.0066652815952804173,0.99997778676391391,-0.028879085067991653,0.9995829122417188,-0.064386961334390758,0.99792500680668572,-0.099813480945375579,0.99500616531836983,-0.13511388044125255,0.99083007590207262,-0.17024355572239872,0.98540201528868132,-0.20515811840912604,0.97872884214721445,0,0.99901290384369279,0.044420917975573453,0.99605356409241474,0.088754140516360241,0.99112782305195324,0.13291214531522696,0.98424540508240432,0.17680775597855924,0.97541989740041568,0.22035431412922804,0.96466872325540798,0.26346585048689153,0.95201310753272994,0.30605725458788735,0.93747803485165249,0.34804444280965585,0.92109220024092608,0.38934452436798139,0.902887952489275,0.42987596495934116,0.88290123028266743,0.46955874772530048,0.86117149125443782,0.50831453122117976,0.83774163408833124,0.54606680407713182,0.81265791382825026,0.5827410360463009,0.78596985056190438,0.61826482514186243,0.75773013165863234,0.65256804057246909,0.72799450775440355,0.6855829611939197,0.69682168268934064,0.71724440920372179,0.66427319761504933,0.74748987881460816,0.63041330950055052,0.77625965965298172,0.59530886427666596,0.80349695463867565,0.55902916486929521,0.8291479921133128,0.52164583438211232,0.85316213199590019,0.48323267469878467,0.87549196575608768,0.44386552078386277,0.89609341000772358,0.40362209096997476,0.9149257935379379,0.36258183352689227,0.931951937599937,0.32082576981536759,0.94713822931100022,0.27843633433538478,0.96045468801077427,0.23549721198460452,0.97187502444886309,0.1920931728482819,0.98137669268486305,0.14830990484681672,0.9889409345983855,0.10423384457131837,0.99455281692119413,0.059952006641152855,0.99820126071834792,0.015551811920350793,0.99987906326014953,-0.028879085067991653,0.9995829122417188,-0.073252969188597528,0.9973133923221198,-0.11748223786055532,0.99307498397013094,-0.16147957400165985,0.98687605461893868,-0.20515811840912604,0.97872884214721445,-0.24843164123635872,0.96864943071918908,-0.29121471222725215,0.95665771903141972,-0.33342286937194637,0.94277738102893516,-0.37497278565107661,0.92703581916831657,-0.41578243353933508,0.90946411031997765,-0.45577124694357973,0.89009694441644638,-0.49486028025579804,0.86897255596776646,-0.53297236420691718,0.84613264857922199,-0.57003225821378267,0.82162231262040064,-0.60596679891854066,0.79548993620813147,0,0.99857868444454756,0.053297382421623768,0.99431877805400637,0.10644326004584603,0.98723239017081188,0.15928655874751582,0.97733966478162482,0.21167706452174093,0.96466872325540798,0.26346585048689153,0.94925558440474833,0.31450570022878699,0.93114406209765954,0.36465152628265518,0.91038564071091743,0.41376078256327331,0.88703932877896929,0.46169386957090469,0.86117149125443782,0.50831453122117976,0.8328556608570421,0.55349024217088028,0.80217232904720082,0.59709258453860359,0.7692087172185027,0.63899761294942681,0.73405852875946009,0.67908620686588594,0.69682168268934064,0.71724440920372179,0.65760402962525533,0.75336375026983238,0.61651705088790076,0.78734155610159784,0.57367754160128892,0.81908124033108065,0.52920727868729367,0.84849257874443962,0.48323267469878467,0.87549196575608768,0.43588441847537102,0.90000265206853014,0.38729710364324055,0.92195496284230549,0.33760884601513041,0.94128649575585221,0.28696089097802113,0.9579422983922885,0.23549721198460452,0.97187502444886309,0.18336410128986907,0.9830450683250278,0.13070975409618393,0.99142067770655007,0.077683847289006236,0.99697804382562927,0.024437113960710011,0.9997013691404405,-0.028879085067991653,0.9995829122417188,-0.082113191511024572,0.99662300985872976,-0.13511388044125255,0.99083007590207262,-0.18773049045142315,0.98222057754603576,-0.23981345192897105,0.97081898841849557,-0.29121471222725215,0.95665771903141972,-0.34178815652460287,0.93977702464973767,-0.39139002317487781,0.92022489086047254,-0.43987931236877809,0.89805689716741832,-0.48711818694429537,0.87333605899911326,-0.53297236420691718,0.84613264857922199,-0.57731149764579182,0.81652399516852714,-0.6200095474607753,0.78459426524636577,-0.66094513884708872,0.75043422325637754,-0.70000190701911402,0.71414097359667283,-0.73706882799255391,0.67581768458785019,-0.77204053418466401,0.63557329520351835,-0.80481761393542095,0.59352220539698064,-0.83530689409820058,0.54978395090436893,-0.86342170489666348,0.50448286344863991,-0.88908212629495653,0.45774771731035324,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99995509451060383,0.0094767590604237784,0.99982038207542134,0.018952667003840559,0.99959587479310819,0.028426872789683002,0.99928159282688311,0.037898525530256202,0.99887756440271702,0.047366774567156739,0.99838382580679841,0.056830769547671162,0.99780042138227354,0.066289660501146999,0.99712740352526508,0.075742597915329418,0.99636483268016529,0.085188732812656792,0.99551277733420829,0.094627216826508181,0.99457131401131871,0.10405720227739598,0.993540527265239,0.11347784224909686,0.99242050967193574,0.12288829066471411,0.99121136182128533,0.13228770236266466,0.98991319230803976,0.14167523317258385,0.98852611772207344,0.15105003999114114,0.98705026263791285,0.16041128085776024,0.98548575960354756,0.16975811503023616,0.98383274912852636,0.1790897030602433,0.98209137967133797,0.18840520686872697,0.98026180762607795,0.19770378982117218,0.97834419730840216,0.2069846168027426,0.97633872094077045,0.21624685429328303,0.97424555863697815,0.2254896704421786,0.97206489838598065,0.23471223514306425,0.96979693603500949,0.24391372010837714,0.96744187527198322,0.25309329894374621,0.96499992760721409,0.2622501472222114,0.96247131235441208,0.27138344255826619,0.95985625661098795,0.28049236468171673,0.95715499523765779,0.28957609551135138,0.95436777083734936,0.29863381922841342,0.95149483373341415,0.30766472234987002,0.94853644194714548,0.31666799380147248,0.94549286117460551,0.32564282499059949,0.9423643647627622,0.33458840987887739,0.93915123368494058,0.34350394505457149,0.93585375651558778,0.35238862980474123,0.93247222940435581,0.36124166618715292,0.92900695604950445,0.37006225910194385,0.92545824767062534,0.37884961636303061,0.92182642298069151,0.38760294876925683,0.91811180815743332,0.39632147017527131,0.91431473681404363,0.40500439756213291,0.9104355499692165,0.41365095110763422,0.90647459601651925,0.42226035425633823,0.90243223069310341,0.43083183378932127,0.89830881704775534,0.4393646198936168,0.89410472540829045,0.44785794623135305,0.8898203333482938,0.4563110500085783,0.88545602565320991,0.46472317204376856,0.88101219428578448,0.47309355683601007,0.87648923835086234,0.48142145263285185,0.87188756405954304,0.48970611149782095,0.86720758469269865,0.49794678937759601,0.86244972056385683,0.50614274616883048,0.85761439898145209,0.51429324578462299,0.85270205421044853,0.52239755622062523,0.84771312743333804,0.53045494962078465,0.84264806671051762,0.53846470234271337,0.8375073269400487,0.54642609502267958,0.83229136981680141,0.55433841264021422,0.82700066379099046,0.56220094458232739,0.82163568402610265,0.57001298470732964,0.81619691235622172,0.57777383140825112,0.81068483724275475,0.58548278767585316,0.80509995373056309,0.593139161161228,0.79944276340350118,0.60074226423797883,0.79371377433936952,0.60829141406397669,0.78791350106428359,0.61578593264268644,0.78204246450646342,0.62322514688405906,0.77610119194944871,0.63060838866498203,0.77009021698474311,0.63793499488928429,0.76401007946389188,0.64520430754728975,0.75786132544999674,0.65241567377491338,0.75164450716867404,0.6595684459122958,0.74536018295845874,0.66666198156197032,0.73900891722065909,0.67369564364655721,0.73259128036866761,0.68066880046598011,0.72610784877673162,0.68758082575419965,0.71955920472818813,0.6944310987354595,0.71294593636316905,0.70121900418003802,0.70626863762577907,0.70794393245950338,0.69952790821075372,0.71460527960146458,0.69272435350959938,0.72120244734381456,0.68585858455622306,0.72773484318846116,0.67893121797205469,0.73420188045453971,0.67194287591066759,0.74060297833110367,0.66489418600190253,0.74693756192928695,0.65778578129549925,0.7532050623339368,0.65061830020424216,0.75940491665470711,0.64339238644662344,0.76553656807661297,0.63610868898903061,0.77159946591003858,0.62876786198746126,0.77759306564019515,0.62137056472877372,0.78351682897602448,0.6139174615714752,0.78937022389854317,0.60640922188605528,0.79515272470862419,0.59884651999486893,0.80086381207420965,0.59123003511157568,0.8065029730769534,0.58356045128013745,0.81206970125828626,0.57583845731338545,0.81756349666490147,0.56806474673115581,0.82298386589365635,0.5602400176980048,0.8283303221358852,0.5523649729605058,0.83360238522111951,0.54444031978413465,0.83879958166021351,0.53646676988974951,0.84392144468786823,0.52844503938967125,0.84896751430455142,0.52037584872336751,0.85393733731781218,0.51225992259274977,0.85883046738298119,0.50409798989708809,0.86364646504325782,0,0.99982038207542134,0.018952667003840559,0.99928159282688311,0.037898525530256202,0.99838382580679841,0.056830769547671162,0.99712740352526508,0.075742597915329418,0.99551277733420829,0.094627216826508181,0.993540527265239,0.11347784224909686,0.99121136182128533,0.13228770236266466,0.98852611772207344,0.15105003999114114,0.98548575960354756,0.16975811503023616,0.98209137967133797,0.18840520686872697,0.97834419730840216,0.2069846168027426,0.97424555863697815,0.2254896704421786,0.96979693603500949,0.24391372010837714,0.96499992760721409,0.2622501472222114,0.95985625661098795,0.28049236468171673,0.95436777083734936,0.29863381922841342,0.94853644194714548,0.31666799380147248,0.9423643647627622,0.33458840987887739,0.93585375651558778,0.35238862980474123,0.92900695604950445,0.37006225910194385,0.92182642298069151,0.38760294876925683,0.91431473681404363,0.40500439756213291,0.90647459601651925,0.42226035425633823,0.89830881704775534,0.4393646198936168,0.8898203333482938,0.4563110500085783,0.88101219428578448,0.47309355683601007,0.87188756405954304,0.48970611149782095,0.86244972056385683,0.50614274616883048,0.85270205421044853,0.52239755622062523,0.84264806671051762,0.53846470234271337,0.83229136981680141,0.55433841264021422,0.82163568402610265,0.57001298470732964,0.81068483724275475,0.58548278767585316,0.79944276340350118,0.60074226423797883,0.78791350106428359,0.61578593264268644,0.77610119194944871,0.63060838866498203,0.76401007946389188,0.64520430754728975,0.75164450716867404,0.6595684459122958,0.73900891722065909,0.67369564364655721,0.72610784877673162,0.68758082575419965,0.71294593636316905,0.70121900418003802,0.69952790821075372,0.71460527960146458,0.68585858455622306,0.72773484318846116,0.67194287591066759,0.74060297833110367,0.65778578129549925,0.7532050623339368,0.64339238644662344,0.76553656807661297,0.62876786198746126,0.77759306564019515,0.6139174615714752,0.78937022389854317,0.59884651999486893,0.80086381207420965,0.58356045128013745,0.81206970125828626,0.56806474673115581,0.82298386589365635,0.5523649729605058,0.83360238522111951,0.53646676988974951,0.84392144468786823,0.52037584872336751,0.85393733731781218,0.50409798989708809,0.86364646504325782,0.48763904100134964,0.87304533999746203,0.47100491468063477,0.8821305857675994,0.45420158650943732,0.89089893860769087,0.43723509284562156,0.8993472486110583,0.42011152866194607,0.90747248084188359,0.40283704535653114,0.91527171642546679,0.38541784854305527,0.92274215359679024,0.36786019582147772,0.92988110870701313,0.35017039453008308,0.93668601718753441,0.33235479947965962,0.94315443447127745,0.31441981067062363,0.94928403687086682,0.29637187099390949,0.95507262241337931,0.27821746391645275,0.96051811163137224,0.25996311115209536,0.96561854830990235,0.24161537031875366,0.97037210018926834,0.22318083258268606,0.97477705962322436,0.20466612029070999,0.97883184419242752,0.18607788459121755,0.98253499727289995,0.16742280304484458,0.9858851885593003,0.14870757722565175,0.98888121454281697,0.1299389303136779,0.99152199894351167,0.11112360467973423,0.99380659309695774,0.092268359463302016,0.99573417629503447,0.073379968144407642,0.99730405608075501,0.054465216110345792,0.99851566849702134,0.035530898218124995,0.99936857828921821,0.016583816353511714,0.99986247906157222,-0.0023692230124518101,0.99999719338722015,-0.021321411268574616,0.9997726728719466,-0.040265940109415123,0.99918899817156959,-0.059196003981068307,0.99824637896296586,-0.078104802525964634,0.99694515386874727,-0.09698554302580227,0.99528579033561526,-0.11583144284173486,0.99326888446643791,-0.13463573185093927,0.99089516080610762,-0.15339165487868531,0.98816547208125938,-0.17209247412503736,0.98508079889394018,-0.19073147158531353,0.98164224936934164,-0.20930195146343372,0.97785105875772227,-0.22779724257728967,0.97370858899066071,-0.24621070075527246,0.96921632819180137,-0.26453571122309805,0.96437589014226688,-0.28276569098006993,0.95918901370093035,-0.30089409116393007,0.95365756217975461,-0.31891439940344452,0.9477835226744239,-0.33682014215788081,0.94156900535050803,-0.35460488704253568,0.93501624268541483,-0.37226224513947853,0.92812758866640466,-0.38978587329267927,0.92090551794495368,-0.40716947638669843,0.91335262494777003,-0.42440680960811705,0.90547162294478312,-0.4414916806888976,0.89726534307443995,-0.45841795213086994,0.88873673332665815,-0.47517954341054003,0.87988885748380219,-0.4917704331634305,0.87072489402006414,0,0.99959587479310819,0.028426872789683002,0.99838382580679841,0.056830769547671162,0.99636483268016529,0.085188732812656792,0.993540527265239,0.11347784224909686,0.98991319230803976,0.14167523317258382,0.98548575960354756,0.16975811503023616,0.98026180762607795,0.19770378982117218,0.97424555863697815,0.2254896704421786,0,0.99838382580679841,0.056830769547671162,0.993540527265239,0.11347784224909686,0.98548575960354756,0.16975811503023616,0.97424555863697815,0.2254896704421786,0.95985625661098806,0.28049236468171668,0.9423643647627622,0.33458840987887739,0.92182642298069151,0.38760294876925683,0.89830881704775534,0.4393646198936168,0,0.99636483268016529,0.085188732812656792,0.98548575960354756,0.16975811503023616,0.96744187527198322,0.25309329894374621,0.9423643647627622,0.33458840987887739,0.91043554996921638,0.41365095110763422,0.87188756405954304,0.48970611149782095,0.82700066379099046,0.56220094458232739,0.77610119194944871,0.63060838866498203,0,0.993540527265239,0.11347784224909686,0.97424555863697815,0.2254896704421786,0.9423643647627622,0.33458840987887739,0.89830881704775534,0.4393646198936168,0.84264806671051773,0.53846470234271337,0.77610119194944871,0.63060838866498203,0.69952790821075372,0.71460527960146458,0.6139174615714752,0.78937022389854317,0,0.98991319230803976,0.14167523317258385,0.95985625661098795,0.28049236468171673,0.91043554996921638,0.41365095110763422,0.84264806671051762,0.53846470234271337,0.75786132544999663,0.65241567377491338,0.65778578129549914,0.75320506233393691,0.54444031978413454,0.83879958166021362,0.42011152866194607,0.90747248084188359,0,0.98548575960354756,0.16975811503023616,0.9423643647627622,0.33458840987887739,0.87188756405954304,0.48970611149782095,0.77610119194944871,0.63060838866498203,0.65778578129549914,0.75320506233393691,0.52037584872336751,0.85393733731781218,0.36786019582147772,0.92988110870701313,0.20466612029070999,0.97883184419242752,0,0.98026180762607795,0.19770378982117218,0.92182642298069151,0.38760294876925683,0.82700066379099046,0.56220094458232739,0.69952790821075372,0.71460527960146458,0.54444031978413465,0.83879958166021351,0.36786019582147772,0.92988110870701313,0.17675828123515486,0.98425429133674291,-0.021321411268574616,0.9997726728719466,0,0.97424555863697815,0.2254896704421786,0.89830881704775534,0.4393646198936168,0.77610119194944871,0.63060838866498203,0.6139174615714752,0.78937022389854317,0.42011152866194629,0.90747248084188359,0.20466612029070999,0.97883184419242752,-0.021321411268574616,0.9997726728719466,-0.24621070075527246,0.96921632819180137,0,0.96744187527198322,0.25309329894374621,0.87188756405954304,0.48970611149782095,0.71955920472818813,0.69443109873545938,0.52037584872336751,0.85393733731781218,0.28730756914218064,0.9578383792235573,0.035530898218125218,0.99936857828921821,-0.21855941153769862,0.97582364371247676,-0.45841795213086994,0.88873673332665815,0,0.95985625661098795,0.28049236468171673,0.84264806671051762,0.53846470234271337,0.65778578129549914,0.75320506233393691,0.42011152866194607,0.90747248084188359,0.14870757722565153,0.98888121454281697,-0.13463573185093949,0.99089516080610762,-0.40716947638669865,0.91335262494776992,-0.64701260697064578,0.76247930229026462,0,0.95149483373341415,0.30766472234987002,0.81068483724275475,0.58548278767585316,0.59123003511157557,0.80650297307695351,0.31441981067062363,0.94928403687086682,0.0071076158414976436,0.99997474057950564,-0.30089409116393029,0.9536575621797545,-0.57970596232827865,0.81482574655017159,-0.80228036531569835,0.59694741429116649,0,0.9423643647627622,0.33458840987887739,0.77610119194944871,0.63060838866498203,0.52037584872336751,0.85393733731781218,0.20466612029070999,0.97883184419242752,-0.13463573185093949,0.99089516080610762,-0.45841795213086994,0.88873673332665815,-0.72935775266036806,0.68413249347930938,-0.91622355841029723,0.40066743193572973,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99996884689415633,0.0078933669097132828,0.99987538951765731,0.015786242013636962,0.99971963369347794,0.023678133536623992,0.99950158912617382,0.031568549764810529,0.99922126940127565,0.039456999076252754,0.99887869198444357,0.047342989971557989,0.99847387822037881,0.05522603110450814,0.99800685333149342,0.063105631312673646,0.99747764641633874,0.070981299648015916,0.9968862904477932,0.078852545407476465,0.99623282227100673,0.086718878163550769,0.99551728260110595,0.094579807794844942,0.99473971602065692,0.10243484451661329,0.99390017097688776,0.11028349891127502,0.99299869977866961,0.11812528195890797,0.99203535859325775,0.12595970506771756,0.99101020744279211,0.13378628010447913,0.98992331020055713,0.14160451942495164,0.9887747345870026,0.14941393590426094,0.98756455216552375,0.15721404296725078,0.98629283833800274,0.16500435461879928,0.9849596723401105,0.17278438547409952,0.98356513723636996,0.18055365078890218,0.98210931991498041,0.18831166648971787,0.98059231108240408,0.19605794920397804,0.97901420525771454,0.20379201629015212,0.97737510076670719,0.21151338586781901,0.9756750997357736,0.21922157684769134,0.97391430808553781,0.22691610896159015,0.97209283552425696,0.23459650279236871,0.97021079554098633,0.24226227980378318,0.96826830539850717,0.24991296237030836,0.96626548612602181,0.25754807380689665,0.96420246251161168,0.26516713839867867,0.96207936309446285,0.27276968143060309,0.959896320156857,0.28035522921701445,0.95765346971592957,0.28792330913116648,0.95535095151519478,0.29547344963467004,0.95298890901583921,0.30300518030687273,0.9505674893877829,0.31051803187416882,0.94808684350050954,0.31801153623923822,0.94554712591366707,0.32548522651021172,0.94294849486743704,0.33293863702976112,0.94029111227267559,0.34037130340411281,0.93757514370082506,0.34778276253198237,0.93480075837359833,0.3551725526334284,0.93196812915243488,0.36254021327862446,0.92907743252773056,0.36988528541654681,0.92612884860784117,0.377207311403576,0.92312256110786073,0.38450583503201086,0.92005875733817455,0.39178040155849314,0.91693762819278879,0.39903055773234097,0.91375936813743674,0.40625585182378898,0.9105241751974622,0.41345583365213406,0.90723225094548132,0.42063005461378428,0.90388380048882355,0.4277780677102096,0.90047903245675165,0.43489942757579297,0.89701815898746351,0.44199369050557913,0.89350139571487408,0.44906041448292011,0.88992896175518033,0.45609915920701594,0.88630107969320859,0.4631094861203478,0.88261797556854693,0.47009095843600301,0.87887987886146035,0.47704314116488961,0.87508702247859371,0.48396560114283876,0.87123964273845955,0.49085790705759369,0.86733797935671464,0.49771962947568305,0.86338227543122337,0.50455034086917749,0.85937277742691198,0.51134961564232673,0.85530973516041187,0.51811703015807742,0.85119340178449465,0.52485216276446833,0.84702403377229896,0.53155459382090142,0.8428018909013506,0.53822390572428858,0.83852723623737735,0.54485968293507048,0.83420033611791755,0.55146151200310745,0.82982146013572589,0.55802898159344017,0.82539088112197623,0.56456168251191807,0.82090887512926258,0.57105920773069474,0.81637572141439907,0.57752115241358859,0.81179170242102072,0.58394711394130627,0.80715710376198535,0.59033669193652838,0.80247221420157799,0.59668948828885593,0.79773732563751931,0.60300510717961453,0.79295273308277858,0.60928315510651676,0.7881187346471924,0.61552324090817923,0.78323563151889042,0.62172497578849517,0.77830372794552993,0.62788797334085833,0.77332333121533914,0.63401184957223866,0.76829475163797079,0.64009622292710711,0.76321830252516842,0.64614071431120979,0.75809430017124557,0.65214494711518656,0.75292306383337704,0.65810854723803769,0.74770491571170916,0.66403114311043121,0.74244018092928321,0.66991236571785517,0.73712918751177903,0.67575184862360871,0.73177226636707671,0.68154922799163375,0.72636975126463943,0.68730414260918427,0.72092197881471642,0.69301623390933176,0.7154292884473713,0.69868514599330644,0.70989202239133287,0.70431052565267216,0,0.99987538951765731,0.015786242013636962,0.99950158912617382,0.031568549764810529,0.99887869198444357,0.047342989971557989,0.99800685333149342,0.063105631312673646,0.9968862904477932,0.078852545407476465,0.99551728260110595,0.094579807794844942,0.99390017097688776,0.11028349891127502,0.99203535859325775,0.12595970506771756,0.98992331020055713,0.14160451942495164,0.98756455216552375,0.15721404296725078,0.9849596723401105,0.17278438547409952,0.98210931991498041,0.18831166648971787,0.97901420525771454,0.20379201629015212,0.9756750997357736,0.21922157684769134,0.97209283552425696,0.23459650279236871,0.96826830539850717,0.24991296237030836,0.96420246251161168,0.26516713839867867,0.959896320156857,0.28035522921701445,0.95535095151519478,0.29547344963467004,0.9505674893877829,0.31051803187416882,0.94554712591366707,0.32548522651021172,0.94029111227267559,0.34037130340411281,0.93480075837359833,0.3551725526334284,0.92907743252773056,0.36988528541654681,0.92312256110786073,0.38450583503201086,0.91693762819278879,0.39903055773234097,0.9105241751974622,0.41345583365213406,0.90388380048882355,0.4277780677102096,0.89701815898746351,0.44199369050557913,0.88992896175518033,0.45609915920701594,0.88261797556854693,0.47009095843600301,0.87508702247859371,0.48396560114283876,0.86733797935671464,0.49771962947568305,0.85937277742691198,0.51134961564232673,0.85119340178449465,0.52485216276446833,0.8428018909013506,0.53822390572428858,0.83420033611791755,0.55146151200310745,0.82539088112197623,0.56456168251191807,0.81637572141439907,0.57752115241358859,0.80715710376198535,0.59033669193652838,0.79773732563751931,0.60300510717961453,0.7881187346471924,0.61552324090817923,0.77830372794552993,0.62788797334085833,0.76829475163797079,0.64009622292710711,0.75809430017124557,0.65214494711518656,0.74770491571170916,0.66403114311043121,0.73712918751177903,0.67575184862360871,0.72636975126463943,0.68730414260918427,0.7154292884473713,0.69868514599330644,0.70431052565267216,0.70989202239133287,0.69301623390933176,0.72092197881471642,0.68154922799163375,0.73177226636707682,0.66991236571785517,0.7424401809292831,0.65810854723803769,0.75292306383337704,0.64614071431120967,0.76321830252516853,0.63401184957223866,0.77332333121533903,0.62172497578849528,0.78323563151889031,0.60928315510651665,0.79295273308277858,0.59668948828885593,0.80247221420157788,0.58394711394130627,0.81179170242102072,0.57105920773069474,0.82090887512926258,0.55802898159344017,0.82982146013572577,0.54485968293507037,0.83852723623737735,0.53155459382090142,0.84702403377229885,0.51811703015807742,0.85530973516041187,0.50455034086917749,0.86338227543122326,0.49085790705759363,0.87123964273845966,0.47704314116488955,0.87887987886146035,0.4631094861203478,0.88630107969320859,0.44906041448292017,0.89350139571487408,0.43489942757579308,0.90047903245675165,0.42063005461378417,0.90723225094548143,0.40625585182378898,0.91375936813743674,0.39178040155849314,0.92005875733817455,0.37720731140357605,0.92612884860784117,0.36254021327862451,0.93196812915243477,0.34778276253198248,0.93757514370082506,0.33293863702976106,0.94294849486743704,0.31801153623923822,0.94808684350050954,0.30300518030687273,0.95298890901583921,0.28792330913116654,0.95765346971592946,0.27276968143060321,0.96207936309446285,0.25754807380689659,0.96626548612602181,0.24226227980378318,0.97021079554098633,0.22691610896159015,0.97391430808553781,0.21151338586781906,0.97737510076670719,0.19605794920397812,0.98059231108240408,0.18055365078890231,0.98356513723636985,0.16500435461879923,0.98629283833800274,0.14941393590426094,0.9887747345870026,0.13378628010447915,0.99101020744279211,0.11812528195890805,0.99299869977866961,0.10243484451661342,0.99473971602065692,0.086718878163550728,0.99623282227100673,0.070981299648015903,0.99747764641633874,0.055226031104508168,0.99847387822037881,0.039456999076252823,0.99922126940127565,0.0236781335366241,0.99971963369347794,0.0078933669097132116,0.99996884689415633,0,0.99971963369347794,0.023678133536623992,0.99887869198444357,0.047342989971557989,0.99747764641633874,0.070981299648015916,0.99551728260110595,0.094579807794844942,0.99299869977866961,0.11812528195890797,0.98992331020055713,0.14160451942495164,0.98629283833800274,0.16500435461879928,0.98210931991498041,0.18831166648971787,0.97737510076670719,0.21151338586781901,0.97209283552425696,0.23459650279236871,0.96626548612602181,0.25754807380689665,0.959896320156857,0.28035522921701445,0.95298890901583921,0.30300518030687273,0.94554712591366707,0.32548522651021172,0.93757514370082506,0.34778276253198237,0.92907743252773056,0.36988528541654681,0.92005875733817455,0.39178040155849314,0.9105241751974622,0.41345583365213406,0.90047903245675165,0.43489942757579297,0.88992896175518033,0.45609915920701594,0.87887987886146035,0.47704314116488961,0.86733797935671464,0.49771962947568305,0.85530973516041187,0.51811703015807742,0.8428018909013506,0.53822390572428858,0.82982146013572589,0.55802898159344017,0.81637572141439907,0.57752115241358859,0.80247221420157799,0.59668948828885593,0.7881187346471924,0.61552324090817923,0.77332333121533914,0.63401184957223866,0.75809430017124557,0.65214494711518656,0.74244018092928321,0.66991236571785517,0.72636975126463943,0.68730414260918427,0.70989202239133287,0.70431052565267216,0.69301623390933176,0.72092197881471642,0.67575184862360871,0.73712918751177903,0.65810854723803769,0.75292306383337704,0.64009622292710722,0.76829475163797067,0.62172497578849528,0.78323563151889031,0.60300510717961453,0.79773732563751931,0.58394711394130627,0.81179170242102072,0.56456168251191807,0.82539088112197612,0.54485968293507037,0.83852723623737735,0.52485216276446822,0.85119340178449465,0.50455034086917749,0.86338227543122326,0.48396560114283876,0.8750870224785936,0.4631094861203478,0.88630107969320859,0.44199369050557907,0.89701815898746351,0.42063005461378417,0.90723225094548143,0.39903055773234103,0.91693762819278868,0.37720731140357605,0.92612884860784117,0.3551725526334284,0.93480075837359833,0.33293863702976106,0.94294849486743704,0.31051803187416893,0.95056748938778279,0.28792330913116654,0.95765346971592946,0.26516713839867867,0.96420246251161168,0.24226227980378318,0.97021079554098633,0.21922157684769125,0.9756750997357736,0.19605794920397812,0.98059231108240408,0.17278438547409958,0.9849596723401105,0.14941393590426094,0.9887747345870026,0.1259597050677175,0.99203535859325787,0.10243484451661342,0.99473971602065692,0.078852545407476549,0.9968862904477932,0.055226031104508168,0.99847387822037881,0.031568549764810501,0.99950158912617382,0.0078933669097132116,0.99996884689415633,-0.015786242013636858,0.99987538951765731,-0.039456999076252698,0.99922126940127565,-0.063105631312673632,0.99800685333149342,-0.086718878163550825,0.99623282227100673,-0.1102834989112749,0.99390017097688776,-0.13378628010447904,0.99101020744279211,-0.15721404296725075,0.98756455216552375,-0.1805536507889022,0.98356513723636985,-0.20379201629015217,0.97901420525771454,-0.22691610896159004,0.97391430808553781,-0.2499129623703083,0.96826830539850728,-0.27276968143060309,0.96207936309446285,-0.29547344963467009,0.95535095151519478,-0.31801153623923811,0.94808684350050954,-0.34037130340411276,0.94029111227267559,-0.3625402132786244,0.93196812915243488,-0.38450583503201086,0.92312256110786073,-0.40625585182378904,0.91375936813743674,-0.42777806771020971,0.90388380048882344,-0.44906041448292028,0.89350139571487397,-0.47009095843600279,0.88261797556854704,-0.49085790705759352,0.87123964273845966,-0.5113496156423265,0.85937277742691209,-0.53155459382090131,0.84702403377229896,-0.55146151200310745,0.83420033611791755,-0.57105920773069474,0.82090887512926258,-0.59033669193652849,0.80715710376198535,-0.60928315510651676,0.79295273308277858,-0.62788797334085855,0.77830372794552982,-0.6461407143112099,0.76321830252516842,-0.6640311431104311,0.74770491571170927,-0.68154922799163375,0.73177226636707682,-0.69868514599330644,0.71542928844737141,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99994607190387297,0.010385243570302651,0.99978429343197095,0.020769367027778179,0.99951468203310401,0.031151250380410563,0.99913726678653092,0.041529773877792962,0.99865208839882302,0.051903818131899732,0.99805919919947395,0.062272264237819348,0.99735866313525501,0.072633993894435228,0.99655055576331875,0.08298788952504145,0.9956349642430492,0.093332834397880315,0.99461198732666134,0.10366771274658873,0.99348173534855022,0.11399140989054062,0.99224433021339042,0.12430281235507204,0.99089990538298811,0.13460080799157637,0.98944860586188632,0.14488428609745638,0.98789058818172515,0.15515213753592053,0.98622602038435903,0.16540325485560992,0.98445508200373244,0.17563653241004418,0.98257796404651565,0.18585086647687199,0.98059486897150416,0.19604515537691447,0.97850601066778153,0.20621829959298815,0.97631161443165049,0.21636920188849465,0.97401191694233347,0.22649676742576436,0.97160716623644505,0.23659990388414168,0.96909762168123947,0.2466775215777984,0.96648355394663699,0.25672853357326303,0.96376524497602956,0.2667518558066535,0.9609429879558723,0.27674640720060001,0.95801708728406076,0.2867111097808458,0.95498785853710055,0.29664488879251372,0.95185562843606963,0.30654667281602488,0.94862073481137998,0.31641539388265788,0.94528352656634029,0.32624998758973617,0.94184436363952473,0.33604939321543009,0.93830361696595099,0.34581255383316251,0.9346616684370731,0.3555384164256048,0.93091891085959177,0.36522593199825143,0.92707574791308789,0.37487405569256027,0.92313259410648296,0.38448174689864728,0.91908987473333204,0.39404796936752262,0.91494802582595314,0.40357169132285647,0.91070749410839835,0.41305188557226274,0.90636873694827169,0.42248752961808789,0.90193222230739978,0.43187760576769346,0.89739842869135844,0.44122110124322128,0.89276784509786367,0.4505170082908268,0.88804097096402979,0.45976432428937231,0.88321831611250223,0.46896205185856582,0.87830040069646964,0.47810919896653414,0.87328775514356272,0.48720477903682036,0.86818092009864389,0.49624781105479154,0.86298044636549565,0.50523731967344809,0.85768689484741267,0.51417233531861994,0.85230083648670518,0.52305189429354193,0.84682285220311937,0.53187503888279419,0.84125353283118121,0.54064081745559756,0.83559347905647163,0.54934828456845297,0.82984330135083861,0.55799650106711363,0.82400361990655435,0.56658453418787802,0.81807506456942336,0.57511145765819494,0.81205827477085002,0.58357635179656708,0,0.99978429343197095,0.020769367027778179,0.99913726678653092,0.041529773877792962,0.99805919919947395,0.062272264237819348,0.99655055576331875,0.08298788952504145,0.99461198732666134,0.10366771274658873,0.99224433021339042,0.12430281235507204,0.98944860586188632,0.14488428609745638,0.98622602038435903,0.16540325485560992,0.98257796404651565,0.18585086647687199,0.97850601066778153,0.20621829959298815,0.97401191694233347,0.22649676742576436,0.96909762168123947,0.2466775215777984,0.96376524497602956,0.2667518558066535,0.95801708728406076,0.2867111097808458,0.95185562843606963,0.30654667281602488,0.94528352656634029,0.32624998758973617,0.93830361696595099,0.34581255383316251,0.93091891085959177,0.36522593199825143,0.92313259410648296,0.38448174689864728,0.91494802582595314,0.40357169132285647,0.90636873694827169,0.42248752961808789,0.89739842869135844,0.44122110124322128,0.88804097096402979,0.45976432428937231,0.87830040069646964,0.47810919896653414,0.86818092009864389,0.49624781105479154,0.85768689484741267,0.51417233531861994,0.84682285220311937,0.53187503888279419,0.83559347905647163,0.54934828456845297,0.82400361990655435,0.56658453418787802,0.81205827477085002,0.58357635179656708,0.79976259702816499,0.60031640690119825,0.787121891195394,0.61679747762210113,0.77414161063908249,0.63301245380887039,0.76082735522277223,0.64895434010777797,0.74718486889114644,0.66461625897966137,0.73322003719201723,0.6799914536669831,0.71893888473722245,0.69507329110878568,0.70434757260352909,0.70985526480228089,0.68945239567466388,0.72433099760984043,0.67425977992561814,0.73849424451017698,0.65877627965039676,0.75233889529252862,0.64300857463441063,0.76585897719268359,0.62696346727272945,0.77904865746970975,0.61064787963543821,0.79190224592227509,0.59406885048136626,0.80441419734347563,0.57723353222147378,0.81657911391311055,0.56014918783320766,0.82839174752637279,0.5428231877271581,0.83984700205795015,0.52526300656736613,0.85093993556056058,0.50747622004665582,0.86166576239697379,0.48947050161838013,0.87201985530459758,0.4712536191859934,0.88199774739173953,0.45283343175187485,0.89159513406468305,0.4342178860268523,0.90080787488474556,0.41541501300188644,0.90963199535451833,0.39643292448339607,0.91806368863251642,0.37727980959371737,0.92609931717550054,0.35796393123821052,0.93373541430776075,0.3384936225405325,0.94096868571668602,0.31887728324761866,0.94779601087397392,0,0.99951468203310401,0.031151250380410563,0.99805919919947395,0.062272264237819348,0.9956349642430492,0.093332834397880315,0.99224433021339042,0.12430281235507204,0.98789058818172515,0.15515213753592053,0.98257796404651565,0.18585086647687199,0.97631161443165049,0.21636920188849465,0.96909762168123947,0.2466775215777984,0.9609429879558723,0.27674640720060001,0.95185562843606963,0.30654667281602488,0.94184436363952473,0.33604939321543009,0.93091891085959177,0.36522593199825143,0.91908987473333204,0.39404796936752262,0.90636873694827169,0.42248752961808789,0.89276784509786367,0.4505170082908268,0.87830040069646964,0.47810919896653414,0.86298044636549553,0.50523731967344809,0.84682285220311937,0.53187503888279419,0.82984330135083861,0.55799650106711363,0.81205827477085002,0.58357635179656708,0.79348503524903569,0.60858976234885565,0.77414161063908249,0.63301245380887039,0.7540467763639993,0.65682072063468033,0.73322003719201723,0.6799914536669831,0.71168160830456018,0.70250216255968534,0.68945239567466388,0.72433099760984043,0.66655397577488684,0.74545677096575591,0.64300857463441063,0.76585897719268359,0.61883904626565789,0.7855178131761309,0.59406885048136626,0.80441419734347563,0.56872203012365075,0.82252978818522626,0.5428231877271581,0.83984700205795015,0.51639746163896194,0.85634903025158893,0.48947050161837996,0.87201985530459769,0.4620684439403962,0.88684426655106752,0.4342178860268523,0.90080787488474556,0.40594586063003557,0.91389712672561774,0.37727980959371737,0.92609931717550054,0.34824755721711309,0.93740260234987272,0.31887728324761866,0.94779601087397392,0.28919749552853402,0.95726945453201606,0.25923700232832675,0.96581373805916793,0.22902488437829133,0.97342056806680954,0.19859046664574553,0.98008256109239345,0.16796328987016487,0.98579325076609803,0.13717308188987851,0.99054709408731934,0.1062497287871606,0.99433947680490631,0.07522324587972623,0.99716671789591849,0.044123748586784521,0.9990260731385594,0.012981423197930875,0.99991573777581688,-0.01817350242675022,0.99983484826722502,-0.049310788196933276,0.99878348312704746,-0.080400211144168787,0.99676266284806891,-0.11141159475738308,0.99377434891106775,-0.142314838273285,0.9898214418809328,-0.17307994589324707,0.98490777859127032,-0.20367705589830637,0.97903812842023585,-0.23407646963402182,0.97221818866120424,-0.26424868033705506,0.96445457899277187,-0.2941644017754963,0.95575483505345893,0,0.99913726678653092,0.041529773877792962,0.99655055576331875,0.08298788952504145,0.99224433021339042,0.12430281235507204,0.98622602038435903,0.16540325485560992,0.97850601066778153,0.20621829959298815,0.96909762168123947,0.2466775215777984,0.95801708728406076,0.2867111097808458,0.94528352656634029,0.32624998758973617,0.93091891085959177,0.36522593199825143,0.91494802582595314,0.40357169132285647,0.89739842869135844,0.44122110124322128,0.87830040069646964,0.47810919896653414,0.85768689484741267,0.51417233531861994,0.83559347905647163,0.54934828456845297,0.81205827477085002,0.58357635179656708,0.787121891195394,0.61679747762210113,0.76082735522277223,0.64895434010777797,0.73322003719201723,0.6799914536669831,0.70434757260352909,0.70985526480228089,0.67425977992561814,0.73849424451017698,0.64300857463441063,0.76585897719268359,0.61064787963543821,0.79190224592227509,0.57723353222147378,0.81657911391311055,0.5428231877271581,0.83984700205795015,0.50747622004665582,0.86166576239697379,0.4712536191859934,0.88199774739173953,0.4342178860268523,0.90080787488474556,0.39643292448339607,0.91806368863251642,0.35796393123821052,0.93373541430776075,0.31887728324761866,0.94779601087397392,0.27924042321046993,0.9602212172438378,0.23912174319802729,0.9709895941409139,0.19859046664574553,0.98008256109239345,0.15771652891055676,0.98748442848908025,0.11657045659975937,0.99318242465728501,0.07522324587972623,0.99716671789591849,0.033746239974402521,0.99943043344076232,-0.0077889939350326417,0.99996966532664378,-0.049310788196933276,0.99878348312704746,-0.090747498349314018,0.99587393355953502,-0.13202762673996463,0.99124603695420266,-0.17307994589324707,0.98490777859127032,-0.21383362141071421,0.97687009492274834,-0.25421833419348677,0.96714685470195716,-0.2941644017754963,0.95575483505345893,-0.3336028985582416,0.94271369252469206,-0.37246577473959563,0.92804592916925877,-0.41068597373145294,0.91177685372038719,-0.44819754786362215,0.89393453792156174,-0.48493577217431627,0.87454976808967233,-0.52083725609090259,0.85365599199425735,-0.55584005280820548,0.83128926114450152,-0.5898837661756402,0.80748816858356665,-0.62290965490874295,0.78229378229759106,-0.6548607339452851,0.75574957435425827,-0.68568187277108406,0.72790134589320477,-0.71531989054585676,0.69879714809768911,-0.74372364786497136,0.66848719928389055,-0.77084413499877502,0.63702379825088973,-0.79663455645723602,0.6044612340408464,0,0.99865208839882302,0.051903818131899732,0.99461198732666134,0.10366771274658873,0.98789058818172515,0.15515213753592053,0.97850601066778153,0.20621829959298815,0.96648355394663699,0.25672853357326303,0,0.99461198732666134,0.10366771274658873,0.97850601066778153,0.20621829959298815,0.95185562843606963,0.30654667281602488,0.91494802582595314,0.40357169132285647,0.86818092009864389,0.49624781105479154,0,0.98789058818172515,0.15515213753592053,0.95185562843606963,0.30654667281602488,0.89276784509786367,0.4505170082908268,0.81205827477085002,0.58357635179656708,0.71168160830456018,0.70250216255968534,0,0.97850601066778153,0.20621829959298815,0.91494802582595314,0.40357169132285647,0.81205827477085002,0.58357635179656708,0.67425977992561814,0.73849424451017698,0.50747622004665582,0.86166576239697379,0,0.96648355394663699,0.25672853357326303,0.86818092009864389,0.49624781105479154,0.71168160830456029,0.70250216255968523,0.50747622004665582,0.86166576239697379,0.26925323308363469,0.9630694141514462,0,0.95185562843606963,0.30654667281602488,0.81205827477085002,0.58357635179656708,0.59406885048136626,0.80441419734347563,0.31887728324761866,0.94779601087397392,0.012981423197930875,0.99991573777581688,0,0.9346616684370731,0.3555384164256048,0.74718486889114644,0.66461625897966137,0.4620684439403962,0.88684426655106752,0.11657045659975937,0.99318242465728501,-0.24416056902839117,0.96973481763404379,0,0.91494802582595314,0.40357169132285647,0.67425977992561814,0.73849424451017698,0.31887728324761866,0.94779601087397392,-0.090747498349314018,0.99587393355953502,-0.48493577217431627,0.87454976808967233,0,0.89276784509786367,0.4505170082908268,0.59406885048136626,0.80441419734347563,0.16796328987016487,0.98579325076609803,-0.2941644017754963,0.95575483505345893,-0.693204328025389,0.72074111829898313,0,0.86818092009864389,0.49624781105479154,0.50747622004665582,0.86166576239697379,0.01298142319793132,0.99991573777581688,-0.48493577217431627,0.87454976808967233,-0.8550053929480198,0.51861910688847779,0,0,0,0,0,0,0,0,0,0,0,0,0.99995854007056517,0.0091059398166180028,0.99983416372011225,0.018211124569991535,0.99962688126191068,0.027314799259485871,0.99933670988379253,0.036416209009680553,0.99896367364672756,0.045514599132963594,0.99850780348282797,0.054609215192110011,0.99796913719278335,0.063699303062839718,0.99734771944272649,0.072784108996349378,0.99664360176052957,0.081862879681813105,0.99585684253153128,0.090934862308846953,0.99498750699369598,0.099999304629931798,0.9940356672322036,0.1090554550227897,0.9930014021734731,0.11810256255270814,0.99188479757861703,0.12713987703480756,0.99068594603633076,0.13616664909624659,0.98940494695521508,0.14518213023835977,0.98804190655553292,0.1541855728987232,0.98659693786040203,0.16317623051314215,0.98507016068642239,0.17215335757755607,0.98346170163374214,0.18111620970985573,0.98177169407555864,0.19006404371160723,0.98000027814706026,0.198996117629678,0.97814760073380569,0.20791169081775931,0.97621381545954455,0.21681002399778065,0.9741990826734791,0.22569037932121058,0.9721035694369673,0.23455202043023901,0.96992744950967125,0.24339421251883572,0.96767090333514805,0.25221622239368069,0.96533411802588809,0.26101731853496019,0.96291728734779936,0.26979677115702427,0.96042061170414061,0.27855385226890045,0.95784429811890393,0.28728783573465894,0.95518856021964815,0.29599799733362336,0.95245361821978503,0.30468361482042317,0.9496396989003193,0.31334396798488223,0.94674703559104378,0.32197833871173831,0.94377586815119185,0.33058601104018931,0.94072644294954821,0.3391662712232606,0.93759901284402036,0.3477184077869887,0.93439383716067115,0.35624171158941681,0.93111118167221585,0.36473547587939642,0.92775131857598447,0.37319899635519133,0.92431452647135071,0.38163157122287822,0.92080109033663071,0.39003250125453909,0.91721130150545305,0.3984010898462414,0.91354545764260087,0.40673664307580015,0.90980386271933011,0.415038469760318,0.90598682698816357,0.42330588151349779,0.90209466695716545,0.43153819280272382,0.89812770536369613,0.43973472100590577,0.89408627114765127,0.4478947864680819,0.8899706994241855,0.45601771255777562,0.88578133145592541,0.46410282572310202,0.88151851462467168,0.47214945554761845,0.87718260240259427,0.48015693480591554,0.87277395432292282,0.48812459951894321,0.86829293595013379,0.49605178900906799,0.8637399188496383,0.50393784595485613,0.85911528055697162,0.51178211644557869,0.85441940454648857,0.51958395003543356,0.84965268019956508,0.5273426997974805,0.8448155027723111,0.53505772237728433,0.8399082733627965,0.54272837804626162,0.83493139887779122,0.55035403075472666,0.82988529199902517,0.55793404818463332,0.82477037114896867,0.56546780180200584,0.8195870604561365,0.57295466690905772,0.81433578971992004,0.58039402269599072,0.80901699437494745,0.58778525229247303,0.80363111545497823,0.59512774281878966,0.79817859955633219,0.60242088543666239,0.7926598988008583,0.60966407539973444,0.7870754707984442,0.61685671210371662,0.7814257786090717,0.62399819913618826,0.77571129070441991,0.63108794432605275,0.76993248092901923,0.63812535979263929,0.76408982846096096,0.64510986199445075,0.75818381777216282,0.65204087177755021,0.75221493858819788,0.65891781442358477,0.74618368584768557,0.66574011969744062,0.74009055966125192,0.67250722189452727,0.7339360652700605,0.67921855988768554,0.7277207130039175,0.68587357717371644,0.72144501823895568,0.69247172191952555,0.71510950135489948,0.69901244700788201,0.70871468769191448,0.70549521008278449,0.70226110750704729,0.71191947359443364,0.69574929593025592,0.7182847048438058,0.68917979292003739,0.72459037602682408,0.68255314321865423,0.73083596427812403,0.67586989630696415,0.73702095171440918,0.66913060635885824,0.74314482547739424,0.66233583219530767,0.74920707777633089,0.65548613723802729,0.75520720593011437,0.64858208946275597,0.76114471240896464,0.64162426135216122,0.7670191048756827,0.63461322984836765,0.77282989622647424,0.62754957630511832,0.77857660463134037,0.62043388643956809,0.7842587535740313,0.61326675028371647,0.7898758718915585,0.60604876213548176,0.79542749381326405,0.59878052050942254,0.8009131589994416,0.59146262808710903,0.80633241257950816,0.58409569166714781,0.81168480518972153,0.57668032211486719,0.81696989301044198,0.56921713431166399,0.82218723780293324,0.56170674710401747,0.82733640694570154,0.5541497832521749,0.83241697347036814,0.54654686937851249,0.83742851609707392,0.53889863591557563,0.84237061926941148,0.53120571705380337,0.84724287318888347,0.52346875068894261,0.85204487384888228,0.51568837836915182,0.8567762230681909,0.50786524524180621,0.86143652852399988,0.50000000000000011,0.8660254037844386,0.49209329482875941,0.87054246834061788,0.48414578535096059,0.87498734763818242,0.47615813057296824,0.87935967310836816,0.46813099282998927,0.88365908219856404,0.4600650377311522,0.88788521840237522,0.45196093410431576,0.89203773128918395,0.44381935394060867,0.89611627653320791,0.43564097233870935,0.90012051594205089,0.42742646744886575,0.9040501174847464,0.41917652041666431,0.90790475531928883,0.41089181532654828,0.91168410981965331,0.4025730391450949,0.91538786760229784,0.39422088166405067,0.91901572155214983,0.38583603544313544,0.92256737084807172,0.37741919575261462,0.92604252098780515,0.3689710605156471,0.92944088381239109,0.36049233025041488,0.93276217753006352,0.35198370801203449,0.93600612673961636,0.34344589933426156,0.93917246245323882,0.33487961217098627,0.9422609221188204,0.32628555683753163,0.9452712496417216,0.31766444595175269,0.94820319540600895,0.30901699437494767,0.95105651629515353,0.30034391915258057,0.95383097571218989,0.29164593945482503,0.95652634359933475,0.28292377651693018,0.95914239645706312,0.2741781535794155,0.96167891736264155,0.26540979582810104,0.96413569598811433,0.25661943033397372,0.96651252861774473,0.24780778599290015,0.96880921816490628,0.23897559346518502,0.97102557418842617,0.23012358511498668,0.97316141290837543,0.22125249494958782,0.97521655722130896,0.21236305855853341,0.97719083671495044,0.20345601305263397,0.9790840876823228,0.19453209700284604,0.98089615313532319,0.18559205037902926,0.98262688281773969,0.1766366144885875,0.98427613321771146,0.16766653191500136,0.98584376757962811,0.15868254645625143,0.98732965591546962,0.14968540306314451,0.98873367501558473,0.14067584777754052,0.990055708458908,0.13165462767049271,0.99129564662261271,0.12262249078029867,0.99245338669120153,0.11358018605047492,0.99352883266503111,0.10452846326765368,0.99452189536827329,0.095468072999410208,0.99543249245630883,0.086399766532027286,0.99626054842255551,0.077324295808196955,0.99700599460472983,0.068242413364671226,0.99766876919053915,0.059154872269860159,0.99824881722280867,0.050062426061389248,0.9987460906040373,0.040965828683614432,0.99916054810038646,0.031865834425106911,0.99949215534509905,0.022763197856105883,0.99974088484134915,0.013658673765951201,0.99990671596452207,0.0045530171004957241,0.99998963496392435,0,0.99983416372011225,0.018211124569991535,0.99933670988379253,0.036416209009680553,0.99850780348282797,0.054609215192110011,0.99734771944272649,0.072784108996349378,0.99585684253153128,0.090934862308846953,0.9940356672322036,0.1090554550227897,0.99188479757861703,0.12713987703480756,0.98940494695521508,0.14518213023835977,0.98659693786040203,0.16317623051314215,0.98346170163374214,0.18111620970985573,0.98000027814706026,0.198996117629678,0.97621381545954455,0.21681002399778065,0.9721035694369673,0.23455202043023901,0.96767090333514805,0.25221622239368069,0.96291728734779936,0.26979677115702427,0.95784429811890393,0.28728783573465894,0.95245361821978503,0.30468361482042317,0.94674703559104378,0.32197833871173831,0.94072644294954821,0.3391662712232606,0.93439383716067115,0.35624171158941681,0.92775131857598447,0.37319899635519133,0.92080109033663071,0.39003250125453909,0.91354545764260087,0.40673664307580015,0.90598682698816357,0.42330588151349779,0.89812770536369613,0.43973472100590577,0.8899706994241855,0.45601771255777562,0.88151851462467168,0.47214945554761845,0.87277395432292282,0.48812459951894321,0.8637399188496383,0.50393784595485613,0.85441940454648857,0.51958395003543356,0.8448155027723111,0.53505772237728433,0.83493139887779122,0.55035403075472666,0.82477037114896867,0.56546780180200584,0.81433578971992004,0.58039402269599072,0.80363111545497823,0.59512774281878966,0.7926598988008583,0.60966407539973444,0.7814257786090717,0.62399819913618826,0.76993248092901923,0.63812535979263929,0.75818381777216282,0.65204087177755021,0.74618368584768557,0.66574011969744062,0.7339360652700605,0.67921855988768554,0.72144501823895568,0.69247172191952555,0.70871468769191448,0.70549521008278449,0.69574929593025592,0.7182847048438058,0.68255314321865423,0.73083596427812403,0.66913060635885824,0.74314482547739424,0.65548613723802729,0.75520720593011437,0.64162426135216122,0.7670191048756827,0.62754957630511832,0.77857660463134037,0.61326675028371647,0.7898758718915585,0.59878052050942254,0.8009131589994416,0.58409569166714781,0.81168480518972153,0.56921713431166399,0.82218723780293324,0.5541497832521749,0.83241697347036814,0.53889863591557563,0.84237061926941148,0.52346875068894261,0.85204487384888228,0.50786524524180621,0.86143652852399988,0,0.99933670988379253,0.036416209009680553,0.99734771944272649,0.072784108996349378,0.9940356672322036,0.1090554550227897,0.98940494695521508,0.14518213023835977,0.98346170163374214,0.18111620970985573,0.97621381545954455,0.21681002399778065,0.96767090333514805,0.25221622239368069,0.95784429811890393,0.28728783573465894,0.94674703559104378,0.32197833871173831,0.93439383716067115,0.35624171158941681,0.92080109033663071,0.39003250125453909,0.90598682698816357,0.42330588151349779,0.8899706994241855,0.45601771255777562,0.87277395432292282,0.48812459951894321,0.85441940454648857,0.51958395003543356,0.83493139887779122,0.55035403075472666,0.81433578971992004,0.58039402269599072,0.7926598988008583,0.60966407539973444,0.76993248092901923,0.63812535979263929,0.74618368584768557,0.66574011969744062,0.72144501823895568,0.69247172191952555,0.69574929593025592,0.7182847048438058,0.66913060635885824,0.74314482547739424,0.64162426135216122,0.7670191048756827,0.61326675028371647,0.7898758718915585,0.58409569166714781,0.81168480518972153,0.5541497832521749,0.83241697347036814,0.52346875068894261,0.85204487384888228,0.49209329482875941,0.87054246834061788,0.4600650377311522,0.88788521840237522,0.42742646744886575,0.9040501174847464,0.39422088166405067,0.91901572155214983,0.36049233025041488,0.93276217753006352,0.32628555683753163,0.9452712496417216,0.29164593945482503,0.95652634359933475,0.25661943033397372,0.96651252861774473,0.22125249494958782,0.97521655722130896,0.18559205037902926,0.98262688281773969,0.14968540306314451,0.98873367501558473,0.11358018605047492,0.99352883266503111,0.077324295808196955,0.99700599460472983,0.040965828683614432,0.99916054810038646,0.0045530171004957241,0.99998963496392435,-0.031865834425106349,0.99949215534509905,-0.068242413364670657,0.99766876919053926,-0.10452846326765333,0.9945218953682734,-0.14067584777754019,0.990055708458908,-0.17663661448858717,0.98427613321771157,-0.21236305855853285,0.97719083671495055,-0.2478077859928996,0.96880921816490639,-0.28292377651692985,0.95914239645706323,-0.31766444595175236,0.94820319540600906,-0.35198370801203416,0.93600612673961647,-0.38583603544313511,0.92256737084807183,-0.41917652041666381,0.90790475531928916,-0.45196093410431526,0.89203773128918418,-0.48414578535096014,0.87498734763818276,0,0.99850780348282797,0.054609215192110011,0.9940356672322036,0.1090554550227897,0.98659693786040203,0.16317623051314215,0.97621381545954455,0.21681002399778065,0.96291728734779936,0.26979677115702427,0.94674703559104378,0.32197833871173831,0.92775131857598447,0.37319899635519133,0.90598682698816357,0.42330588151349779,0.88151851462467168,0.47214945554761845,0.85441940454648857,0.51958395003543356,0.82477037114896867,0.56546780180200584,0,0.9940356672322036,0.1090554550227897,0.97621381545954455,0.21681002399778065,0.94674703559104378,0.32197833871173831,0.90598682698816357,0.42330588151349779,0.85441940454648857,0.51958395003543356,0.7926598988008583,0.60966407539973444,0.72144501823895568,0.69247172191952555,0.64162426135216122,0.7670191048756827,0.5541497832521749,0.83241697347036814,0.4600650377311522,0.88788521840237522,0.36049233025041488,0.93276217753006352,0,0.98659693786040203,0.16317623051314215,0.94674703559104378,0.32197833871173831,0.88151851462467168,0.47214945554761845,0.7926598988008583,0.60966407539973444,0.68255314321865412,0.73083596427812403,0.5541497832521749,0.83241697347036814,0.41089181532654828,0.91168410981965331,0.25661943033397372,0.96651252861774473,0.095468072999410208,0.99543249245630883,-0.068242413364670879,0.99766876919053915,-0.23012358511498635,0.97316141290837543,0,0.97621381545954455,0.21681002399778065,0.90598682698816357,0.42330588151349779,0.7926598988008583,0.60966407539973444,0.64162426135216122,0.7670191048756827,0.4600650377311522,0.88788521840237522,0.25661943033397372,0.96651252861774473,0.040965828683614432,0.99916054810038646,-0.17663661448858717,0.98427613321771157,-0.38583603544313511,0.92256737084807183,-0.57668032211486708,0.81696989301044209,-0.7400905596612517,0.67250722189452761,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99900729628220064,0.044546851459192204,0.99603115605014536,0.089005259268264816,0.99107748815478014,0.13328695537377883,0.9841561276451779,0.17730402256702546,0.97528081624195906,0.22096906903550592,0.96446917505437657,0.26419540187128598,0.95174266959523546,0.30689719919173986,0.9371265671631035,0.34898968053095403,0.92064988667642877,0.39038927516349481,0.90234534105916364,0.43101378802634804,0.88224927229228178,0.47078256290960818,0.86040157926013938,0.50961664259191741,0.8368456385349331,0.54743892560271978,0.81162821825653109,0.58417431930009445,0.78479938527866089,0.61974988896024497,0.75641240576580526,0.65409500258264219,0.72652363943816323,0.68714147112332391,0.69519242767464229,0.71882368387792939,0.66248097569604425,0.7490787387456791,0.62845422906235671,0.77784656711567413,0.59317974472935531,0.80507005312756286,0.55672755692052156,0.83069514706979442,0.51917003808057527,0.85467097269031778,0,0.99603115605014536,0.089005259268264816,0.9841561276451779,0.17730402256702546,0.96446917505437657,0.26419540187128598,0.9371265671631035,0.34898968053095403,0.90234534105916364,0.43101378802634804,0.86040157926013938,0.50961664259191741,0.81162821825653109,0.58417431930009445,0.75641240576580526,0.65409500258264219,0.69519242767464229,0.71882368387792939,0.62845422906235671,0.77784656711567413,0.55672755692052156,0.83069514706979442,0.48058175518668378,0.8769499282066715,0.40062124546987971,0.91624375450977147,0.31748072934054261,0.9482647238495151,0.2318201502675282,0.97275866376503717,0.14431945519282666,0.98953114900585404,0.055673197324948361,0.99844904481882168,-0.033414977007674519,0.99944156373025461,-0.12223791368163452,0.99250082743479928,-0.21009056394727788,0.97768192933096332,-0.29627558088563383,0.95510249720691243,-0.38010885473061473,0.92494175954780011,-0.46092494311882803,0.88743912287598925,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99981764203160017,0.019096666786930977,0.99927063463525789,0.038186368715145011,0.99835917731328816,0.057262143466120109,0.99708360248870198,0.076317033800797809,0.99544437538396657,0.095344090096999082,0.99344209385133098,0.1143363728840623,0.99107748815478014,0.13328695537377883,0.98835142070369575,0.15218892598670306,0.98526488573832216,0.17103539087291547,0.98181900896715069,0.18981947642631977,0.9780150471563559,0.20853433179155642,0.97385438767143329,0.2271731313626188,0.96933854797120467,0.24572907727226054,0.96446917505437657,0.26419540187128598,0.95924804485885407,0.28256537019681982,0.95367706161402765,0.30083228242865512,0.94775825714627027,0.31898947633278485,0.94149379013789802,0.33703032969122465,0.93488594533986458,0.35494826271724117,0.92793713273847567,0.37273674045510541,0.92064988667642877,0.39038927516349481,0.91302686492849816,0.40789942868167645,0.90507084773220181,0.42526081477760636,0,0.99927063463525789,0.038186368715145011,0.99708360248870198,0.076317033800797809,0.99344209385133098,0.1143363728840623,0.98835142070369575,0.15218892598670306,0.98181900896715069,0.18981947642631977,0.97385438767143329,0.2271731313626188,0.96446917505437657,0.26419540187128598,0.95367706161402765,0.30083228242865512,0.94149379013789802,0.33703032969122465,0.92793713273847567,0.37273674045510541,0.91302686492849816,0.40789942868167645,0.89678473677380466,0.4424671014770904,0.87923444116584681,0.47638933391479393,0.86040157926013938,0.50961664259191741,0.84031362313106828,0.54210055781223554,0.81899987569753174,0.57379369429040217,0.79649142797787142,0.60464982027432312,0.77282111373644879,0.63462392498483289,0.74802346158802469,0.66367228427430125,0.72213464462980681,0.69175252440839174,0.69519242767464229,0.71882368387792939,0.66723611216232392,0.74484627315071317,0.63830647882937275,0.76978233227611004,0,0.99835917731328816,0.057262143466120109,0.99344209385133098,0.1143363728840623,0.98526488573832216,0.17103539087291547,0.97385438767143329,0.2271731313626188,0.95924804485885407,0.28256537019681977,0.94149379013789802,0.33703032969122465,0.92064988667642877,0.39038927516349481,0.89678473677380466,0.4424671014770904,0.86997665738878982,0.49309290767423158,0.84031362313106839,0.54210055781223543,0.80789297755977385,0.5893292261627644,0.77282111373644879,0.63462392498483289,0.73521312508074643,0.67783601313961084,0.69519242767464229,0.71882368387792939,0.65289035525462047,0.75745243019974229,0.60844572822092435,0.79359548625840171,0.56200439807823255,0.82713424336121133,0.51371876880274348,0.85795863920109416,0.4637472967063721,0.88596751904205384,0.41225397043932643,0.91106896767314549,0.3594077728375128,0.93318061104160255,0.30538212638079465,0.95222988657526619,0.2503543240819126,0.96815428130721437,0,0.99708360248870198,0.076317033800797809,0.98835142070369575,0.15218892598670306,0.97385438767143329,0.2271731313626188,0.95367706161402765,0.30083228242865512,0.92793713273847567,0.37273674045510541,0.89678473677380466,0.4424671014770904,0.86040157926013938,0.50961664259191741,0.81899987569753174,0.57379369429040217,0.77282111373644879,0.63462392498483289,0.72213464462980681,0.69175252440839174,0.66723611216232392,0.74484627315071317,0.60844572822092435,0.79359548625840171,0.54610640506443786,0.83771581956388774,0.48058175518668378,0.8769499282066715,0.41225397043932627,0.91106896767314549,0.34152159278514493,0.93987392859973384,0.26879718968445737,0.9631967975537179,0.19450494767369031,0.98090153702115024,0.11907819817226206,0.9928848788857888,0.04295688994923471,0.99907692677085147,-0.033414977007674519,0.99944156373025461,-0.10959194125301346,0.99397666291135633,-0.18512967816889495,0.98271409996045211,0,0.99544437538396657,0.095344090096999082,0.98181900896715069,0.18981947642631977,0.95924804485885407,0.28256537019681982,0.92793713273847567,0.37273674045510541,0.88817155413002746,0.45951201337315628,0.84031362313106828,0.54210055781223554,0.78479938527866089,0.61974988896024497,0.72213464462980681,0.69175252440839174,0.65289035525462047,0.75745243019974229,0.57769741913149653,0.81625099811810831,0.49724093784194379,0.86761249975669674,0.41225397043932627,0.91106896767314549,0.32351085436512711,0.94622445915752229,0.2318201502675282,0.97275866376503717,0.13801727500382685,0.99042982174433647,0.04295688994923471,0.99907692677085147,-0.052494886035919383,0.99862119291554985,-0.14746836803099106,0.98906677248317076,-0.2410982289710864,0.97050071817954142,-0.33253138385761605,0.94309218995267841,-0.42093476242833489,0.90709091373434081,-0.50550289946812843,0.86282490612482621,-0.58546527360333545,0.81069748575197365,0,0.99344209385133098,0.1143363728840623,0.97385438767143329,0.2271731313626188,0.94149379013789802,0.33703032969122465,0.89678473677380466,0.4424671014770904,0.84031362313106839,0.54210055781223543,0.77282111373644879,0.63462392498483289,0.69519242767464229,0.71882368387792939,0.60844572822092435,0.79359548625840171,0.51371876880274348,0.85795863920109416,0.41225397043932643,0.91106896767314549,0.30538212638079465,0.95222988657526619,0.19450494767369031,0.98090153702115024,0.081076678581994535,0.99670786702529435,-0.033414977007674519,0.99944156373025461,-0.14746836803099084,0.98906677248317076,-0.25958759161941813,0.96571956709866358,-0.36830211308144706,0.92970616514022375,-0.47218605315958673,0.88149891162812677,-0.56987688959506422,0.82173008385080748,-0.66009332771402196,0.75118359853462513,-0.74165210564795758,0.67078473013922346,-0.81348351377428874,0.58158797513139537,-0.87464542482697738,0.484763221407355,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99994192510571889,0.010777124656834492,0.99976770716826213,0.021552997552918784,0.99947736642300633,0.032326367072894421,0.99907093659296775,0.043095981892169552,0.99854846488488513,0.053860591122260021,0.99791001198373697,0.06461894445607981,0.99715565204569268,0.075369792313163889,0.99628547268949963,0.086111885984806819,0.99529957498630595,0.096843977779099921,0.99419807344792144,0.10756482116585044,0.99298109601351692,0.1182731709213658,0.9916487840347642,0.12896778327308606,0.99020129225941766,0.13964741604404779,0.98863878881334111,0.15031082879716276,0.98696145518097933,0.16095678297929431,0.98516948618427924,0.17158404206511513,0.98326308996006084,0.18219137170072941,0.98124248793584246,0.19277753984704279,0.97910791480412185,0.20334131692286342,0.97685961849511727,0.21388147594771742,0.97449786014796935,0.22439679268436272,0.97202291408041075,0.23488604578098368,0.96943506775690413,0.24534801691305094,0.9667346217552526,0.2557814909248296,0.96392188973168835,0.26618525597051912,0.9609971983844412,0.27655810365500932,0,0.99976770716826213,0.021552997552918784,0.99907093659296775,0.043095981892169552,0.99791001198373697,0.06461894445607981,0.99628547268949963,0.086111885984806819,0.99419807344792144,0.10756482116585044,0.9916487840347642,0.12896778327308606,0.98863878881334111,0.15031082879716276,0.98516948618427924,0.17158404206511513,0.98124248793584246,0.19277753984704279,0.97685961849511727,0.21388147594771742,0.97202291408041075,0.23488604578098368,0.9667346217552526,0.2557814909248296,0.9609971983844412,0.27655810365500932,0.95481330949262011,0.29720623145511293,0.94818582802591267,0.3177162815009868,0.94111783301719365,0.33807872511742243,0.93361260815561331,0.35828410220504237,0.9256736402610436,0.37832302563532655,0.91730461766415128,0.3981861856117378,0.90850942849285199,0.41786435399491967,0.89929215886594227,0.43734838858995789,0.88965709099474732,0.45662923739371308,0.87960870119366652,0.47569794280025124,0.86915165780054271,0.49454564576241938,0.85829081900781845,0.513163589907632,0.84703123060549024,0.53154312560595574,0,0.99947736642300633,0.032326367072894421,0.99791001198373697,0.06461894445607981,0.99529957498630595,0.096843977779099921,0.9916487840347642,0.12896778327308606,0.98696145518097933,0.16095678297929431,0.98124248793584246,0.19277753984704279,0.97449786014796935,0.22439679268436272,0.9667346217552526,0.2557814909248296,0.95796088741579277,0.28689882917423482,0.94818582802591267,0.3177162815009868,0.9374196611341209,0.34820163543439875,0.9256736402610436,0.37832302563532655,0.91296004313648971,0.40804896720396061,0.89929215886594227,0.43734838858995789,0.88468427403989403,0.46619066407051285,0.86915165780054271,0.49454564576241938,0.85271054588145878,0.52238369513466298,0.83537812363690644,0.54967571398860382,0.8171725080785569,0.57639317487336783,0.79811272893837137,0.60250815090465426,0.77821870877744759,0.6279933449557904,0.75751124216162014,0.65282211819052161,0.73601197392558504,0.67696851790771184,0.71374337654826403,0.70040730466884971,0.69072872666306129,0.72311397868000449,0.66699208072756211,0.74506480540065589,0,0.99907093659296775,0.043095981892169552,0.99628547268949963,0.086111885984806819,0.9916487840347642,0.12896778327308606,0.98516948618427924,0.17158404206511513,0.97685961849511727,0.21388147594771742,0.9667346217552526,0.2557814909248296,0.95481330949262011,0.29720623145511293,0.94111783301719365,0.33807872511742243,0.9256736402610436,0.37832302563532655,0.90850942849285199,0.41786435399491967,0.88965709099474732,0.45662923739371308,0.86915165780054271,0.49454564576241938,0.84703123060549024,0.53154312560595574,0.82333691196849967,0.56755293091497194,0.79811272893837137,0.60250815090465426,0.77140555124595667,0.6363438343434481,0.74326500421425357,0.66899711024068387,0.71374337654826403,0.70040730466884971,0.68289552317594937,0.73051605350344384,0.65077876332081697,0.75926741087091854,0.61745277399553433,0.78660795310320852,0.58297947911447212,0.81248687800568131,0.54742293443121781,0.83685609925405613,0.51084920851486315,0.85967033574489349,0.47332625998622346,0.88088719573362739,0.43492381124210244,0.9004672556038027,0,0.99854846488488513,0.053860591122260021,0.99419807344792144,0.10756482116585044,0.98696145518097933,0.16095678297929431,0.97685961849511727,0.21388147594771742,0.96392188973168835,0.26618525597051912,0.94818582802591267,0.3177162815009868,0.92969711627006935,0.36832495435296964,0.90850942849285199,0.41786435399491967,0.88468427403989403,0.46619066407051285,0.85829081900781845,0.513163589907632,0.82940568545020188,0.55864676580365247,0.79811272893837137,0.60250815090465426,0.76450279512279273,0.64462041252929403,0.7286734560017657,0.6848612958245216,0.69072872666306129,0.72311397868000449,0.65077876332081697,0.75926741087091854,0.60893954352431023,0.79321663644454954,0.56533252946698842,0.82486309841479555,0.52008431537319044,0.8541149248800185,0.47332625998622346,0.88088719573362739,0.42519410522470424,0.90510218919311158,0.37582758211423822,0.92668960743183337,0.325370005138437,0.94558678065855672,0.27396785618690866,0.96173884905225149,0.22177035930804448,0.97509892202400716,0.16892904750112558,0.98562821434370596,0,0.99791001198373697,0.06461894445607981,0.9916487840347642,0.12896778327308606,0.98124248793584246,0.19277753984704279,0.9667346217552526,0.2557814909248296,0.94818582802591267,0.3177162815009868,0.9256736402610436,0.37832302563532655,0.89929215886594227,0.43734838858995789,0.86915165780054271,0.49454564576241938,0.83537812363690644,0.54967571398860382,0.79811272893837137,0.60250815090465426,0.75751124216162014,0.65282211819052161,0.71374337654826403,0.70040730466884971,0.66699208072756211,0.74506480540065589,0.61745277399553433,0.78660795310320852,0.56533252946698842,0.82486309841479555,0.51084920851486315,0.85967033574489349,0.45423055011491092,0.89088417167570411,0.39571321890223715,0.91837413312115346,0.33554181591879834,0.94202531270126455,0.27396785618690866,0.96173884905225149,0.21124871738247539,0.97743234006465074,0.14764656400248127,0.98904018732216392,0.083427251523671975,0.99651387030146543,0.018859215133034204,0.9998221491868271,-0.045787652324851907,0.99895119545179911,-0.1102431284934345,0.99390464966211933,0,0.99715565204569268,0.075369792313163889,0.98863878881334111,0.15031082879716276,0.97449786014796935,0.22439679268436272,0.95481330949262011,0.29720623145511293,0.92969711627006935,0.36832495435296964,0.89929215886594227,0.43734838858995789,0.86377140183702528,0.5038838808381354,0.82333691196849967,0.56755293091497194,0.77821870877744759,0.6279933449557904,0.7286734560017657,0.6848612958245216,0.67498300151821056,0.73783327904172724,0.61745277399553433,0.78660795310320852,0.5564100454036669,0.83090785372018794,0.49220206926299959,0.87048097222927356,0.42519410522470424,0.90510218919311158,0.35576734121965009,0.93457455503640852,0.28431672499618099,0.95873041043217466,0.21124871738247539,0.97743234006465074,0.13697898005449582,0.99057395434325346,0.061930010963114242,0.99808049462060355,-0.013471259128253659,0.99990925847173728,-0.088795895322934776,0.9960498426152169,-0.16361539867119054,0.98652420209423519,-0.23750414377043916,0.97138652538105064,-0.31004180001874204,0.95072292611524745,-0.38081572274777864,0.92465095322942648,0,0.99628547268949963,0.086111885984806819,0.98516948618427924,0.17158404206511513,0.9667346217552526,0.2557814909248296,0.94111783301719365,0.33807872511742243,0.90850942849285199,0.41786435399491967,0.86915165780054271,0.49454564576241938,0.82333691196849967,0.56755293091497194,0.77140555124595667,0.6363438343434481,0.71374337654826403,0.70040730466884971,0.65077876332081697,0.75926741087091854,0.58297947911447212,0.81248687800568131,0.51084920851486315,0.85967033574489349,0.43492381124210244,0.9004672556038027,0.35576734121965009,0.93457455503640852,0.27396785618690866,0.96173884905225149,0.19013304898615643,0.98175833262734669,0.10488573297922862,0.99448427992473065,0.018859215133034204,0.9998221491868271,-0.067307408852492742,0.99773228509132816,-0.15297400242125625,0.98823021335274985,-0.23750414377043916,0.97138652538105064,-0.32026985386283763,0.94732635385419139,-0.40065626171742913,0.91622844310063578,-0.47806617231947568,0.87832382119797103,-0.55192450321490805,0.83389408365270046,-0.62168255682928808,0.78326930141184459,0,0.99529957498630595,0.096843977779099921,0.98124248793584246,0.19277753984704279,0.95796088741579277,0.28689882917423482,0.9256736402610436,0.37832302563532655,0.88468427403989403,0.46619066407051285,0.83537812363690644,0.54967571398860382,0.77821870877744759,0.6279933449557904,0.71374337654826403,0.70040730466884971,0.64255824987810872,0.76623684035263007,0.56533252946698842,0.82486309841479555,0.48279220273074486,0.87573494219563686,0.39571321890223715,0.91837413312115346,0.3049141944489745,0.95237982655216558,0.21124871738247539,0.97743234006465074,0.1155973228053853,0.99329615873626909,0.018859215133034204,0.9998221491868271,-0.078056185192416791,0.99694896155881874,-0.17423779102716386,0.98470360625823561,-0.26878141351936091,0.96320120003379062,-0.36079826225291328,0.93264388378162755,-0.44942330063288377,0.89331892224907261,-0.53382337796479074,0.84559600350182607,-0.61320506177933698,0.78992376354190008,-0.6868220967720603,0.72682556874784654,-0.75398242023753326,0.65689459578592357,-0.81405466804706594,0.58078825524521527,0,0.99419807344792144,0.10756482116585044,0.97685961849511727,0.21388147594771742,0.94818582802591267,0.3177162815009868,0.90850942849285199,0.41786435399491967,0.85829081900781845,0.513163589907632,0.79811272893837137,0.60250815090465426,0.7286734560017657,0.6848612958245216,0.65077876332081697,0.75926741087091854,0.56533252946698842,0.82486309841479555,0.47332625998622346,0.88088719573362739,0.37582758211423822,0.92668960743183337,0.27396785618690866,0.96173884905225149,0.16892904750112558,0.98562821434370596,0.061930010963114242,0.99808049462060355,-0.045787652324851907,0.99895119545179911,-0.15297400242125625,0.98823021335274985,-0.25838526466480938,0.96604195302486551,-0.36079826225291328,0.93264388378162755,-0.45902460980559945,0.888423551912497,-0.55192450321490805,0.83389408365270046,-0.63841994576432626,0.76968823094177208,-0.71750725704433105,0.69655102906299715,-0.78826871951242694,0.61533115136342542,-0.84988322755269863,0.52697106137302063,-0.90163581546476168,0.43249607659630185,-0.94292595382072497,0.33300247087863499,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]} diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/test/fixtures/c/fftpack/medium.json b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/test/fixtures/c/fftpack/medium.json new file mode 100644 index 000000000000..c1d701f2e8b2 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/test/fixtures/c/fftpack/medium.json @@ -0,0 +1 @@ +{"lengths":[34,99,89,114,34,111,28,84,91,67],"offsets":[0,34,133,222,336,370,481,509,593,684],"cosines":[0.99893297480237242,0.99573417629503447,0.99041043087520519,0.98297309968390179,0.97343805436069286,0.96182564317281904,0.94816064759096585,0.93247222940435581,0.91479386848802102,0.89516329135506234,0.8736223906463696,0.85021713572961422,0.82499747459830231,0.79801722728023949,0.76933397098287892,0.73900891722065909,0.70710678118654757,0.67369564364655721,0.63884680565196128,0.60263463637925641,0.56513641442259188,0.52643216287735584,0.48660447856685624,0.44573835577653831,0.40392100487189497,0.36124166618715303,0.31779141958190166,0.27366299007208278,0.22895054995013414,0.18374951781657031,0.1381563549518823,0.092268359463302016,0.046183458645739521,6.123233995736766e-17,0.99987412767387507,0.99949654238318508,0.99886733918300796,0.99798667647188444,0.99685477595194238,0.99547192257308459,0.99383846446125412,0.99195481283079534,0.98982144188093268,0.98743888867639429,0.98480775301220802,0.98192869726270671,0.97880244621477874,0.97542978688540705,0.97181156832354165,0.96794870139635625,0.96384215855994204,0.95949297361449737,0.95490224144407387,0.95007111774094544,0.94500081871466846,0.93969262078590843,0.93414786026510677,0.92836793301607257,0.92235429410458136,0.91610845743206959,0.90963199535451833,0.90292653828662117,0.89599377429133586,0.88883544865492348,0.88145336344758207,0.87384937706978494,0.8660254037844386,0.85798341323497707,0.84972542994951439,0.84125353283118121,0.83256985463477129,0.8236765814298328,0.81457595205033573,0.80527025753105863,0.7957618405308321,0.78605309474278751,0.77614646429175682,0.76604444311897801,0.75574957435425827,0.74526444967575478,0.73459170865753332,0.7237340381050702,0.71269417137886293,0.70147488770632127,0.69007901148211204,0.67850941155713218,0.66676900051629162,0.65486073394528499,0.64278760968653936,0.63055266708452251,0.61815898622060528,0.60560968713766661,0.59290792905464051,0.58005690957119815,0.56705986386277074,0.55392006386611026,0.54064081745559767,0.52722546761050237,0.51367739157340642,0.49999999999999989,0.48619673610046865,0.47227107477268271,0.45822652172741046,0.44406661260577407,0.42979491208917159,0.41541501300188644,0.40093053540661377,0.38634512569312857,0.37166245566032752,0.35688622159187189,0.34202014332566882,0.32706796331742155,0.31203344569848712,0.29692037532827492,0.28173255684142962,0.26647381369003498,0.25114798718107922,0.23575893550942728,0.22031053278654053,0.20480666806519066,0.18925124436041021,0.17364817766693041,0.15800139597334981,0.14231483827328512,0.12659245357374929,0.1108381999010111,0.095056043304182589,0.079249956856788442,0.063423919656564562,0.047581915823742181,0.031727933498067594,0.015865963834807931,6.123233995736766e-17,0.99984425343699856,0.9993770622619782,0.99859857200177837,0.99750902515076378,0.99610876109528912,0.99439821600798195,0.99237792271187897,0.99004851051445431,0.98741070501159522,0.98446532786158336,0.98121329652915457,0.9776556239997144,0.97379341846380041,0.96962788297188818,0.96516031505964961,0.96039210634377925,0.95532474208851548,0.9499598007429908,0.94429895344955572,0.93834396352322946,0.93209668590243955,0.92555906657122111,0.91873314195305611,0.91162103827654184,0.90422497091308496,0.89654724368682848,0.88859024815702692,0.88035646287309133,0.87184845260253863,0.86306886753208412,0.85402044244212638,0.84470599585488204,0.83512842915643559,0.82529072569297746,0.815195949841512,0.80484724605532576,0.79424783788451092,0.78340102697185254,0.77231019202438889,0.76097878776096783,0.74941034383612526,0.73760846374062228,0.72557682367898269,0.71331917142438017,0.70083932515123304,0.68814117224586879,0.67522866809563054,0.66210583485680041,0.64877676020172614,0.63524559604553854,0.62151655725285937,0.60759392032489901,0.59348202206735634,0.57918525823953348,0.56470808218508683,0.55005500344484137,0.53523058635209941,0.52023944861088223,0.5050862598575474,0.48977574020622838,0.47431265877855222,0.45870183221809069,0.44294812319000809,0.42705643886637601,0.41103172939762184,0.39487898637059127,0.37860324125370348,0.36220956382968261,0.34570306061635636,0.32908887327601,0.31237217701379411,0.29555817896568415,0.27865211657649225,0.2616592559684407,0.24458489030079994,0.22743433812110633,0.21021294170847124,0.19292606540949694,0.1755790939673208,0.15817743084430405,0.14072649653889049,0.12323172689715887,0.1056985714195931,0.088132491563601825,0.070538959042310972,0.052923454120163069,0.035291463905852617,0.017648480643128704,6.123233995736766e-17,0.9999050722505991,0.99962030702495142,0.99914575838730102,0.99848151643331617,0.99762770727298444,0.99658449300666985,0.99535207169433715,0.99393067731794948,0.99232057973704502,0.99052208463750324,0.98853553347350831,0.98636130340272232,0.98399980721467994,0.98145149325241787,0.97871684532735448,0.97579638262743562,0.97269065961856394,0.96940026593933037,0.96592582628906831,0.96226800030925042,0.95842748245825271,0.95440500187950739,0.9502013222630713,0.94581724170063464,0.94125359253399954,0.93651124119705476,0.93159108805127899,0.92649406721480176,0.92122114638505648,0.9157733266550574,0.91015164232333678,0.90435716069757754,0.89839098189197886,0.89225423861839404,0.88594809597127822,0.87947375120648907,0.87283243351398154,0.86602540378443871,0.85905395436988519,0.85191940883832706,0.84462312172246501,0.83716647826252855,0.82955089414328143,0.82177781522524518,0.81384871727019503,0.80576510566097814,0.79752851511570888,0.78914050939639357,0.78060268101204211,0.77191665091632089,0.76308406819980656,0.75410660977689625,0.74498598006743699,0.73572391067313159,0.72632216004878491,0.71678251316845132,0.70710678118654757,0.69729680109399539,0.68735443536945862,0.6772815716257411,0.66708012225141322,0.65675202404773436,0.6462992378609409,0.63572374820996802,0.62502756290967854,0.61421271268966782,0.60328125080871897,0.59223525266498001,0.58107681540193834,0.5698080575102662,0.5584311184256141,0.54694815812242692,0.53536135670386054,0.52367291398787796,0.51188504908960097,0.50000000000000011,0.48802002316099802,0.47594739303707367,0.46378440168344054,0.45153335831088948,0.43919658884737034,0.42677643549640376,0.41427525629239892,0.40169542465296953,0.3890393289283261,0.37630937194783554,0.36350797056382983,0.35063755519275447,0.3377005693537391,0.32469946920468357,0.31163672307594131,0.29851481100169464,0.28533622424910526,0.2721034648453351,0.25881904510252074,0.24548548714079924,0.23210532240946777,0.21868109120637588,0.20521534219563425,0.19171063192373849,0.178169524334193,0.16459459028073398,0.15098840703923688,0.13735355781840825,0.12369263126934758,0.11000822099407936,0.096302925053141794,0.082579345472332394,0.06884008774869739,0.05508776035586551,0.041324974248813165,0.027554342368162059,0.013778479144096268,6.123233995736766e-17,0.99893297480237242,0.99573417629503447,0.99041043087520519,0.98297309968390179,0.97343805436069286,0.96182564317281904,0.94816064759096585,0.93247222940435581,0.91479386848802102,0.89516329135506234,0.8736223906463696,0.85021713572961422,0.82499747459830231,0.79801722728023949,0.76933397098287892,0.73900891722065909,0.70710678118654757,0.67369564364655721,0.63884680565196128,0.60263463637925641,0.56513641442259188,0.52643216287735584,0.48660447856685624,0.44573835577653831,0.40392100487189497,0.36124166618715303,0.31779141958190166,0.27366299007208278,0.22895054995013414,0.18374951781657031,0.1381563549518823,0.092268359463302016,0.046183458645739521,6.123233995736766e-17,0.99989987176674888,0.99959950711832168,0.99909896620468153,0.99839834926238313,0.99749779659449966,0.99639748854252652,0.99509764545026602,0.99359852761970291,0.99190043525887683,0.99000370842176377,0.98790872694017806,0.98561591034770846,0.98312571779570423,0.98043864796132674,0.97755523894768614,0.97447606817608323,0.97120175227037631,0.96773294693349887,0.96407034681615067,0.9602146853776895,0.95616673473925096,0.95192730552912652,0.94749724672042979,0.94287744546108421,0.93806882689616589,0.93307235398263733,0.92788902729650935,0.92251988483246872,0.9169660017960134,0.91122849038813569,0.90530849958259674,0.89920721489583677,0.89292585814956849,0.88646568722609864,0.87982799581642934,0.87301411316118815,0.8660254037844386,0.85886326722042605,0.85152913773331129,0.84402448402995034,0.83635080896577618,0.82850964924384218,0.82050257510708746,0.81233119002388587,0.80399713036694054,0.79550206508558996,0.78684769537158994,0.77803575431843952,0.76906800657431673,0.75994624798869748,0.75067230525272433,0.74124803553340024,0.7316753261016784,0.72195609395452442,0.71209228543102543,0.7020858758226225,0.6919388689775462,0.6816532968995328,0.6712312193409028,0.66067472339008149,0.64998592305364666,0.63916695883298491,0.62821999729564237,0.61714723064145516,0.60595087626354815,0.59463317630428669,0.58319639720627336,0.57164282925847865,0.55997478613759533,0.5481946044447098,0.53630464323738247,0.52430728355723166,0.51220492795311423,0.49999999999999989,0.4876949438136346,0.47529222356109002,0.462794322967299,0.45020374481767328,0.43752301045690428,0.42475465928404771,0.4119012482439926,0.39896535131541644,0.38594955899532879,0.37285647778030861,0.35968872964453569,0.34644895151472349,0.33313979474205752,0.31976392457124519,0.30632401960678352,0.29282277127655043,0.27926288329283011,0.26564707111087632,0.25197806138512513,0.23825859142316494,0.2244914086375725,0.21067926999572642,0.19682494146770546,0.1829311974723867,0.16900082032184907,0.15503659966419781,0.14104133192491924,0.12701781974687865,0.11296887142907271,0.09889730036424986,0.08480592447550922,0.070697565651994657,0.056575049183792317,0.04244120319614824,0.028298858083117995,0.014150845940761974,6.123233995736766e-17,0.9984268150178166,0.9937122098932426,0.98587101851823589,0.97492791218182362,0.9609173219450996,0.94388333030836757,0.92387953251128674,0.90096886790241915,0.87522342190875368,0.84672419922828424,0.81556086895926017,0.7818314824680298,0.74564216488316559,0.70710678118654757,0.66634657795200392,0.62348980185873359,0.57867129617980573,0.53203207651533657,0.4837188871052398,0.43388373911755818,0.38268343236508984,0.33027906195516715,0.27683551142484941,0.22252093395631445,0.16750622330473647,0.11196447610330791,0.056070447237191845,6.123233995736766e-17,0.99982516091274642,0.9993007047883985,0.9984268150178166,0.99720379718118013,0.99563207894113381,0.9937122098932426,0.99144486137381038,0.98883082622512852,0.98587101851823589,0.98256647323328827,0.97891834589764848,0.97492791218182362,0.97059656745339096,0.96592582628906831,0.9609173219450996,0.95557280578614068,0.94989414667284588,0.94388333030836757,0.9375424585439992,0.93087374864420425,0.92387953251128674,0.91656225586997619,0.90892447741221083,0.90096886790241915,0.89269820924361154,0.88411539350460977,0.87522342190875368,0.8660254037844386,0.85652455547785145,0.84672419922828424,0.83662776200641975,0.82623877431599491,0.81556086895926017,0.80459777976666824,0.79335334029123517,0.7818314824680298,0.77003623523926279,0.75797172314545291,0.74564216488316559,0.73305187182982634,0.7202052465361265,0.70710678118654757,0.69376105602854155,0.68017273777091936,0.66634657795200392,0.65228741127812118,0.63800015393300857,0.62348980185873359,0.60876142900872066,0.59382018557350158,0.57867129617980562,0.56332005806362195,0.54777183921787131,0.53203207651533657,0.51610627380750662,0.49999999999999989,0.4837188871052398,0.46726862827306198,0.45065497579994512,0.43388373911755818,0.41696078276132803,0.39989202431974086,0.38268343236508984,0.36534102436639498,0.34787086458522715,0.33027906195516715,0.31257176794564445,0.2947551744109041,0.27683551142484941,0.25881904510252074,0.24071207540897291,0.22252093395631445,0.20425198178968032,0.18591160716291449,0.16750622330473647,0.14904226617617444,0.13052619222005149,0.11196447610330791,0.09336360845295065,0.074730093586424171,0.056070447237191845,0.037391194276325604,0.01869886643090218,6.123233995736766e-17,0.99985102404084947,0.99940414055107041,0.99865948268045612,0.99761727230124764,0.99627781994202647,0.99464152469519274,0.99270887409805397,0.99048044398756319,0.98795689832874645,0.9851389890168738,0.98202755565343036,0.97862352529595531,0.97492791218182362,0.97094181742605201,0.9666664286932195,0.96210301984360058,0.95725295055361581,0.95211766591071412,0.94669869598280598,0.94099765536237645,0.93501624268541483,0.92875624012530233,0.92221951286181036,0.91540800852536641,0.90832375661675402,0.90096886790241915,0.89334553378556314,0.88545602565320991,0.87730269419944207,0.86888796872500662,0.86021435641350075,0.85128444158435124,0.84210088492281177,0.83266642268720636,0.82298386589365635,0.81305609947853252,0.80288608143888252,0.79247684195109047,0.7818314824680298,0.7709531747949796,0.75984516014457881,0.74851074817110119,0.73695331598433678,0.72517630714337655,0.7131832306305963,0.70097765980614946,0.68856323134327702,0.67594364414475439,0.6631226582407953,0.65010409366874433,0.6368918293348893,0.62348980185873359,0.60990200440007281,0.59613248546922537,0.5821853477207708,0.56806474673115581,0.55377488976053313,0.5393200344991993,0.52470448779900813,0.50993260439013599,0.49500878558358147,0.47993747795978642,0.46472317204376862,0.44937040096716135,0.43388373911755818,0.41826780077556519,0.40252723873996754,0.38666674294141884,0.37069103904506751,0.35460488704253557,0.33841307983367058,0.32212044179849075,0.30573182735975302,0.28925211953656776,0.27268622848949386,0.25603909005754721,0.23931566428755782,0.22252093395631445,0.20565990308593662,0.18873759545291671,0.17175905309127604,0.15472933479028123,0.13765351458716818,0.12053668025532323,0.10338393178837031,0.086200379880619543,0.06899114440432505,0.051761352884209494,0.034516138969708218,0.017260640905388574,6.123233995736766e-17,0.99972518510981589,0.99890089148571148,0.99752757218401011,0.99560598202189809,0.99313717716255423,0.99012251453465094,0.98656365108654653,0.98246254287557611,0.97782144399294513,0.97264290532481301,0.96692977315025064,0.96068518757684018,0.95391258081477903,0.94661567529043411,0.93879848160038637,0.93046529630708663,0.92162069957733739,0.91226955266489673,0.90241699523858843,0.89206844255738649,0.8812295824940285,0.86990637240879032,0.85810503587514431,0.84583205925909744,0.83309418815409153,0.81989842367342458,0.80625201860222984,0.79216247341112933,0.77763753213375197,0.76268517811038194,0.74731362960007708,0.73153133526366898,0.71534696952012755,0.69876942777884166,0.68180782155043773,0.66447147343882174,0.64676991201719869,0.62871286659088488,0.61031026184979209,0.59157221241352231,0.57250901727207193,0.55313115412519953,0.53344927362357031,0.51347419351484191,0.49321689269790742,0.47268850518856531,0.4519003139999338,0.43086374494097046,0.40959036033650642,0.38809185267224972,0.3663800381682461,0.34446685028433299,0.32236433316115376,0.30008463500034066,0.2776400013875005,0.25504276856167651,0.23230535663498325,0.20944026276614436,0.18646005429168128,0.16337736181853024,0.14020487228188572,0.11695532197208237,0.09364148953435085,0.070276188945293,0.046872262469940029,0.023442573603260568,6.123233995736766e-17],"twiddles":[0.98297309968390179,0.18374951781657034,0.93247222940435581,0.36124166618715292,0.85021713572961422,0.52643216287735572,0.73900891722065909,0.67369564364655721,0.60263463637925641,0.79801722728023949,0.44573835577653831,0.89516329135506234,0.27366299007208278,0.96182564317281904,0.092268359463302016,0.99573417629503447,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99798667647188444,0.063423919656564506,0.99195481283079534,0.12659245357374926,0.98192869726270671,0.18925124436041021,0.96794870139635625,0.25114798718107922,0.95007111774094544,0.31203344569848712,0.92836793301607257,0.37166245566032757,0.90292653828662117,0.42979491208917164,0.87384937706978494,0.48619673610046871,0.84125353283118121,0.54064081745559756,0.80527025753105863,0.5929079290546404,0.76604444311897801,0.64278760968653925,0.7237340381050702,0.69007901148211204,0.67850941155713218,0.73459170865753332,0.63055266708452251,0.77614646429175682,0.58005690957119815,0.81457595205033573,0.52722546761050237,0.84972542994951439,0,0.99195481283079534,0.12659245357374926,0.96794870139635625,0.25114798718107922,0.92836793301607257,0.37166245566032757,0.87384937706978494,0.48619673610046871,0.80527025753105863,0.5929079290546404,0.7237340381050702,0.69007901148211204,0.63055266708452251,0.77614646429175682,0.52722546761050237,0.84972542994951439,0.41541501300188644,0.90963199535451833,0.29692037532827492,0.95490224144407387,0.17364817766693041,0.98480775301220802,0.047581915823742181,0.99886733918300796,-0.079249956856788539,0.99685477595194238,-0.20480666806519074,0.97880244621477874,-0.32706796331742166,0.94500081871466846,-0.44406661260577412,0.89599377429133586,0,0.98192869726270671,0.18925124436041021,0.92836793301607257,0.37166245566032757,0.84125353283118109,0.54064081745559767,0.7237340381050702,0.69007901148211204,0.58005690957119815,0.81457595205033573,0,0.92836793301607257,0.37166245566032757,0.7237340381050702,0.69007901148211204,0.41541501300188627,0.90963199535451844,0.047581915823742181,0.99886733918300796,-0.32706796331742166,0.94500081871466846,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99848151643331617,0.055087760355865441,0.99393067731794948,0.11000822099407929,0.98636130340272232,0.16459459028073389,0.97579638262743562,0.2186810912063758,0.96226800030925042,0.27210346484533499,0.94581724170063464,0.32469946920468346,0.92649406721480176,0.37630937194783542,0.90435716069757754,0.42677643549640365,0.87947375120648907,0.47594739303707356,0.85191940883832706,0.52367291398787785,0.82177781522524518,0.5698080575102662,0.78914050939639357,0.61421271268966782,0.75410660977689625,0.65675202404773436,0.71678251316845132,0.69729680109399539,0.6772815716257411,0.73572391067313159,0.63572374820996802,0.77191665091632089,0.59223525266498001,0.80576510566097814,0.54694815812242692,0.83716647826252855,0.50000000000000011,0.8660254037844386,0.45153335831088948,0.89225423861839392,0.40169542465296953,0.9157733266550574,0.35063755519275447,0.93651124119705476,0.29851481100169464,0.95440500187950739,0.24548548714079924,0.96940026593933037,0.19171063192373849,0.98145149325241787,0.13735355781840825,0.99052208463750324,0.082579345472332394,0.99658449300666985,0.027554342368162059,0.99962030702495142,0,0.99393067731794948,0.11000822099407929,0.97579638262743562,0.2186810912063758,0.94581724170063464,0.32469946920468346,0.90435716069757754,0.42677643549640365,0.85191940883832706,0.52367291398787785,0.78914050939639357,0.61421271268966782,0.71678251316845132,0.69729680109399539,0.63572374820996802,0.77191665091632089,0.54694815812242692,0.83716647826252855,0,0.97579638262743562,0.2186810912063758,0.90435716069757754,0.42677643549640365,0.78914050939639357,0.61421271268966782,0.63572374820996802,0.77191665091632089,0.45153335831088948,0.89225423861839392,0.24548548714079924,0.96940026593933037,0.027554342368162059,0.99962030702495142,-0.19171063192373838,0.98145149325241787,-0.40169542465296942,0.9157733266550574,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.98297309968390179,0.18374951781657034,0.93247222940435581,0.36124166618715292,0.85021713572961422,0.52643216287735572,0.73900891722065909,0.67369564364655721,0.60263463637925641,0.79801722728023949,0.44573835577653831,0.89516329135506234,0.27366299007208278,0.96182564317281904,0.092268359463302016,0.99573417629503447,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99839834926238313,0.056575049183792352,0.99359852761970291,0.11296887142907285,0.98561591034770846,0.16900082032184907,0.97447606817608323,0.22449140863757261,0.9602146853776895,0.27926288329283011,0.94287744546108421,0.33313979474205757,0.92251988483246872,0.38594955899532873,0.89920721489583677,0.43752301045690434,0.87301411316118815,0.48769494381363454,0.84402448402995034,0.53630464323738247,0.81233119002388587,0.58319639720627336,0.77803575431843952,0.62821999729564226,0.74124803553340024,0.67123121934090269,0.7020858758226225,0.71209228543102554,0.66067472339008149,0.75067230525272433,0.61714723064145516,0.78684769537159005,0.57164282925847865,0.82050257510708757,0.52430728355723166,0.85152913773331129,0,0.99359852761970291,0.11296887142907285,0.97447606817608323,0.22449140863757261,0.94287744546108421,0.33313979474205757,0.89920721489583677,0.43752301045690434,0.84402448402995034,0.53630464323738247,0.77803575431843952,0.62821999729564226,0.7020858758226225,0.71209228543102554,0.61714723064145516,0.78684769537159005,0.52430728355723166,0.85152913773331129,0.42475465928404771,0.90530849958259674,0.31976392457124519,0.94749724672042979,0.21067926999572642,0.97755523894768614,0.09889730036424986,0.99509764545026602,-0.014150845940762075,0.99989987176674888,-0.12701781974687876,0.99190043525887683,-0.23825859142316502,0.97120175227037631,-0.3464489515147236,0.93806882689616577,-0.45020374481767339,0.89292585814956849,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.97492791218182362,0.22252093395631439,0.90096886790241915,0.43388373911755812,0.7818314824680298,0.62348980185873348,0,0.90096886790241915,0.43388373911755812,0.62348980185873359,0.7818314824680298,0.22252093395631445,0.97492791218182362,0,0.7818314824680298,0.62348980185873348,0.22252093395631445,0.97492791218182362,-0.43388373911755806,0.90096886790241915,0,0,0,0,0,0,0,0,0.99720379718118013,0.074730093586424254,0.98883082622512852,0.14904226617617444,0.97492791218182362,0.22252093395631439,0.95557280578614068,0.29475517441090421,0.93087374864420425,0.36534102436639504,0.90096886790241915,0.43388373911755812,0.8660254037844386,0.5,0.82623877431599491,0.56332005806362206,0.7818314824680298,0.62348980185873348,0.73305187182982634,0.68017273777091947,0,0.98883082622512852,0.14904226617617444,0.95557280578614068,0.29475517441090421,0.90096886790241915,0.43388373911755812,0.82623877431599491,0.56332005806362206,0.73305187182982634,0.68017273777091947,0.62348980185873359,0.7818314824680298,0.49999999999999989,0.86602540378443871,0.36534102436639498,0.93087374864420425,0.22252093395631445,0.97492791218182362,0.074730093586424171,0.99720379718118013,0,0.97492791218182362,0.22252093395631439,0.90096886790241915,0.43388373911755812,0.7818314824680298,0.62348980185873348,0.62348980185873359,0.7818314824680298,0.43388373911755818,0.90096886790241915,0.22252093395631445,0.97492791218182362,6.123233995736766e-17,1,-0.22252093395631434,0.97492791218182362,-0.43388373911755806,0.90096886790241915,-0.62348980185873348,0.78183148246802991,0,0.95557280578614068,0.29475517441090421,0.82623877431599491,0.56332005806362206,0.62348980185873359,0.7818314824680298,0,0.82623877431599491,0.56332005806362206,0.36534102436639498,0.93087374864420425,-0.22252093395631434,0.97492791218182362,0,0,0,0,0,0,0,0,0.99761727230124764,0.068991144404324925,0.99048044398756319,0.13765351458716821,0.97862352529595531,0.20565990308593657,0.96210301984360058,0.27268622848949375,0.94099765536237645,0.33841307983367042,0.91540800852536641,0.40252723873996749,0,0.99048044398756319,0.13765351458716821,0.96210301984360058,0.27268622848949375,0.91540800852536641,0.40252723873996749,0.85128444158435124,0.52470448779900802,0.7709531747949796,0.63689182933488919,0.67594364414475439,0.73695331598433667,0,0.97862352529595531,0.20565990308593657,0.91540800852536641,0.40252723873996749,0.81305609947853252,0.58218534772077069,0.67594364414475439,0.73695331598433667,0.50993260439013599,0.86021435641350064,0.32212044179849075,0.94669869598280587,0,0.96210301984360058,0.27268622848949375,0.85128444158435124,0.52470448779900802,0.67594364414475439,0.73695331598433667,0.44937040096716135,0.89334553378556314,0.18873759545291671,0.98202755565343036,-0.086200379880619196,0.99627781994202647,0,0.94099765536237645,0.33841307983367042,0.7709531747949796,0.63689182933488919,0.50993260439013577,0.86021435641350075,0.18873759545291671,0.98202755565343036,-0.15472933479028111,0.98795689832874645,-0.47993747795978653,0.87730269419944185,0,0.91540800852536641,0.40252723873996749,0.67594364414475439,0.73695331598433667,0.32212044179849075,0.94669869598280587,-0.086200379880619196,0.99627781994202647,-0.47993747795978614,0.87730269419944207,-0.79247684195109025,0.60990200440007303,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]} diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/test/fixtures/c/fftpack/runner.c b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/test/fixtures/c/fftpack/runner.c new file mode 100644 index 000000000000..b8206e497ff6 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/test/fixtures/c/fftpack/runner.c @@ -0,0 +1,304 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +/** +* Generate FFTPACK test fixtures. +* +* ## Notes +* +* - Run this script from the directory in which fixtures should be written. +* +*/ + +#include +#include +#include + +/** +* Define prototypes for external functions. +*/ +extern void sinqi( int n, double *wsave ); + +/** +* Generates a random number on the interval [0,1]. +* +* @return random number +*/ +double rand_double( void ) { + int r = rand(); + return (double)r / ( (double)RAND_MAX + 1.0 ); +} + +/** +* Generates an array of pseudorandom integers drawn from a uniform distribution. +* +* ## Notes +* +* - WARNING: the method used here is not particularly robust, as some integer values may be sampled more frequently than others. +* +* +* @param out output array +* @param len array length +* @param a lower bound (inclusive) +* @param b upper bound (exclusive) +*/ +void rand_array_i32( int *out, const unsigned int len, const int a, const int b ) { + unsigned int i; + unsigned int r; + double delta; + + delta = (double)b - (double)a; + + for ( i = 0; i < len; i++ ) { + r = (unsigned int)( delta * rand_double() ); // truncation + out[ i ] = (int)( a + r ); + } +} + +/** +* Writes an array of doubles to a file as a series of comma-separated values. +* +* @param f file to write to +* @param x array of doubles +* @param len array length +*/ +void write_array_f64( FILE *f, const double *x, const unsigned int len ) { + unsigned int i; + + for ( i = 0; i < len; i++ ) { + fprintf( f, "%.17g", x[ i ] ); + if ( i < len-1 ) { + fprintf( f, "," ); + } + } +} + +/** +* Writes an array of integers to a file as a series of comma-separated values. +* +* @param f file to write to +* @param x array of integers +* @param len array length +*/ +void write_array_i32( FILE *f, const int *x, const unsigned int len ) { + unsigned int i; + + for ( i = 0; i < len; i++ ) { + fprintf( f, "%d", x[ i ] ); + if ( i < len-1 ) { + fprintf( f, "," ); + } + } +} + +/** +* Writes a named array of doubles to a file as JSON. +* +* @param f file to write to +* @param name array name +* @param x data +* @param len array length +*/ +void write_named_array_f64( FILE *f, const char *name, const double *x, const unsigned int len ) { + fprintf( f, "\"%s\":[", name ); + write_array_f64( f, x, len ); + fprintf( f, "]" ); +} + +/** +* Writes a named array of integers to a file as JSON. +* +* @param f file to write to +* @param name array name +* @param x data +* @param len array length +*/ +void write_named_array_i32( FILE *f, const char *name, const int *x, const unsigned int len ) { + fprintf( f, "\"%s\":[", name ); + write_array_i32( f, x, len ); + fprintf( f, "]" ); +} + +/** +* Writes data to a file as JSON. +* +* ## Notes +* +* - This function SHOULD be tailored to the input data (e.g., input types, output types, number of arguments, etc) and may vary from use case to use case. +* +* +* @param f file to write to +* @param lengths sequence lengths +* @param offsets cosine and twiddle offsets +* @param cosines cosine values +* @param twiddles twiddle factors +* @param num number of sequence lengths +* @param total total number of cosine and twiddle values +*/ +void write_data_as_json( FILE *f, const int *lengths, const int *offsets, const double *cosines, const double *twiddles, const unsigned int num, const unsigned int total ) { + fprintf( f, "{" ); + write_named_array_i32( f, "lengths", lengths, num ); + fprintf( f, "," ); + write_named_array_i32( f, "offsets", offsets, num ); + fprintf( f, "," ); + write_named_array_f64( f, "cosines", cosines, total ); + fprintf( f, "," ); + write_named_array_f64( f, "twiddles", twiddles, total ); + fprintf( f, "}\n" ); +} + +/** +* Generates test fixtures. +* +* @param lengths sequence lengths +* @param offsets cosine and twiddle offsets into flat output array +* @param num number of sequence lengths +* @param total total number of cosine and twiddle values +* @param name output filename +*/ +void generate( const int *lengths, const int *offsets, const unsigned int num, const unsigned int total, const char *name ) { + unsigned int i; + unsigned int j; + double *cosines; + double *twiddles; + double *wsave; + FILE *f; + int off; + int n; + + // Allocate an output array for cosine values: + cosines = (double*) malloc( total * sizeof(double) ); + if ( cosines == NULL ) { + printf( "Error allocating memory.\n" ); + exit( 1 ); + } + + // Allocate an output array for twiddle factors: + twiddles = (double*) malloc( total * sizeof(double) ); + if ( twiddles == NULL ) { + printf( "Error allocating memory.\n" ); + exit( 1 ); + } + + // Generate fixture data: + for ( i = 0; i < num; i++ ) { + n = lengths[ i ]; + wsave = (double*) calloc( 3*n + 15, sizeof(double) ); + if ( wsave == NULL ) { + printf( "Error allocating memory.\n" ); + exit( 1 ); + } + sinqi( n, wsave ); + + // Copy cosine region into flat array (N values starting at wsave[0]): + off = offsets[ i ]; + for ( j = 0; j < (unsigned int)n; j++ ) { + cosines[ off + j ] = wsave[ j ]; + } + + // Copy twiddle region into flat array (N values starting at wsave[2*n]): + off = offsets[ i ]; + for ( j = 0; j < (unsigned int)n; j++ ) { + twiddles[ off + j ] = wsave[ ( 2*n ) + j ]; + } + free( wsave ); + } + // Open a new file: + f = fopen( name, "w" ); + if ( f == NULL ) { + printf( "Error opening file.\n" ); + exit( 1 ); + } + + // Write data as JSON: + write_data_as_json( f, lengths, offsets, cosines, twiddles, num, total ); + + // Close the file: + fclose( f ); + + // Free allocated memory: + free( cosines ); + free( twiddles ); +} + +/** +* Computes offsets into flat cosine and twiddle arrays for each sequence length. +* +* @param offsets output array of offsets +* @param lengths sequence lengths +* @param num number of sequence lengths +* @return total number of cosine and twiddle values +*/ +unsigned int compute_offsets( int *offsets, const int *lengths, const unsigned int num ) { + unsigned int total; + unsigned int i; + + total = 0; + for ( i = 0; i < num; i++ ) { + offsets[ i ] = total; + total += lengths[ i ]; + } + return total; +} + +/** +* Main execution sequence. +*/ +int main( void ) { + unsigned int total; + unsigned int num; + int *lengths; + int *offsets; + + // Use the current time to seed the random number generator: + srand( time( NULL ) ); + + // Define the number of sequence lengths per range: + num = 10; + + // Allocate arrays: + lengths = (int*) malloc( num * sizeof(int) ); + if ( lengths == NULL ) { + printf( "Error allocating memory.\n" ); + exit( 1 ); + } + offsets = (int*) malloc( num * sizeof(int) ); + if ( offsets == NULL ) { + printf( "Error allocating memory.\n" ); + exit( 1 ); + } + + // Generate fixture data: + rand_array_i32( lengths, num, 2, 16 ); + total = compute_offsets( offsets, lengths, num ); + generate( lengths, offsets, num, total, "small.json" ); + + rand_array_i32( lengths, num, 16, 128 ); + total = compute_offsets( offsets, lengths, num ); + generate( lengths, offsets, num, total, "medium.json" ); + + rand_array_i32( lengths, num, 128, 1024 ); + total = compute_offsets( offsets, lengths, num ); + generate( lengths, offsets, num, total, "large.json" ); + + // Free allocated memory: + free( lengths ); + free( offsets ); + + return 0; +} diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/test/fixtures/c/fftpack/small.json b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/test/fixtures/c/fftpack/small.json new file mode 100644 index 000000000000..34d3db84778f --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/test/fixtures/c/fftpack/small.json @@ -0,0 +1 @@ +{"lengths":[3,11,15,9,13,10,15,3,7,7],"offsets":[0,3,14,29,38,51,61,76,79,86],"cosines":[0.86602540378443871,0.50000000000000011,6.123233995736766e-17,0.98982144188093268,0.95949297361449737,0.90963199535451844,0.84125353283118121,0.75574957435425827,0.6548607339452851,0.54064081745559767,0.41541501300188644,0.28173255684142978,0.14231483827328512,6.123233995736766e-17,0.99452189536827329,0.97814760073380569,0.95105651629515353,0.91354545764260087,0.86602540378443871,0.80901699437494745,0.74314482547739436,0.66913060635885824,0.58778525229247314,0.50000000000000011,0.40673664307580037,0.30901699437494745,0.20791169081775945,0.10452846326765368,6.123233995736766e-17,0.98480775301220802,0.93969262078590843,0.86602540378443871,0.76604444311897801,0.64278760968653936,0.50000000000000011,0.34202014332566882,0.17364817766693041,6.123233995736766e-17,0.99270887409805397,0.97094181742605201,0.93501624268541483,0.88545602565320991,0.82298386589365646,0.74851074817110119,0.6631226582407953,0.56806474673115581,0.46472317204376862,0.35460488704253579,0.23931566428755782,0.12053668025532323,6.123233995736766e-17,0.98768834059513777,0.95105651629515353,0.8910065241883679,0.80901699437494745,0.70710678118654757,0.58778525229247314,0.45399049973954686,0.30901699437494745,0.15643446504023092,6.123233995736766e-17,0.99452189536827329,0.97814760073380569,0.95105651629515353,0.91354545764260087,0.86602540378443871,0.80901699437494745,0.74314482547739436,0.66913060635885824,0.58778525229247314,0.50000000000000011,0.40673664307580037,0.30901699437494745,0.20791169081775945,0.10452846326765368,6.123233995736766e-17,0.86602540378443871,0.50000000000000011,6.123233995736766e-17,0.97492791218182362,0.90096886790241915,0.7818314824680298,0.62348980185873359,0.43388373911755818,0.22252093395631445,6.123233995736766e-17,0.97492791218182362,0.90096886790241915,0.7818314824680298,0.62348980185873359,0.43388373911755818,0.22252093395631445,6.123233995736766e-17],"twiddles":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.91354545764260087,0.40673664307580015,0.66913060635885824,0.74314482547739424,0,0.66913060635885824,0.74314482547739424,-0.10452846326765333,0.9945218953682734,0,0,0,0,0,0,0.76604444311897801,0.64278760968653925,0,0.17364817766693041,0.98480775301220802,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.80901699437494745,0.58778525229247314,0.30901699437494745,0.95105651629515353,0,0,0,0,0,0,0.91354545764260087,0.40673664307580015,0.66913060635885824,0.74314482547739424,0,0.66913060635885824,0.74314482547739424,-0.10452846326765333,0.9945218953682734,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]} diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/test/test.js b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/test/test.js new file mode 100644 index 000000000000..61f26b47c8dc --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/float64/sinqi/test/test.js @@ -0,0 +1,314 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var Float64Array = require( '@stdlib/array/float64' ); +var isAlmostSameValue = require( '@stdlib/number/float64/base/assert/is-almost-same-value' ); +var sinqi = require( './../lib' ); + + +// FIXTURES // + +var small = require( './fixtures/c/fftpack/small.json' ); +var medium = require( './fixtures/c/fftpack/medium.json' ); +var large = require( './fixtures/c/fftpack/large.json' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof sinqi, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function has an arity of 4', function test( t ) { + t.strictEqual( sinqi.length, 4, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns a reference to the workspace array', function test( t ) { + var workspace; + var out; + var N; + + N = 8; + workspace = new Float64Array( ( 3*N ) + 34 ); + out = sinqi( N, workspace, 1, 0 ); + + t.strictEqual( out, workspace, 'same reference' ); + t.end(); +}); + +tape( 'the function correctly initializes cosine values (small sequence lengths)', function test( t ) { + var workspace; + var expected; + var lengths; + var offsets; + var ulps; + var off; + var y; + var e; + var N; + var i; + var k; + + lengths = small.lengths; + offsets = small.offsets; + expected = small.cosines; + + ulps = 1; + for ( k = 0; k < lengths.length; k++ ) { + N = lengths[ k ]; + off = offsets[ k ]; + workspace = new Float64Array( ( 3*N ) + 34 ); + sinqi( N, workspace, 1, 0 ); + + t.strictEqual( workspace[ N ], 0.0, 'returns expected value' ); + for ( i = 0; i < N; i++ ) { + y = workspace[ i ]; + e = expected[ off+i ]; + t.strictEqual( isAlmostSameValue( y, e, ulps ), true, 'within '+ulps+' ULPs. N: '+N+'. y: '+y+'. E: '+e ); + } + } + t.end(); +}); + +tape( 'the function correctly initializes twiddle factors (small sequence lengths)', function test( t ) { + var workspace; + var expected; + var lengths; + var offsets; + var ulps; + var off; + var y; + var e; + var N; + var i; + var k; + + lengths = small.lengths; + offsets = small.offsets; + expected = small.twiddles; + + ulps = 1; + for ( k = 0; k < lengths.length; k++ ) { + N = lengths[ k ]; + off = offsets[ k ]; + workspace = new Float64Array( ( 3*N ) + 34 ); + sinqi( N, workspace, 1, 0 ); + + t.strictEqual( workspace[ (2*N) - 1 ], 0.0, 'returns expected value' ); + for ( i = 0; i < N; i++ ) { + y = workspace[ (2*N) + i ]; + e = expected[ off+i ]; + t.strictEqual( isAlmostSameValue( y, e, ulps ), true, 'within '+ulps+' ULPs. N: '+N+'. y: '+y+'. E: '+e ); + } + } + t.end(); +}); + +tape( 'the function correctly initializes cosine values (medium sequence lengths)', function test( t ) { + var workspace; + var expected; + var lengths; + var offsets; + var ulps; + var off; + var y; + var e; + var N; + var i; + var k; + + lengths = medium.lengths; + offsets = medium.offsets; + expected = medium.cosines; + + ulps = 1; + for ( k = 0; k < lengths.length; k++ ) { + N = lengths[ k ]; + off = offsets[ k ]; + workspace = new Float64Array( ( 3*N ) + 34 ); + sinqi( N, workspace, 1, 0 ); + + t.strictEqual( workspace[ N ], 0.0, 'returns expected value' ); + for ( i = 0; i < N; i++ ) { + y = workspace[ i ]; + e = expected[ off+i ]; + t.strictEqual( isAlmostSameValue( y, e, ulps ), true, 'within '+ulps+' ULPs. N: '+N+'. y: '+y+'. E: '+e ); + } + } + t.end(); +}); + +tape( 'the function correctly initializes twiddle factors (medium sequence lengths)', function test( t ) { + var workspace; + var expected; + var lengths; + var offsets; + var ulps; + var off; + var y; + var e; + var N; + var i; + var k; + + lengths = medium.lengths; + offsets = medium.offsets; + expected = medium.twiddles; + + ulps = 1; + for ( k = 0; k < lengths.length; k++ ) { + N = lengths[ k ]; + off = offsets[ k ]; + workspace = new Float64Array( ( 3*N ) + 34 ); + sinqi( N, workspace, 1, 0 ); + + t.strictEqual( workspace[ (2*N) - 1 ], 0.0, 'returns expected value' ); + for ( i = 0; i < N; i++ ) { + y = workspace[ (2*N) + i ]; + e = expected[ off+i ]; + t.strictEqual( isAlmostSameValue( y, e, ulps ), true, 'within '+ulps+' ULPs. N: '+N+'. y: '+y+'. E: '+e ); + } + } + t.end(); +}); + +tape( 'the function correctly initializes cosine values (large sequence lengths)', function test( t ) { + var workspace; + var expected; + var lengths; + var offsets; + var ulps; + var off; + var y; + var e; + var N; + var i; + var k; + + lengths = large.lengths; + offsets = large.offsets; + expected = large.cosines; + + ulps = 1; + for ( k = 0; k < lengths.length; k++ ) { + N = lengths[ k ]; + off = offsets[ k ]; + workspace = new Float64Array( ( 3*N ) + 34 ); + sinqi( N, workspace, 1, 0 ); + + t.strictEqual( workspace[ N ], 0.0, 'returns expected value' ); + for ( i = 0; i < N; i++ ) { + y = workspace[ i ]; + e = expected[ off+i ]; + t.strictEqual( isAlmostSameValue( y, e, ulps ), true, 'within '+ulps+' ULPs. N: '+N+'. y: '+y+'. E: '+e ); + } + } + t.end(); +}); + +tape( 'the function correctly initializes twiddle factors (large sequence lengths)', function test( t ) { + var workspace; + var expected; + var lengths; + var offsets; + var ulps; + var off; + var y; + var e; + var N; + var i; + var k; + + lengths = large.lengths; + offsets = large.offsets; + expected = large.twiddles; + + ulps = 1; + for ( k = 0; k < lengths.length; k++ ) { + N = lengths[ k ]; + off = offsets[ k ]; + workspace = new Float64Array( ( 3*N ) + 34 ); + sinqi( N, workspace, 1, 0 ); + + t.strictEqual( workspace[ (2*N) - 1 ], 0.0, 'returns expected value' ); + for ( i = 0; i < N; i++ ) { + y = workspace[ (2*N) + i ]; + e = expected[ off+i ]; + t.strictEqual( isAlmostSameValue( y, e, ulps ), true, 'within '+ulps+' ULPs. N: '+N+'. y: '+y+'. E: '+e ); + } + } + t.end(); +}); + +tape( 'the function does not modify the scratch region of the workspace', function test( t ) { + var workspace; + var N; + var i; + + N = 8; + workspace = new Float64Array( ( 3*N ) + 34 ); + + for ( i = 0; i < workspace.length; i++ ) { + workspace[ i ] = i + 1.0; + } + sinqi( N, workspace, 1, 0 ); + for ( i = N; i < 2*N; i++ ) { + t.strictEqual( workspace[ i ], i + 1.0, 'returns expected value' ); + } + t.end(); +}); + +tape( 'the function correctly handles stride and offset parameters', function test( t ) { + var workspace; + var expected; + var stride; + var offset; + var nf; + var N; + var i; + + N = 8; + stride = 2; + offset = 3; + workspace = new Float64Array( offset + ( ( ( 3*N ) + 34 ) * stride ) ); + + sinqi( N, workspace, stride, offset ); + + t.strictEqual( workspace[ offset + ( 3*N * stride ) ], N, 'returns expected value' ); + + nf = workspace[ offset + ( ( ( 3*N ) + 1 ) * stride ) ]; + t.strictEqual( nf, 2, 'returns expected value' ); + t.strictEqual( workspace[ offset + ( ( ( 3*N ) + 2 ) * stride ) ], 2, 'returns expected value' ); + t.strictEqual( workspace[ offset + ( ( ( 3*N ) + 3 ) * stride ) ], 4, 'returns expected value' ); + + expected = new Float64Array( ( 3*N ) + 34 ); + sinqi( N, expected, 1, 0 ); + + for ( i = 0; i < N; i++ ) { + t.strictEqual( workspace[ offset + ( ( (2*N)+i ) * stride ) ], expected[ (2*N)+i ], 'returns expected value' ); + } + t.end(); +});