From ebe3c56a43138e01f3df3b65ec739ebd5a97f898 Mon Sep 17 00:00:00 2001 From: Gunj Joshi Date: Sun, 21 Jun 2026 00:48:22 +0530 Subject: [PATCH] feat: add fft/base/fftpack/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 --- --- .../@stdlib/fft/base/fftpack/sinqi/README.md | 173 ++++++++++ .../base/fftpack/sinqi/benchmark/benchmark.js | 101 ++++++ .../fft/base/fftpack/sinqi/docs/repl.txt | 60 ++++ .../base/fftpack/sinqi/docs/types/index.d.ts | 64 ++++ .../fft/base/fftpack/sinqi/docs/types/test.ts | 94 ++++++ .../fft/base/fftpack/sinqi/examples/index.js | 45 +++ .../fft/base/fftpack/sinqi/lib/index.js | 56 ++++ .../fft/base/fftpack/sinqi/lib/main.js | 166 +++++++++ .../fft/base/fftpack/sinqi/package.json | 64 ++++ .../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 + .../fft/base/fftpack/sinqi/test/test.js | 314 ++++++++++++++++++ 15 files changed, 1581 insertions(+) create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/sinqi/README.md create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/sinqi/benchmark/benchmark.js create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/sinqi/docs/repl.txt create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/sinqi/docs/types/index.d.ts create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/sinqi/docs/types/test.ts create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/sinqi/examples/index.js create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/sinqi/lib/index.js create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/sinqi/lib/main.js create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/sinqi/package.json create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/sinqi/test/fixtures/c/fftpack/Makefile create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/sinqi/test/fixtures/c/fftpack/large.json create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/sinqi/test/fixtures/c/fftpack/medium.json create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/sinqi/test/fixtures/c/fftpack/runner.c create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/sinqi/test/fixtures/c/fftpack/small.json create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/sinqi/test/test.js diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/README.md b/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/README.md new file mode 100644 index 000000000000..6a122b979129 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/README.md @@ -0,0 +1,173 @@ + + +# sinqi + +> Initialize a workspace array for performing a quarter-wave sine transform. + + + +
+ +
+ + + + + +
+ +## Usage + +```javascript +var sinqi = require( '@stdlib/fft/base/fftpack/sinqi' ); +``` + +#### sinqi( N, workspace, strideW, offsetW ) + +Initializes a 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, ~0.707, ~0.707, 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 array. +- **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/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, 'generic' ); +logEach( ' workspace[ %d ] = %0.4f', idx, workspace.slice( 0, N ) ); + +console.log( 'Twiddle factors:' ); +idx = zeroTo( N, 'generic' ); +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, 'generic' ); +logEach( ' factor[ %d ]: %d', idx, workspace.slice( (3*N)+2, (3*N)+2+nf ) ); +``` + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/benchmark/benchmark.js b/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/benchmark/benchmark.js new file mode 100644 index 000000000000..859a68244c81 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/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 ) + 1 ] ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnan( workspace[ ( 2*N ) + 1 ] ) ) { + 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/sinqi/docs/repl.txt b/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/docs/repl.txt new file mode 100644 index 000000000000..959b6dcd1675 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/docs/repl.txt @@ -0,0 +1,60 @@ + +{{alias}}( N, workspace, strideW, offsetW ) + Initializes a 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: ArrayLikeObject + Workspace array. + + strideW: integer + Stride length for `workspace`. + + offsetW: integer + Starting index for `workspace`. + + Returns + ------- + out: ArrayLikeObject + 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, ~0.707, ~0.707, 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/sinqi/docs/types/index.d.ts b/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/docs/types/index.d.ts new file mode 100644 index 000000000000..681e25e4f029 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/docs/types/index.d.ts @@ -0,0 +1,64 @@ +/* +* @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 + +/// + +import { Collection } from '@stdlib/types/array'; + +/** +* Initializes a 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, ~0.707, ~0.707, 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: T, strideW: number, offsetW: number ): T; + + +// EXPORTS // + +export = sinqi; diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/docs/types/test.ts b/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/docs/types/test.ts new file mode 100644 index 000000000000..d83822498291 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/docs/types/test.ts @@ -0,0 +1,94 @@ +/* +* @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 collection... +{ + 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 collection... +{ + 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, ( 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/sinqi/examples/index.js b/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/examples/index.js new file mode 100644 index 000000000000..026f750043af --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/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, 'generic' ); +logEach( ' workspace[ %d ] = %0.4f', idx, workspace.slice( 0, N ) ); + +console.log( 'Twiddle factors:' ); +idx = zeroTo( N, 'generic' ); +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, 'generic' ); +logEach( ' factor[ %d ]: %d', idx, workspace.slice( (3*N)+2, (3*N)+2+nf ) ); diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/lib/index.js b/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/lib/index.js new file mode 100644 index 000000000000..ea0d92bbec78 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/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 workspace array for performing a quarter-wave sine transform. +* +* @module @stdlib/fft/base/fftpack/sinqi +* +* @example +* var Float64Array = require( '@stdlib/array/float64' ); +* var sinqi = require( '@stdlib/fft/base/fftpack/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, ~0.707, ~0.707, 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/sinqi/lib/main.js b/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/lib/main.js new file mode 100644 index 000000000000..8331173d27eb --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/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/cosqi' ); + + +// MAIN // + +/** +* Initializes a 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., `cosqf`) multiplying with `(cos,-sin)` and those performing a backward transform (e.g., `cosqb`) 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 {Collection} workspace - workspace array +* @param {integer} strideW - stride length for `workspace` +* @param {NonNegativeInteger} offsetW - starting index for `workspace` +* @returns {Collection} 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, ~0.707, ~0.707, 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/sinqi/package.json b/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/package.json new file mode 100644 index 000000000000..5fbd52d43769 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/package.json @@ -0,0 +1,64 @@ +{ + "name": "@stdlib/fft/base/fftpack/sinqi", + "version": "0.0.0", + "description": "Initialize a 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" + ], + "__stdlib__": {} +} diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/test/fixtures/c/fftpack/Makefile b/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/test/fixtures/c/fftpack/Makefile new file mode 100644 index 000000000000..7ce16281940d --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/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/sinqi/test/fixtures/c/fftpack/large.json b/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/test/fixtures/c/fftpack/large.json new file mode 100644 index 000000000000..d85386469224 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/test/fixtures/c/fftpack/large.json @@ -0,0 +1 @@ +{"lengths":[150,544,677,916,996,492,894,355,199,821],"offsets":[0,150,694,1371,2287,3283,3775,4669,5024,5223],"cosines":[0.99994516936551214,0.9997806834748455,0.9995065603657316,0.99912283009885838,0.99862953475457383,0.99802672842827156,0.9973144772244581,0.99649285924950437,0.99556196460308,0.99452189536827329,0.99337276560039645,0.99211470131447788,0.9907478404714436,0.98927233296298833,0.98768834059513777,0.98599603707050498,0.98419560796924188,0.98228725072868872,0.98027117462172186,0.97814760073380569,0.97591676193874743,0.97357890287316029,0.97113427990963608,0.96858316112863119,0.96592582628906831,0.96316256679765822,0.96029368567694307,0.95731949753206724,0.95424032851627694,0.95105651629515353,0.94776841000958567,0.94437637023748111,0.94088076895422545,0.93728198949189157,0.93358042649720174,0.92977648588825146,0.92587058480999473,0.92186315158850052,0.91775462568398114,0.91354545764260087,0.90923610904706853,0.90482705246601958,0.90031877140219352,0.8957117602394129,0.8910065241883679,0.88620357923121473,0.88130345206499228,0.87630668004386358,0.87121381112018947,0.86602540378443871,0.86074202700394364,0.85536426016050671,0.84989269298686398,0.84432792550201519,0.83867056794542405,0.83292124071009954,0.82708057427456183,0.82114920913370404,0.81512779572855421,0.80901699437494745,0.80281747519111457,0.79652991802419637,0.79015501237569041,0.78369345732583984,0.7771459614569709,0.77051324277578925,0.76379602863464224,0.75699505565175651,0.75011106963045959,0.74314482547739436,0.73609708711973443,0.72896862742141155,0.72176022809836227,0.71447267963280336,0.70710678118654768,0.69966334051336554,0.69214317387040691,0.68454710592868873,0.67687596968266073,0.66913060635885824,0.66131186532365194,0.6534206039901056,0.64545768772395062,0.63742398974868975,0.6293203910498375,0.62114778027831041,0.6129070536529766,0.60459911486237494,0.59622487496561594,0.58778525229247325,0.57928117234267895,0.57071356768443182,0.56208337785213069,0.55339154924334411,0.54463903501502708,0.53582679497899677,0.5269557954966777,0.51802700937313029,0.50904141575037143,0.50000000000000011,0.49090375361514094,0.48175367410171532,0.47255076486905406,0.46329603511986178,0.45399049973954686,0.44463517918492751,0.43523109937232773,0.42577929156507283,0.41628079226040138,0.40673664307580037,0.39714789063478079,0.3875155864521031,0.37784078681846728,0.36812455268467809,0.35836794954530038,0.34857204732181529,0.33873792024529148,0.32886664673858329,0.31895930929807004,0.30901699437494745,0.29904079225608693,0.28903179694447184,0.2789911060392295,0.26891982061526593,0.25881904510252096,0.24868988716485496,0.23853345757858105,0.22835087011065588,0.2181432413965427,0.20791169081775945,0.19765734037912627,0.18738131458572474,0.17708474031958338,0.16676874671610234,0.15643446504023092,0.14608302856241187,0.13571557243430463,0.12533323356430448,0.11493715049286683,0.10452846326765368,0.094108313318514505,0.083677843332315663,0.073238197127631854,0.062790519529313527,0.052335956242943966,0.041875653729199748,0.031410759078128396,0.020942419883357051,0.010471784116245868,2.8327694488239898e-16,0.99999583119426849,0.99998332481183183,0.99996248095696338,0.99993329980345125,0.99989578159459624,0.99984992664321093,0.99979573533161592,0.99973320811163724,0.99966234550460276,0.99958314810133719,0.9994956165621578,0.99939975161686856,0.99929555406475401,0.99918302477457299,0.999062164684551,0.99893297480237242,0.99879545620517241,0.99864961003952746,0.99849543752144632,0.99833293993635963,0.99816211863910886,0.99798297505393596,0.99779551067447025,0.99759972706371691,0.99739562585404384,0.99718320874716748,0.99696247751413902,0.99673343399532999,0.99649608010041602,0.99625041780836177,0.99599644916740404,0.99573417629503447,0.99546360137798262,0.99518472667219693,0.99489755450282624,0.99460208726420063,0.99429832741981106,0.99398627750228918,0.99366594011338594,0.99333731792394997,0.99300041367390546,0.99265523017222901,0.99230177029692679,0.99194003699500977,0.99157003328246962,0.99119176224425354,0.99080522703423868,0.99041043087520519,0.99000737705881015,0.98959606894555963,0.98917650996478101,0.98874870361459388,0.98831265346188146,0.98786836314226056,0.98741583636005115,0.98695507688824569,0.98648608856847775,0.98600887531098957,0.98552344109459999,0.9850297899666709,0.9845279260430736,0.98401785350815441,0.9834995766147,0.98297309968390179,0.98243842710531981,0.98189556333684624,0.98134451290466829,0.98078528040323043,0.98021787049519593,0.97964228791140817,0.97905853745085092,0.97846662398060902,0.97786655243582676,0.97725832781966759,0.97664195520327213,0.97601743972571564,0.97538478659396566,0.9747440010828381,0.97409508853495352,0.97343805436069286,0.97277290403815153,0.9720996431130946,0.97141827719891005,0.97072881197656213,0.97003125319454397,0.96932560666882972,0.96861187828282591,0.96789007398732263,0.96716019980044343,0.96642226180759572,0.96567626616141999,0.96492221908173792,0.96416012685550101,0.96338999583673834,0.96261183244650306,0.96182564317281904,0.96103143457062712,0.96022921326173005,0.9594189859347374,0.95860075934500966,0.95777454031460241,0.95694033573220882,0.95609815255310271,0.95524799779907998,0.95438987855840085,0.95352380198573006,0.95264977530207751,0.9517678057947383,0.95087790081723123,0.94998006778923849,0.94907431419654276,0.94816064759096585,0.94723907559030485,0.94630960587826884,0.9453722462044154,0.94442700438408522,0.94347388829833723,0.94251290589388315,0.94154406518302081,0.94056737424356762,0.93958284121879332,0.93859047431735154,0.93759028181321202,0.9365822720455913,0.93556645341888311,0.93454283440258845,0.93351142353124494,0.93247222940435581,0.93142526068631781,0.9303705261063494,0.9293080344584177,0.92823779460116518,0.92715981545783599,0.92607410601620144,0.92498067532848494,0.92387953251128674,0.92277068674550788,0.92165414727627337,0.92052992341285567,0.91939802452859654,0.9182584600608289,0.91711123951079865,0.91595637244358508,0.91479386848802102,0.91362373733661262,0.91244598874545901,0.91126063253417022,0.91006767858578586,0.9088671368466924,0.90765901732654042,0.90644333009816103,0.90522008529748199,0.90398929312344334,0.90275096383791187,0.901505107765596,0.90025173529395963,0.89899085687313562,0.89772248301583812,0.89644662429727551,0.89516329135506234,0.89387249488912979,0.89257424566163746,0.8912685544968828,0.88995543228121166,0.88863488996292672,0.88730693855219678,0.88597158912096474,0.8846288528028553,0.88327874079308233,0.88192126434835505,0.88055643478678458,0.87918426348778966,0.87780476189200141,0.87641794150116814,0.87502381387805928,0.8736223906463696,0.87221368349062123,0.87079770415606716,0.8693744644485929,0.86794397623461828,0.86650625144099813,0.86506130205492326,0.86360914012382006,0.8621497777552507,0.86068322711681144,0.85920950043603173,0.85772861000027201,0.85624056815662153,0.85474538731179484,0.85324307993202886,0.851733658542979,0.85021713572961422,0.84869352413611243,0.8471628364657553,0.84562508548082183,0.84408028400248214,0.8425284449106909,0.84096958114407949,0.83940370569984823,0.83783083163365824,0.83625097205952248,0.83466414014969603,0.83307034913456679,0.83146961230254524,0.82986194299995297,0.82824735463091204,0.82662586065723287,0.82499747459830231,0.82336221003097054,0.82172008058943824,0.82007109996514271,0.81841528190664348,0.81675264021950833,0.81508318876619767,0.81340694146594905,0.81172391229466123,0.81003411528477742,0.80833756452516847,0.80663427416101563,0.80492425839369219,0.80320753148064494,0.80148410773527612,0.79975400152682319,0.79801722728023949,0.79627379947607402,0.79452373265035037,0.79276704139444554,0.79100374035496901,0.78923384423363974,0.78745736778716358,0.78567432582711128,0.78388473321979368,0.78208860488613863,0.78028595580156657,0.77847680099586491,0.77666115555306348,0.77483903461130865,0.77301045336273699,0.77117542705334829,0.76933397098287892,0.76748610050467425,0.76563183102556032,0.76377117800571548,0.76190415695854186,0.76003078345053554,0.7581510731011567,0.75626504158270025,0.75437270462016393,0.75247407799111821,0.75056917752557417,0.74865801910585195,0.74674061866644759,0.74481699219390118,0.74288715572666286,0.74095112535495911,0.73900891722065909,0.73706054751713967,0.7351060324891503,0.73314538843267785,0.73117863169481079,0.7292057786736027,0.72722684581793529,0.72524184962738203,0.72325080665206987,0.72125373349254152,0.71925064679961714,0.71724156327425515,0.71522649966741347,0.71320547277990953,0.71117849946228018,0.70914559661464149,0.70710678118654757,0.70506207017684908,0.70301148063355234,0.70095502965367606,0.69889273438310939,0.69682461201646906,0.69475067979695593,0.69267095501621112,0.69058545501417146,0.6884941971789259,0.68639719894656981,0.68429447780105956,0.68218605127406717,0.6800719369448337,0.67795215244002305,0.67582671543357498,0.67369564364655721,0.67155895484701833,0.66941666684983958,0.66726879751658563,0.66511536475535671,0.66295638652063826,0.66079188081315221,0.65862186567970593,0.65644635921304251,0.65426537955168984,0.65207894487980855,0.64988707342704177,0.64768978346836192,0.64548709332391885,0.64327902135888737,0.64106558598331354,0.63884680565196128,0.63662269886415923,0.63439328416364549,0.63215858013841364,0.62991860542055755,0.62767337868611628,0.62542291865491761,0.62316724409042334,0.62090637379957125,0.6186403266326197,0.61636912148298906,0.61409277728710587,0.61181131302424341,0.60952474771636411,0.60723310042796141,0.60493639026589985,0.60263463637925641,0.60032785795916066,0.5980160742386349,0.59569930449243336,0.59337756803688224,0.59105088422971797,0.58871927246992606,0.58638275219757963,0.58404134289367671,0.58169506407997829,0.57934393531884576,0.57698797621307707,0.57462720640574383,0.57226164558002757,0.56989131345905519,0.56751622980573502,0.56513641442259188,0.56275188715160163,0.56036266787402622,0.55796877651024779,0.55557023301960229,0.55316705740021332,0.55075926968882571,0.54834688996063785,0.54592993832913439,0.54350843494591927,0.54108240000054664,0.53865185372035329,0.53621681637028984,0.53377730825275138,0.53133334970740909,0.52888496111103966,0.52643216287735584,0.52397497545683624,0.52151341933655504,0.51904751504001034,0.51657728312695472,0.51410274419322166,0.51162391887055558,0.50914082782643866,0.50665349176391938,0.50416193142143917,0.50166616757266058,0.49916622102629266,0.49666211262591831,0.49415386324982047,0.49164149381080791,0.4891250252560409,0.48660447856685624,0.48407987475859332,0.48155123488041762,0.47901858001514591,0.47648193127907051,0.47394130982178295,0.47139673682599759,0.46884823350737587,0.46629582111434803,0.46373952092793691,0.46117935426158024,0.45861534246095303,0.45604750690378915,0.45347586899970427,0.45090045019001579,0.4483212719475651,0.44573835577653831,0.44315172321228696,0.44056139582114806,0.43796739520026534,0.43536974297740805,0.43276846081079101,0.43016357038889436,0.4275550934302822,0.42494305168342178,0.42232746692650275,0.41970836096725428,0.41708575564276434,0.41445967281929708,0.41183013439211075,0.40919716228527486,0.4065607784514883,0.40392100487189497,0.40127786355590117,0.3986313765409924,0.39598156589254901,0.39332845370366276,0.39067206209495192,0.38801241321437813,0.38534952923706006,0.38268343236508984,0.38001414482734713,0.37734168887931446,0.37466608680289093,0.37198736090620743,0.36930553352343959,0.36662062701462206,0.36393266376546213,0.36124166618715303,0.35854765671618682,0.35585065781416819,0.35315069196762577,0.35044778168782587,0.34774194951058418,0.34503321799607806,0.34232160972865827,0.33960714731666136,0.33688985339222005,0.33416975061107534,0.33144686165238735,0.32872120921854625,0.32599281603498281,0.32326170484997974,0.32052789843448082,0.31779141958190166,0.31505229110793975,0.31231053585038404,0.30956617666892439,0.30681923644496178,0.30406973808141635,0.30131770450253714,0.2985631586537108,0.2958061235012705,0.29304662203230403,0.29028467725446233,0.28752031219576818,0.28475354990442325,0.28198441344861647,0.27921292591633173,0.27643911041515529,0.27366299007208278,0.27088458803332749,0.26810392746412581,0.26532103154854525,0.26253592348929067,0.25974862650751096,0.2569591638426052,0.25416755875202962,0.25137383451110268,0.2485780144128116,0.24578012176761813,0.24298017990326398,0.24017821216457641,0.23737424191327414,0.23456829252777145,0.23176038740298413,0.22895054995013414,0.22613880359655442,0.22332517178549338,0.22050967797592028,0.21769234564232839,0.21487319827454007,0.21205225937751071,0.20922955247113284,0.20640510109003962,0.20357892878340977,0.20075105911476968,0.19792151566179789,0.19509032201612833,0.19225750178315359,0.18942307858182816,0.18658707604447117,0.18374951781657031,0.18091042755658338,0.17806982893574189,0.17522774563785343,0.17238420135910429,0.16953921980786166,0.16669282470447674,0.16384503978108575,0.16099588878141294,0.15814539546057232,0.15529358358486969,0.1524404769316042,0.14958609928887104,0.14673047445536175,0.14387362624016667,0.1410155784625762,0.1381563549518823,0.13529597954717945,0.13243447609716683,0.1295718684599482,0.12670818050283383,0.12384343610214124,0.12097765914299619,0.11811087351913326,0.1152431031326976,0.11237437189404423,0.10950470372153961,0.10663412254136198,0.1037626522873019,0.10089031690056247,0.098017140329560548,0.095143146529725844,0.092268359463302016,0.089392803099146642,0.086516501412531449,0.083639478384942331,0.080761758003879247,0.077883364262657087,0.075004321160204265,0.072124652700863559,0.069244382894191728,0.06636353575475934,0.063482135301950279,0.06060020555976247,0.05771777055660611,0.054834854325104342,0.051951480901892583,0.049067674327418126,0.046183458645739521,0.043298857904326929,0.040413896153860339,0.037528597448029909,0.034642985843335208,0.031757085398884624,0.028870920176194564,0.025984514238989717,0.023097891653001093,0.020211076485766252,0.01732409280642842,0.014436964685535819,0.011549716194840744,0.0086623714070997518,0.0057749543958716164,0.0028874892353175129,6.123233995736766e-17,0.99999730826546718,0.99998923307635978,0.99997577447615016,0.99995693253729245,0.99993270736122153,0.99990309907835284,0.99986810784808178,0.99982773385878243,0.99978197732780705,0.99973083850148436,0.99967431765511883,0.99961241509298848,0.99954513114834409,0.99947246618340646,0.99939442058936523,0.99931099478637653,0.99922218922356054,0.99912800437899929,0.99902844075973396,0.99892349890176213,0.99881317937003511,0.99869748275845482,0.99857640968987016,0.9984499608160744,0.99831813681780102,0.99818093840472055,0.99803836631543641,0.99789042131748096,0.99773710420731154,0.99757841581030615,0.99741435698075875,0.99724492860187497,0.99707013158576729,0.99688996687345011,0.99670443543483445,0.99651353826872324,0.99631727640280521,0.99611565089365028,0.99590866282670309,0.9956963133162775,0.9954786035055504,0.99525553456655602,0.99502710770017888,0.99479332413614818,0.99455418513303029,0.99430969197822272,0.99405984598794694,0.99380464850724093,0.99354410090995238,0.99327820459873151,0.99300696100502261,0.99273037158905719,0.99244843783984604,0.99216116127517062,0.99186854344157538,0.99157058591435943,0.99126729029756799,0.99095865822398344,0.99064469135511724,0.99032539138120013,0.99000076002117365,0.98967079902268074,0.98933551016205623,0.98899489524431738,0.98864895610315395,0.98829769460091865,0.98794111262861695,0.98757921210589683,0.98721199498103862,0.98683946323094418,0.98646161886112693,0.98607846390570009,0.98569000042736665,0.98529623051740767,0.98489715629567132,0.98449277991056128,0.98408310353902539,0.98366812938654369,0.9832478596871167,0.98282229670325327,0.98239144272595857,0.98195530007472176,0.98151387109750321,0.98106715817072221,0.98061516369924406,0.98015789011636689,0.97969533988380897,0.97922751549169507,0.97875441945854336,0.97827605433125175,0.97779242268508415,0.97730352712365653,0.97680937027892289,0.97630995481116145,0.97580528340896,0.97529535878920126,0.97478018369704866,0.97425976090593147,0.97373409321752968,0.97320318346175894,0.97266703449675551,0.9721256492088608,0.97157903051260586,0.97102718135069532,0.9704701046939922,0.96990780354150152,0.96934028092035396,0.96876753988579012,0.96818958352114359,0.96760641493782451,0.96701803727530311,0.9664244537010922,0.9658256674107305,0.96522168162776567,0.96461249960373641,0.96399812461815537,0.96337855997849109,0.96275380902015084,0.96212387510646191,0.96148876162865415,0.96084847200584134,0.96020300968500283,0.95955237814096506,0.95889658087638274,0.95823562142172025,0.95756950333523227,0.95689823020294507,0.95622180563863657,0.95554023328381776,0.95485351680771213,0.95416165990723656,0.95346466630698146,0.95276253975919023,0.95205528404373929,0.95134290296811819,0.95062540036740806,0.94990278010426221,0.94917504606888436,0.94844220217900832,0.94770425237987621,0.94696120064421829,0.94621305097223041,0.94545980739155311,0.94470147395725013,0.94393805475178583,0.94316955388500412,0.94239597549410536,0.94161732374362517,0.94083360282541095,0.94004481695860009,0.93925097038959693,0.93845206739204989,0.93764811226682854,0.93683910934200043,0.93602506297280774,0.93520597754164414,0.93438185745803037,0.93355270715859162,0.93271853110703284,0.93187933379411503,0.93103511973763087,0.93018589348238068,0.92933165960014774,0.92847242268967367,0.92760818737663386,0.92673895831361242,0.92586474018007703,0.92498553768235392,0.92410135555360273,0.92321219855379044,0.92231807146966638,0.92141897911473591,0.92051492632923493,0.91960591798010383,0.91869195896096068,0.91777305419207567,0.91684920862034436,0.91592042721926059,0.91498671498889039,0.91404807695584467,0.91310451817325222,0.91215604372073267,0.91120265870436867,0.9102443682566792,0.9092811775365911,0.90831309172941188,0.90734011604680143,0.90636225572674434,0.9053795160335214,0.90439190225768129,0.90339941971601234,0.90240207375151349,0.90139986973336583,0.90039281305690388,0.89938090914358593,0.89836416344096548,0.89734258142266154,0.89631616858832941,0.89528493046363067,0.89424887260020391,0.89320800057563465,0.89216231999342521,0.89111183648296455,0.89005655569949838,0.88899648332409797,0.88793162506363021,0.88686198665072657,0.8857875738437524,0.88470839242677579,0.88362444820953656,0.88253574702741477,0.88144229474139968,0.88034409723805784,0.8792411604295014,0.87813349025335663,0.87702109267273176,0.87590397367618467,0.87478213927769077,0.87365559551661109,0.87252434845765892,0.87138840419086805,0.87024776883155897,0.86910244852030716,0.86795244942290894,0.86679777773034883,0.86563843965876619,0.86447444144942176,0.86330578936866387,0.8621324897078948,0.86095454878353694,0.85977197293699881,0.85858476853464116,0.85739294196774185,0.85619649965246236,0.85499544802981309,0.85378979356561813,0.85257954275048098,0.85136470209974957,0.85014527815348095,0.84892127747640611,0.84769270665789487,0.84645957231192026,0.84522188107702301,0.84397963961627531,0.8427328546172459,0.84148153279196314,0.84022568087687921,0.83896530563283434,0.83770041384501948,0.83643101232294059,0.83515710790038133,0.83387870743536674,0.83259581781012637,0.83130844593105668,0.83001659872868438,0.82872028315762902,0.82741950619656524,0.82611427484818567,0.82480459613916279,0.82349047712011147,0.82217192486555091,0.82084894647386608,0.81952154906727059,0.81818973979176712,0.81685352581710979,0.81551291433676498,0.81416791256787346,0.81281852775121044,0.81146476715114735,0.81010663805561245,0.80874414777605186,0.8073773036473898,0.80600611302798919,0.80463058329961268,0.80325072186738167,0.80186653615973758,0.80047803362840142,0.79908522174833363,0.79768810801769374,0.79628669995780044,0.79488100511309057,0.79347103105107897,0.79205678536231716,0.79063827566035327,0.7892155095816904,0.78778849478574553,0.78635723895480891,0.78492174979400187,0.78348203503123592,0.78203810241717098,0.78058995972517364,0.77913761475127519,0.77768107531413,0.77622034925497296,0.7747554444375776,0.77328636874821377,0.77181313009560504,0.77033573641088604,0.76885419564755997,0.76736851578145582,0.76587870481068487,0.76438477075559885,0.76288672165874516,0.76138456558482492,0.75987831062064892,0.75836796487509406,0.75685353647906006,0.7553350335854252,0.75381246436900307,0.75228583702649754,0.75075515977646012,0.74922044085924422,0.74768168853696171,0.746138911093438,0.74459211683416793,0.74304131408627039,0.741486511198444,0.73992771654092204,0.73836493850542739,0.73679818550512732,0.73522746597458788,0.73365278836972925,0.73207416116777957,0.73049159286722964,0.72890509198778686,0.72731466707032966,0.72572032667686137,0.72412207939046414,0.72251993381525281,0.72091389857632859,0.71930398231973247,0.71769019371239884,0.71607254144210863,0.71445103421744294,0.71282568076773567,0.71119648984302686,0.70956347021401556,0.70792663067201222,0.70628598002889198,0.70464152711704686,0.7029932807893382,0.70134124991904923,0.69968544339983674,0.69802587014568418,0.69636253909085277,0.69469545918983377,0.69302463941730019,0.6913500887680587,0.6896718162570008,0.68798983091905486,0.68630414180913668,0.68461475800210148,0.68292168859269475,0.68122494269550327,0.67952452944490627,0.67782045799502555,0.67611273751967738,0.67440137721232174,0.67268638628601429,0.67096777397335539,0.66924554952644144,0.66751972221681433,0.66579030133541184,0.66405729619251819,0.66232071611771259,0.66058057045982044,0.65883686858686186,0.65708961988600201,0.65533883376350011,0.65358451964465936,0.65182668697377522,0.65006534521408588,0.64830050384771987,0.6465321723756462,0.64476036031762274,0.64298507721214471,0.64120633261639404,0.63942413610618698,0.63763849727592348,0.63584942573853487,0.6340569311254326,0.6322610230864556,0.63046171128981965,0.62865900542206388,0.62685291518799968,0.62504345031065789,0.62323062053123668,0.6214144356090493,0.61959490532147077,0.61777203946388637,0.61594584784963791,0.61411634030997153,0.61228352669398445,0.61044741686857207,0.60860802071837483,0.60676534814572503,0.60491940907059349,0.60307021343053591,0.60121777118064013,0.59936209229347148,0.59750318675901992,0.59564106458464594,0.59377573579502652,0.59190721043210159,0.59003549855501969,0.58816061024008359,0.58628255558069686,0.58440134468730853,0.58251698768735904,0.58062949472522629,0.57873887596217011,0.5768451415762782,0.57494830176241096,0.57304836673214699,0.57114534671372752,0.5692392519520022,0.56733009270837298,0.56541787926073983,0.56350262190344458,0.56158433094721594,0.55966301671911389,0.5577386895624743,0.5558113598368527,0.55388103791796917,0.55194773419765208,0.55001145908378202,0.54807222300023639,0.54613003638683255,0.54418490969927202,0.54223685340908423,0.54028587800356986,0.53833199398574472,0.53637521187428316,0.53441554220346066,0.53245299552309866,0.53048758239850635,0.5285193134104248,0.52654819915496875,0.52457425024357096,0.5225974773029245,0.52061789097492539,0.51863550191661512,0.51665032080012385,0.5146623583126132,0.51267162515621711,0.51067813204798618,0.50868188971982897,0.50668290891845447,0.5046812004053135,0.50267677495654228,0.50066964336290298,0.4986598164297269,0.49664730497685461,0.49463211983857946,0.49261427186358858,0.49059377191490366,0.48857063086982389,0.48654485961986649,0.48451646907070856,0.48248547014212739,0.48045187376794318,0.47841569089595903,0.47637693248790269,0.47433560951936654,0.47229173297974991,0.47024531387219903,0.46819636321354752,0.46614489203425802,0.46409091137836223,0.46203443230340163,0.45997546588036731,0.4579140231936415,0.45585011534093717,0.45378375343323851,0.45171494859474071,0.44964371196279063,0.44757005468782668,0.4454939879333189,0.44341552287570796,0.44133467070434645,0.43925144262143784,0.43716584984197571,0.43507790359368442,0.43298761511695805,0.43089499566480016,0.42880005650276237,0.42670280890888507,0.42460326417363586,0.4225014335998491,0.42039732850266415,0.41829096020946599,0.4161823400598233,0.4140714794054271,0.41195838961003062,0.40984308204938735,0.40772556811119037,0.40560585919501002,0.40348396671223391,0.40135990208600453,0.39923367675115834,0.39710530215416323,0.39497478975305822,0.39284215101739112,0.39070739742815613,0.38857054047773343,0.38643159166982632,0.38429056251939969,0.38214746455261733,0.38000230930678108,0.37785510833026786,0.3757058731824679,0.3735546154337217,0.37140134666525904,0.36924607846913587,0.36708882244817154,0.36492959021588722,0.36276839339644285,0.36060524362457491,0.35844015254553285,0.35627313181501769,0.3541041930991185,0.35193334807425003,0.34976060842708884,0.34758598585451189,0.34540949206353261,0.34323113877123768,0.34105093770472489,0.33886890060103914,0.33668503920710996,0.33449936527968716,0.33231189058527894,0.33012262690008765,0.32793158600994676,0.32573877971025683,0.32354421980592285,0.32134791811129043,0.31914988645008135,0.31695013665533134,0.31474868056932531,0.31254553004353419,0.31034069693855032,0.30813419312402474,0.3059260304786024,0.30371622088985883,0.30150477625423522,0.29929170847697556,0.29707702947206188,0.29486075116214977,0.29264288547850514,0.29042344436093931,0.28820243975774507,0.28597988362563154,0.28375578792966111,0.28153016464318426,0.27930302574777521,0.27707438323316691,0.27484424909718763,0.27261263534569552,0.27037955399251434,0.26814501705936811,0.26590903657581744,0.2636716245791943,0.2614327931145366,0.25919255423452442,0.25695091999941455,0.25470790247697567,0.25246351374242287,0.25021776587835365,0.24797067097468214,0.24572224112857452,0.24347248844438285,0.24122142503358132,0.23896906301470042,0.23671541451326092,0.23446049166171007,0.23220430659935523,0.22994687147229917,0.22768819843337362,0.2254282996420752,0.22316718726449916,0.22090487347327425,0.21864137044749635,0.21637669037266419,0.21411084544061315,0.21184384784944885,0.20957570980348292,0.20730644351316638,0.20503606119502432,0.20276457507158926,0.20049199737133674,0.19821834032861849,0.19594361618359704,0.19366783718217909,0.19139101557595067,0.18911316362211067,0.18683429358340423,0.18455441772805789,0.18227354832971282,0.17999169766735906,0.17770887802526864,0.17542510169293069,0.17314038096498444,0.17085472814115352,0.16856815552617871,0.16628067542975319,0.16399230016645552,0.1617030420556827,0.15941291342158517,0.15712192659299959,0.1548300939033829,0.15253742769074502,0.15024394029758387,0.14794964407081782,0.14565455136171987,0.14335867452585019,0.14106202592299094,0.13876461791707903,0.13646646287613892,0.13416757317221747,0.13186796118131625,0.12956763928332546,0.1272666198619565,0.12496491530467642,0.12266253800264053,0.12035950035062602,0.11805581474696442,0.1157514935934761,0.11344654929540275,0.11114099426134089,0.10883484090317427,0.10652810163600843,0.10422078887810302,0.10191291505080448,0.099604492578480378,0.097295533888451705,0.094986051410926337,0.092676057578931326,0.09036556482824723,0.088054585597340279,0.085743132327295912,0.083431217461750848,0.081118853446827496,0.078806052731066181,0.07649282776535761,0.07417919100287701,0.071865154899016348,0.069550731911317623,0.067235934499404945,0.064920775124918798,0.06260526625144805,0.060289420344463315,0.057973249871248959,0.055656767300837288,0.053339985103940793,0.051022915752884312,0.048705571721539234,0.046387965485255485,0.044070109520794744,0.04175201630626247,0.039433698321041981,0.03711516804572644,0.03479643796205209,0.032477520552830159,0.030158428301881,0.027839173693966237,0.025519769214720864,0.023200227350587358,0.020880560588747599,0.018560781417056062,0.016240902323971712,0.013920935798492105,0.011600894330085262,0.0092807904086228826,0.0069606365243122118,0.0046404451676301372,0.002320228829255274,6.123233995736766e-17,0.9999985296568431,0.9999941186316964,0.9999867669375313,0.99997647459596672,0.99996324163726935,0.99994706810035305,0.99992795403277923,0.99990589949075626,0.99988090453913969,0.99985296925143186,0.9998220937097817,0.99978827800498438,0.99975152223648123,0.99971182651235968,0.99966919094935225,0.99962361567283686,0.99957510081683587,0.99952364652401648,0.99946925294568956,0.99941192024180958,0.99935164858097392,0.99928843814042279,0.99922228910603816,0.99915320167234367,0.99908117604250368,0.9990062124283231,0.99892831105024626,0.99884747213735681,0.99876369592737657,0.99867698266666516,0.99858733261021893,0.99849474602167076,0.99839922317328866,0.99830076434597537,0.99819936982926738,0.99809503992133419,0.99798777492897739,0.99787757516762965,0.99776444096135386,0.99764837264284223,0.99752937055341528,0.99740743504302087,0.99728256647023306,0.9971547652022511,0.99702403161489861,0.99689036609262183,0.99675376902848922,0.99661424082418992,0.99647178189003272,0.99632639264494438,0.99617807351646936,0.99602682494076744,0.99587264736261338,0.99571554123539507,0.99555550702111228,0.99539254519037557,0.99522665622240436,0.99505784060502622,0.99488609883467494,0.99471143141638907,0.99453383886381075,0.99435332169918411,0.99416988045335319,0.99398351566576149,0.99379422788444916,0.99360201766605238,0.99340688557580092,0.9932088321875171,0.9930078580836138,0.99280396385509295,0.99259715010154337,0.99238741743113945,0.99217476646063918,0.99195919781538244,0.99174071212928905,0.99151931004485661,0.99129499221315942,0.99106775929384583,0.99083761195513653,0.99060455087382271,0.99036857673526379,0.99012969023338582,0.98988789207067895,0.98964318295819587,0.98939556361554915,0.98914503477090965,0.98889159716100417,0.98863525153111331,0.98837599863506886,0.98811383923525253,0.98784877410259286,0.98758080401656312,0.98730992976517939,0.98703615214499785,0.98675947196111247,0.98647989002715308,0.98619740716528237,0.98591202420619373,0.98562374198910907,0.98533256136177594,0.98503848318046505,0.98474150830996832,0.9844416376235956,0.9841388720031724,0.98383321233903753,0.98352465953004031,0.98321321448353749,0.98289887811539156,0.98258165134996689,0.98226153512012804,0.98193853036723644,0.98161263804114762,0.98128385910020888,0.98095219451125582,0.98061764524960993,0.98028021229907569,0.97993989665193759,0.97959669930895721,0.97925062127937013,0.97890166358088349,0.97854982723967221,0.97819511329037678,0.97783752277609959,0.97747705674840213,0.97711371626730192,0.9767475024012694,0.97637841622722465,0.97600645883053427,0.97563163130500841,0.97525393475289712,0.97487337028488752,0.97448993902010039,0.97410364208608669,0.9737144806188246,0.97332245576271603,0.97292756867058283,0.97252982050366432,0.97212921243161299,0.97172574563249159,0.97131942129276927,0.97091024060731856,0.97049820477941151,0.9700833150207161,0.96966557255129315,0.96924497859959213,0.968821534402448,0.96839524120507714,0.96796610026107432,0.96753411283240831,0.9670992801894186,0.96666160361081166,0.96622108438365717,0.96577772380338367,0.9653315231737758,0.9648824838069695,0.96443060702344885,0.96397589415204155,0.96351834652991564,0.96305796550257505,0.96259475242385606,0.96212870865592293,0.96165983556926427,0.96118813454268881,0.96071360696332109,0.96023625422659808,0.95975607773626437,0.9592730789043683,0.95878725915125818,0.95829861990557719,0.95780716260426024,0.95731288869252906,0.95681579962388819,0.95631589686012064,0.95581318187128361,0.95530765613570434,0.95479932113997512,0.95428817837895008,0.95377422935573941,0.95325747558170626,0.95273791857646117,0.95221555986785844,0.95169040099199109,0.95116244349318668,0.95063168892400252,0.95009813884522154,0.94956179482584691,0.94902265844309819,0.94848073128240651,0.94793601493740942,0.94738851100994703,0.94683822111005655,0.94628514685596798,0.94572928987409932,0.94517065179905135,0.94460923427360355,0.94404503894870873,0.94347806748348839,0.94290832154522763,0.94233580280937079,0.94176051295951568,0.94118245368740927,0.94060162669294278,0.94001803368414594,0.93943167637718283,0.93884255649634629,0.93825067577405319,0.93765603595083913,0.93705863877535311,0.93645848600435289,0.93585557940269959,0.93524992074335234,0.93464151180736332,0.93403035438387227,0.93341645027010156,0.93279980127135054,0.93218040920099055,0.93155827588045925,0.93093340313925577,0.93030579281493464,0.9296754467531011,0.92904236680740515,0.92840655483953616,0.92776801271921794,0.92712674232420234,0.92648274554026455,0.92583602426119715,0.92518658038880441,0.92453441583289719,0.92387953251128674,0.92322193234977956,0.92256161728217145,0.92189858925024182,0.92123285020374812,0.92056440210042023,0.9198932469059542,0.91921938659400682,0.91854282314619007,0.91786355855206481,0.91718159480913497,0.91649693392284226,0.91580957790655926,0.91511952878158465,0.91442678857713644,0.9137313593303461,0.913033243086253,0.91233244189779805,0.91162895782581765,0.91092279293903777,0.91021394931406796,0.9095024290353948,0.90878823419537624,0.90807136689423551,0.9073518292400542,0.90662962334876696,0.90590475134415471,0.90517721535783879,0.90444701752927414,0.90371416000574356,0.90297864494235125,0.90224047450201605,0.90149965085546602,0.90075617618123072,0.90001005266563627,0.8992612825027978,0.8985098678946134,0.89775581105075775,0.89699911418867551,0.89623977953357481,0.89547780931842069,0.89471320578392843,0.89394597117855734,0.89317610775850353,0.89240361778769395,0.89162850353777923,0.89085076728812729,0.89007041132581644,0.88928743794562881,0.8885018494500434,0.88771364814922971,0.88692283636104041,0.88612941641100496,0.88533339063232241,0.88453476136585507,0.88373353096012097,0.88292970177128738,0.88212327616316399,0.8813142565071953,0.88050264518245436,0.87968844457563566,0.87887165708104775,0.87805228510060629,0.8772303310438273,0.87640579732781987,0.87557868637727909,0.87474900062447858,0.87391674250926421,0.87308191447904571,0.87224451898879063,0.87140455850101639,0.87056203548578315,0.86971695242068703,0.86886931179085214,0.86801911608892368,0.86716636781506051,0.86631106947692782,0.86545322358968968,0.86459283267600184,0.86372989926600408,0.86286442589731271,0.86199641511501368,0.86112586947165415,0.86025279152723599,0.85937718384920747,0.85849904901245599,0.85761838959930092,0.85673520819948512,0.85584950741016808,0.85496128983591801,0.85407055808870425,0.85317731478788938,0.85228156256022169,0.85138330403982765,0.85048254186820371,0.84957927869420891,0.84867351717405681,0.84776525997130792,0.84685450975686194,0.8459412692089493,0.8450255410131241,0.84410732786225584,0.84318663245652126,0.8422634575033966,0.84133780571765004,0.84040967982133297,0.83947908254377268,0.83854601662156358,0.83761048479856004,0.83667248982586773,0.83573203446183542,0.83478912147204754,0.83384375362931529,0.83289593371366899,0.83194566451234975,0.83099294881980112,0.83003778943766116,0.82908018917475379,0.82812015084708135,0.82715767727781508,0.82619277129728808,0.82522543574298601,0.82425567345953943,0.82328348729871481,0.82230888011940684,0.8213318547876296,0.82035241417650784,0.81937056116626938,0.81838629864423584,0.81739962950481448,0.81641055664948992,0.81541908298681509,0.81442521143240298,0.81342894490891804,0.81243028634606773,0.81142923868059347,0.81042580485626248,0.80941998782385893,0.80841179054117518,0.80740121597300307,0.80638826709112565,0.80537294687430749,0.80435525830828714,0.80333520438576733,0.80231278810640672,0.80128801247681081,0.80026088051052335,0.79923139522801712,0.79819955965668543,0.79716537683083311,0.79612884979166743,0.79508998158728916,0.79404877527268392,0.79300523390971289,0.7919593605671037,0.79091115832044201,0.78986063025216158,0.78880777945153613,0.78775260901466948,0.78669512204448699,0.78563532165072603,0.78457321094992716,0.78350879306542476,0.78244207112733788,0.78137304827256127,0.78030172764475558,0.77922811239433898,0.77815220567847698,0.77707401066107373,0.77599353051276265,0.7749107684108969,0.77382572753954015,0.77273841108945729,0.77164882225810483,0.77055696424962172,0.76946284027482004,0.76836645355117494,0.76726780730281607,0.7661669047605173,0.76506374916168773,0.76395834375036198,0.76285069177719045,0.76174079649943016,0.76062866118093508,0.75951428909214636,0.75839768351008252,0.75727884771833054,0.75615778500703545,0.75503449867289085,0.75390899201912975,0.75278126835551407,0.75165133099832526,0.75051918327035483,0.74938482850089383,0.74824827002572414,0.74710951118710744,0.74596855533377637,0.74482540582092427,0.7436800660101951,0.74253253926967411,0.74138282897387742,0.74023093850374222,0.73907687124661736,0.73792063059625235,0.73676221995278846,0.73560164272274786,0.7344389023190242,0.73327400216087224,0.73210694567389789,0.73093773629004832,0.72976637744760153,0.72859287259115635,0.72741722517162233,0.7262394386462101,0.72505951647842004,0.72387746213803339,0.72269327910110104,0.72150697084993376,0.72031854087309211,0.71912799266537586,0.7179353297278136,0.71674055556765337,0.7155436736983507,0.71434468763956005,0.71314360091712325,0.71194041706305944,0.71073513961555512,0.7095277721189529,0.70831831812374213,0.70710678118654757,0.70589316487011922,0.70467747274332193,0.70345970838112504,0.70223987536459154,0.70101797728086757,0.69979401772317207,0.69856800029078636,0.69733992858904303,0.69610980622931562,0.69487763682900827,0.69364342401154466,0.69240717140635744,0.69116888264887777,0.68992856138052439,0.68868621124869311,0.68744183590674612,0.68619543901400071,0.68494702423571929,0.68369659524309812,0.68244415571325667,0.68118970932922651,0.67993325977994123,0.67867481076022462,0.67741436597078064,0.67615192911818189,0.67488750391485919,0.67362109407909054,0.67235270333498987,0.67108233541249651,0.66980999404736408,0.66853568298114929,0.66725940596120148,0.66598116674065078,0.66470096907839793,0.66341881673910263,0.66213471349317277,0.66084866311675294,0.6595606693917142,0.65827073610564191,0.65697886705182518,0.65568506602924581,0.65438933684256662,0.65309168330212075,0.65179210922390018,0.6504906184295447,0.64918721474633045,0.64788190200715878,0.64657468405054486,0.64526556472060692,0.64395454786705408,0.64264163734517565,0.64132683701582971,0.64001015074543155,0.63869158240594248,0.63737113587485827,0.63604881503519817,0.63472462377549277,0.6333985659897734,0.63207064557755976,0.63074086644384952,0.62940923249910574,0.62807574765924623,0.62674041584563167,0.62540324098505407,0.62406422700972508,0.62272337785726484,0.62138069747069025,0.62003618979840291,0.61868985879417826,0.61734170841715341,0.61599174263181578,0.61463996540799126,0.61328638072083252,0.61193099255080785,0.61057380488368829,0.6092148217105372,0.60785404702769785,0.60649148483678172,0.60512713914465677,0.60376101396343562,0.60239311331046397,0.60102344120830864,0.59965200168474542,0.59827879877274792,0.59690383651047518,0.59552711894125976,0.59414865011359619,0.592768434081129,0.59138647490264051,0.59000277664203915,0.58861734336834748,0.5872301791556902,0.58584128808328206,0.58445067423541608,0.58305834170145132,0.58166429457580104,0.58026853695792058,0.57887107295229523,0.57747190666842829,0.57607104222082872,0.5746684837289997,0.57326423531742565,0.57185830111556069,0.57045068525781628,0.56904139188354907,0.56763042513704876,0.56621778916752619,0.56480348812910031,0.56338752618078691,0.56196990748648612,0.56055063621496959,0.55912971653986909,0.55770715263966353,0.55628294869766726,0.55485710890201712,0.55342963744566076,0.55200053852634401,0.55056981634659841,0.54913747511372923,0.54770351903980252,0.5462679523416335,0.5448307792407735,0.54339200396349763,0.54195163074079267,0.54050966380834464,0.53906610740652561,0.53762096578038254,0.53617424317962337,0.53472594385860561,0.53327607207632322,0.53182463209639408,0.53037162818704819,0.52891706462111432,0.52746094567600721,0.52600327563371607,0.52454405878079147,0.5230832994083322,0.52162100181197346,0.52015717029187369,0.51869180915270241,0.51722492270362685,0.51575651525830002,0.51428659113484754,0.51281515465585514,0.51134221014835612,0.50986776194381811,0.50839181437813064,0.50691437179159271,0.50543543852889949,0.50395501893912964,0.50247311737573286,0.50098973819651693,0.49950488576363455,0.49801856444357095,0.49653077860713096,0.49504153262942596,0.49355083088986129,0.49205867777212309,0.49056507766416563,0.48907003495819834,0.48757355405067276,0.48607563934226994,0.48457629523788703,0.4830755261466248,0.48157333648177436,0.48006973066080427,0.47856471310534759,0.4770582882411889,0.47555046049825117,0.47404123431058276,0.47253061411634445,0.47101860435779647,0.46950520948128516,0.46799043393723005,0.466474282180111,0.46495675866845465,0.46343786786482161,0.46191761423579325,0.4603960022519587,0.45887303638790145,0.45734872112218639,0.45582306093734654,0.45429606031986991,0.45276772376018631,0.45123805575265419,0.44970706079554734,0.44817474339104157,0.44664110804520185,0.44510615926796854,0.44356990157314452,0.44203233947838177,0.4404934775051681,0.43895332017881389,0.43741187202843868,0.43586913758695794,0.43432512139106977,0.43277982798124137,0.43123326190169603,0.42968542770039941,0.42813632992904638,0.42658597314304747,0.42503436190151578,0.42348150076725322,0.4219273943067372,0.42037204709010739,0.41881546369115202,0.41725764868729465,0.41569860665958047,0.4141383421926631,0.41257685987479087,0.41101416429779347,0.40945026005706858,0.40788515175156759,0.40631884398378326,0.40475134135973545,0.40318264848895768,0.40161276998448359,0.40004171046283338,0.39846947454400033,0.39689606685143702,0.39532149201204203,0.39374575465614592,0.39216885941749802,0.3905908109332526,0.38901161384395522,0.38743127279352912,0.38584979242926165,0.38426717740179039,0.38268343236508984,0.3810985619764572,0.37951257089649915,0.37792546378911807,0.37633724532149798,0.37474792016409125,0.37315749299060463,0.37156596847798551,0.36997335130640824,0.36837964615926039,0.3667848577231288,0.36518899068778604,0.36359204974617648,0.36199403959440246,0.36039496493171053,0.35879483046047772,0.35719364088619759,0.35559140091746633,0.35398811526596918,0.35238378864646619,0.35077842577677881,0.34917203137777558,0.3475646101733586,0.34595616689044933,0.34434670625897495,0.3427362330118543,0.34112475188498403,0.33951226761722464,0.33789878495038655,0.3362843086292161,0.33466884340138181,0.33305239401746006,0.33143496523092153,0.32981656179811686,0.32819718847826285,0.32657685003342851,0.32495555122852093,0.32333329683127127,0.32171009161222086,0.32008594034470711,0.31846084780484935,0.31683481877153497,0.31520785802640539,0.31357997035384172,0.31195116054095096,0.31032143337755191,0.30869079365616087,0.30705924617197772,0.3054267957228719,0.30379344710936806,0.30215920513463207,0.30052407460445707,0.29888806032724891,0.29725116711401239,0.295613399778337,0.29397476313638282,0.29233526200686605,0.2906949012110453,0.28905368557270711,0.28741161991815184,0.28576870907617946,0.28412495787807546,0.28248037115759661,0.28083495375095624,0.27918871049681093,0.27754164623624578,0.27589376581275998,0.27424507407225313,0.27259557586301025,0.27094527603568835,0.26929417944330142,0.26764229094120662,0.26598961538708993,0.26433615764095164,0.26268192256509237,0.26102691502409858,0.25937113988482829,0.25771460201639679,0.25605730629016227,0.2543992575797116,0.25274046076084594,0.25108092071156646,0.24942064231205979,0.24775963044468394,0.24609788999395374,0.24443542584652661,0.24277224289118812,0.2411083460188376,0.23944374012247385,0.23777843009718061,0.2361124208401123,0.23444571725047952,0.23277832422953473,0.23111024668055774,0.22944148950884141,0.22777205762167707,0.22610195592834023,0.22443118934007611,0.22275976277008513,0.22108768113350855,0.2194149493474139,0.2177415723307807,0.21606755500448585,0.21439290229128913,0.21271761911581891,0.21104171040455746,0.20936518108582663,0.20768803608977321,0.20601028034835453,0.20433191879532397,0.20265295636621636,0.2009733979983335,0.19929324863072978,0.19761251320419737,0.19593119666125197,0.19424930394611811,0.19256684000471472,0.19088380978464045,0.18920021823515923,0.18751607030718573,0.18583137095327065,0.18414612512758635,0.1824603377859122,0.18077401388561992,0.17908715838565911,0.17739977624654271,0.17571187243033223,0.17402345190062335,0.17233451962253121,0.17064508056267583,0.16895513968916756,0.16726470197159235,0.16557377238099732,0.16388235588987593,0.16219045747215352,0.1604980821031726,0.15880523475967828,0.15711192041980354,0.15541814406305474,0.15372391067029675,0.1520292252237386,0.15033409270691875,0.14863851810468981,0.14694250640320497,0.14524606258990264,0.14354919165349195,0.14185189858393801,0.14015418837244736,0.13845606601145313,0.13675753649460057,0.1350586048167321,0.13335927597387293,0.13165955496321607,0.12995944678310789,0.12825895643303323,0.12655808891360076,0.12485684922652834,0.12315524237462823,0.12145327336179242,0.11975094719297787,0.11804826887419186,0.11634524341247721,0.1146418758158976,0.1129381710935228,0.11123413425541398,0.10952977031260894,0.10782508427710739,0.10612008116185624,0.10441476598073482,0.10270914374854012,0.10100321948097211,0.099296998194618943,0.097590484906942179,0.095883684636262109,0.094176602401742929,0.092469243223378003,0.090761612121975074,0.089053714119141578,0.087345554237269793,0.085637137499522106,0.083928468929816216,0.082219553552810423,0.080510396393888781,0.078801002479146343,0.077091376835374426,0.075381524490045732,0.073671450471299679,0.071961159807927499,0.070250657529357566,0.068539948665640504,0.066829038247434469,0.065117931305990293,0.063406632873136748,0.061695147981265727,0.059983481663317406,0.05827163895276552,0.056559624883602479,0.054847444490324644,0.053135102807917452,0.051422604871840659,0.049709955718013496,0.047997160382799907,0.046284223902993686,0.044571151315803692,0.042857947658839032,0.04114461797009427,0.039431167287934554,0.03771760065108086,0.036003923098595153,0.034290139669865542,0.032576255404591518,0.030862275342769072,0.029148204524675914,0.027434047990856643,0.025719810782107916,0.024005497939463633,0.022291114504180101,0.020576665517721235,0.018862156021743699,0.017147591058082324,0.015432975668734391,0.013718314895846127,0.012003613781697004,0.010288877368685117,0.0085741106993123713,0.0068593188161696376,0.0051445067619219405,0.0034296795792936184,0.001714842311053497,6.123233995736766e-17,0.99999875637056823,0.99999502548536601,0.99998880735367313,0.99998010199095555,0.99996890941886596,0.99995522966524297,0.99993906276411182,0.99992040875568378,0.99989926768635617,0.99987563960871217,0.9998495245815211,0.99982092266973777,0.99978983394450249,0.99975625848314087,0.99972019636916398,0.99968164769226753,0.99964061254833203,0.99959709103942251,0.99955108327378839,0.99950258936586267,0.99945160943626232,0.99939814361178758,0.99934219202542196,0.99928375481633147,0.99922283212986451,0.99915942411755154,0.99909353093710485,0.99902515275241766,0.99895428973356437,0.99888094205679967,0.99880510990455806,0.99872679346545379,0.99864599293428014,0.99856270851200901,0.99847694040579016,0.99838868882895127,0.99829795400099675,0.99820473614760752,0.99810903550064067,0.99801085229812836,0.99791018678427779,0.99780703920946989,0.99770140983025968,0.99759329890937454,0.99748270671571448,0.99736963352435082,0.99725407961652579,0.99713604527965205,0.99701553080731142,0.99689253649925458,0.99676706266140036,0.99663910960583446,0.99650867765080942,0.99637576712074327,0.99624037834621881,0.996102511663983,0.99596216741694599,0.9958193459541802,0.99567404763091971,0.99552627280855899,0.99537602185465213,0.99522329514291241,0.99506809305321053,0.99491041597157426,0.99475026429018742,0.99458763840738862,0.9944225387276705,0.99425496566167881,0.99408491962621104,0.99391240104421574,0.99373741034479135,0.99355994796318492,0.99338001434079137,0.99319760992515227,0.99301273516995447,0.99282539053502949,0.99263557648635192,0.99244329349603833,0.99224854204234636,0.99205132260967321,0.99185163568855483,0.99164948177566425,0.99144486137381038,0.99123777499193733,0.99102822314512251,0.99081620635457557,0.99060172514763711,0.99038478005777753,0.99016537162459528,0.98994350039381607,0.989719166917291,0.98949237175299554,0.98926311546502799,0.989031398623608,0.98879722180507545,0.98856058559188853,0.98832149057262297,0.98807993734196986,0.9878359265007346,0.98758945865583536,0.98734053442030145,0.98708915441327194,0.9868353192599939,0.98657902959182109,0.98632028604621236,0.98605908926672969,0.9857954399030372,0.9855293386108992,0.98526078605217826,0.9849897828948343,0.98471632981292223,0.98444042748659077,0.98416207660208022,0.98388127785172153,0.98359803193393369,0.98331233955322261,0.98302420142017943,0.98273361825147798,0.982440590769874,0.98214511970420271,0.98184720578937701,0.98154684976638595,0.98124405238229284,0.98093881439023312,0.98063113654941247,0.98032101962510565,0.98000846438865352,0.9796934716174619,0.9793760420949994,0.97905617661079536,0.97873387596043815,0.97840914094557274,0.97808197237389927,0.97775237105917068,0.97742033782119087,0.97708587348581222,0.97674897888493417,0.976409654856501,0.97606790224449913,0.97572372189895595,0.97537711467593713,0.97502808143754438,0.97467662305191383,0.97432274039321343,0.97396643434164087,0.97360770578342171,0.97324655561080664,0.97288298472206969,0.97251699402150571,0.97214858441942831,0.97177775683216749,0.97140451218206769,0.97102885139748463,0.97065077541278422,0.97027028516833913,0.96988738161052723,0.96950206569172859,0.9691143383703239,0.96872420061069109,0.96833165338320404,0.96793669766422907,0.9675393344361235,0.9671395646872325,0.9667373894118868,0.96633280961040047,0.96592582628906831,0.96551644046016305,0.96510465314193328,0.9646904653586007,0.96427387814035759,0.96385489252336398,0.96343350954974583,0.9630097302675914,0.96258355573094967,0.96215498699982704,0.96172402514018474,0.96129067122393663,0.96085492632894598,0.96041679153902315,0.95997626794392277,0.95953335663934114,0.95908805872691327,0.95864037531421031,0.95819030751473677,0.95773785644792797,0.9572830232391466,0.95682580901968073,0.95636621492674045,0.95590424210345515,0.955439891698871,0.95497316486794748,0.9545040627715552,0.95403258657647239,0.95355873745538244,0.95308251658687082,0.95260392515542203,0.95212296435141686,0.95163963537112939,0.95115393941672388,0.95066587769625188,0.95017545142364923,0.94968266181873306,0.9491875101071986,0.94868999752061645,0.9481901252964291,0.94768789467794823,0.94718330691435138,0.94667636326067894,0.94616706497783098,0.9456554133325642,0.94514140959748871,0.94462505505106487,0.94410635097759998,0.94358529866724539,0.94306189941599317,0.94253615452567274,0.94200806530394754,0.94147763306431242,0.94094485912608961,0.94040974481442563,0.9398722914602885,0.93933250040046379,0.93879037297755152,0.93824591053996309,0.93769911444191734,0.9371499860434378,0.93659852671034882,0.93604473781427278,0.93548862073262584,0.93493017684861512,0.93436940755123521,0.9338063142352645,0.93324089830126167,0.93267316115556276,0.93210310421027698,0.93153072888328337,0.93095603659822757,0.93037902878451817,0.92979970687732283,0.92921807231756526,0.92863412655192101,0.92804787103281439,0.92745930721841485,0.92686843657263263,0.92627526056511622,0.92567978067124779,0.92508199837214011,0.92448191515463229,0.92387953251128674,0.92327485194038506,0.92266787494592439,0.92205860303761356,0.92144703773086956,0.92083318054681362,0.92021703301226732,0.91959859665974941,0.9189778730274708,0.91835486365933217,0.91772957010491885,0.91710199391949798,0.91647213666401384,0.91583999990508458,0.91520558521499784,0.91456889417170728,0.91392992835882825,0.91328868936563423,0.91264517878705254,0.91199939822366061,0.91135134928168171,0.9107010335729816,0.91004845271506352,0.90939360833106508,0.90873650204975387,0.90807713550552327,0.90741551033838852,0.90675162819398269,0.90608549072355249,0.90541709958395433,0.90474645643764995,0.90407356295270247,0.90339842080277211,0.90272103166711237,0.90204139723056509,0.90135951918355728,0.90067539922209616,0.89998903904776495,0.89930044036771928,0.89860960489468222,0.89791653434694041,0.89722123044833979,0.8965236949282811,0.89582392952171586,0.89512193596914158,0.89441771601659803,0.89371127141566264,0.89300260392344577,0.89229171530258711,0.89157860732125072,0.89086328175312057,0.89014574037739658,0.88942598497879,0.88870401734751869,0.88797983927930313,0.8872534525753617,0.88652485904240597,0.88579406049263676,0.8850610587437393,0.88432585561887855,0.88358845294669519,0.88284885256130041,0.88210705630227182,0.88136306601464887,0.88061688354892786,0.87986851076105776,0.87911794951243549,0.87836520166990117,0.87761026910573348,0.87685315369764505,0.87609385732877809,0.87533238188769913,0.8745687292683948,0.8738029013702665,0.8730349000981269,0.87226472736219385,0.87149238507808613,0.87071787516681909,0.86994119955479932,0.86916236017381998,0.86838135896105662,0.867598197859061,0.86681287881575786,0.86602540378443871,0.8652357747237579,0.86444399359772717,0.8636500623757114,0.86285398303242278,0.86205575754791708,0.86125538790758727,0.86045287610216015,0.85964822412769026,0.85884143398555524,0.8580325076824511,0.85722144723038696,0.85640825464668013,0.85559293195395114,0.85477548118011837,0.85395590435839364,0.85313420352727676,0.85231038073055021,0.85148443801727469,0.85065637744178346,0.84982620106367746,0.8489939109478204,0.84815950916433325,0.84732299778858899,0.84648437890120831,0.84564365458805324,0.84480082694022285,0.84395589805404758,0.84310887003108448,0.84225974497811129,0.84140852500712204,0.84055521223532093,0.83969980878511796,0.8388423167841228,0.83798273836513992,0.83712107566616356,0.83625733083037179,0.83539150600612166,0.83452360334694364,0.83365362501153639,0.832781573163761,0.83190744997263633,0.83103125761233299,0.83015299826216837,0.82927267410660055,0.82839028733522369,0.82750584014276207,0.8266193347290649,0.82573077329910061,0.82484015806295152,0.82394749123580813,0.82305277503796404,0.82215601169481001,0.82125720343682862,0.82035635249958871,0.81945346112373973,0.81854853155500618,0.81764156604418226,0.81673256684712592,0.8158215362247534,0.81490847644303388,0.8139933897729833,0.813076278490659,0.81215714487715429,0.81123599121859236,0.81031281980612069,0.80938763293590577,0.80846043290912661,0.80753122203196992,0.80660000261562359,0.8056667769762712,0.80473154743508679,0.80379431631822817,0.80285508595683175,0.8019138586870066,0.80097063684982861,0.80002542279133448,0.79907821886251651,0.79812902741931591,0.79717785082261761,0.79622469143824393,0.79526955163694901,0.79431243379441285,0.79335334029123528,0.79239227351292996,0.79142923584991898,0.79046422969752617,0.78949725745597177,0.78852832153036589,0.78755742433070308,0.78658456827185597,0.7856097557735694,0.78463298926045455,0.78365427116198239,0.78267360391247831,0.78169098995111563,0.78070643172190946,0.77971993167371123,0.77873149226020177,0.77774111593988582,0.77674880517608558,0.77575456243693497,0.77475839019537274,0.77376029092913756,0.77276026712076029,0.77175832125755928,0.77075445583163316,0.76974867333985508,0.76874097628386651,0.76773136717007073,0.76671984850962716,0.76570642281844448,0.76469109261717461,0.76367386043120689,0.76265472879066076,0.76163370023038057,0.76061077728992865,0.75958596251357924,0.7585592584503118,0.75753066765380528,0.75650019268243118,0.75546783609924739,0.75443360047199215,0.75339748837307707,0.75235950237958127,0.75131964507324456,0.75027791904046126,0.74923432687227354,0.7481888711643655,0.74714155451705588,0.7460923795352925,0.74504134882864503,0.74398846501129889,0.74293373070204882,0.74187714852429176,0.74081872110602154,0.73975845107982086,0.73869634108285576,0.73763239375686884,0.7365666117481724,0.73549899770764215,0.73442955429071077,0.73335828415736082,0.73228518997211833,0.73121027440404651,0.73013354012673837,0.72905498981831096,0.72797462616139808,0.72689245184314377,0.72580846955519573,0.72472268199369849,0.72363509185928687,0.72254570185707878,0.72145451469666955,0.72036153309212392,0.71926675976197019,0.71817019742919275,0.71707184882122632,0.71597171666994808,0.7148698037116713,0.71376611268713896,0.71266064634151627,0.71155340742438433,0.71044439868973275,0.70933362289595348,0.70822108280583329,0.70710678118654757,0.70599072080965275,0.70487290445108008,0.70375333489112801,0.70263201491445604,0.70150894731007696,0.70038413487135076,0.6992575803959773,0.69812928668598895,0.69699925654774442,0.69586749279192106,0.69473399823350834,0.69359877569180073,0.69246182799039047,0.69132315795716071,0.69018276842427884,0.68904066222818861,0.6878968422096039,0.68675131121350108,0.68560407208911245,0.68445512768991845,0.68330448087364148,0.68215213450223788,0.68099809144189138,0.67984235456300579,0.67868492674019798,0.67752581085229058,0.67636500978230474,0.67520252641745337,0.67403836364913339,0.67287252437291889,0.67170501148855422,0.67053582789994592,0.66936497651515636,0.66819246024639589,0.66701828201001612,0.66584244472650211,0.66466495132046588,0.66348580472063801,0.66230500785986146,0.66112256367508382,0.6599384751073496,0.65875274510179382,0.6575653766076337,0.65637637257816239,0.65518573597074048,0.6539934697467894,0.65279957687178392,0.65160406031524476,0.650406923050731,0.64920816805583292,0.64800779831216448,0.64680581680535609,0.64560222652504673,0.64439703046487717,0.64319023162248168,0.64198183299948175,0.64077183760147749,0.63956024843804049,0.63834706852270673,0.63713230087296879,0.63591594851026811,0.63469801445998808,0.63347850175144582,0.63225741341788522,0.6310347524964689,0.62981052202827126,0.62858472505827034,0.62735736463534031,0.62612844381224464,0.62489796564562727,0.62366593319600594,0.62243234952776438,0.62119721770914449,0.61996054081223873,0.61872232191298271,0.61748256409114743,0.61624127043033161,0.61499844401795367,0.61375408794524478,0.61250820530724037,0.61126079920277354,0.61001187273446578,0.60876142900872066,0.60750947113571552,0.60625600222939346,0.60500102540745615,0.603744543791356,0.6024865605062879,0.60122707868118208,0.59996610144869567,0.59870363194520559,0.59743967331080028,0.59617422868927195,0.5949073012281092,0.59363889407848835,0.59236901039526646,0.59109765333697295,0.58982482606580189,0.58855053174760419,0.58727477355187974,0.58599755465176939,0.58471887822404711,0.58343874744911239,0.58215716551098162,0.58087413559728085,0.57958966089923769,0.57830374461167322,0.5770163899329942,0.57572760006518475,0.57443737821379903,0.57314572758795279,0.57185265140031538,0.57055815286710221,0.56926223520806607,0.56796490164648961,0.56666615540917742,0.56536599972644741,0.56406443783212334,0.56276147296352674,0.56145710836146834,0.56015134727024063,0.55884419293760945,0.55753564861480609,0.55622571755651884,0.55491440302088546,0.55360170826948452,0.55228763656732793,0.5509721911828519,0.54965537538790987,0.54833719245776336,0.54701764567107469,0.54569673830989829,0.54437447365967262,0.54305085500921224,0.54172588565069946,0.54039956887967566,0.53907190799503457,0.537742906299012,0.53641256709717955,0.53508089369843492,0.53374788941499474,0.53241355756238562,0.53107790145943645,0.52974092442826948,0.52840262979429287,0.52706302088619161,0.5257221010359201,0.52437987357869298,0.52303634185297743,0.52169150920048457,0.5203453789661614,0.5189979544981822,0.51764923914794059,0.5162992362700406,0.51494794922228893,0.51359538136568617,0.51224153606441891,0.51088641668585055,0.50953002660051405,0.50817236918210273,0.50681344780746196,0.5054532658565809,0.50409182671258412,0.50272913376172335,0.50136519039336858,0.50000000000000011,0.49863356597719982,0.49726589172364288,0.49589698064108917,0.49452683613437493,0.493155461611404,0.49178286048314024,0.49040903616359777,0.48903399206983328,0.48765773162193743,0.48628025824302618,0.48490157535923245,0.48352168639969739,0.48214059479656207,0.48075830398495889,0.47937481740300281,0.47799013849178318,0.47660427069535466,0.47521721746072959,0.47382898223786829,0.472439568479671,0.47104897964196957,0.46965721918351827,0.46826429056598573,0.46687019725394596,0.46547494271486994,0.46407853041911679,0.46268096383992552,0.46128224645340582,0.45988238173853008,0.4584813731771239,0.45707922425385872,0.4556759384562416,0.45427151927460763,0.45286597020211083,0.45145929473471563,0.45005149637118808,0.44864257861308704,0.44723254496475578,0.44582139893331296,0.44440914402864401,0.44299578376339255,0.44158132165295116,0.4401657612154537,0.43874910597176514,0.43733135944547391,0.43591252516288254,0.43449260665299921,0.43307160744752876,0.43164953108086418,0.43022638109007738,0.42880216101491087,0.42737687439776861,0.42595052478370748,0.42452311572042806,0.42309465075826608,0.42166513345018403,0.42023456735176129,0.41880295602118617,0.41737030301924655,0.41593661190932135,0.41450188625737144,0.41306612963193101,0.41162934560409836,0.41019153774752731,0.40875270963841825,0.4073128648555091,0.40587200698006637,0.40443013959587698,0.4029872662892382,0.40154339064894934,0.40009851626630305,0.39865264673507583,0.39720578565151948,0.3957579366143521,0.39430910322474905,0.392859289086334,0.39140849780517001,0.38995673298975053,0.38850399825099052,0.38705029720221712,0.38559563345916154,0.38414001063994885,0.38268343236508984,0.38122590225747166,0.37976742394234914,0.37830800104733525,0.37684763720239262,0.37538633603982408,0.37392410119426395,0.3724609363026688,0.37099684500430852,0.36953183094075687,0.36806589775588361,0.36659904909584368,0.36513128860906952,0.36366261994626137,0.36219304676037845,0.36072257270662955,0.35925120144246447,0.35777893662756427,0.35630578192383272,0.35483174099538695,0.3533568175085483,0.35188101513183306,0.35040433753594424,0.34892678839376101,0.34744837138033058,0.34596909017285882,0.34448894845070094,0.34300794989535266,0.34152609819044066,0.34004339702171382,0.33855985007703371,0.3370754610463656,0.33559023362176932,0.33410417149738991,0.33261727836944838,0.33112955793623328,0.32964101389809014,0.32815164995741336,0.32666146981863664,0.32517047718822373,0.32367867577465925,0.32218606928843946,0.3206926614420631,0.31919845595002205,0.31770345652879223,0.31620766689682411,0.31471109077453358,0.31321373188429324,0.31171559395042209,0.31021668069917691,0.30871699585874307,0.30721654315922486,0.30571532633263671,0.30421334911289333,0.30271061523580101,0.30120712843904779,0.29970289246219456,0.2981979110466656,0.29669218793573932,0.29518572687453859,0.2936785316100225,0.2921706058909756,0.2906619534679995,0.28915257809350337,0.28764248352169436,0.28613167350856872,0.28462015181190198,0.28310792219123987,0.28159498840788888,0.2800813542249071,0.27856702340709444,0.27705199972098349,0.27553628693483079,0.27401988881860617,0.27250280914398428,0.27098505168433495,0.2694666202147139,0.26794751851185333,0.26642775035415234,0.26490731952166774,0.2633862297961046,0.26186448496080689,0.26034208880074788,0.25881904510252096,0.25729535765432981,0.25577103024597997,0.25424606666886806,0.25272047071597331,0.25119424618184777,0.24966739686260692,0.24813992655592026,0.24661183906100187,0.24508313817860089,0.24355382771099215,0.24202391146196667,0.2404933932368222,0.23896227684235355,0.23743056608684399,0.23589826478005441,0.23436537673321484,0.23283190575901466,0.23129785567159317,0.22976323028653001,0.22822803342083581,0.22669226889294253,0.22515594052269414,0.22361905213133698,0.22208160754151035,0.22054361057723693,0.21900506506391304,0.21746597482830013,0.21592634369851377,0.21438617550401518,0.21284547407560131,0.21130424324539548,0.20976248684683771,0.20822020871467528,0.20667741268495315,0.20513410259500439,0.20359028228344073,0.20204595559014291,0.20050112635625097,0.19895579842415559,0.19740997563748708,0.1958636618411069,0.19431686088109773,0.19276957660475399,0.19122181286057222,0.18967357349824149,0.18812486236863388,0.1865756833237949,0.18502604021693381,0.18347593690241418,0.18192537723574426,0.18037436507356705,0.17882290427365177,0.17727099869488283,0.17571865219725111,0.17416586864184419,0.17261265189083677,0.17105900580748098,0.16950493425609678,0.16795044110206242,0.16639553021180478,0.16484020545278977,0.16328447069351265,0.16172832980348828,0.16017178665324233,0.15861484511430035,0.15705750905917895,0.15549978236137602,0.15394166889536115,0.15238317253656583,0.15082429716137394,0.1492650466471121,0.14770542487203997,0.14614543571534061,0.14458508305711087,0.14302437077835178,0.14146330276095853,0.13990188288771183,0.13834011504226687,0.13677800310914459,0.13521555097372173,0.13365276252222119,0.13208964164170245,0.13052619222005171,0.12896241814597248,0.1273983233089756,0.12583391159936988,0.1242691869082522,0.12270415312749768,0.1211388141497509,0.11957317386841491,0.11800723617764236,0.11644100497232567,0.11487448414808725,0.11330767760126995,0.11174058922892721,0.11017322292881349,0.1086055825993745,0.10703767213973756,0.10546949544970184,0.10390105642972873,0.10233235898093185,0.10076340700506828,0.099194204404527503,0.097624755082322615,0.096055062942080327,0.094485131888031357,0.092914965825000612,0.091344568658397546,0.089773944294206445,0.088203096638976686,0.086632029599813004,0.085060747084365826,0.083489253000821301,0.081917551257892449,0.080345645764808155,0.078773540431304273,0.077201239167613733,0.075628745884456797,0.074056064493031301,0.072483198905003002,0.07091015303249576,0.069336930788081869,0.0677635360847723,0.066189972836006972,0.064616244955645025,0.063042356357954868,0.061468310957605278,0.059894112669654442,0.05831976540954098,0.056745273093074089,0.05517063963642372,0.053595868956110911,0.052020964968997982,0.050445931592278843,0.048870772743469217,0.047295492340396914,0.045720094301192074,0.044144582544277222,0.042568960988358377,0.040993233552413993,0.039417404155686113,0.037841476717670366,0.036265455158106238,0.034689343396967325,0.033113145354451576,0.031536864950971542,0.029960506107144624,0.028384072743783337,0.026807568781885532,0.025230998142624663,0.023654364747339802,0.022077672517526781,0.020500925374827103,0.018924127241019079,0.017347282038007832,0.015770393687815579,0.014193466112571844,0.012616503234503714,0.011039508975926088,0.0094624872592319106,0.0078854420068824246,0.0063083771413974142,0.0047312965853452222,0.0031542042613338832,0.0015771040920000382,6.123233995736766e-17,0.9999949034160297,0.99997961371606903,0.99995413105596853,0.99991845569547733,0.99987258799824019,0.99981652843179436,0.9997502775675644,0.99967383608085636,0.99958720475085139,0.99949038446059713,0.99938337619699891,0.99926618105081,0.99913880021662027,0.99900123499284388,0.99885348678170638,0.99869555708922997,0.99852744752521849,0.99834915980324113,0.9981606957406145,0.99796205725838438,0.99775324638130625,0.9975342652378244,0.99730511606005046,0.99706580118374044,0.99681632304827106,0.99655668419661492,0.99628688727531434,0.99600693503445481,0.99571683032763625,0.9954165761119449,0.99510617544792235,0.99478563149953469,0.99445494753414021,0.99411412692245615,0.99376317313852414,0.99340208975967503,0.99303088046649257,0.99264954904277514,0.99225809937549814,0.9918565354547737,0.99144486137381038,0.99102308132887118,0.99059119961923092,0.99014922064713251,0.98969714891774163,0.98923498903910145,0.98876274572208533,0.98828042378034853,0.98778802813027966,0.98728556379095034,0.98677303588406395,0.9862504496339034,0.98571781036727824,0.98517512351346992,0.98462239460417678,0.98405962927345714,0.98348683325767283,0.98290401239542957,0.98231117262751855,0.98170831999685493,0.98109546064841691,0.98047260082918253,0.97983974688806685,0.97919690527585612,0.97854408254514302,0.9778812853502592,0.97720852044720774,0.97652579469359435,0.9758331150485573,0.97513048857269646,0.97441792242800163,0.97369542387777908,0.97296300028657789,0.97222065912011468,0.97146840794519784,0.97070625442964964,0.96993420634222904,0.9691522715525519,0.96836045803101067,0.9675587738486936,0.96674722717730233,0.96592582628906831,0.96509457955666866,0.96425349545314099,0.96340258255179678,0.9625418495261342,0.96167130514974952,0.96079095829624772,0.95990081793915216,0.95900089315181292,0.95809119310731461,0.95717172707838249,0.95624250443728831,0.95530353465575424,0.95435482730485732,0.95339639205493054,0.95242823867546567,0.95145037703501245,0.95046281710107894,0.94946556894002943,0.94845864271698188,0.94744204869570425,0.94641579723851033,0.94537989880615336,0.9443343639577203,0.94327920335052318,0.94221442773999142,0.94114004797956152,0.94005607502056698,0.9389625199121262,0.93785939380102989,0.93674670793162784,0.93562447364571411,0.934492702382411,0.93335140567805319,0.93220059516606968,0.93104028257686533,0.92987047973770121,0.92869119857257398,0.92750245110209473,0.92630424944336598,0.92509660580985853,0.92387953251128674,0.92265304195348319,0.92141714663827201,0.92017185916334177,0.91891719222211687,0.91765315860362795,0.91637977119238223,0.91509704296823136,0.91380498700623947,0.91250361647654998,0.91119294464425138,0.90987298486924173,0.90854375060609249,0.90720525540391206,0.90585751290620653,0.90450053685074172,0.90313434106940238,0.90175893948805153,0.90037434612638845,0.89898057509780593,0.89757764060924605,0.8961655569610556,0.89474433854684055,0.89331399985331861,0.89187455546017247,0.89042602003990057,0.88896840835766766,0.8875017352711545,0.88602601573040596,0.88454126477767936,0.88304749754729051,0.88154472926545957,0.880032975250156,0.87851225091094243,0.87698257174881733,0.8754439533560574,0.87389641141605845,0.87233996170317496,0.87077462008256068,0.8692004025100053,0.86761732503177313,0.86602540378443871,0.86442465499472254,0.86281509497932607,0.86119674014476477,0.8595696069872012,0.85793371209227687,0.85628907213494332,0.85463570387929177,0.85297362417838241,0.85130284997407291,0.84962339829684541,0.84793528626563253,0.84623853108764413,0.84453315005819041,0.84281916056050665,0.84109658006557575,0.83936542613194998,0.83762571640557204,0.83587746861959544,0.83412070059420329,0.83235543023642722,0.83058167553996443,0.82879945458499449,0.82700878553799484,0.82520968665155581,0.82340217626419454,0.82158627280016794,0.8197619947692848,0.81792936076671774,0.8160883894728127,0.81423909965289942,0.81238151015709947,0.81051563992013465,0.80864150796113365,0.80675913338343819,0.8048685353744085,0.80296973320522758,0.80106274623070484,0.79914759388907874,0.79722429570181885,0.79529287127342652,0.79335334029123528,0.79140572252521013,0.78945003782774603,0.78748630613346571,0.78551454745901594,0.78353478190286407,0.78154702964509304,0.77955131094719532,0.77754764615186667,0.77553605568279893,0.77351656004447167,0.77148917982194298,0.76945393568063991,0.76741084836614792,0.7653599387039991,0.76330122759945995,0.76123473603731862,0.75916048508167056,0.75707849587570419,0.75498878964148508,0.75289138767973984,0.75078631136963891,0.74867358216857871,0.74655322161196269,0.74442525131298221,0.74228969296239578,0.74014656832830827,0.73799589925594922,0.7358377076674496,0.73367201556161865,0.73149884501371965,0.729318218175245,0.72713015727369046,0.72493468461232791,0.72273182256997925,0.72052159360078705,0.71830402023398643,0.7160791250736751,0.71384693079858308,0.71160746016184151,0.70936073599075078,0.70710678118654757,0.70484561872417173,0.70257727165203199,0.70030176309177106,0.69801911623802981,0.69572935435821082,0.69343250079224172,0.69112857895233659,0.68881761232275762,0.68649962445957569,0.68417463899043041,0.68184267961428935,0.67950377010120566,0.67715793429207716,0.67480519609840206,0.67244557950203587,0.6700791085549469,0.66770580737897089,0.66532570016556547,0.66293881117556286,0.66054516473892366,0.65814478525448783,0.65573769718972663,0.65332392508049297,0.65090349353077126,0.64847642721242693,0.64604275086495444,0.64360248929522557,0.64115566737723628,0.63870231005185329,0.6362424423265598,0.63377608927520079,0.63130327603772707,0.62882402781993929,0.62633836989323066,0.62384632759433012,0.62134792632504321,0.61884319155199363,0.61633214880636378,0.61381482368363383,0.61129124184332162,0.60876142900872066,0.60622541096663807,0.60368321356713162,0.60113486272324623,0.59858038441075012,0.59601980466786986,0.5934531495950246,0.59088044535456063,0.58830171817048438,0.58571699432819491,0.58312630017421663,0.58052966211593005,0.57792710662130298,0.57531866021862066,0.5727043494962154,0.57008420110219526,0.56745824174417314,0.56482649818899355,0.56218899726246052,0.55954576584906413,0.55689683089170583,0.55424221939142471,0.55158195840712165,0.54891607505528339,0.5462445965097068,0.54356755000122126,0.5408849628174115,0.5381968623023391,0.53550327585626412,0.53280423093536566,0.53009975505146201,0.52738987577172958,0.52467462071842319,0.52195401756859361,0.51922809405380577,0.51649687795985555,0.51376039712648758,0.51101867944711044,0.50827175286851289,0.50551964539057892,0.50276238506600213,0.50000000000000011,0.49723251835002774,0.49445996832549033,0.49168237818745586,0.488899776248367,0.48611219087175273,0.48331965047193892,0.4805221835137588,0.47771981851226297,0.47491258403242848,0.47210050868886777,0.46928362114553712,0.46646195011544433,0.46363552436035615,0.46080437269050489,0.45796852396429499,0.45512800708800882,0.45228285101551186,0.44943308474795785,0.44657873733349313,0.44371983786695984,0.44085641548960058,0.43798849938876055,0.43511611879759016,0.43223930299474717,0.42935808130409819,0.42647248309441982,0.42358253777909921,0.42068827481583426,0.41778972370633349,0.41488691399601507,0.41197987527370594,0.40906863717134001,0.40615322936365605,0.40323368156789563,0.40031002354349965,0.39738228509180534,0.39445049605574245,0.39151468631952902,0.38857488580836663,0.38563112448813575,0.38268343236508984,0.37973183948554967,0.37677637593559721,0.37381707184076884,0.37085395736574805,0.36788706271405841,0.36491641812775533,0.36194205388711792,0.3589640003103407,0.35598228775322349,0.35299694660886327,0.35000800730734377,0.34701550031542522,0.34401945613623391,0.34101990530895138,0.33801687840850292,0.33501040604524607,0.33200051886465853,0.3289872475470258,0.32597062280712852,0.32295067539392924,0.31992743609025914,0.31690093571250416,0.31387120511029087,0.31083827516617218,0.30780217679531235,0.30476294094517192,0.3017205985951924,0.2986751807564802,0.29562671847149086,0.29257524281371239,0.28952078488734867,0.28646337582700226,0.28340304679735723,0.28033982899286125,0.27727375363740792,0.27420485198401823,0.27113315531452215,0.26805869493923984,0.26498150219666189,0.26190160845313087,0.25881904510252096,0.25573384356591805,0.25264603529129964,0.2495556517532139,0.24646272445245931,0.24336728491576329,0.24026936469546087,0.2371689953691731,0.2340662085394852,0.23096103583362446,0.22785350890313771,0.22474365942356883,0.22163151909413586,0.21851711963740783,0.21540049279898141,0.21228167034715742,0.20916068407261684,0.20603756578809693,0.20291234732806684,0.19978506054840323,0.19665573732606542,0.19352440955877054,0.19039110916466842,0.18725586808201616,0.18411871826885268,0.18097969170267289,0.17783882038010171,0.17469613631656825,0.1715516715459785,0.16840545812039018,0.16525752810968514,0.1621079136012426,0.15895664669961224,0.15580375952618677,0.15264928421887466,0.14949325293177251,0.14633569783483721,0.14317665111355821,0.14001614496862919,0.13685421161562011,0.13369088328464865,0.13052619222005171,0.12736017068005684,0.1241928509364533,0.1210242652742631,0.11785444599141209,0.11468342539840053,0.11151123581797387,0.10833790958479325,0.10516347904510591,0.10198797655641542,0.098811434487151975,0.095633885216342335,0.092455361133279873,0.089275894637194375,0.086095518136921775,0.08291426405057388,0.079732164805208047,0.076549252836495885,0.073365560588393816,0.070181120512811598,0.066995965069281752,0.063810126724628602,0.060623637952637428,0.057436531233723429,0.054248839054600644,0.051060593907950785,0.047871828292092078,0.04468257471064796,0.041492865672215794,0.038302733690035493,0.035112211281658104,0.03192133096861436,0.028730125276083159,0.02553862673256006,0.022346867869525704,0.019154881221114209,0.015962699323781544,0.012770354715973884,0.0095778799377959425,0.006385307530679279,0.0031926700370506034,6.123233995736766e-17,0.99999845640057161,0.99999382560705186,0.99998610763373685,0.99997530250445366,0.99996141025255969,0.99994443092094321,0.99992436456202283,0.99990121123774722,0.99987497101959544,0.99984564398857612,0.99981323023522783,0.9997777298596181,0.99973914297134381,0.99969746968953022,0.99965271014283097,0.99960486446942798,0.99955393281703009,0.99949991534287352,0.99944281221372089,0.99938262360586116,0.99931934970510816,0.99925299070680129,0.9991835468158039,0.99911101824650306,0.99903540522280887,0.99895670797815384,0.99887492675549194,0.99879006180729812,0.99870211339556736,0.9986110817918139,0.99851696727707029,0.99841977014188688,0.99831949068633041,0.99821612921998371,0.99810968606194406,0.99800016154082261,0.99788755599474332,0.99777186977134213,0.99765310322776524,0.99753125673066856,0.99740633065621642,0.99727832539008066,0.99714724132743882,0.99701307887297363,0.99687583844087102,0.99673552045481972,0.99659212534800912,0.99644565356312842,0.99629610555236525,0.99614348177740408,0.99598778270942467,0.99582900882910119,0.9956671606266001,0.99550223860157894,0.99533424326318498,0.99516317513005303,0.99498903473030453,0.99481182260154544,0.99463153929086501,0.99444818535483348,0.99426176135950106,0.9940722678803956,0.99387970550252125,0.99368407482035626,0.99348537643785151,0.99328361096842843,0.99307877903497699,0.99287088126985434,0.99265991831488209,0.99244589082134482,0.99222879944998799,0.99200864487101592,0.9917854277640894,0.99155914881832419,0.99132980873228838,0.99109740821400027,0.99086194798092653,0.99062342875997988,0.99038185128751632,0.99013721630933382,0.98988952458066903,0.98963877686619561,0.98938497394002167,0.98912811658568733,0.98886820559616218,0.98860524177384324,0.98833922593055201,0.98807015888753247,0.98779804147544803,0.98752287453437915,0.98724465891382096,0.98696339547268053,0.98667908507927382,0.98639172861132363,0.98610132695595665,0.98580788100970029,0.98551139167848079,0.9852118598776195,0.98490928653183074,0.98460367257521864,0.98429501895127414,0.98398332661287236,0.98366859652226957,0.98335082965110021,0.98303002698037367,0.98270618950047173,0.98237931821114499,0.98204941412151014,0.98171647825004682,0.98138051162459405,0.98104151528234784,0.98069949026985703,0.98035443764302121,0.98000635846708617,0.97965525381664165,0.97930112477561748,0.97894397243728049,0.978583797904231,0.97822060228839935,0.97785438671104263,0.97748515230274113,0.97711290020339492,0.97673763156222027,0.97635934753774611,0.9759780492978104,0.97559373801955673,0.97520641488943038,0.97481608110317475,0.97442273786582811,0.97402638639171901,0.97362702790446343,0.97322466363696036,0.97281929483138829,0.97241092273920149,0.97199954862112559,0.97158517374715447,0.97116779939654563,0.97074742685781679,0.9703240574287415,0.96989769241634549,0.96946833313690217,0.96903598091592913,0.96860063708818367,0.96816230299765871,0.96772097999757878,0.96727666945039581,0.96682937272778458,0.96637909121063925,0.96592582628906831,0.96546957936239064,0.96501035183913142,0.96454814513701725,0.96408296068297206,0.96361479991311272,0.96314366427274489,0.96266955521635766,0.96219247420762022,0.96171242271937629,0.96122940223364051,0.96074341424159304,0.96025446024357541,0.95976254174908604,0.9592676602767749,0.95876981735443956,0.95826901451902025,0.9577652533165949,0.95725853530237437,0.95674886204069798,0.95623623510502853,0.95572065607794732,0.95520212655114911,0.95468064812543796,0.95415622241072129,0.95362885102600559,0.95309853559939128,0.95256527776806743,0.95202907917830704,0.95148994148546184,0.95094786635395701,0.95040285545728631,0.94985491047800685,0.94930403310773359,0.94875022504713458,0.94819348800592551,0.9476338237028642,0.94707123386574577,0.94650572023139679,0.94593728454567039,0.94536592856344059,0.94479165404859689,0.94421446277403898,0.94363435652167094,0.9430513370823963,0.94246540625611197,0.94187656585170287,0.94128481768703642,0.94069016358895696,0.94009260539327988,0.93949214494478606,0.93888878409721654,0.93828252471326612,0.93767336866457796,0.93706131783173818,0.93644637410426923,0.9358285393806246,0.93520781556818311,0.93458420458324265,0.9339577083510141,0.93332832880561611,0.93269606789006854,0.93206092755628633,0.93142290976507414,0.9307820164861198,0.9301382496979882,0.92949161138811565,0.92884210355280283,0.92818972819720991,0.92753448733534916,0.92687638299007957,0.92621541719309997,0.92555159198494341,0.92488490941497004,0.9242153715413618,0.92354298043111505,0.92286773816003498,0.92218964681272864,0.92150870848259891,0.9208249252718379,0.92013829929142033,0.91944883266109712,0.91875652750938885,0.91806138597357911,0.91736341019970824,0.91666260234256614,0.91595896456568604,0.91525249904133765,0.91454320795052058,0.91383109348295744,0.91311615783708722,0.91239840322005838,0.91167783184772233,0.91095444594462593,0.91022824774400546,0.90949923948777922,0.90876742342654049,0.90803280181955115,0.90729537693473417,0.90655515104866669,0.90581212644657327,0.9050663054223187,0.9043176902784007,0.90356628332594302,0.9028120868846885,0.90205510328299154,0.90129533485781088,0.90053278395470293,0.89976745292781379,0.8989993441398727,0.89822845996218403,0.89745480277462064,0.8966783749656162,0.89589917893215765,0.89511721707977809,0.89433249182254926,0.89354500558307415,0.89275476079247928,0.8919617598904076,0.89116600532501045,0.89036749955294048,0.88956624503934378,0.88876224425785233,0.88795549969057652,0.8871460138280971,0.88633378916945804,0.88551882822215844,0.88470113350214463,0.88388070753380288,0.88305755284995124,0.88223167199183206,0.88140306750910369,0.8805717419598329,0.87973769791048706,0.87890093793592594,0.87806146461939405,0.87721928055251241,0.8763743883352707,0.87552679057601923,0.87467648989146085,0.87382348890664274,0.87296779025494864,0.87210939657809061,0.87124831052610041,0.87038453475732191,0.8695180719384028,0.86864892474428612,0.86777709585820195,0.86690258797165953,0.8660254037844386,0.86514554600458116,0.86426301734838329,0.86337782054038614,0.8624899583133685,0.86159943340833756,0.86070624857452083,0.85981040656935748,0.85891191015848989,0.85801076211575522,0.85710696522317664,0.85620052227095489,0.85529143605745972,0.85437970938922081,0.85346534508091987,0.85254834595538131,0.85162871484356373,0.8507064545845513,0.84978156802554483,0.8488540580218531,0.84792392743688383,0.84699117914213518,0.84605581601718649,0.84511784094968989,0.84417725683536082,0.84323406657796962,0.84228827308933207,0.84133987928930076,0.84038888810575585,0.83943530247459652,0.8384791253397309,0.83752035965306815,0.83655900837450858,0.83559507447193471,0.83462856092120219,0.83365947070613067,0.83268780681849408,0.83171357225801235,0.83073677003234114,0.82975740315706326,0.8287754746556788,0.82779098755959657,0.82680394490812392,0.8258143497484578,0.82482220513567517,0.8238275141327237,0.82283027981041257,0.82183050524740231,0.82082819353019565,0.81982334775312837,0.81881597101835923,0.8178060664358604,0.81679363712340824,0.81577868620657323,0.81476121681871083,0.81374123210095139,0.8127187352021904,0.81169372927907935,0.81066621749601508,0.80963620302513095,0.80860368904628654,0.80756867874705762,0.80653117532272689,0.8054911819762739,0.80444870191836471,0.80340373836734258,0.80235629454921786,0.80130637369765778,0.80025397905397699,0.79919911386712694,0.7981417813936863,0.79708198489785043,0.79601972765142215,0.79495501293380055,0.79388784403197199,0.79281822424049886,0.79174615686151029,0.79067164520469135,0.78959469258727322,0.78851530233402289,0.7874334777772326,0.78634922225670989,0.78526253911976729,0.78417343172121168,0.78308190342333406,0.78198795759589945,0.78089159761613613,0.77979282686872542,0.77869164874579111,0.77758806664688884,0.77648208397899632,0.77537370415650186,0.77426293060119433,0.77314976674225255,0.77203421601623479,0.77091628186706807,0.7697959677460372,0.7686732771117748,0.76754821343024993,0.76642078017475812,0.76529098082590996,0.76415881887162074,0.76302429780709946,0.76188742113483832,0.76074819236460156,0.7596066150134152,0.75846269260555521,0.7573164286725379,0.75616782675310767,0.75501689039322706,0.7538636231460657,0.75270802857198871,0.75155011023854656,0.75038987172046323,0.74922731659962583,0.74806244846507297,0.74689527091298458,0.74572578754666963,0.74455400197655597,0.74337991782017865,0.74220353870216871,0.74102486825424274,0.73984391011519057,0.73866066793086493,0.73747514535416969,0.73628734604504886,0.73509727367047506,0.73390493190443828,0.73271032442793482,0.73151345492895548,0.73031432710247424,0.72911294465043741,0.7279093112817514,0.72670343071227161,0.72549530666479145,0.72428494286902989,0.72307234306162083,0.72185751098610074,0.72064045039289804,0.71942116503932085,0.71819965868954527,0.71697593511460467,0.7157499980923766,0.71452185140757274,0.71329149885172616,0.71205894422317972,0.71082419132707475,0.7095872439753389,0.70834810598667475,0.70710678118654757,0.70586327340717381,0.70461758648750938,0.70336972427323752,0.70211969061675705,0.70086748937717036,0.69961312442027157,0.69835659961853502,0.6970979188511025,0.69583708600377192,0.69457410496898475,0.69330897964581484,0.69204171393995562,0.69077231176370835,0.68950077703596979,0.68822711368222056,0.68695132563451289,0.6856734168314581,0.68439339121821474,0.68311125274647622,0.68182700537445939,0.68054065306689093,0.67925219979499651,0.6779616495364873,0.6766690062755486,0.67537427400282746,0.67407745671541974,0.67277855841685819,0.67147758311710015,0.67017453483251532,0.66886941758587271,0.66756223540632875,0.66625299232941471,0.66494169239702461,0.66362833965740187,0.6623129381651276,0.66099549198110785,0.65967600517256075,0.65835448181300482,0.65703092598224522,0.65570534176636208,0.65437773325769744,0.65304810455484275,0.65171645976262638,0.65038280299210038,0.64904713836052863,0.64770946999137313,0.64636980201428251,0.64502813856507812,0.64368448378574161,0.64233884182440271,0.64099121683532567,0.63964161297889677,0.63829003442161159,0.63693648533606184,0.63558096990092272,0.63422349230093988,0.63286405672691681,0.63150266737570127,0.63013932845017284,0.62877404415923011,0.62740681871777704,0.6260376563467106,0.62466656127290698,0.6232935377292097,0.62191858995441529,0.62054172219326098,0.61916293869641126,0.61778224372044499,0.61639964152784232,0.61501513638697092,0.61362873257207362,0.61224043436325459,0.61085024604646654,0.60945817191349727,0.60806421626195639,0.6066683833952623,0.60527067762262843,0.60387110325905058,0.60246966462529317,0.60106636604787589,0.59966121185906041,0.59825420639683724,0.59684535400491212,0.59543465903269244,0.59402212583527392,0.59260775877342786,0.59119156221358626,0.58977354052782971,0.58835369809387317,0.58693203929505233,0.58550856852031086,0.58408329016418603,0.58265620862679557,0.58122732831382384,0.57979665363650867,0.57836418901162723,0.57692993886148269,0.57549390761389052,0.57405609970216454,0.57261651956510395,0.57117517164697873,0.56973206039751667,0.5682871902718889,0.56684056573069719,0.56539219123995887,0.56394207127109419,0.56249021030091173,0.56103661281159523,0.5595812832906889,0.5581242262310846,0.5566654461310071,0.55520494749400062,0.55374273482891512,0.55227881264989165,0.55081318547634917,0.54934585783297007,0.54787683424968681,0.54640611926166727,0.54493371740930086,0.54345963323818514,0.54198387129911096,0.54050643614804883,0.53902733234613498,0.53754656445965709,0.53606413706003975,0.53458005472383152,0.53309432203268936,0.53160694357336558,0.53011792393769352,0.52862726772257262,0.52713497952995525,0.52564106396683163,0.52414552564521621,0.52264836918213331,0.52114959919960258,0.51964922032462491,0.51814723718916844,0.51664365443015359,0.51513847668943957,0.51363170861380902,0.51212335485495486,0.51061342006946531,0.5091019089188088,0.50758882606932132,0.50607417619219008,0.50455796396344077,0.50304019406392197,0.50152087117929101,0.49999999999999989,0.49847758522128061,0.49695363154312988,0.49542814367029619,0.49390112631226352,0.49237258418323837,0.49084252200213441,0.48931094449255752,0.48777785638279231,0.48624326240578636,0.4847071672991366,0.48316957580507425,0.48163049267044966,0.4800899226467189,0.47854787048992764,0.47700434096069766,0.47545933882421176,0.47391286885019845,0.47236493581291822,0.47081554449114832,0.46926469966816758,0.46771240613174264,0.46615866867411204,0.46460349209197238,0.46304688118646331,0.46148884076315183,0.45992937563201891,0.45836849060744311,0.45680619050818716,0.45524248015738233,0.45367736438251294,0.45211084801540291,0.45054293589219996,0.44897363285336023,0.4474029437436346,0.4458308734120523,0.44425742671190732,0.4426826085007427,0.44110642364033498,0.4395288769966807,0.4379499734399796,0.4363697178446212,0.43478811508916893,0.43320517005634462,0.43162088763301476,0.43003527271017383,0.42844833018293066,0.4268600649504925,0.42527048191614969,0.42367958598726124,0.42208738207523949,0.42049387509553415,0.41889906996761855,0.41730297161497282,0.41570558496507021,0.41410691494936114,0.41250696650325747,0.41090574456611856,0.40930325408123464,0.40769949999581256,0.40609448726096048,0.4044882208316713,0.40288070566680928,0.40127194672909344,0.39966194898508223,0.39805071740515918,0.39643825696351626,0.39482457263813964,0.39320966941079399,0.39159355226700621,0.38997622619605177,0.38835769619093746,0.38673796724838744,0.38511704436882727,0.3834949325563678,0.38187163681879094,0.38024716216753368,0.37862151361767188,0.37699469618790626,0.37536671490054541,0.37373757478149139,0.37210728086022404,0.37047583816978436,0.36884325174676086,0.36720952663127204,0.36557466786695236,0.3639386805009362,0.36230156958384147,0.36066334016975554,0.35902399731621792,0.35738354608420625,0.35574199153811986,0.35409933874576371,0.35245559277833377,0.35081075871040096,0.34916484161989469,0.34751784658808882,0.34586977869958396,0.34422064304229377,0.34257044470742809,0.34091918878947691,0.33926688038619612,0.33761352459858979,0.33595912653089632,0.33430369129057169,0.33264722398827329,0.3309897297378453,0.32933121365630225,0.32767168086381271,0.32601113648368479,0.32434958564234884,0.32268703346934285,0.32102348509729633,0.31935894566191336,0.31769342030195863,0.31602691415923978,0.31435943237859282,0.31269098010786578,0.31102156249790225,0.3093511847025267,0.30767985187852726,0.30600756918564082,0.30433434178653684,0.30266017484680058,0.30098507353491855,0.29930904302226186,0.29763208848306943,0.29595421509443398,0.29427542803628381,0.29259573249136861,0.2909151336452428,0.28923363668624874,0.28755124680550237,0.2858679691968754,0.28418380905698076,0.28249877158515591,0.28081286198344613,0.27912608545658985,0.27743844721200189,0.2757499524597567,0.27406060641257368,0.27237041428579967,0.27067938129739405,0.26898751266791215,0.2672948136204884,0.26560128938082189,0.26390694517715824,0.26221178624027508,0.26051581780346544,0.25881904510252074,0.25712147337571584,0.25542310786379252,0.25372395380994239,0.25202401645979233,0.25032330106138656,0.24862181286517196,0.24691955712398111,0.24521653909301558,0.2435127640298311,0.24180823719431968,0.24010296384869487,0.23839694925747473,0.23669019868746519,0.23498271740774507,0.23327451068964819,0.23156558380674858,0.22985594203484361,0.22814559065193693,0.22643453493822363,0.22472278017607314,0.22301033165001238,0.22129719464671094,0.21958337445496295,0.21786887636567237,0.21615370567183598,0.21443786766852632,0.21272136765287697,0.21100421092406435,0.20928640278329302,0.2075679485337785,0.20584885348073031,0.204129122931337,0.20240876219474899,0.20068777658206149,0.19896617140629977,0.19724395198240094,0.19552112362719903,0.19379769165940802,0.19207366139960466,0.19034903817021362,0.18862382729548932,0.18689803410150105,0.18517166391611578,0.18344472206898116,0.18171721389151047,0.17998914471686461,0.17826051987993694,0.17653134471733631,0.17480162456736986,0.17307136477002788,0.17134057066696667,0.16960924760149135,0.16787740091854095,0.16614503596467015,0.16441215808803425,0.1626787726383721,0.1609448849669888,0.15921050042674087,0.15747562437201779,0.15574026215872719,0.15400441914427751,0.15226810068756091,0.15053131214893795,0.1487940588902204,0.14705634627465416,0.14531817966690402,0.14357956443303554,0.14184050594049988,0.14010100955811663,0.13836108065605665,0.13662072460582686,0.13487994678025203,0.13313875255345972,0.13139714730086294,0.129655136399143,0.1279127252262342,0.12616991916130654,0.12442672358474846,0.1226831438781518,0.1209391854242934,0.11919485360712001,0.11745015381173105,0.11570509142436129,0.1139596718323658,0.11221390042420147,0.11046778258941205,0.10872132371861072,0.1069745292034629,0.10522740443667102,0.10347995481195624,0.10173218572404327,0.099984102568643055,0.098235710742435478,0.096487015643054008,0.094738022669068361,0.092988737219967227,0.091239164696143057,0.089489310498873736,0.087739180030307354,0.085988778693444901,0.084238111892122949,0.0824871850309985,0.080736003515530494,0.078984572751964729,0.077232898147316487,0.075480985109353166,0.073728839046578898,0.071976465368217238,0.070223869484193763,0.068471056805120903,0.06671803274227954,0.064964802707603783,0.06321137211366358,0.061457746373647433,0.059703930901347173,0.057949931111139455,0.056195752417970667,0.054441400237339482,0.052686879985279503,0.05093219707834408,0.049177356933587851,0.047422364968551511,0.045667226601244483,0.043911947250127474,0.042156532334097115,0.040400987272468547,0.038645317484958044,0.0368895283916678,0.035133625413067457,0.033377613969978903,0.031621499483558885,0.029865287375281584,0.028108983066923467,0.026352591980544737,0.024596119538474171,0.022839571163291709,0.02108295227781104,0.0193262683050642,0.017569524668284167,0.015812726790887442,0.014055880096458867,0.012298990008733104,0.010542061951579447,0.0087851013489844091,0.0070281136250343063,0.0052711042039000769,0.003514078509818754,0.0017570419670782727,6.123233995736766e-17,0.99999021068409211,0.99996084292803,0.99991189730679408,0.99984337477867258,0.999755276685243,0.9996476047513454,0.99952036108504883,0.99937354817761037,0.99920716890342576,0.9990212265199736,0.99881572466775137,0.99859066737020408,0.99834605903364571,0.99808190444717293,0.99779820878257108,0.99749497759421313,0.99717221681895074,0.99682993277599852,0.99646813216680952,0.99608682207494481,0.99568600996593426,0.99526570368713052,0.99482591146755539,0.99436664191773905,0.99388790402955074,0.99338970717602337,0.99287206111116966,0.99233497596979137,0.99177846226728072,0.99120253089941457,0.99060719314214118,0.98999246065135937,0.98935834546269008,0.98870485999124114,0.98803201703136401,0.98733982975640344,0.98662831171843901,0.98589747684802043,0.98514733945389477,0.98437791422272558,0.98358921621880646,0.98278126088376494,0.98195406403626129,0.98110764187167798,0.98024201096180286,0.9793571882545048,0.9784531910734019,0.97753003711752207,0.97658774446095664,0.97562633155250678,0.97464581721532173,0.97364622064653072,0.9726275614168669,0.97158985947028431,0.97053313512356731,0.96945740906593281,0.96836270235862509,0.96724903643450388,0.96611643309762429,0.96496491452280997,0.96379450325521909,0.96260522220990297,0.96139709467135737,0.96017014429306657,0.95892439509704019,0.95765987147334308,0.95637659817961773,0.95507460034059943,0.95375390344762456,0.95241453335813131,0.95105651629515353,0.94967987884680738,0.94828464796577039,0.94687085096875445,0.94543851553597036,0.94398766971058612,0.94251834189817818,0.94103056086617465,0.93952435574329252,0.93799975601896746,0.93645679154277606,0.93489549252385185,0.93331588953029321,0.93171801348856575,0.93010189568289625,0.92846756775465999,0.92681506170176187,0.92514440987800939,0.92345564499247967,0.92174880010887839,0.92002390864489325,0.91828100437153914,0.91652012141249706,0.91474129424344619,0.91294455769138871,0.91112994693396809,0.90929749749878008,0.90744724526267773,0.90557922645106814,0.90369347763720387,0.90179003574146677,0.89986893803064483,0.89793022211720275,0.89597392595854564,0.89400008785627572,0.89200874645544248,0.88999994074378608,0.8879737100509737,0.8859300940478303,0.88386913274556111,0.88179086649496863,0.87969533598566263,0.87758258224526331,0.87545264663859834,0.87330557086689276,0.87114139696695259,0.86896016731034176,0.86676192460255275,0.86454671188217003,0.86231457252002786,0.86006555021836095,0.85779968900994907,0.85551703325725437,0.85321762765155351,0.85090151721206209,0.84856874728505383,0.84621936354297222,0.84385341198353647,0.84147093892884106,0.83907199102444874,0.83665661523847723,0.83422485886067987,0.83177676950151935,0.82931239509123589,0.82683178387890877,0.82433498443151154,0.82182204563296135,0.81929301668316168,0.81674794709703913,0.8141868867035742,0.81160988564482539,0.80901699437494745,0.80640826365920404,0.8037837445729733,0.80114348850074812,0.79848754713513015,0.79581597247581726,0.79312881682858627,0.7904261328042681,0.78770797331771836,0.78497439158678062,0.78222544113124537,0.7794611757718013,0.77668164962898212,0.77388691712210689,0.77107703296821428,0.76825205218099168,0.76541203006969782,0.76255702223807986,0.75968708458328493,0.75680227329476601,0.75390264485318081,0.7509882560292872,0.74805916388283089,0.74511542576142864,0.74215709929944507,0.73918424241686498,0.73619691331815862,0.73319517049114258,0.73017907270583426,0.72714867901330205,0.72410404874450818,0.72104524150914773,0.71797231719448118,0.71488533596416259,0.71178435825706066,0.70866944478607607,0.70554065653695308,0.70239805476708472,0.69924170100431415,0.69607165704572926,0.69288798495645387,0.68969074706843148,0.68648000597920544,0.68325582455069356,0.68001826590795689,0.67676739343796399,0.67350327078835004,0.67022596186617078,0.6669355308366508,0.66363204212192772,0.66031556039979089,0.65698615060241483,0.65364387791508805,0.65028880777493703,0.64692100586964463,0.64354053813616452,0.64014747075942968,0.63674187017105721,0.63332380304804703,0.62989333631147681,0.62645053712519183,0.62299547289448964,0.61952821126480084,0.61604882012036433,0.61255736758289803,0.60905392201026587,0.60553855199513884,0.60201132636365196,0.59847231417405744,0.59492158471537182,0.59135920750601978,0.58778525229247325,0.58419978904788528,0.58060288797072068,0.57699461948338149,0.5733750542308278,0.56974426307919501,0.56610231711440628,0.56244928764078073,0.55878524617963743,0.55511026446789524,0.55142441445666779,0.54772776830985559,0.54402039840273231,0.54030237732052855,0.53657377785701021,0.5328346730130531,0.52908513599521434,0.52532524021429883,0.52155505928392176,0.51777466701906727,0.51398413743464377,0.51018354474403438,0.50637296335764392,0.50255246788144248,0.4987221331155044,0.49488203405254366,0.49103224587644595,0.48717284396079663,0.48330390386740479,0.47942550134482409,0.47553771232686942,0.47164061293113069,0.46773427945748197,0.46381878838658824,0.45989421637840727,0.45596064027068983,0.45201813707747412,0.44806678398757854,0.44410665836309038,0.44013783773785126,0.43616039981593896,0.43217442247014598,0.42817998374045535,0.4241771618325122,0.42016603511609291,0.41614668212357064,0.41211918154837773,0.40808361224346507,0.40404005321975833,0.39998858364461076,0.39592928284025353,0.39186223028224254,0.38778750559790237,0.38370518856476715,0.37961535910901945,0.37551809730392416,0.37141348336826163,0.3673015976647569,0.36318252069850609,0.35905633311540069,0.35492311570054813,0.35078294937669036,0.34663591520261949,0.34248209437159083,0.33832156820973297,0.33415441817445579,0.32998072585285565,0.32580057296011772,0.32161404133791649,0.31742121295281311,0.31322216989465085,0.30901699437494745,0.30480576872528664,0.30058857539570466,0.29636549695307701,0.29213661607950164,0.28790201557068013,0.28366177833429679,0.27941598738839529,0.27516472585975321,0.27090807698225494,0.26664612409526151,0.2623789506419793,0.25810664016782631,0.25382927631879626,0.24954694283982112,0.24525972357313142,0.24096770245661464,0.23667096352217198,0.23236959089407286,0.22806366878730866,0.22375328150594273,0.21943851344146065,0.21511944907111771,0.21079617295628503,0.20646876974079387,0.20213732414927849,0.19780192098551741,0.19346264513077291,0.18911958154212929,0.18477281525082953,0.18042243136061042,0.17606851504603641,0.17171115155083197,0.16735042618621268,0.16298642432921487,0.15861923142102416,0.15424893296530237,0.14987561452651429,0.14549936172825126,0.14112026025155552,0.13673839583324257,0.13235385426422255,0.1279667213878205,0.12357708309809573,0.11918502533816012,0.11479063409849549,0.11039399541526994,0.10599519536865348,0.10159432008113269,0.097191455715824437,0.092786688474789103,0.088380104597342732,0.083971790358368603,0.07956183206662816,0.075150316063071085,0.07073732871914476,0.066322956435104038,0.061907285638318349,0.057490402781580435,0.053072394341413524,0.048653346816378229,0.044233346725379007,0.039812480605970278,0.035390835012662096,0.030968496515225548,0.026545551696997842,0.022122087153187118,0.017698189489177025,0.01327394531883112,0.0088494412627970753,0.004424763946810773,2.8327694488239898e-16,0.99996884689415633,0.99987538951765731,0.99971963369347794,0.99950158912617382,0.99922126940127565,0.99887869198444357,0.99847387822037881,0.99800685333149342,0.99747764641633874,0.9968862904477932,0.99623282227100673,0.99551728260110595,0.99473971602065692,0.99390017097688776,0.99299869977866961,0.99203535859325775,0.99101020744279211,0.98992331020055713,0.9887747345870026,0.98756455216552375,0.98629283833800274,0.9849596723401105,0.98356513723636996,0.98210931991498041,0.98059231108240408,0.97901420525771454,0.97737510076670719,0.9756750997357736,0.97391430808553781,0.97209283552425696,0.97021079554098633,0.96826830539850717,0.96626548612602181,0.96420246251161168,0.96207936309446285,0.959896320156857,0.95765346971592957,0.95535095151519478,0.95298890901583921,0.9505674893877829,0.94808684350050954,0.94554712591366707,0.94294849486743704,0.94029111227267559,0.93757514370082506,0.93480075837359833,0.93196812915243488,0.92907743252773056,0.92612884860784117,0.92312256110786073,0.92005875733817455,0.91693762819278879,0.91375936813743674,0.9105241751974622,0.90723225094548132,0.90388380048882355,0.90047903245675165,0.89701815898746351,0.89350139571487408,0.88992896175518033,0.88630107969320859,0.88261797556854693,0.87887987886146035,0.87508702247859371,0.87123964273845955,0.86733797935671464,0.86338227543122337,0.85937277742691198,0.85530973516041187,0.85119340178449465,0.84702403377229896,0.8428018909013506,0.83852723623737735,0.83420033611791755,0.82982146013572589,0.82539088112197623,0.82090887512926258,0.81637572141439907,0.81179170242102072,0.80715710376198535,0.80247221420157799,0.79773732563751931,0.79295273308277858,0.7881187346471924,0.78323563151889042,0.77830372794552993,0.77332333121533914,0.76829475163797079,0.76321830252516842,0.75809430017124557,0.75292306383337704,0.74770491571170916,0.74244018092928321,0.73712918751177903,0.73177226636707671,0.72636975126463943,0.72092197881471642,0.7154292884473713,0.70989202239133287,0.70431052565267216,0.69868514599330644,0.69301623390933176,0.68730414260918427,0.68154922799163375,0.67575184862360871,0.66991236571785517,0.66403114311043121,0.65810854723803769,0.65214494711518667,0.64614071431120967,0.64009622292710722,0.63401184957223866,0.62788797334085844,0.62172497578849528,0.61552324090817911,0.60928315510651665,0.60300510717961453,0.59668948828885593,0.59033669193652838,0.58394711394130627,0.57752115241358859,0.57105920773069474,0.56456168251191807,0.55802898159344017,0.55146151200310756,0.54485968293507037,0.53822390572428869,0.53155459382090142,0.52485216276446822,0.51811703015807742,0.51134961564232662,0.50455034086917749,0.4977196294756831,0.49085790705759363,0.48396560114283876,0.47704314116488955,0.47009095843600313,0.4631094861203478,0.45609915920701588,0.44906041448292017,0.44199369050557907,0.43489942757579308,0.4277780677102096,0.42063005461378417,0.41345583365213412,0.40625585182378898,0.39903055773234103,0.39178040155849314,0.38450583503201097,0.37720731140357605,0.36988528541654681,0.36254021327862451,0.3551725526334284,0.34778276253198248,0.34037130340411287,0.33293863702976106,0.32548522651021178,0.31801153623923822,0.31051803187416893,0.30300518030687273,0.29547344963466998,0.28792330913116654,0.28035522921701439,0.27276968143060321,0.26516713839867867,0.25754807380689659,0.24991296237030841,0.24226227980378318,0.23459650279236882,0.22691610896159015,0.21922157684769125,0.21151338586781906,0.20379201629015206,0.19605794920397812,0.18831166648971787,0.18055365078890231,0.17278438547409958,0.16500435461879923,0.15721404296725086,0.14941393590426094,0.14160451942495175,0.13378628010447915,0.1259597050677175,0.11812528195890805,0.11028349891127502,0.10243484451661342,0.094579807794844983,0.086718878163550728,0.078852545407476549,0.070981299648015903,0.063105631312673757,0.055226031104508168,0.047342989971557919,0.039456999076252823,0.031568549764810501,0.0236781335366241,0.015786242013636979,0.0078933669097132116,6.123233995736766e-17,0.99999816969565092,0.99999267878930354,0.99998352730105788,0.99997071526441417,0.9999542427262722,0.99993410974693131,0.99991031640009065,0.99988286277284832,0.99985174896570128,0.99981697509254497,0.99977854128067289,0.9997364476707763,0.99969069441694347,0.999641281686659,0.99958820966080364,0.99953147853365332,0.99947108851287847,0.99940703981954337,0.99933933268810515,0.99926796736641321,0.99919294411570803,0.99911426321062036,0.99903192493917026,0.99894592960276585,0.99885627751620243,0.99876296900766115,0.99866600441870812,0.99856538410429263,0.99846110843274627,0.99835317778578148,0.9982415925584901,0.99812635315934206,0.9980074600101837,0.99788491354623632,0.99775871421609452,0.99762886248172467,0.99749535881846318,0.99735820371501471,0.99721739767345052,0.9970729412092062,0.99692483485108052,0.99677307914123292,0.99661767463518158,0.99645862190180168,0.99629592152332291,0.99612957409532776,0.99595958022674913,0.99578594053986791,0.9956086556703112,0.99542772626704945,0.99524315299239452,0.99505493652199672,0.99486307754484304,0.99466757676325424,0.99446843489288195,0.99426565266270672,0.994059230815035,0.99384917010549645,0.99363547130304097,0.99341813518993627,0.99319716256176493,0.99297255422742126,0.99274431100910832,0.99251243374233544,0.99227692327591444,0.99203778047195701,0.99179500620587147,0.99154860136635914,0.99129856685541196,0.99104490358830843,0.99078761249361036,0.99052669451315989,0.99026215060207567,0.98999398172874931,0.98972218887484231,0.98944677303528172,0.9891677352182574,0.98888507644521739,0.98859879775086501,0.98830890018315443,0.98801538480328732,0.98771825268570856,0.98741750491810254,0.98711314260138927,0.98680516684971997,0.98649357879047339,0.98617837956425158,0.98585957032487548,0.98553715223938088,0.98521112648801434,0.98488149426422866,0.98454825677467828,0.98421141523921518,0.9838709708908846,0.98352692497591998,0.98317927875373878,0.98282803349693793,0.98247319049128867,0.98211475103573254,0.98175271644237605,0.98138708803648611,0.98101786715648542,0.98064505515394707,0.98026865339358993,0.9798886632532734,0.97950508612399301,0.97911792340987425,0.97872717652816843,0.97833284690924693,0.97793493599659631,0.97753344524681263,0.97712837612959647,0.97671973012774727,0.97630750873715821,0.97589171346681047,0.97547234583876785,0.97504940738817114,0.97462289966323257,0.97419282422522979,0.97375918264850103,0.97332197652043817,0.97288120744148188,0.97243687702511517,0.97198898689785795,0.97153753869926074,0.9710825340818986,0.97062397471136541,0.97016186226626777,0.9696961984382183,0.96922698493183013,0.96875422346471041,0.9682779157674537,0.96779806358363629,0.96731466866980909,0.96682773279549172,0.96633725774316614,0.96584324530826926,0.96534569729918751,0.96484461553724932,0.96434000185671909,0.96383185810478988,0.96332018614157733,0.96280498784011215,0.96228626508633375,0.9617640197790831,0.96123825383009598,0.96070896916399584,0.96017616771828662,0.95963985144334596,0.95910002230241798,0.95855668227160573,0.95800983333986467,0.95745947750899463,0.95690561679363295,0.95634825322124706,0.95578738883212688,0.95522302567937734,0.9546551658289113,0.95408381135944142,0.95350896436247268,0.95293062694229513,0.95234880121597587,0.95176348931335097,0.95117469337701843,0.95058241556232981,0.94998665803738225,0.94938742298301104,0.9487847125927813,0.94817852907297984,0.94756887464260742,0.94695575153337019,0.94633916198967205,0.94571910826860595,0.94509559263994602,0.94446861738613908,0.94383818480229598,0.94320429719618393,0.94256695688821723,0.94192616621144953,0.94128192751156459,0.94063424314686828,0.93998311548827962,0.93932854691932222,0.93867053983611548,0.93800909664736576,0.93734421977435778,0.93667591165094566,0.9360041747235438,0.93532901145111835,0.93465042430517797,0.93396841576976442,0.93328298834144419,0.9325941445292989,0.93190188685491626,0.93120621785238056,0.93050714006826407,0.92980465606161666,0.92909876840395766,0.92838947967926555,0.92767679248396873,0.92696070942693609,0.9262412331294676,0.92551836622528438,0.92479211136051942,0.92406247119370744,0.9233294483957758,0.92259304565003386,0.92185326565216408,0.92111011111021157,0.92036358474457425,0.91961368928799303,0.91886042748554175,0.91810380209461717,0.91734381588492864,0.91658047163848844,0.91581377214960114,0.91504372022485347,0.91427031868310427,0.91349357035547385,0.91271347808533398,0.91193004472829731,0.91114327315220667,0.91035316623712492,0.90955972687532427,0.90876295797127593,0.90796286244163904,0.90715944321524999,0.90635270323311257,0.90554264544838592,0.90472927282637472,0.90391258834451782,0.90309259499237748,0.90226929577162862,0.90144269369604757,0.90061279179150089,0.8997795930959348,0.89894310065936378,0.89810331754385919,0.89726024682353844,0.89641389158455353,0.89556425492507985,0.89471133995530472,0.8938551497974162,0.89299568758559122,0.89213295646598489,0.89126695959671798,0.89039770014786634,0.88952518130144864,0.88864940625141486,0.88777037820363491,0.8868881003758865,0.88600257599784338,0.8851138083110639,0.8842218005689787,0.88332655603687915,0.88242807799190526,0.88152636972303333,0.88062143453106478,0.87971327572861302,0.87880189664009223,0.8778873006017045,0.87696949096142796,0.87604847107900485,0.87512424432592839,0.87419681408543104,0.873266183752472,0.872332356733725,0.87139533644756495,0.87045512632405675,0.86951172980494174,0.86856515034362525,0.86761539140516453,0.86666245646625517,0.86570634901521915,0.8647470725519919,0.86378463058810906,0.86281902664669397,0.86185026426244493,0.86087834698162202,0.85990327836203395,0.85892506197302543,0.85794370139546383,0.85695920022172634,0.85597156205568647,0.85498079051270104,0.85398688921959698,0.85298986181465808,0.85198971194761153,0.85098644327961448,0.84998005948324107,0.84897056424246864,0.84795796125266409,0.8469422542205709,0.84592344686429488,0.84490154291329123,0.84387654610835039,0.84284846020158477,0.84181728895641417,0.84078303614755345,0.83974570556099715,0.83870530099400675,0.83766182625509633,0.8366152851640184,0.83556568155175048,0.83451301926048072,0.83345730214359393,0.83239853406565723,0.83133671890240635,0.83027186054073088,0.82920396287866105,0.82813302982535186,0.82705906530107043,0.82598207323718065,0.82490205757612889,0.82381902227143,0.82273297128765233,0.82164390860040359,0.82055183819631616,0.81945676407303247,0.81835869023919039,0.81725762071440844,0.81615355952927149,0.81504651072531531,0.81393647835501248,0.81282346648175718,0.81170747917985031,0.81058852053448471,0.8094665946417301,0.80834170560851826,0.80721385755262764,0.80608305460266871,0.80494930089806849,0.8038126005890559,0.80267295783664561,0.80153037681262418,0.80038486169953338,0.79923641669065593,0.79808504598999952,0.79693075381228184,0.79577354438291481,0.79461342193798934,0.79345039072425982,0.79228445499912836,0.79111561903062944,0.78994388709741403,0.78876926348873455,0.78759175250442803,0.78641135845490173,0.78522808566111624,0.78404193845457026,0.78285292117728456,0.78166103818178612,0.78046629383109223,0.77926869249869446,0.77806823856854257,0.77686493643502874,0.77565879050297126,0.77444980518759832,0.77323798491453222,0.77202333411977264,0.77080585724968098,0.76958555876096357,0.7683624431206556,0.76713651480610501,0.7659077783049556,0.76467623811513075,0.76344189874481738,0.7622047647124488,0.76096484054668867,0.75972213078641415,0.75847663998069947,0.75722837268879895,0.75597733348013074,0.75472352693426004,0.75346695764088178,0.75220763019980463,0.75094554922093326,0.74968071932425273,0.74841314513980994,0.74714283130769821,0.74586978247803937,0.74459400331096703,0.74331549847660938,0.74203427265507249,0.7407503305364227,0.73946367682066971,0.73817431621774943,0.73688225344750624,0.73558749323967643,0.73429004033387058,0.73298989947955617,0.73168707543603984,0.73038157297245077,0.72907339686772255,0.72776255191057626,0.72644904289950207,0.72513287464274256,0.72381405195827475,0.72249257967379243,0.72116846262668854,0.71984170566403738,0.71851231364257717,0.71718029142869177,0.71584564389839334,0.71450837593730421,0.71316849244063918,0.71182599831318738,0.71048089846929463,0.7091331978328449,0.70778290133724286,0.70643001392539573,0.70507454054969498,0.70371648617199811,0.70235585576361081,0.70099265430526869,0.69962688678711882,0.69825855820870164,0.69688767357893255,0.69551423791608391,0.69413825624776615,0.69275973361090981,0.69137867505174677,0.68999508562579193,0.68860897039782509,0.68722033444187147,0.68582918284118388,0.684435520688224,0.68303935308464381,0.68164068514126641,0.68023952197806792,0.67883586872415835,0.67742973051776301,0.67602111250620367,0.67461001984587976,0.67319645770224912,0.6717804312498098,0.67036194567208063,0.66894100616158214,0.66751761791981779,0.66609178615725506,0.66466351609330598,0.66323281295630865,0.66179968198350714,0.6603641284210332,0.65892615752388684,0.65748577455591672,0.65604298478980116,0.65459779350702918,0.65315020599788032,0.65170022756140611,0.65024786350541031,0.64879311914642923,0.6473359998097129,0.64587651082920494,0.64441465754752347,0.64295044531594125,0.64148387949436636,0.6400149654513223,0.63854370856392884,0.63707011421788151,0.63559418780743271,0.63411593473537131,0.63263536041300372,0.63115247026013288,0.62966726970503939,0.62817976418446153,0.62668995914357473,0.62519786003597244,0.62370347232364554,0.62220680147696261,0.62070785297465014,0.61920663230377204,0.61770314495970968,0.61619739644614191,0.61468939227502484,0.61317913796657175,0.61166663904923257,0.6101519010596741,0.60863492954275922,0.6071157300515273,0.60559430814717308,0.60407066939902676,0.60254481938453375,0.60101676368923374,0.59948650790674085,0.59795405763872256,0.59641941849487978,0.59488259609292571,0.59334359605856613,0.59180242402547756,0.59025908563528806,0.58871358653755534,0.58716593238974712,0.58561612885721936,0.58406418161319651,0.58251009633874995,0.58095387872277804,0.57939553446198444,0.57783506926085759,0.57627248883164994,0.57470779889435719,0.57314100517669686,0.57157211341408765,0.57000112934962832,0.56842805873407687,0.56685290732582938,0.56527568089089864,0.56369638520289345,0.56211502604299746,0.56053160919994782,0.55894614047001367,0.55735862565697603,0.55576907057210512,0.55417748103414022,0.55258386286926808,0.55098822191110086,0.54939056400065589,0.54779089498633349,0.5461892207238962,0.54458554707644657,0.54297987991440644,0.54137222511549477,0.53976258856470694,0.5381509761542923,0.53653739378373366,0.53492184735972415,0.53330434279614736,0.53168488601405439,0.53006348294164307,0.5284401395142353,0.52681486167425651,0.52518765537121259,0.52355852656166912,0.5219274812092296,0.52029452528451225,0.51865966476512992,0.51702290563566744,0.51538425388765929,0.51374371551956843,0.51210129653676384,0.51045700295149876,0.50881084078288874,0.50716281605688907,0.50551293480627346,0.50386120307061166,0.50220762689624709,0.50055221233627523,0.49889496545052092,0.49723589230551662,0.49557499897447982,0.49391229153729127,0.49224777608047199,0.49058145869716191,0.48891334548709686,0.48724344255658669,0.48557175601849245,0.48389829199220452,0.48222305660361986,0.4805460559851199,0.47886729627554725,0.47718678362018457,0.47550452417073102,0.4738205240852803,0.47213478952829763,0.47044732667059769,0.46875814168932167,0.46706724076791478,0.46537463009610386,0.46368031586987385,0.46198430429144632,0.4602866015692561,0.45858721391792845,0.45688614755825663,0.45518340871717894,0.45347900362775595,0.45177293852914807,0.45006521966659152,0.44835585329137706,0.44664484566082613,0.44493220303826819,0.4432179316930176,0.44150203790035103,0.43978452794148426,0.4380654081035491,0.43634468467957088,0.43462236396844423,0.43289845227491158,0.43117295590953908,0.42944588118869376,0.42771723443452025,0.425987021974918,0.42425525014351778,0.42252192527965859,0.42078705372836467,0.41905064184032159,0.417312695971854,0.41557322248490158,0.41383222774699618,0.41208971813123829,0.41034570001627374,0.40860017978627039,0.40685316383089504,0.40510465854528899,0.40335467033004624,0.40160320559118873,0.39985027074014357,0.39809587219371939,0.39634001637408267,0.39458270970873455,0.39282395863048708,0.39106376957743999,0.38930214899295618,0.38753910332563951,0.38577463902931031,0.38400876256298189,0.382241480390837,0.38047279898220415,0.37870272481153394,0.37693126435837537,0.37515842410735167,0.37338421054813747,0.37160863017543433,0.36983168948894718,0.36805339499336065,0.36627375319831496,0.36449277061838237,0.36271045377304317,0.36092680918666215,0.35914184338846378,0.35735556291250958,0.35556797429767345,0.35377908408761777,0.35198889883076956,0.35019742508029666,0.34840466939408338,0.34661063833470701,0.34481533846941281,0.34301877637009132,0.34122095861325336,0.33942189178000631,0.3376215824560298,0.33582003723155185,0.33401726270132454,0.3322132654646,0.33040805212510643,0.3286016292910231,0.3267940035749573,0.32498518159391948,0.32317516996929913,0.32136397532684047,0.31955160429661844,0.3177380635130142,0.31592335961469109,0.3141074992445696,0.31229048904980411,0.31047233568175808,0.30865304579597946,0.30683262605217665,0.30501108311419406,0.30318842364998749,0.30136465433160009,0.29953978183513791,0.29771381284074466,0.29588675403257858,0.29405861209878692,0.29222939373148205,0.29039910562671656,0.28856775448445909,0.28673534700856945,0.28490188990677473,0.28306738989064339,0.28123185367556247,0.27939528798071173,0.27755769952903958,0.27571909504723824,0.27387948126571926,0.27203886491858892,0.27019725274362338,0.26835465148224447,0.26651106787949386,0.26466650868400998,0.26282098064800224,0.26097449052722671,0.25912704508096107,0.25727865107198034,0.25542931526653151,0.25357904443430973,0.2517278453484319,0.24987572478541387,0.24802268952514414,0.24616874635085981,0.24431390204912132,0.2424581634097879,0.24060153722599251,0.23874403029411717,0.23688564941376805,0.23502640138774999,0.2331662930220427,0.23130533112577503,0.22944352251120029,0.22758087399367127,0.22571739239161534,0.22385308452650948,0.22198795722285528,0.22012201730815417,0.21825527161288161,0.21638772697046332,0.2145193902172495,0.21265026819248989,0.21078036773830885,0.20890969569968026,0.20703825892440242,0.20516606426307332,0.20329311856906454,0.20141942869849766,0.19954500151021809,0.19766984386577027,0.19579396262937263,0.19391736466789231,0.19204005685082012,0.19016204605024545,0.18828333914083112,0.18640394299978758,0.18452386450684891,0.18264311054424676,0.18076168799668549,0.17887960375131684,0.17699686469771475,0.17511347772785016,0.17322944973606605,0.17134478761905123,0.16945949827581644,0.16757358860766824,0.16568706551818402,0.16379993591318653,0.1619122067007189,0.16002388479101903,0.1581349770964946,0.1562454905316977,0.15435543201329888,0.15246480846006302,0.15057362679282313,0.14868189393445527,0.1467896168098532,0.14489680234590299,0.14300345747145779,0.1411095891173125,0.13921520421617767,0.13732030970265535,0.13542491251321287,0.1335290195861577,0.13163263786161195,0.12973577428148708,0.12783843578945839,0.12594062933093969,0.12404236185305799,0.12214364030462734,0.12024447163612453,0.11834486279966294,0.1164448207489672,0.11454435243934774,0.11264346482767541,0.11074216487235594,0.10884045953330468,0.10693835577192032,0.10503586055106064,0.10313298083501618,0.10122972358948501,0.09932609578154715,0.097422104379639107,0.095517756353528355,0.093613058674287861,0.091708018314270737,0.089802642247083855,0.087896937447563633,0.085990910891749636,0.084084569556859251,0.082177920421262166,0.080270970464454777,0.078363726667034686,0.076456196010675354,0.074548385478099638,0.072640302053055605,0.070731952720290037,0.068823344465523087,0.06691448427542275,0.065005379137579242,0.063096036040479406,0.061186461973481231,0.059276663926788355,0.057366648891423684,0.055456423859205094,0.053545995822718941,0.051635371775294731,0.049724558710979458,0.04781356362451205,0.045902393511297747,0.043991055367382702,0.042079556189427512,0.040167902974682916,0.038256102720963296,0.0363441624266213,0.034432089090522193,0.03251988971201826,0.030607571290923181,0.0286951408274864,0.026782605322367731,0.024869971776610836,0.022957247191618929,0.021044438569128264,0.019131552911182723,0.01721859722010818,0.015305578498486886,0.013392503749131807,0.011479379975061233,0.0095662141794722513,0.0076530133657164339,0.0057397845372733226,0.003826534697725007,0.0019132708507304933,6.123233995736766e-17],"twiddles":[0.99912283009885838,0.041875653729199623,0.99649285924950437,0.083677843332315482,0.99211470131447788,0.12533323356430423,0.98599603707050498,0.16676874671610226,0.97814760073380569,0.20791169081775931,0.96858316112863119,0.24868988716485474,0.95731949753206724,0.28903179694447156,0.94437637023748111,0.32886664673858318,0.92977648588825146,0.36812455268467792,0.91354545764260087,0.40673664307580015,0.8957117602394129,0.44463517918492745,0.87630668004386358,0.48175367410171521,0.85536426016050671,0.51802700937313018,0.83292124071009954,0.55339154924334399,0.80901699437494745,0.58778525229247314,0.78369345732583984,0.6211477802783103,0.75699505565175651,0.65342060399010538,0.72896862742141155,0.68454710592868862,0.69966334051336554,0.71447267963280325,0.66913060635885824,0.74314482547739424,0.63742398974868975,0.77051324277578914,0.60459911486237494,0.79652991802419626,0.57071356768443182,0.82114920913370393,0.53582679497899677,0.84432792550201496,0.50000000000000011,0.8660254037844386,0.46329603511986178,0.88620357923121462,0.42577929156507283,0.90482705246601947,0.3875155864521031,0.92186315158850052,0.34857204732181529,0.93728198949189145,0.30901699437494745,0.95105651629515353,0.26891982061526593,0.9631625667976581,0.22835087011065588,0.97357890287316018,0.18738131458572474,0.98228725072868861,0.14608302856241187,0.98927233296298833,0.10452846326765368,0.99452189536827329,0.062790519529313527,0.99802672842827156,0.020942419883357051,0.9997806834748455,0,0.99649285924950437,0.083677843332315482,0.98599603707050498,0.16676874671610226,0.96858316112863119,0.24868988716485474,0.94437637023748111,0.32886664673858318,0.91354545764260087,0.40673664307580015,0.87630668004386358,0.48175367410171521,0.83292124071009954,0.55339154924334399,0.78369345732583984,0.6211477802783103,0.72896862742141155,0.68454710592868862,0.66913060635885824,0.74314482547739424,0.60459911486237494,0.79652991802419626,0.53582679497899677,0.84432792550201496,0,0.98599603707050498,0.16676874671610226,0.94437637023748111,0.32886664673858318,0.87630668004386358,0.48175367410171521,0.78369345732583984,0.6211477802783103,0.66913060635885824,0.74314482547739424,0.53582679497899677,0.84432792550201496,0.3875155864521031,0.92186315158850052,0.22835087011065588,0.97357890287316018,0.062790519529313527,0.99802672842827156,-0.10452846326765333,0.9945218953682734,-0.26891982061526559,0.96316256679765822,-0.42577929156507233,0.90482705246601969,0,0.96858316112863119,0.24868988716485474,0.87630668004386358,0.48175367410171521,0,0.87630668004386358,0.48175367410171521,0.53582679497899677,0.84432792550201496,0,0.72896862742141155,0.68454710592868862,0.062790519529313527,0.99802672842827156,0,0.53582679497899677,0.84432792550201496,-0.42577929156507233,0.90482705246601969,0,0,0,0,0,0,0.99993329980345125,0.011549716194840827,0.99973320811163724,0.023097891653001097,0.99939975161686856,0.034642985843335132,0.99893297480237242,0.04618345864573959,0.99833293993635963,0.057717770556606103,0.99759972706371691,0.069244382894191644,0.99673343399532999,0.080761758003879316,0.99573417629503447,0.092268359463301988,0.99460208726420063,0.1037626522873018,0.99333731792394997,0.11524310313269766,0.99194003699500977,0.12670818050283381,0.99041043087520519,0.13815635495188219,0.98874870361459388,0.14958609928887107,0.98695507688824569,0.16099588878141291,0.9850297899666709,0.17238420135910418,0.98297309968390179,0.18374951781657034,0.98078528040323043,0.19509032201612825,0.97846662398060902,0.20640510109003971,0.97601743972571564,0.21769234564232842,0.97343805436069286,0.22895054995013409,0.97072881197656213,0.24017821216457649,0.96789007398732263,0.25137383451110268,0.96492221908173792,0.26253592348929061,0.96182564317281904,0.27366299007208283,0.95860075934500966,0.28475354990442325,0.95524799779907998,0.29580612350127039,0.9517678057947383,0.30681923644496184,0.94816064759096585,0.31779141958190166,0.94442700438408522,0.32872120921854614,0.94056737424356762,0.33960714731666136,0.9365822720455913,0.35044778168782581,0.93247222940435581,0.36124166618715292,0.92823779460116518,0.37198736090620749,0.92387953251128674,0.38268343236508978,0.91939802452859654,0.39332845370366265,0.91479386848802102,0.40392100487189492,0.91006767858578586,0.41445967281929702,0.90522008529748199,0.42494305168342189,0.90025173529395963,0.43536974297740805,0.89516329135506234,0.44573835577653825,0.88995543228121166,0.4560475069037892,0.8846288528028553,0.46629582111434803,0.87918426348778966,0.47648193127907046,0.8736223906463696,0.48660447856685629,0.86794397623461828,0.49666211262591825,0.8621497777552507,0.50665349176391938,0.85624056815662153,0.51657728312695472,0.85021713572961422,0.52643216287735572,0.84408028400248214,0.53621681637028984,0.83783083163365824,0.54592993832913439,0.83146961230254524,0.55557023301960218,0.82499747459830231,0.56513641442259188,0.81841528190664348,0.57462720640574383,0.81172391229466123,0.5840413428936766,0.80492425839369219,0.59337756803688224,0.79801722728023949,0.60263463637925641,0.79100374035496901,0.6118113130242433,0.78388473321979368,0.62090637379957125,0.77666115555306348,0.62991860542055766,0.76933397098287892,0.63884680565196139,0.76190415695854186,0.64768978346836192,0.75437270462016393,0.65644635921304251,0.74674061866644759,0.66511536475535671,0.73900891722065909,0.67369564364655721,0.73117863169481079,0.68218605127406717,0.72325080665206987,0.69058545501417146,0.71522649966741347,0.69889273438310939,0.70710678118654757,0.70710678118654746,0.69889273438310939,0.71522649966741336,0.69058545501417146,0.72325080665206998,0.68218605127406717,0.73117863169481079,0.67369564364655721,0.73900891722065909,0.66511536475535671,0.74674061866644759,0.65644635921304251,0.75437270462016393,0.64768978346836192,0.76190415695854186,0.63884680565196128,0.76933397098287892,0.62991860542055755,0.77666115555306348,0.62090637379957125,0.78388473321979357,0.61181131302424341,0.79100374035496901,0.60263463637925641,0.79801722728023949,0.59337756803688224,0.80492425839369208,0.58404134289367671,0.81172391229466112,0.57462720640574383,0.81841528190664348,0.56513641442259188,0.82499747459830231,0.55557023301960229,0.83146961230254524,0.54592993832913439,0.83783083163365835,0.53621681637028984,0.84408028400248214,0.52643216287735584,0.8502171357296141,0.51657728312695472,0.85624056815662153,0.50665349176391938,0.86214977775525059,0.49666211262591831,0.86794397623461828,0.48660447856685624,0.8736223906463696,0.47648193127907051,0.87918426348778966,0.46629582111434803,0.8846288528028553,0.45604750690378915,0.88995543228121166,0.44573835577653831,0.89516329135506234,0.43536974297740805,0.90025173529395963,0.42494305168342178,0.9052200852974821,0.41445967281929708,0.91006767858578586,0.40392100487189497,0.91479386848802102,0.39332845370366276,0.91939802452859642,0.38268343236508984,0.92387953251128674,0.37198736090620743,0.92823779460116518,0.36124166618715303,0.93247222940435581,0.35044778168782587,0.9365822720455913,0.33960714731666136,0.94056737424356762,0.32872120921854625,0.94442700438408511,0.31779141958190166,0.94816064759096585,0.30681923644496178,0.9517678057947383,0.2958061235012705,0.95524799779907998,0.28475354990442325,0.95860075934500966,0.27366299007208278,0.96182564317281904,0.26253592348929067,0.96492221908173781,0.25137383451110268,0.96789007398732263,0.24017821216457641,0.97072881197656213,0.22895054995013414,0.97343805436069286,0.21769234564232839,0.97601743972571564,0.20640510109003962,0.97846662398060902,0.19509032201612833,0.98078528040323043,0.18374951781657031,0.98297309968390179,0.17238420135910429,0.9850297899666709,0.16099588878141294,0.98695507688824569,0.14958609928887104,0.98874870361459388,0.1381563549518823,0.99041043087520519,0.12670818050283383,0.99194003699500977,0.1152431031326976,0.99333731792394997,0.1037626522873019,0.99460208726420063,0.092268359463302016,0.99573417629503447,0.080761758003879247,0.99673343399532999,0.069244382894191728,0.99759972706371691,0.05771777055660611,0.99833293993635963,0.046183458645739521,0.99893297480237242,0.034642985843335208,0.99939975161686856,0.023097891653001093,0.99973320811163724,0.011549716194840744,0.99993329980345125,0,0,0.99973320811163724,0.023097891653001097,0.99893297480237242,0.04618345864573959,0.99759972706371691,0.069244382894191644,0.99573417629503447,0.092268359463301988,0.99333731792394997,0.11524310313269766,0.99041043087520519,0.13815635495188219,0.98695507688824569,0.16099588878141291,0.98297309968390179,0.18374951781657034,0.97846662398060902,0.20640510109003971,0.97343805436069286,0.22895054995013409,0.96789007398732263,0.25137383451110268,0.96182564317281904,0.27366299007208283,0.95524799779907998,0.29580612350127039,0.94816064759096585,0.31779141958190166,0.94056737424356762,0.33960714731666136,0.93247222940435581,0.36124166618715292,0.92387953251128674,0.38268343236508978,0.91479386848802102,0.40392100487189492,0.90522008529748199,0.42494305168342189,0.89516329135506234,0.44573835577653825,0.8846288528028553,0.46629582111434803,0.8736223906463696,0.48660447856685629,0.8621497777552507,0.50665349176391938,0.85021713572961422,0.52643216287735572,0.83783083163365824,0.54592993832913439,0.82499747459830231,0.56513641442259188,0.81172391229466123,0.5840413428936766,0.79801722728023949,0.60263463637925641,0.78388473321979368,0.62090637379957125,0.76933397098287892,0.63884680565196139,0.75437270462016393,0.65644635921304251,0.73900891722065909,0.67369564364655721,0.72325080665206987,0.69058545501417146,0,0,0.99893297480237242,0.04618345864573959,0.99573417629503447,0.092268359463301988,0.99041043087520519,0.13815635495188219,0.98297309968390179,0.18374951781657034,0.97343805436069286,0.22895054995013409,0.96182564317281904,0.27366299007208283,0.94816064759096585,0.31779141958190166,0.93247222940435581,0.36124166618715292,0.91479386848802102,0.40392100487189492,0.89516329135506234,0.44573835577653825,0.8736223906463696,0.48660447856685629,0.85021713572961422,0.52643216287735572,0.82499747459830231,0.56513641442259188,0.79801722728023949,0.60263463637925641,0.76933397098287892,0.63884680565196139,0.73900891722065909,0.67369564364655721,0.70710678118654757,0.70710678118654746,0.67369564364655721,0.73900891722065909,0.63884680565196128,0.76933397098287892,0.60263463637925641,0.79801722728023949,0.56513641442259188,0.82499747459830231,0.52643216287735584,0.8502171357296141,0.48660447856685624,0.8736223906463696,0.44573835577653831,0.89516329135506234,0.40392100487189497,0.91479386848802102,0.36124166618715303,0.93247222940435581,0.31779141958190166,0.94816064759096585,0.27366299007208278,0.96182564317281904,0.22895054995013414,0.97343805436069286,0.18374951781657031,0.98297309968390179,0.1381563549518823,0.99041043087520519,0.092268359463302016,0.99573417629503447,0.046183458645739521,0.99893297480237242,0,0,0.99759972706371691,0.069244382894191644,0.99041043087520519,0.13815635495188219,0.97846662398060902,0.20640510109003971,0.96182564317281904,0.27366299007208283,0.94056737424356762,0.33960714731666136,0.91479386848802102,0.40392100487189492,0.88462885280285541,0.46629582111434797,0.85021713572961422,0.52643216287735572,0.81172391229466123,0.5840413428936766,0.76933397098287892,0.63884680565196139,0.72325080665206998,0.69058545501417135,0.67369564364655721,0.73900891722065909,0.62090637379957125,0.78388473321979357,0.56513641442259199,0.82499747459830219,0.50665349176391938,0.86214977775525059,0.44573835577653831,0.89516329135506234,0.38268343236508984,0.92387953251128674,0.31779141958190166,0.94816064759096585,0.25137383451110268,0.96789007398732263,0.18374951781657031,0.98297309968390179,0.11524310313269782,0.99333731792394997,0.046183458645739743,0.99893297480237242,-0.023097891653000972,0.99973320811163724,-0.092268359463301891,0.99573417629503458,-0.16099588878141283,0.98695507688824569,-0.22895054995013403,0.97343805436069286,-0.29580612350127039,0.95524799779907998,-0.36124166618715275,0.93247222940435592,-0.42494305168342167,0.9052200852974821,-0.48660447856685612,0.8736223906463696,-0.54592993832913428,0.83783083163365835,-0.60263463637925629,0.7980172272802396,-0.65644635921304251,0.75437270462016404,0,0,0.99573417629503447,0.092268359463301988,0.98297309968390179,0.18374951781657034,0.96182564317281904,0.27366299007208283,0.93247222940435581,0.36124166618715292,0.89516329135506234,0.44573835577653825,0.85021713572961422,0.52643216287735572,0.79801722728023949,0.60263463637925641,0.73900891722065909,0.67369564364655721,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.96182564317281904,0.27366299007208283,0.85021713572961422,0.52643216287735572,0.67369564364655721,0.73900891722065909,0.44573835577653831,0.89516329135506234,0.18374951781657031,0.98297309968390179,-0.092268359463301891,0.99573417629503458,-0.36124166618715275,0.93247222940435592,-0.60263463637925629,0.7980172272802396,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99997647459596672,0.0068593188161695648,0.99990589949075626,0.013718314895846044,0.99978827800498438,0.02057666551772136,0.99962361567283686,0.027434047990856757,0.99941192024180958,0.034290139669865646,0.99915320167234367,0.04114461797009436,0.99884747213735681,0.04799716038279999,0.99849474602167076,0.054847444490324714,0.99809503992133419,0.061695147981265783,0.99764837264284223,0.06853994866564056,0.9971547652022511,0.075381524490045773,0.99661424082418992,0.082219553552810451,0.99602682494076744,0.089053714119141592,0.99539254519037557,0.095883684636262123,0.99471143141638907,0.10270914374854011,0.99398351566576149,0.10952977031260892,0.9932088321875171,0.11634524341247718,0.99238741743113945,0.12315524237462819,0.99151931004485661,0.12995944678310783,0.99060455087382271,0.13675753649460048,0.98964318295819587,0.14354919165349186,0.98863525153111331,0.15033409270691866,0.98758080401656312,0.15711192041980368,0.98647989002715308,0.16388235588987601,0.98533256136177594,0.17064508056267594,0.9841388720031724,0.1773997762465428,0.98289887811539156,0.18414612512758644,0.98161263804114762,0.19088380978464053,0.98028021229907569,0.1976125132041974,0.97890166358088349,0.204331918795324,0.97747705674840213,0.21104171040455749,0.97600645883053427,0.21774157233078073,0.97448993902010039,0.22443118934007614,0.97292756867058283,0.23111024668055774,0.97131942129276927,0.23777843009718061,0.96966557255129315,0.24443542584652658,0.96796610026107432,0.2510809207115664,0.96622108438365717,0.25771460201639668,0.96443060702344885,0.26433615764095159,0.96259475242385606,0.2709452760356883,0.96071360696332109,0.27754164623624566,0.95878725915125818,0.28412495787807551,0.95681579962388819,0.29069490121104541,0.95479932113997512,0.2972511671140125,0.95273791857646117,0.30379344710936812,0.95063168892400252,0.31032143337755197,0.94848073128240651,0.31683481877153502,0.94628514685596798,0.32333329683127132,0.94404503894870873,0.32981656179811691,0.94176051295951568,0.33628430862921616,0.93943167637718283,0.34273623301185435,0.93705863877535311,0.34917203137777558,0.93464151180736332,0.35559140091746633,0.93218040920099055,0.36199403959440246,0.9296754467531011,0.36837964615926039,0.92712674232420234,0.37474792016409125,0.92453441583289719,0.38109856197645714,0.92189858925024182,0.38743127279352907,0.91921938659400682,0.39374575465614586,0.91649693392284226,0.40004171046283332,0.9137313593303461,0.40631884398378321,0.91092279293903777,0.41257685987479098,0.90807136689423551,0.41881546369115213,0.90517721535783879,0.42503436190151589,0.90224047450201605,0.43123326190169614,0.8992612825027978,0.43741187202843879,0.89623977953357481,0.44356990157314458,0.89317610775850353,0.4497070607955474,0.89007041132581644,0.45582306093734659,0.88692283636104041,0.46191761423579331,0.88373353096012097,0.46799043393723011,0.88050264518245436,0.47404123431058276,0.8772303310438273,0.48006973066080427,0.87391674250926421,0.48607563934226988,0.87056203548578315,0.49205867777212303,0.86716636781506051,0.4980185644435709,0.86372989926600408,0.50395501893912953,0.86025279152723599,0.509867761943818,0.85673520819948512,0.51575651525829991,0.85317731478788938,0.52162100181197335,0.84957927869420891,0.5274609456760071,0.8459412692089493,0.53327607207632333,0.8422634575033966,0.53906610740652583,0.83854601662156358,0.54483077924077339,0.83478912147204754,0.55056981634659841,0.83099294881980112,0.55628294869766715,0.82715767727781508,0.56196990748648612,0.82328348729871481,0.56763042513704887,0.81937056116626938,0.57326423531742576,0.81541908298681509,0.57887107295229523,0.81142923868059347,0.58445067423541608,0.80740121597300307,0.59000277664203915,0.80333520438576733,0.59552711894125976,0.79923139522801712,0.60102344120830853,0.79508998158728916,0.60649148483678172,0.79091115832044201,0.61193099255080774,0.78669512204448699,0.61734170841715341,0.78244207112733788,0.62272337785726495,0.77815220567847698,0.62807574765924634,0.77382572753954015,0.6333985659897734,0.76946284027482004,0.63869158240594248,0.76506374916168773,0.64395454786705408,0.76062866118093508,0.64918721474633045,0.75615778500703545,0.6543893368425665,0.75165133099832526,0.6595606693917142,0.74710951118710744,0.66470096907839804,0.74253253926967411,0.66980999404736408,0.73792063059625235,0.6748875039148593,0.73327400216087224,0.67993325977994123,0.72859287259115635,0.6849470242357194,0.72387746213803339,0.68992856138052439,0.71912799266537586,0.69487763682900838,0.71434468763956005,0.69979401772317218,0.7095277721189529,0.70467747274332193,0,0.99990589949075626,0.013718314895846044,0.99962361567283686,0.027434047990856757,0.99915320167234367,0.04114461797009436,0.99849474602167076,0.054847444490324714,0.99764837264284223,0.06853994866564056,0.99661424082418992,0.082219553552810451,0.99539254519037557,0.095883684636262123,0.99398351566576149,0.10952977031260892,0.99238741743113945,0.12315524237462819,0.99060455087382271,0.13675753649460048,0.98863525153111331,0.15033409270691866,0.98647989002715308,0.16388235588987601,0.9841388720031724,0.1773997762465428,0.98161263804114762,0.19088380978464053,0.97890166358088349,0.204331918795324,0.97600645883053427,0.21774157233078073,0.97292756867058283,0.23111024668055774,0.96966557255129315,0.24443542584652658,0.96622108438365717,0.25771460201639668,0.96259475242385606,0.2709452760356883,0.95878725915125818,0.28412495787807551,0.95479932113997512,0.2972511671140125,0.95063168892400252,0.31032143337755197,0.94628514685596798,0.32333329683127132,0.94176051295951568,0.33628430862921616,0.93705863877535311,0.34917203137777558,0.93218040920099055,0.36199403959440246,0.92712674232420234,0.37474792016409125,0.92189858925024182,0.38743127279352907,0.91649693392284226,0.40004171046283332,0.91092279293903777,0.41257685987479098,0.90517721535783879,0.42503436190151589,0.8992612825027978,0.43741187202843879,0.89317610775850353,0.4497070607955474,0.88692283636104041,0.46191761423579331,0.88050264518245436,0.47404123431058276,0.87391674250926421,0.48607563934226988,0.86716636781506051,0.4980185644435709,0.86025279152723599,0.509867761943818,0.85317731478788938,0.52162100181197335,0.8459412692089493,0.53327607207632333,0.83854601662156358,0.54483077924077339,0.83099294881980112,0.55628294869766715,0.82328348729871481,0.56763042513704887,0.81541908298681509,0.57887107295229523,0.80740121597300307,0.59000277664203915,0.79923139522801712,0.60102344120830853,0.79091115832044201,0.61193099255080774,0.78244207112733788,0.62272337785726495,0.77382572753954015,0.6333985659897734,0.76506374916168773,0.64395454786705408,0.75615778500703545,0.6543893368425665,0.74710951118710744,0.66470096907839804,0.73792063059625235,0.6748875039148593,0.72859287259115635,0.6849470242357194,0.71912799266537586,0.69487763682900838,0.7095277721189529,0.70467747274332193,0.69979401772317207,0.71434468763956005,0.68992856138052439,0.72387746213803339,0.67993325977994123,0.73327400216087224,0.66980999404736408,0.74253253926967411,0.6595606693917142,0.75165133099832526,0.64918721474633045,0.76062866118093519,0.63869158240594248,0.76946284027482004,0.62807574765924623,0.77815220567847698,0.61734170841715341,0.78669512204448699,0.60649148483678172,0.79508998158728916,0.59552711894125976,0.80333520438576744,0.58445067423541608,0.81142923868059347,0.57326423531742565,0.81937056116626938,0.56196990748648612,0.8271576772778152,0.55056981634659841,0.83478912147204754,0.53906610740652561,0.84226345750339671,0.52746094567600721,0.84957927869420891,0.51575651525830002,0.85673520819948501,0.50395501893912964,0.86372989926600408,0.49205867777212309,0.87056203548578315,0.48006973066080427,0.8772303310438273,0.46799043393723005,0.88373353096012097,0.45582306093734654,0.89007041132581644,0.44356990157314452,0.89623977953357492,0.43123326190169603,0.90224047450201617,0.41881546369115202,0.90807136689423551,0.40631884398378326,0.9137313593303461,0.39374575465614592,0.91921938659400682,0.3810985619764572,0.92453441583289719,0.36837964615926039,0.9296754467531011,0.35559140091746633,0.93464151180736332,0.3427362330118543,0.93943167637718283,0.32981656179811686,0.94404503894870873,0.31683481877153497,0.94848073128240651,0.30379344710936806,0.95273791857646117,0.2906949012110453,0.95681579962388819,0.27754164623624578,0.96071360696332109,0.26433615764095164,0.96443060702344885,0.25108092071156646,0.96796610026107421,0.23777843009718061,0.97131942129276927,0.22443118934007611,0.97448993902010039,0.21104171040455746,0.97747705674840213,0.19761251320419737,0.98028021229907569,0.18414612512758635,0.98289887811539156,0.17064508056267583,0.98533256136177594,0.15711192041980354,0.98758080401656312,0.14354919165349195,0.98964318295819587,0.12995944678310789,0.99151931004485661,0.11634524341247721,0.9932088321875171,0.10270914374854012,0.99471143141638907,0.089053714119141578,0.99602682494076744,0.075381524490045732,0.9971547652022511,0.061695147981265727,0.99809503992133419,0.047997160382799907,0.99884747213735681,0.034290139669865542,0.99941192024180958,0.020576665517721235,0.99978827800498438,0.0068593188161696376,0.99997647459596672,0,0.99978827800498438,0.02057666551772136,0.99915320167234367,0.04114461797009436,0.99809503992133419,0.061695147981265783,0.99661424082418992,0.082219553552810451,0.99471143141638907,0.10270914374854011,0.99238741743113945,0.12315524237462819,0.98964318295819587,0.14354919165349186,0.98647989002715308,0.16388235588987601,0.98289887811539156,0.18414612512758644,0.97890166358088349,0.204331918795324,0.97448993902010039,0.22443118934007611,0.96966557255129315,0.24443542584652658,0.96443060702344885,0.26433615764095159,0.95878725915125818,0.28412495787807551,0.95273791857646117,0.30379344710936812,0.94628514685596798,0.32333329683127132,0.93943167637718283,0.3427362330118543,0.93218040920099055,0.36199403959440246,0.92453441583289719,0.38109856197645714,0.91649693392284226,0.40004171046283332,0.90807136689423551,0.41881546369115213,0.8992612825027978,0.43741187202843873,0.89007041132581644,0.45582306093734659,0.88050264518245436,0.47404123431058276,0.87056203548578315,0.49205867777212303,0.86025279152723599,0.509867761943818,0.84957927869420891,0.5274609456760071,0.83854601662156358,0.54483077924077339,0.82715767727781508,0.56196990748648612,0.81541908298681509,0.57887107295229523,0.80333520438576744,0.59552711894125965,0.79091115832044201,0.61193099255080774,0.77815220567847698,0.62807574765924634,0.76506374916168784,0.64395454786705408,0.75165133099832526,0.6595606693917142,0.73792063059625235,0.6748875039148593,0.7238774621380335,0.68992856138052439,0.7095277721189529,0.70467747274332193,0.69487763682900827,0.71912799266537586,0.67993325977994123,0.73327400216087224,0.66470096907839804,0.74710951118710733,0.64918721474633045,0.76062866118093519,0.6333985659897734,0.77382572753954026,0.61734170841715352,0.78669512204448699,0.60102344120830864,0.79923139522801712,0.58445067423541608,0.81142923868059347,0.56763042513704887,0.82328348729871481,0.55056981634659841,0.83478912147204754,0.53327607207632333,0.8459412692089493,0.51575651525830002,0.85673520819948501,0.49801856444357095,0.86716636781506051,0.48006973066080427,0.8772303310438273,0.46191761423579325,0.88692283636104041,0.44356990157314452,0.89623977953357492,0.425034361901516,0.90517721535783868,0.40631884398378326,0.9137313593303461,0.38743127279352912,0.92189858925024182,0.36837964615926039,0.9296754467531011,0.34917203137777558,0.93705863877535311,0.32981656179811686,0.94404503894870873,0.31032143337755214,0.95063168892400252,0.29069490121104552,0.95681579962388819,0.27094527603568835,0.96259475242385606,0.25108092071156646,0.96796610026107421,0.23111024668055774,0.97292756867058283,0.21104171040455746,0.97747705674840213,0.19088380978464045,0.98161263804114762,0.17064508056267605,0.98533256136177583,0.15033409270691875,0.9886352515311132,0.12995944678310789,0.99151931004485661,0.10952977031260894,0.99398351566576149,0.089053714119141578,0.99602682494076744,0.068539948665640504,0.99764837264284223,0.047997160382800129,0.99884747213735681,0.027434047990856865,0.99962361567283686,0.0068593188161696376,0.99997647459596672,-0.013718314895846006,0.99990589949075626,-0.034290139669865646,0.99941192024180958,-0.054847444490324741,0.99849474602167076,-0.075381524490045829,0.9971547652022511,-0.095883684636261998,0.99539254519037557,-0.11634524341247708,0.9932088321875171,-0.13675753649460043,0.99060455087382271,-0.15711192041980365,0.98758080401656312,-0.1773997762465428,0.9841388720031724,-0.19761251320419745,0.98028021229907569,-0.21774157233078059,0.97600645883053427,-0.2377784300971805,0.97131942129276927,-0.25771460201639662,0.96622108438365717,-0.27754164623624561,0.96071360696332109,-0.29725116711401245,0.95479932113997512,-0.31683481877153508,0.94848073128240651,-0.33628430862921599,0.94176051295951568,-0.35559140091746622,0.93464151180736343,-0.37474792016409114,0.92712674232420245,-0.39374575465614581,0.91921938659400682,-0.41257685987479098,0.91092279293903777,-0.43123326190169592,0.90224047450201617,-0.44970706079554723,0.89317610775850353,-0.46799043393722994,0.88373353096012108,-0.48607563934226983,0.87391674250926421,-0.50395501893912953,0.86372989926600408,-0.52162100181197335,0.85317731478788938,-0.53906610740652572,0.84226345750339671,-0.55628294869766726,0.83099294881980112,-0.57326423531742576,0.81937056116626938,-0.59000277664203926,0.80740121597300307,-0.60649148483678184,0.79508998158728905,-0.62272337785726473,0.78244207112733799,-0.63869158240594226,0.76946284027482015,-0.65438933684256639,0.75615778500703557,-0.66980999404736397,0.74253253926967411,-0.68494702423571929,0.72859287259115635,-0.69979401772317207,0.71434468763956016,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99998010199095555,0.0063083771413972025,0.99992040875568378,0.012616503234503574,0.99982092266973777,0.018924127241019009,0.99968164769226753,0.025230998142624441,0.99950258936586267,0.03153686495097139,0.99928375481633147,0.03784147671767029,0.99902515275241766,0.044144582544277215,0.99872679346545379,0.050445931592278684,0.99838868882895127,0.056745273093073999,0.99801085229812836,0.06304235635795484,0.99759329890937454,0.069336930788081702,0.99713604527965205,0.0756287458844567,0.99663910960583446,0.081917551257892435,0.996102511663983,0.088203096638976519,0.99552627280855899,0.094485131888031246,0.99491041597157426,0.10076340700506825,0.99425496566167881,0.10703767213973737,0.99355994796318492,0.11330767760126984,0.99282539053502949,0.11957317386841487,0.99205132260967321,0.12583391159936969,0.99123777499193733,0.13208964164170234,0.99038478005777753,0.13834011504226681,0.98949237175299554,0.14458508305711068,0.98856058559188853,0.15082429716137383,0.98758945865583536,0.15705750905917887,0.98657902959182109,0.16328447069351246,0.9855293386108992,0.16950493425609664,0.98444042748659077,0.17571865219725105,0.98331233955322261,0.18192537723574403,0.98214511970420271,0.18812486236863374,0.98093881439023312,0.19431686088109765,0.9796934716174619,0.20050112635625097,0.97840914094557274,0.20667741268495302,0.97708587348581222,0.21284547407560123,0.97572372189895595,0.21900506506391304,0.97432274039321343,0.22515594052269397,0.97288298472206969,0.23129785567159308,0.97140451218206769,0.23743056608684393,0.96988738161052723,0.24355382771099199,0.96833165338320404,0.24966739686260681,0.9667373894118868,0.25577103024597991,0.96510465314193328,0.26186448496080672,0.96343350954974583,0.26794751851185322,0.96172402514018474,0.27401988881860612,0.95997626794392277,0.28008135422490693,0.95819030751473677,0.28613167350856861,0.95636621492674045,0.29217060589097554,0.9545040627715552,0.29819791104666543,0.95260392515542203,0.30421334911289322,0.95066587769625188,0.31021668069917685,0.94868999752061645,0.31620766689682389,0.94667636326067894,0.32218606928843935,0.94462505505106487,0.32815164995741331,0.94253615452567274,0.33410417149738975,0.94040974481442563,0.34004339702171366,0.93824591053996309,0.34596909017285876,0.93604473781427278,0.35188101513183306,0.9338063142352645,0.3577789366275641,0.93153072888328337,0.36366261994626131,0.92921807231756526,0.36953183094075687,0.92686843657263263,0.37538633603982391,0.92448191515463229,0.38122590225747155,0.92205860303761356,0.38705029720221712,0.91959859665974941,0.39285928908633383,0.91710199391949798,0.39865264673507572,0.91456889417170728,0.40443013959587698,0.91199939822366061,0.41019153774752715,0.90939360833106508,0.41593661190932124,0.90675162819398269,0.42166513345018397,0.90407356295270247,0.4273768743977685,0.90135951918355728,0.43307160744752865,0.89860960489468222,0.43874910597176509,0.89582392952171586,0.44440914402864384,0.89300260392344577,0.45005149637118796,0.89014574037739658,0.45567593845624155,0.8872534525753617,0.46128224645340565,0.88432585561887855,0.46687019725394585,0.88136306601464887,0.47243956847967095,0.87836520166990117,0.47799013849178296,0.87533238188769913,0.48352168639969723,0.87226472736219385,0.48903399206983322,0.86916236017381998,0.49452683613437476,0.86602540378443871,0.49999999999999994,0.86285398303242278,0.50545326585658079,0.85964822412769026,0.51088641668585044,0.85640825464668013,0.51629923627004037,0.85313420352727676,0.52169150920048446,0.84982620106367746,0.5270630208861915,0.84648437890120831,0.53241355756238551,0.84310887003108448,0.537742906299012,0.83969980878511796,0.54305085500921213,0.83625733083037179,0.54833719245776325,0.832781573163761,0.55360170826948452,0.82927267410660055,0.55884419293760934,0.82573077329910061,0.56406443783212334,0.82215601169481001,0.56926223520806596,0.81854853155500618,0.57443737821379892,0.81490847644303388,0.57958966089923769,0.81123599121859236,0.584718878224047,0.80753122203196992,0.58982482606580178,0.80379431631822817,0.5949073012281092,0.80002542279133448,0.59996610144869555,0.79622469143824393,0.60500102540745615,0.79239227351292996,0.61001187273446578,0.78852832153036589,0.61499844401795356,0.78463298926045455,0.61996054081223861,0.78070643172190946,0.62489796564562727,0.77674880517608558,0.62981052202827115,0.77276026712076029,0.63469801445998797,0.76874097628386651,0.63956024843804038,0.76469109261717461,0.64439703046487695,0.76061077728992865,0.64920816805583281,0.75650019268243118,0.65399346974678929,0.75235950237958127,0.65875274510179371,0.7481888711643655,0.66348580472063801,0.74398846501129889,0.66819246024639578,0.73975845107982086,0.67287252437291889,0.73549899770764215,0.67752581085229058,0.73121027440404651,0.68215213450223777,0.72689245184314377,0.68675131121350108,0.72254570185707878,0.69132315795716071,0.71817019742919275,0.69586749279192106,0.71376611268713896,0.70038413487135076,0.70933362289595348,0.70487290445107997,0,0.99992040875568378,0.012616503234503574,0.99968164769226753,0.025230998142624441,0.99928375481633147,0.03784147671767029,0.99872679346545379,0.050445931592278684,0.99801085229812836,0.06304235635795484,0.99713604527965205,0.0756287458844567,0.996102511663983,0.088203096638976519,0.99491041597157426,0.10076340700506825,0.99355994796318492,0.11330767760126984,0.99205132260967321,0.12583391159936969,0.99038478005777753,0.13834011504226681,0.98856058559188853,0.15082429716137383,0.98657902959182109,0.16328447069351246,0.98444042748659077,0.17571865219725105,0.98214511970420271,0.18812486236863374,0.9796934716174619,0.20050112635625097,0.97708587348581222,0.21284547407560123,0.97432274039321343,0.22515594052269397,0.97140451218206769,0.23743056608684393,0.96833165338320404,0.24966739686260681,0.96510465314193328,0.26186448496080672,0.96172402514018474,0.27401988881860612,0.95819030751473677,0.28613167350856861,0.9545040627715552,0.29819791104666543,0.95066587769625188,0.31021668069917685,0.94667636326067894,0.32218606928843935,0.94253615452567274,0.33410417149738975,0.93824591053996309,0.34596909017285876,0.9338063142352645,0.3577789366275641,0.92921807231756526,0.36953183094075687,0.92448191515463229,0.38122590225747155,0.91959859665974941,0.39285928908633383,0.91456889417170728,0.40443013959587698,0.90939360833106508,0.41593661190932124,0.90407356295270247,0.4273768743977685,0.89860960489468222,0.43874910597176509,0.89300260392344577,0.45005149637118796,0.8872534525753617,0.46128224645340565,0.88136306601464887,0.47243956847967095,0.87533238188769913,0.48352168639969723,0.86916236017381998,0.49452683613437476,0.86285398303242278,0.50545326585658079,0.85640825464668013,0.51629923627004037,0.84982620106367746,0.5270630208861915,0.84310887003108448,0.537742906299012,0.83625733083037179,0.54833719245776325,0.82927267410660055,0.55884419293760934,0.82215601169481001,0.56926223520806596,0.81490847644303388,0.57958966089923769,0.80753122203196992,0.58982482606580178,0.80002542279133448,0.59996610144869555,0.79239227351292996,0.61001187273446578,0.78463298926045455,0.61996054081223861,0.77674880517608558,0.62981052202827115,0.76874097628386651,0.63956024843804038,0.76061077728992865,0.64920816805583281,0.75235950237958127,0.65875274510179371,0.74398846501129889,0.66819246024639578,0.73549899770764215,0.67752581085229058,0.72689245184314377,0.68675131121350108,0.71817019742919275,0.69586749279192106,0.70933362289595348,0.70487290445107997,0.70038413487135076,0.71376611268713885,0.69132315795716071,0.72254570185707878,0.68215213450223788,0.73121027440404629,0.67287252437291889,0.73975845107982074,0.66348580472063801,0.74818887116436539,0.6539934697467894,0.75650019268243107,0.64439703046487717,0.76469109261717449,0.63469801445998808,0.77276026712076029,0.62489796564562727,0.78070643172190946,0.61499844401795367,0.78852832153036578,0.60500102540745615,0.79622469143824381,0.5949073012281092,0.80379431631822806,0.58471887822404711,0.81123599121859225,0.57443737821379903,0.81854853155500606,0.56406443783212334,0.82573077329910061,0.55360170826948452,0.83278157316376089,0.54305085500921224,0.83969980878511785,0.53241355756238562,0.8464843789012082,0.52169150920048457,0.85313420352727665,0.51088641668585055,0.85964822412769026,0.50000000000000011,0.8660254037844386,0.48903399206983328,0.87226472736219374,0.47799013849178318,0.87836520166990106,0.46687019725394596,0.88432585561887855,0.4556759384562416,0.89014574037739658,0.44440914402864401,0.89582392952171574,0.43307160744752876,0.90135951918355728,0.42166513345018403,0.90675162819398258,0.41019153774752731,0.9119993982236605,0.39865264673507583,0.91710199391949798,0.38705029720221712,0.92205860303761356,0.37538633603982408,0.92686843657263263,0.36366261994626137,0.93153072888328325,0.35188101513183306,0.93604473781427278,0.34004339702171382,0.94040974481442563,0.32815164995741336,0.94462505505106487,0.31620766689682411,0.94868999752061633,0.30421334911289333,0.95260392515542203,0.2921706058909756,0.95636621492674045,0.2800813542249071,0.95997626794392277,0.26794751851185333,0.96343350954974571,0.25577103024597997,0.9667373894118868,0.24355382771099215,0.96988738161052712,0.23129785567159317,0.97288298472206969,0.21900506506391304,0.97572372189895595,0.20667741268495315,0.97840914094557274,0.19431686088109773,0.98093881439023312,0.18192537723574426,0.98331233955322261,0.16950493425609678,0.9855293386108992,0.15705750905917895,0.98758945865583536,0.14458508305711087,0.98949237175299554,0.13208964164170245,0.99123777499193733,0.11957317386841491,0.99282539053502949,0.10703767213973756,0.99425496566167881,0.094485131888031357,0.99552627280855899,0.081917551257892449,0.99663910960583446,0.069336930788081869,0.99759329890937454,0.056745273093074089,0.99838868882895127,0.044144582544277222,0.99902515275241766,0.031536864950971542,0.99950258936586267,0.018924127241019079,0.99982092266973777,0.0063083771413974142,0.99998010199095555,0,0.99982092266973777,0.018924127241019009,0.99928375481633147,0.03784147671767029,0.99838868882895127,0.056745273093074006,0.99713604527965205,0.0756287458844567,0.99552627280855899,0.09448513188803126,0.99355994796318492,0.11330767760126985,0.99123777499193733,0.13208964164170234,0.98856058559188853,0.15082429716137383,0.9855293386108992,0.16950493425609667,0.98214511970420271,0.18812486236863377,0.97840914094557274,0.20667741268495302,0.97432274039321343,0.225155940522694,0.96988738161052723,0.24355382771099202,0.96510465314193328,0.26186448496080672,0.95997626794392277,0.28008135422490693,0.9545040627715552,0.29819791104666543,0.94868999752061645,0.31620766689682395,0.94253615452567274,0.3341041714973898,0.93604473781427278,0.35188101513183312,0.92921807231756526,0.36953183094075692,0.92205860303761356,0.38705029720221712,0.91456889417170728,0.40443013959587698,0.90675162819398258,0.42166513345018403,0.89860960489468222,0.43874910597176514,0.89014574037739658,0.4556759384562416,0.88136306601464887,0.472439568479671,0.87226472736219385,0.48903399206983322,0.86285398303242278,0.50545326585658079,0.85313420352727676,0.52169150920048446,0.84310887003108448,0.537742906299012,0.832781573163761,0.55360170826948452,0.82215601169481001,0.56926223520806596,0.81123599121859236,0.58471887822404711,0.80002542279133448,0.59996610144869567,0.78852832153036578,0.61499844401795367,0.77674880517608547,0.62981052202827126,0.76469109261717461,0.64439703046487706,0.75235950237958116,0.65875274510179382,0.73975845107982074,0.672872524372919,0.72689245184314366,0.68675131121350108,0.71376611268713896,0.70038413487135076,0.70038413487135076,0.71376611268713885,0.68675131121350108,0.72689245184314366,0.67287252437291889,0.73975845107982074,0.65875274510179371,0.75235950237958127,0.64439703046487706,0.76469109261717461,0.62981052202827126,0.77674880517608558,0.61499844401795356,0.78852832153036589,0.59996610144869555,0.80002542279133448,0.58471887822404711,0.81123599121859236,0.56926223520806596,0.82215601169481001,0.55360170826948452,0.832781573163761,0.537742906299012,0.84310887003108437,0.52169150920048457,0.85313420352727665,0.5054532658565809,0.86285398303242278,0.48903399206983328,0.87226472736219374,0.472439568479671,0.88136306601464887,0.4556759384562416,0.89014574037739658,0.43874910597176514,0.89860960489468211,0.42166513345018403,0.90675162819398258,0.40443013959587698,0.91456889417170728,0.38705029720221712,0.92205860303761356,0.36953183094075687,0.92921807231756526,0.35188101513183306,0.93604473781427278,0.33410417149738975,0.94253615452567274,0.31620766689682389,0.94868999752061645,0.29819791104666543,0.9545040627715552,0.28008135422490688,0.95997626794392277,0.26186448496080666,0.96510465314193328,0.24355382771099193,0.96988738161052723,0.22515594052269391,0.97432274039321343,0.20667741268495293,0.97840914094557274,0.18812486236863368,0.98214511970420271,0.16950493425609656,0.9855293386108992,0.15082429716137372,0.98856058559188853,0.13208964164170223,0.99123777499193744,0.11330767760126972,0.99355994796318492,0.094485131888031135,0.99552627280855899,0.075628745884456575,0.99713604527965205,0.056745273093073867,0.99838868882895127,0.037841476717670366,0.99928375481633147,0.018924127241019079,0.99982092266973777,6.123233995736766e-17,1,-0.018924127241018954,0.99982092266973777,-0.037841476717670242,0.99928375481633147,-0.056745273093073964,0.99838868882895127,-0.075628745884456672,0.99713604527965205,-0.094485131888031232,0.99552627280855899,-0.11330767760126982,0.99355994796318492,-0.13208964164170231,0.99123777499193733,-0.15082429716137383,0.98856058559188853,-0.16950493425609667,0.9855293386108992,-0.18812486236863377,0.98214511970420271,-0.20667741268495302,0.97840914094557274,-0.22515594052269403,0.97432274039321343,-0.24355382771099204,0.96988738161052723,-0.26186448496080678,0.96510465314193328,-0.28008135422490699,0.95997626794392277,-0.29819791104666549,0.9545040627715552,-0.316207666896824,0.94868999752061645,-0.3341041714973898,0.94253615452567263,-0.35188101513183317,0.93604473781427278,-0.36953183094075698,0.92921807231756515,-0.38705029720221723,0.92205860303761356,-0.40443013959587709,0.91456889417170717,-0.42166513345018392,0.90675162819398269,-0.43874910597176525,0.89860960489468211,-0.45567593845624149,0.89014574037739669,-0.47243956847967111,0.88136306601464875,-0.48903399206983322,0.87226472736219385,-0.5054532658565809,0.86285398303242278,-0.52169150920048446,0.85313420352727676,-0.53774290629901211,0.84310887003108437,-0.55360170826948452,0.832781573163761,-0.56926223520806618,0.8221560116948099,-0.58471887822404711,0.81123599121859236,-0.59996610144869578,0.80002542279133437,-0.61499844401795356,0.78852832153036589,-0.62981052202827137,0.77674880517608536,-0.64439703046487706,0.76469109261717461,-0.65875274510179394,0.75235950237958116,-0.67287252437291889,0.73975845107982086,-0.6867513112135013,0.72689245184314355,-0.70038413487135087,0.71376611268713896,0,0.99968164769226753,0.025230998142624441,0.99872679346545379,0.050445931592278684,0.99713604527965205,0.0756287458844567,0.99491041597157426,0.10076340700506825,0.99205132260967321,0.12583391159936969,0.98856058559188853,0.15082429716137383,0.98444042748659077,0.17571865219725105,0.9796934716174619,0.20050112635625097,0.97432274039321343,0.22515594052269397,0.96833165338320404,0.24966739686260681,0.96172402514018474,0.27401988881860612,0.9545040627715552,0.29819791104666543,0.94667636326067894,0.32218606928843935,0.93824591053996309,0.34596909017285876,0.92921807231756526,0.36953183094075687,0.91959859665974941,0.39285928908633383,0.90939360833106508,0.41593661190932124,0.89860960489468222,0.43874910597176509,0.8872534525753617,0.46128224645340565,0.87533238188769913,0.48352168639969723,0.86285398303242278,0.50545326585658079,0.84982620106367746,0.5270630208861915,0.83625733083037179,0.54833719245776325,0.82215601169481001,0.56926223520806596,0.80753122203196992,0.58982482606580178,0.79239227351292996,0.61001187273446578,0.77674880517608558,0.62981052202827115,0.76061077728992865,0.64920816805583281,0.74398846501129889,0.66819246024639578,0.72689245184314377,0.68675131121350108,0.70933362289595348,0.70487290445107997,0.69132315795716071,0.72254570185707878,0.67287252437291889,0.73975845107982074,0.6539934697467894,0.75650019268243107,0.63469801445998808,0.77276026712076029,0.61499844401795367,0.78852832153036578,0.5949073012281092,0.80379431631822806,0.57443737821379903,0.81854853155500606,0.55360170826948452,0.83278157316376089,0.53241355756238562,0.8464843789012082,0.51088641668585055,0.85964822412769026,0,0.99872679346545379,0.050445931592278684,0.99491041597157426,0.10076340700506825,0.98856058559188853,0.15082429716137383,0.9796934716174619,0.20050112635625097,0.96833165338320404,0.24966739686260681,0.9545040627715552,0.29819791104666543,0.93824591053996309,0.34596909017285876,0.91959859665974941,0.39285928908633383,0.89860960489468222,0.43874910597176509,0.87533238188769913,0.48352168639969723,0.84982620106367746,0.5270630208861915,0.82215601169481001,0.56926223520806596,0.79239227351292996,0.61001187273446578,0.76061077728992865,0.64920816805583281,0.72689245184314377,0.68675131121350108,0.69132315795716071,0.72254570185707878,0.6539934697467894,0.75650019268243107,0.61499844401795367,0.78852832153036578,0.57443737821379903,0.81854853155500606,0.53241355756238562,0.8464843789012082,0.48903399206983328,0.87226472736219374,0.44440914402864401,0.89582392952171574,0.39865264673507583,0.91710199391949798,0.35188101513183306,0.93604473781427278,0.30421334911289333,0.95260392515542203,0.25577103024597997,0.9667373894118868,0.20667741268495315,0.97840914094557274,0.15705750905917895,0.98758945865583536,0.10703767213973756,0.99425496566167881,0.056745273093074089,0.99838868882895127,0.0063083771413974142,0.99998010199095555,-0.044144582544277097,0.99902515275241766,-0.094485131888031232,0.99552627280855899,-0.14458508305711054,0.98949237175299565,-0.19431686088109762,0.98093881439023312,-0.24355382771099182,0.96988738161052723,-0.29217060589097549,0.95636621492674045,-0.34004339702171349,0.94040974481442574,-0.38705029720221701,0.92205860303761356,-0.43307160744752848,0.90135951918355739,-0.47799013849178307,0.87836520166990106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99991845569547733,0.012770354715973792,0.99967383608085636,0.025538626732559942,0.99926618105081,0.038302733690035347,0.99869555708922997,0.051060593907950605,0.99796205725838438,0.06381012672462838,0.99706580118374044,0.076549252836495635,0.99600693503445481,0.08927589463719432,0.99478563149953469,0.10198797655641534,0.99340208975967503,0.11468342539840043,0.9918565354547737,0.1273601706800567,0.99014922064713251,0.14001614496862902,0.98828042378034853,0.15264928421887447,0.9862504496339034,0.16525752810968491,0.98405962927345714,0.17783882038010165,0.98170831999685493,0.19039110916466834,0.97919690527585612,0.20291234732806676,0.97652579469359435,0.2154004927989813,0.97369542387777908,0.22785350890313755,0.97070625442964964,0.2402693646954607,0.9675587738486936,0.25264603529129942,0.96425349545314099,0.26498150219666167,0.96079095829624772,0.27727375363740786,0.95717172707838249,0.28952078488734861,0.95339639205493054,0.30172059859519229,0.94946556894002943,0.31387120511029076,0.94537989880615336,0.32597062280712835,0.94114004797956152,0.33801687840850275,0.93674670793162784,0.35000800730734355,0.93220059516606968,0.36194205388711792,0.92750245110209473,0.37381707184076873,0.92265304195348319,0.38563112448813569,0.91765315860362795,0.39738228509180523,0.91250361647654998,0.40906863717133984,0.90720525540391206,0.42068827481583415,0.90175893948805153,0.43223930299474694,0.8961655569610556,0.44371983786695968,0.89042602003990057,0.45512800708800877,0.88454126477767936,0.46646195011544428,0.87851225091094243,0.47771981851226286,0.87233996170317496,0.48889977624836689,0.86602540378443871,0.49999999999999994,0.8595696069872012,0.51101867944711032,0.85297362417838241,0.5219540175685935,0.84623853108764413,0.53280423093536566,0.83936542613194998,0.54356755000122114,0.83235543023642722,0.55424221939142471,0.82520968665155581,0.56482649818899344,0.81792936076671774,0.57531866021862055,0.81051563992013465,0.5857169943281948,0.80296973320522758,0.59601980466786975,0.79529287127342652,0.60622541096663796,0.78748630613346571,0.61633214880636367,0.77955131094719532,0.62633836989323055,0.77148917982194298,0.6362424423265598,0.76330122759945995,0.64604275086495433,0.75498878964148508,0.65573769718972652,0.74655322161196269,0.66532570016556536,0.73799589925594922,0.67480519609840206,0.729318218175245,0.68417463899043041,0.72052159360078705,0.69343250079224172,0.71160746016184151,0.70257727165203199,0,0.99967383608085636,0.025538626732559942,0.99869555708922997,0.051060593907950605,0.99706580118374044,0.076549252836495635,0.99478563149953469,0.10198797655641534,0.9918565354547737,0.1273601706800567,0.98828042378034853,0.15264928421887447,0.98405962927345714,0.17783882038010165,0.97919690527585612,0.20291234732806676,0.97369542387777908,0.22785350890313755,0.9675587738486936,0.25264603529129942,0.96079095829624772,0.27727375363740786,0.95339639205493054,0.30172059859519229,0.94537989880615336,0.32597062280712835,0.93674670793162784,0.35000800730734355,0.92750245110209473,0.37381707184076873,0.91765315860362795,0.39738228509180523,0.90720525540391206,0.42068827481583415,0.8961655569610556,0.44371983786695968,0.88454126477767936,0.46646195011544428,0.87233996170317496,0.48889977624836689,0.8595696069872012,0.51101867944711032,0.84623853108764413,0.53280423093536566,0.83235543023642722,0.55424221939142471,0.81792936076671774,0.57531866021862055,0.80296973320522758,0.59601980466786975,0.78748630613346571,0.61633214880636367,0.77148917982194298,0.6362424423265598,0.75498878964148508,0.65573769718972652,0.73799589925594922,0.67480519609840206,0.72052159360078705,0.69343250079224172,0.70257727165203199,0.71160746016184151,0.68417463899043041,0.72931821817524489,0.66532570016556547,0.74655322161196258,0.64604275086495444,0.76330122759945984,0.62633836989323066,0.7795513109471951,0.60622541096663807,0.7952928712734264,0.58571699432819491,0.81051563992013453,0.56482649818899355,0.82520968665155581,0.54356755000122126,0.83936542613194987,0.52195401756859361,0.85297362417838229,0.50000000000000011,0.8660254037844386,0.47771981851226297,0.87851225091094232,0.45512800708800882,0.89042602003990057,0.43223930299474717,0.90175893948805141,0.40906863717134001,0.91250361647654998,0.38563112448813575,0.92265304195348319,0.36194205388711792,0.93220059516606968,0.33801687840850292,0.94114004797956152,0.31387120511029087,0.94946556894002943,0.28952078488734867,0.95717172707838249,0.26498150219666189,0.96425349545314087,0.24026936469546087,0.97070625442964964,0.21540049279898141,0.97652579469359435,0.19039110916466842,0.98170831999685493,0.16525752810968514,0.9862504496339034,0.14001614496862919,0.99014922064713251,0.11468342539840053,0.99340208975967503,0.089275894637194375,0.9960069350344547,0.063810126724628602,0.99796205725838438,0.038302733690035493,0.99926618105081,0.012770354715973884,0.99991845569547733,0,0.99926618105081,0.038302733690035347,0.99706580118374044,0.076549252836495635,0.99340208975967503,0.11468342539840042,0.98828042378034853,0.15264928421887447,0.98170831999685493,0.19039110916466834,0.97369542387777908,0.22785350890313752,0.96425349545314099,0.26498150219666167,0.95339639205493054,0.30172059859519229,0.94114004797956163,0.3380168784085027,0.92750245110209473,0.37381707184076873,0.91250361647654998,0.40906863717133984,0.8961655569610556,0.44371983786695962,0.87851225091094243,0.47771981851226286,0.8595696069872012,0.51101867944711032,0.83936542613194998,0.54356755000122114,0.81792936076671774,0.57531866021862055,0.79529287127342652,0.60622541096663796,0.77148917982194298,0.63624244232655969,0.74655322161196269,0.66532570016556536,0.72052159360078705,0.69343250079224172,0.69343250079224172,0.72052159360078694,0.66532570016556547,0.74655322161196258,0.63624244232655991,0.77148917982194276,0.60622541096663818,0.79529287127342629,0.57531866021862066,0.81792936076671763,0.54356755000122126,0.83936542613194987,0.51101867944711044,0.85956960698720108,0.47771981851226297,0.87851225091094232,0.44371983786695984,0.89616555696105549,0.40906863717134001,0.91250361647654998,0.37381707184076901,0.92750245110209462,0.33801687840850292,0.94114004797956152,0.3017205985951924,0.95339639205493054,0.26498150219666189,0.96425349545314087,0.22785350890313771,0.97369542387777896,0.19039110916466864,0.98170831999685493,0.15264928421887466,0.98828042378034853,0.11468342539840053,0.99340208975967503,0.076549252836495885,0.99706580118374044,0.038302733690035493,0.99926618105081,2.8327694488239898e-16,1,-0.038302733690035153,0.99926618105081,-0.076549252836495538,0.99706580118374044,-0.11468342539840019,0.99340208975967514,-0.15264928421887433,0.98828042378034853,-0.19039110916466806,0.98170831999685504,-0.22785350890313735,0.97369542387777908,-0.26498150219666133,0.9642534954531411,-0.30172059859519207,0.95339639205493065,-0.33801687840850259,0.94114004797956163,-0.37381707184076851,0.92750245110209473,-0.40906863717133968,0.91250361647655009,-0.44371983786695934,0.89616555696105582,-0.47771981851226269,0.87851225091094254,-0.51101867944711021,0.85956960698720131,-0.54356755000122103,0.83936542613195009,-0.57531866021862021,0.81792936076671796,-0.60622541096663773,0.79529287127342663,-0.63624244232655958,0.77148917982194309,-0.66532570016556525,0.7465532216119628,-0.69343250079224161,0.72052159360078705,0,0.99869555708922997,0.051060593907950605,0.99478563149953469,0.10198797655641534,0.98828042378034853,0.15264928421887447,0.97919690527585612,0.20291234732806676,0.9675587738486936,0.25264603529129942,0.95339639205493054,0.30172059859519229,0.93674670793162784,0.35000800730734355,0.91765315860362795,0.39738228509180523,0.8961655569610556,0.44371983786695968,0.87233996170317496,0.48889977624836689,0.84623853108764413,0.53280423093536566,0.81792936076671774,0.57531866021862055,0.78748630613346571,0.61633214880636367,0.75498878964148508,0.65573769718972652,0.72052159360078705,0.69343250079224172,0.68417463899043041,0.72931821817524489,0.64604275086495444,0.76330122759945984,0.60622541096663807,0.7952928712734264,0.56482649818899355,0.82520968665155581,0.52195401756859361,0.85297362417838229,0,0.99478563149953469,0.10198797655641534,0.97919690527585612,0.20291234732806676,0.95339639205493054,0.30172059859519229,0.91765315860362795,0.39738228509180523,0.87233996170317496,0.48889977624836689,0.81792936076671774,0.57531866021862055,0.75498878964148508,0.65573769718972652,0.68417463899043041,0.72931821817524489,0.60622541096663807,0.7952928712734264,0.52195401756859361,0.85297362417838229,0.43223930299474717,0.90175893948805141,0.33801687840850292,0.94114004797956152,0.24026936469546087,0.97070625442964964,0.14001614496862919,0.99014922064713251,0.038302733690035493,0.99926618105081,-0.063810126724628255,0.99796205725838438,-0.1652575281096848,0.9862504496339034,-0.26498150219666156,0.96425349545314099,-0.36194205388711781,0.93220059516606979,-0.45512800708800849,0.89042602003990068,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99997530250445366,0.0070281136250343454,0.99990121123774722,0.014055880096458785,0.9997777298596181,0.021082952277811057,0.99960486446942798,0.028108983066923363,0.99938262360586116,0.03513362541306745,0.99911101824650306,0.042156532334097212,0.99879006180729812,0.049177356933587831,0.99841977014188688,0.05619575241797075,0.99800016154082261,0.063211372113663539,0.99753125673066856,0.070223869484193804,0.99701307887297363,0.077232898147316431,0.99644565356312842,0.084238111892122991,0.99582900882910119,0.091239164696142974,0.99516317513005303,0.098235710742435506,0.99444818535483348,0.10522740443667092,0.99368407482035626,0.11221390042420147,0.99287088126985434,0.11919485360712009,0.99200864487101592,0.12616991916130652,0.99109740821400027,0.1331387525534598,0.99013721630933382,0.14010100955811658,0.98912811658568733,0.14705634627465419,0.98807015888753247,0.15400441914427745,0.98696339547268053,0.16094488496698883,0.98580788100970029,0.16787740091854086,0.98460367257521864,0.17480162456736986,0.98335082965110021,0.18171721389151035,0.98204941412151014,0.18862382729548932,0.98069949026985703,0.19552112362719914,0.97930112477561748,0.20240876219474896,0.97785438671104263,0.20928640278329311,0.97635934753774611,0.21615370567183592,0.97481608110317475,0.22301033165001244,0.97322466363696036,0.22985594203484355,0.97158517374715447,0.23669019868746521,0.96989769241634549,0.24351276402983102,0.96816230299765871,0.25032330106138656,0.96637909121063925,0.25712147337571595,0.96454814513701725,0.26390694517715818,0.96266955521635766,0.27067938129739411,0.96074341424159304,0.27743844721200184,0.95876981735443956,0.28418380905698082,0.95674886204069798,0.29091513364524274,0.95468064812543796,0.29763208848306949,0.95256527776806743,0.30433434178653679,0.95040285545728631,0.3110215624979023,0.94819348800592551,0.31769342030195852,0.94593728454567039,0.32434958564234884,0.94363435652167094,0.33098972973784541,0.94128481768703642,0.33761352459858979,0.93888878409721654,0.34422064304229388,0.93644637410426923,0.35081075871040091,0.9339577083510141,0.3573835460842063,0.93142290976507414,0.36393868050093614,0.92884210355280283,0.37047583816978441,0.92621541719309997,0.37699469618790621,0.92354298043111505,0.3834949325563678,0.9208249252718379,0.38997622619605166,0.91806138597357911,0.39643825696351626,0.91525249904133765,0.40288070566680934,0.91239840322005838,0.40930325408123458,0.90949923948777922,0.41570558496507032,0.90655515104866669,0.42208738207523944,0.90356628332594302,0.42844833018293071,0.90053278395470293,0.43478811508916887,0.89745480277462064,0.44110642364033503,0.89433249182254926,0.44740294374363454,0.89116600532501045,0.45367736438251294,0.88795549969057652,0.4599293756320188,0.88470113350214463,0.46615866867411199,0.88140306750910369,0.47236493581291833,0.87806146461939405,0.47854787048992764,0.87467648989146085,0.48470716729913665,0.87124831052610041,0.49084252200213435,0.86777709585820195,0.49695363154312994,0.86426301734838329,0.50304019406392197,0.86070624857452083,0.50910190891880891,0.85710696522317664,0.51513847668943957,0.85346534508091987,0.52114959919960258,0.84978156802554483,0.52713497952995525,0.84605581601718649,0.53309432203268925,0.84228827308933207,0.53902733234613509,0.8384791253397309,0.54493371740930086,0.83462856092120219,0.55081318547634917,0.83073677003234114,0.5566654461310071,0.82680394490812392,0.56249021030091184,0.82283027981041257,0.56828719027188901,0.81881597101835923,0.57405609970216465,0.81476121681871083,0.57979665363650867,0.81066621749601508,0.58550856852031086,0.80653117532272689,0.59119156221358637,0.80235629454921786,0.59684535400491212,0.7981417813936863,0.60246966462529317,0.79388784403197199,0.60806421626195639,0.78959469258727322,0.61362873257207362,0.78526253911976729,0.61916293869641126,0.78089159761613613,0.62466656127290709,0.77648208397899632,0.63013932845017284,0.77203421601623479,0.63558096990092272,0.76754821343024993,0.64099121683532567,0.76302429780709946,0.64636980201428262,0.75846269260555521,0.65171645976262638,0.7538636231460657,0.65703092598224522,0.74922731659962583,0.6623129381651276,0.74455400197655597,0.66756223540632875,0.73984391011519057,0.67277855841685819,0.73509727367047506,0.6779616495364873,0.73031432710247424,0.68311125274647633,0.72549530666479145,0.68822711368222067,0.72064045039289804,0.69330897964581495,0.7157499980923766,0.69835659961853513,0.71082419132707475,0.70336972427323763,0.70586327340717381,0.70834810598667475,0.70086748937717036,0.71329149885172616,0.69583708600377192,0.71819965868954527,0.69077231176370835,0.72307234306162083,0.6856734168314581,0.72790931128175129,0.68054065306689093,0.73271032442793482,0.67537427400282746,0.73747514535416969,0.67017453483251532,0.74220353870216871,0.66494169239702461,0.74689527091298469,0.65967600517256075,0.75155011023854656,0.65437773325769744,0.75616782675310767,0.64904713836052863,0.76074819236460156,0.64368448378574161,0.76529098082590996,0.63829003442161159,0.76979596774603709,0.63286405672691681,0.77426293060119433,0.62740681871777704,0.778691648745791,0.62191858995441529,0.78308190342333406,0.61639964152784232,0.7874334777772326,0.61085024604646654,0.79174615686151029,0.60527067762262843,0.79601972765142215,0.59966121185906041,0.80025397905397699,0.59402212583527392,0.80444870191836471,0.58835369809387317,0.80860368904628654,0.58265620862679557,0.8127187352021904,0.57692993886148269,0.81679363712340813,0.57117517164697873,0.82082819353019565,0.56539219123995887,0.82482220513567506,0.5595812832906889,0.8287754746556788,0.55374273482891512,0.83268780681849408,0.54787683424968681,0.83655900837450858,0.54198387129911096,0.84038888810575596,0.53606413706003975,0.84417725683536093,0.53011792393769352,0.84792392743688372,0.52414552564521621,0.85162871484356373,0.51814723718916844,0.85529143605745961,0.51212335485495486,0.85891191015849,0.50607417619219008,0.8624899583133685,0.49999999999999989,0.86602540378443871,0.49390112631226352,0.8695180719384028,0.48777785638279231,0.87296779025494864,0.48163049267044966,0.8763743883352707,0.47545933882421176,0.87973769791048706,0.46926469966816758,0.88305755284995124,0.46304688118646331,0.88633378916945804,0.45680619050818716,0.88956624503934378,0.45054293589219996,0.89275476079247928,0.44425742671190732,0.89589917893215765,0.4379499734399796,0.89899934413987259,0.43162088763301476,0.90205510328299154,0.42527048191614969,0.9050663054223187,0.41889906996761855,0.90803280181955115,0.41250696650325747,0.91095444594462593,0.40609448726096048,0.91383109348295744,0.39966194898508223,0.91666260234256614,0.39320966941079399,0.91944883266109712,0.38673796724838744,0.92218964681272864,0.38024716216753368,0.92488490941497004,0.37373757478149139,0.92753448733534927,0.36720952663127204,0.9301382496979882,0.36066334016975554,0.93269606789006843,0.35409933874576371,0.93520781556818311,0.34751784658808882,0.93767336866457796,0.34091918878947691,0.94009260539327988,0.33430369129057169,0.94246540625611197,0.32767168086381271,0.944791654048597,0.32102348509729633,0.94707123386574565,0.31435943237859282,0.94930403310773359,0.30767985187852726,0.95148994148546184,0.30098507353491855,0.9536288510260057,0.29427542803628381,0.95572065607794721,0.28755124680550237,0.95776525331659479,0.28081286198344613,0.95976254174908604,0.27406060641257368,0.96171242271937629,0.2672948136204884,0.96361479991311272,0.26051581780346544,0.96546957936239064,0.25372395380994239,0.96727666945039581,0.24691955712398111,0.96903598091592913,0.24010296384869487,0.97074742685781679,0.23327451068964819,0.97241092273920149,0.22643453493822363,0.97402638639171901,0.21958337445496295,0.97559373801955673,0.21272136765287697,0.97711290020339492,0.20584885348073031,0.978583797904231,0.19896617140629977,0.98000635846708617,0.19207366139960466,0.98138051162459405,0.18517166391611578,0.98270618950047173,0.17826051987993694,0.98398332661287236,0.17134057066696667,0.9852118598776195,0.16441215808803425,0.98639172861132374,0.15747562437201779,0.98752287453437915,0.15053131214893795,0.98860524177384324,0.14357956443303554,0.98963877686619561,0.13662072460582686,0.99062342875997977,0.129655136399143,0.99155914881832419,0.1226831438781518,0.99244589082134482,0.11570509142436129,0.99328361096842843,0.10872132371861072,0.9940722678803956,0.10173218572404327,0.99481182260154544,0.094738022669068361,0.99550223860157894,0.087739180030307354,0.99614348177740408,0.080736003515530494,0.99673552045481972,0.073728839046578898,0.99727832539008066,0.06671803274227954,0.99777186977134213,0.059703930901347173,0.99821612921998371,0.052686879985279503,0.9986110817918139,0.045667226601244483,0.99895670797815384,0.038645317484958044,0.99925299070680129,0.031621499483558885,0.99949991534287352,0.024596119538474171,0.99969746968953022,0.017569524668284167,0.99984564398857612,0.010542061951579447,0.99994443092094321,0.003514078509818754,0.99999382560705186,0,0.99990121123774722,0.014055880096458785,0.99960486446942798,0.028108983066923363,0.99911101824650306,0.042156532334097212,0.99841977014188688,0.05619575241797075,0.99753125673066856,0.070223869484193804,0.99644565356312842,0.084238111892122991,0.99516317513005303,0.098235710742435506,0.99368407482035626,0.11221390042420147,0.99200864487101592,0.12616991916130652,0.99013721630933382,0.14010100955811658,0.98807015888753247,0.15400441914427745,0.98580788100970029,0.16787740091854086,0.98335082965110021,0.18171721389151035,0.98069949026985703,0.19552112362719914,0.97785438671104263,0.20928640278329311,0.97481608110317475,0.22301033165001244,0.97158517374715447,0.23669019868746521,0.96816230299765871,0.25032330106138656,0.96454814513701725,0.26390694517715818,0.96074341424159304,0.27743844721200184,0.95674886204069798,0.29091513364524274,0.95256527776806743,0.30433434178653679,0.94819348800592551,0.31769342030195852,0.94363435652167094,0.33098972973784541,0.93888878409721654,0.34422064304229388,0.9339577083510141,0.3573835460842063,0.92884210355280283,0.37047583816978441,0.92354298043111505,0.3834949325563678,0.91806138597357911,0.39643825696351626,0.91239840322005838,0.40930325408123458,0.90655515104866669,0.42208738207523944,0.90053278395470293,0.43478811508916887,0.89433249182254926,0.44740294374363454,0.88795549969057652,0.4599293756320188,0.88140306750910369,0.47236493581291833,0.87467648989146085,0.48470716729913665,0.86777709585820195,0.49695363154312994,0.86070624857452083,0.50910190891880891,0.85346534508091987,0.52114959919960258,0.84605581601718649,0.53309432203268925,0.8384791253397309,0.54493371740930086,0.83073677003234114,0.5566654461310071,0.82283027981041257,0.56828719027188901,0.81476121681871083,0.57979665363650867,0.80653117532272689,0.59119156221358637,0.7981417813936863,0.60246966462529317,0.78959469258727322,0.61362873257207362,0.78089159761613613,0.62466656127290709,0.77203421601623479,0.63558096990092272,0.76302429780709946,0.64636980201428262,0.7538636231460657,0.65703092598224522,0.74455400197655597,0.66756223540632875,0.73509727367047506,0.6779616495364873,0.72549530666479145,0.68822711368222067,0.7157499980923766,0.69835659961853513,0.70586327340717381,0.70834810598667475,0.69583708600377192,0.71819965868954527,0.6856734168314581,0.72790931128175129,0.67537427400282746,0.73747514535416969,0.66494169239702461,0.74689527091298469,0.65437773325769744,0.75616782675310767,0.64368448378574161,0.76529098082590996,0.63286405672691681,0.77426293060119433,0.62191858995441529,0.78308190342333406,0.61085024604646654,0.79174615686151029,0.59966121185906041,0.80025397905397699,0.58835369809387317,0.80860368904628654,0.57692993886148269,0.81679363712340813,0.56539219123995887,0.82482220513567506,0.55374273482891512,0.83268780681849408,0.54198387129911096,0.84038888810575596,0.53011792393769352,0.84792392743688372,0.51814723718916844,0.85529143605745961,0.50607417619219008,0.8624899583133685,0,0.99960486446942798,0.028108983066923363,0.99841977014188688,0.05619575241797075,0.99644565356312842,0.084238111892122991,0.99368407482035626,0.11221390042420147,0.99013721630933382,0.14010100955811658,0.98580788100970029,0.16787740091854086,0.98069949026985703,0.19552112362719914,0.97481608110317475,0.22301033165001244,0.96816230299765871,0.25032330106138656,0.96074341424159304,0.27743844721200184,0.95256527776806743,0.30433434178653679,0.94363435652167094,0.33098972973784541,0.9339577083510141,0.3573835460842063,0.92354298043111505,0.3834949325563678,0.91239840322005838,0.40930325408123458,0.90053278395470293,0.43478811508916887,0.88795549969057652,0.4599293756320188,0.87467648989146085,0.48470716729913665,0.86070624857452083,0.50910190891880891,0.84605581601718649,0.53309432203268925,0.83073677003234114,0.5566654461310071,0.81476121681871083,0.57979665363650867,0.7981417813936863,0.60246966462529317,0.78089159761613613,0.62466656127290709,0.76302429780709946,0.64636980201428262,0.74455400197655597,0.66756223540632875,0.72549530666479145,0.68822711368222067,0.70586327340717381,0.70834810598667475,0.6856734168314581,0.72790931128175129,0.66494169239702461,0.74689527091298469,0.64368448378574161,0.76529098082590996,0.62191858995441529,0.78308190342333406,0.59966121185906041,0.80025397905397699,0.57692993886148269,0.81679363712340813,0.55374273482891512,0.83268780681849408,0.53011792393769352,0.84792392743688372,0.50607417619219008,0.8624899583133685,0.48163049267044966,0.8763743883352707,0.45680619050818716,0.88956624503934378,0.43162088763301476,0.90205510328299154,0.40609448726096048,0.91383109348295744,0.38024716216753368,0.92488490941497004,0.35409933874576371,0.93520781556818311,0.32767168086381271,0.944791654048597,0.30098507353491855,0.9536288510260057,0.27406060641257368,0.96171242271937629,0.24691955712398111,0.96903598091592913,0.21958337445496295,0.97559373801955673,0.19207366139960466,0.98138051162459405,0.16441215808803425,0.98639172861132374,0.13662072460582686,0.99062342875997977,0.10872132371861072,0.9940722678803956,0.080736003515530494,0.99673552045481972,0.052686879985279503,0.9986110817918139,0.024596119538474171,0.99969746968953022,-0.0035140785098188537,0.99999382560705186,-0.03162149948355876,0.99949991534287352,-0.059703930901347048,0.99821612921998371,-0.087739180030307451,0.99614348177740408,-0.11570509142436139,0.99328361096842843,-0.14357956443303563,0.98963877686619561,-0.17134057066696654,0.9852118598776195,-0.19896617140629966,0.98000635846708617,-0.22643453493822374,0.97402638639171901,-0.2537239538099425,0.9672766694503957,-0.28081286198344624,0.95976254174908593,-0.30767985187852714,0.95148994148546184,-0.33430369129057158,0.94246540625611197,-0.36066334016975543,0.93269606789006854,-0.38673796724838755,0.92218964681272864,-0.41250696650325752,0.91095444594462593,-0.43794997343997949,0.8989993441398727,-0.4630468811864632,0.88633378916945815,-0.4877778563827922,0.87296779025494875,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99984337477867258,0.017698189489176789,0.99937354817761037,0.035390835012661909,0.99859066737020408,0.053072394341413386,0.99749497759421313,0.070737328719144676,0.99608682207494481,0.088380104597342482,0.99436664191773905,0.10599519536865327,0.99233497596979137,0.12357708309809556,0.98999246065135937,0.14112026025155541,0.98733982975640344,0.15861923142102388,0.98437791422272558,0.17606851504603618,0.98110764187167798,0.19346264513077271,0.97753003711752207,0.21079617295628489,0.97364622064653072,0.22806366878730858,0.96945740906593281,0.24525972357313114,0.96496491452280997,0.26237895064197908,0.96017014429306657,0.27941598738839513,0.95507460034059943,0.2963654969530769,0.94967987884680738,0.31322216989465057,0.94398766971058612,0.32998072585285543,0.93799975601896746,0.34663591520261933,0.93171801348856575,0.36318252069850598,0.92514440987800939,0.37961535910901933,0.91828100437153914,0.39592928284025325,0.91112994693396809,0.41211918154837751,0.90369347763720387,0.42817998374045518,0.89597392595854564,0.44410665836309027,0.8879737100509737,0.45989421637840722,0.87969533598566263,0.4755377123268692,0.87114139696695259,0.49103224587644584,0.86231457252002786,0.50637296335764381,0.85321762765155351,0.52155505928392165,0.84385341198353647,0.53657377785700999,0.83422485886067987,0.55142441445666757,0.82433498443151154,0.56610231711440617,0.8141868867035742,0.58060288797072057,0,0.99937354817761037,0.035390835012661909,0.99749497759421313,0.070737328719144676,0.99436664191773905,0.10599519536865327,0.98999246065135937,0.14112026025155541,0.98437791422272558,0.17606851504603618,0.97753003711752207,0.21079617295628489,0.96945740906593281,0.24525972357313114,0.96017014429306657,0.27941598738839513,0.94967987884680738,0.31322216989465057,0.93799975601896746,0.34663591520261933,0.92514440987800939,0.37961535910901933,0.91112994693396809,0.41211918154837751,0.89597392595854564,0.44410665836309027,0.87969533598566263,0.4755377123268692,0.86231457252002786,0.50637296335764381,0.84385341198353647,0.53657377785700999,0.82433498443151154,0.56610231711440617,0.8037837445729733,0.59492158471537171,0.78222544113124537,0.62299547289448953,0.75968708458328493,0.65028880777493692,0.73619691331815862,0.67676739343796377,0.71178435825706066,0.70239805476708461,0.68648000597920544,0.72714867901330194,0.66031556039979089,0.75098825602928709,0.63332380304804703,0.77388691712210678,0.60553855199513884,0.79581597247581715,0.57699461948338149,0.81674794709703913,0.54772776830985559,0.83665661523847712,0.51777466701906727,0.85551703325725426,0.48717284396079663,0.87330557086689264,0.45596064027068983,0.88999994074378597,0.4241771618325122,0.90557922645106803,0.39186223028224254,0.92002390864489314,0.35905633311540069,0.93331588953029321,0.32580057296011772,0.94543851553597025,0,0.99859066737020408,0.053072394341413386,0.99436664191773905,0.10599519536865327,0.98733982975640344,0.15861923142102388,0.97753003711752207,0.21079617295628489,0.96496491452280997,0.26237895064197908,0.94967987884680738,0.31322216989465057,0.93171801348856575,0.36318252069850598,0.91112994693396809,0.41211918154837751,0.8879737100509737,0.45989421637840722,0.86231457252002786,0.50637296335764381,0.83422485886067987,0.55142441445666757,0.8037837445729733,0.59492158471537171,0.77107703296821428,0.6367418701710571,0.73619691331815862,0.67676739343796377,0.69924170100431415,0.71488533596416237,0.66031556039979089,0.75098825602928709,0.61952821126480084,0.78497439158678051,0.57699461948338149,0.81674794709703913,0.5328346730130531,0.84621936354297211,0.48717284396079663,0.87330557086689264,0.44013783773785126,0.89793022211720264,0.39186223028224254,0.92002390864489314,0.34248209437159083,0.93952435574329241,0.29213661607950164,0.95637659817961762,0.24096770245661464,0.9705331351235672,0.18911958154212929,0.98195406403626129,0.13673839583324257,0.99060719314214118,0.083971790358368603,0.99646813216680952,0.030968496515225548,0.99952036108504883,-0.022122087153186774,0.999755276685243,-0.075150316063070516,0.99717221681895074,-0.12796672138782017,0.99177846226728072,-0.18042243136061006,0.98358921621880646,-0.23236959089407253,0.97262756141686701,-0.28366177833429645,0.95892439509704019,0,0.99749497759421313,0.070737328719144676,0.98999246065135937,0.14112026025155541,0.97753003711752207,0.21079617295628489,0.96017014429306657,0.27941598738839513,0.93799975601896746,0.34663591520261933,0.91112994693396809,0.41211918154837751,0.87969533598566263,0.4755377123268692,0.84385341198353647,0.53657377785700999,0.8037837445729733,0.59492158471537171,0.75968708458328493,0.65028880777493692,0.71178435825706066,0.70239805476708461,0.66031556039979089,0.75098825602928709,0.60553855199513884,0.79581597247581715,0.54772776830985559,0.83665661523847712,0.48717284396079663,0.87330557086689264,0.4241771618325122,0.90557922645106803,0.35905633311540069,0.93331588953029321,0.29213661607950164,0.95637659817961762,0.22375328150594273,0.97464581721532173,0.15424893296530237,0.98803201703136401,0.083971790358368603,0.99646813216680952,0.01327394531883112,0.99991189730679408,-0.057490402781580095,0.99834605903364571,-0.12796672138782017,0.99177846226728072,-0.19780192098551708,0.98024201096180286,-0.26664612409526117,0.96379450325521909,-0.33415441817445551,0.94251834189817818,-0.39998858364461021,0.91652012141249717,-0.46381878838658791,0.88593009404783041,-0.52532524021429861,0.85090151721206231,-0.58419978904788517,0.81160988564482539,-0.64014747075942946,0.7682520521809918,-0.69288798495645343,0.72104524150914795,-0.74215709929944484,0.67022596186617089,-0.78770797331771802,0.61604882012036455,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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/sinqi/test/fixtures/c/fftpack/medium.json b/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/test/fixtures/c/fftpack/medium.json new file mode 100644 index 000000000000..c17b5e118a8e --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/test/fixtures/c/fftpack/medium.json @@ -0,0 +1 @@ +{"lengths":[73,48,120,120,124,71,106,28,78,116],"offsets":[0,73,121,241,361,485,556,662,690,768],"cosines":[0.99976850197989087,0.99907411510222999,0.99791716086539217,0.99629817493460782,0.99421790689395195,0.99167731989928998,0.98867759023234036,0.98522010675606064,0.98130647027160933,0.9769384927771817,0.97211819662906129,0.9668478136052775,0.96112978387230075,0.95496675485525517,0.94836158001217152,0.94131731751284708,0.93383722882292519,0.9259247771938498,0.9175836260593937,0.90881763733950294,0.89963086965224337,0.89002757643467667,0.88001220397353563,0.86958938934661101,0.85876395827580299,0.84754092289283112,0.83592547941863693,0.82392300575755417,0.81153905900736101,0.79877937288636491,0.78564985507871432,0.77215658449916424,0.75830580847856255,0.7441039398713607,0.72955755408648759,0.71467338604296093,0.69945832705164712,0.68391942162461061,0.66806386421353348,0.65189899587871258,0.63543230089017755,0.61867140326250347,0.60162406322492257,0.58429817362836844,0.56670175629111763,0.5488429582847193,0.53073004816193325,0.51237141212842352,0.49377555015997721,0.47495107206705023,0.45590669350845875,0.43665123195606387,0.41719360261231681,0.39754281428255589,0.37770796520396482,0.35769823883312546,0.3375228995941133,0.317191288589106,0.29671281927349025,0.27609697309746883,0.25535329511618704,0.23449138957040977,0.21352091543979607,0.19245158197082998,0.17129314418147762,0.1500553983446527,0.12874817745258083,0.10738134666416309,0.085964798737446516,0.064508449449316357,0.043022233004530529,0.021516097436222254,6.123233995736766e-17,0.99946458747636568,0.99785892323860348,0.99518472667219693,0.99144486137381038,0.98664333208487898,0.98078528040323043,0.97387697927733363,0.96592582628906831,0.95694033573220882,0.94693012949510569,0.93590592675732576,0.92387953251128674,0.91086382492117579,0.89687274153268837,0.88192126434835505,0.86602540378443871,0.849202181526579,0.83146961230254524,0.81284668459161524,0.79335334029123528,0.77301045336273699,0.7518398074789775,0.72986407269783571,0.70710678118654757,0.68359230202287136,0.65934581510006895,0.6343932841636456,0.60876142900872066,0.58247769686780226,0.5555702330196024,0.5280678506503681,0.50000000000000011,0.47139673682599781,0.44228869021900147,0.41270702980439494,0.38268343236508984,0.3522500479212336,0.3214394653031617,0.2902846772544625,0.25881904510252096,0.22707626303437345,0.19509032201612833,0.16289547339458882,0.13052619222005171,0.09801714032956077,0.06540312923014327,0.032719082821776387,6.123233995736766e-17,0.999914327574007,0.99965732497555726,0.9992290362407229,0.99862953475457383,0.99785892323860348,0.99691733373312796,0.99580492757466177,0.99452189536827329,0.99306845695492629,0.99144486137381038,0.98965138681967024,0.98768834059513777,0.98555605905807775,0.98325490756395462,0.98078528040323043,0.97814760073380569,0.97534232050851266,0.97236992039767656,0.96923090970675441,0.96592582628906831,0.96245523645364728,0.95881973486819305,0.95501994445718663,0.95105651629515353,0.94693012949510569,0.94264149109217843,0.93819133592248416,0.93358042649720174,0.92880955287192424,0.92387953251128674,0.91879121014889831,0.91354545764260087,0.90814317382508125,0.90258528434986063,0.89687274153268837,0.8910065241883679,0.88498763746304188,0.87881711266196538,0.87249600707279718,0.86602540378443871,0.85940641150145269,0.85264016435409229,0.84572782170397331,0.83867056794542405,0.83146961230254524,0.8241261886220157,0.81664155516167891,0.80901699437494745,0.80125381269106066,0.79335334029123528,0.78531693088074495,0.7771459614569709,0.76884183207345957,0.76040596560003093,0.7518398074789775,0.74314482547739436,0.73432250943568556,0.72537437101228774,0.71630194342465436,0.70710678118654757,0.6977904598416802,0.68835457569375402,0.67880074553294178,0.66913060635885824,0.65934581510006895,0.64944804833018366,0.63943900198058479,0.6293203910498375,0.61909394930983397,0.60876142900872066,0.59832460057065917,0.58778525229247314,0.57714519003723375,0.56640623692483294,0.55557023301960229,0.54463903501502708,0.5336145159156116,0.52249856471594891,0.51129308607705226,0.50000000000000011,0.48862124149695496,0.47715876025960857,0.46561452032511152,0.45399049973954686,0.44228869021900147,0.43051109680829525,0.41865973753742813,0.40673664307580037,0.39474385638426734,0.38268343236508984,0.37055743750983638,0.35836794954530038,0.34611705707749302,0.33380685923377112,0.3214394653031617,0.30901699437494745,0.29654157497557115,0.28401534470392276,0.27144044986507432,0.25881904510252096,0.24615329302899316,0.23344536385590547,0.2206974350215013,0.20791169081775945,0.19509032201612833,0.18223552549214767,0.16934950384902475,0.15643446504023092,0.14349262199117951,0.13052619222005171,0.1175373974578377,0.10452846326765368,0.09150161866340252,0.078459095727844999,0.06540312923014327,0.052335956242943966,0.039259815759068666,0.026176948307873361,0.013089595571344575,6.123233995736766e-17,0.999914327574007,0.99965732497555726,0.9992290362407229,0.99862953475457383,0.99785892323860348,0.99691733373312796,0.99580492757466177,0.99452189536827329,0.99306845695492629,0.99144486137381038,0.98965138681967024,0.98768834059513777,0.98555605905807775,0.98325490756395462,0.98078528040323043,0.97814760073380569,0.97534232050851266,0.97236992039767656,0.96923090970675441,0.96592582628906831,0.96245523645364728,0.95881973486819305,0.95501994445718663,0.95105651629515353,0.94693012949510569,0.94264149109217843,0.93819133592248416,0.93358042649720174,0.92880955287192424,0.92387953251128674,0.91879121014889831,0.91354545764260087,0.90814317382508125,0.90258528434986063,0.89687274153268837,0.8910065241883679,0.88498763746304188,0.87881711266196538,0.87249600707279718,0.86602540378443871,0.85940641150145269,0.85264016435409229,0.84572782170397331,0.83867056794542405,0.83146961230254524,0.8241261886220157,0.81664155516167891,0.80901699437494745,0.80125381269106066,0.79335334029123528,0.78531693088074495,0.7771459614569709,0.76884183207345957,0.76040596560003093,0.7518398074789775,0.74314482547739436,0.73432250943568556,0.72537437101228774,0.71630194342465436,0.70710678118654757,0.6977904598416802,0.68835457569375402,0.67880074553294178,0.66913060635885824,0.65934581510006895,0.64944804833018366,0.63943900198058479,0.6293203910498375,0.61909394930983397,0.60876142900872066,0.59832460057065917,0.58778525229247314,0.57714519003723375,0.56640623692483294,0.55557023301960229,0.54463903501502708,0.5336145159156116,0.52249856471594891,0.51129308607705226,0.50000000000000011,0.48862124149695496,0.47715876025960857,0.46561452032511152,0.45399049973954686,0.44228869021900147,0.43051109680829525,0.41865973753742813,0.40673664307580037,0.39474385638426734,0.38268343236508984,0.37055743750983638,0.35836794954530038,0.34611705707749302,0.33380685923377112,0.3214394653031617,0.30901699437494745,0.29654157497557115,0.28401534470392276,0.27144044986507432,0.25881904510252096,0.24615329302899316,0.23344536385590547,0.2206974350215013,0.20791169081775945,0.19509032201612833,0.18223552549214767,0.16934950384902475,0.15643446504023092,0.14349262199117951,0.13052619222005171,0.1175373974578377,0.10452846326765368,0.09150161866340252,0.078459095727844999,0.06540312923014327,0.052335956242943966,0.039259815759068666,0.026176948307873361,0.013089595571344575,6.123233995736766e-17,0.99991976560532858,0.99967907529643052,0.99927796769658828,0.99871650717105276,0.99799478381671491,0.99711291344764741,0.99607103757652093,0.99486932339189516,0.99350796373139028,0.99198717705074302,0.99030720738875078,0.98846832432811138,0.98647082295216337,0.98431502379753411,0.98200127280270422,0.97952994125249448,0.97690142571848693,0.97411614799538704,0.97117455503333905,0.96807711886620429,0.96482433653581456,0.96141673001221251,0.95785484610989136,0.95413925640004882,0.95027055711886732,0.94624936907183688,0.942076337534135,0.93775213214708042,0.9332774468106767,0.92865299957226222,0.92387953251128674,0.9189578116202306,0.91388862668168669,0.90867279114162491,0.90331114197885987,0.89780453957074169,0.89215386755509196,0.88636003268840824,0.88042396470035711,0.87434661614458209,0.86812896224584846,0.86177200074354965,0.855276751731602,0.84864425749475092,0.84187558234131699,0.83497181243240737,0.82793405560762134,0.82076344120727629,0.81346111989118397,0.80602826345400502,0.7984660646372137,0.79077573693769854,0.78295851441303543,0.77501565148345875,0.76694842273056685,0.75875812269279097,0.75044606565766248,0.74201358545091078,0.73346203522242603,0.72479278722911999,0.71600723261472299,0.70710678118654757,0.69809286118925906,0.68896691907568663,0.67973041927471278,0.67038484395627851,0.6609316927935408,0.65137248272222226,0.64170874769718989,0.63194203844630403,0.62207392222157376,0.61210598254766291,0.60203981896778302,0.59187704678701725,0.58161929681311375,0.57126821509479231,0.56082546265760447,0.55029271523739143,0.53967166301138003,0.52896401032696239,0.51817147542820186,0.5072957901801074,0.49633869979072398,0.48530196253108099,0.47418734945304514,0.46299664410512087,0.45173164224624723,0.44039415155763428,0.42898599135268745,0.41750899228506322,0.40596499605490721,0.39435585511331855,0.38268343236508984,0.37094960086976786,0.35915624354108716,0.34730525284482028,0.33539853049509721,0.32343798714923822,0.3114255421011537,0.29936312297335799,0.28725266540764482,0.27509611275447821,0.26289541576114478,0.25065253225872053,0.23836942684789908,0.22604807058373497,0.21369044065935081,0.20129852008866012,0.18887429738815428,0.17641976625780859,0.16393692526115516,0.1514277775045767,0.1388943303158692,0.12633859492212934,0.11376258612701483,0.10116832198743222,0.088557823489700455,0.075933114225246442,0.063296220065881467,0.050649168838712767,0.037993990000739289,0.025332714313188093,0.012667373515640071,6.123233995736766e-17,0.999755276685243,0.9990212265199736,0.99779820878257108,0.99608682207494481,0.99388790402955074,0.99120253089941457,0.98803201703136401,0.98437791422272558,0.98024201096180286,0.97562633155250678,0.97053313512356731,0.96496491452280997,0.95892439509704008,0.95241453335813131,0.94543851553597025,0.93799975601896746,0.93010189568289625,0.92174880010887839,0.91294455769138871,0.90369347763720387,0.89400008785627572,0.88386913274556111,0.87330557086689276,0.86231457252002774,0.85090151721206209,0.83907199102444863,0.82683178387890877,0.8141868867035742,0.80114348850074812,0.78770797331771836,0.77388691712210689,0.75968708458328493,0.74511542576142853,0.73017907270583426,0.71488533596416248,0.69924170100431415,0.68325582455069345,0.6669355308366508,0.65028880777493692,0.63332380304804703,0.61604882012036422,0.59847231417405733,0.58060288797072068,0.56244928764078062,0.54402039840273231,0.52532524021429883,0.50637296335764392,0.48717284396079646,0.46773427945748181,0.44806678398757854,0.42817998374045535,0.4080836122434649,0.38778750559790215,0.3673015976647569,0.34663591520261949,0.3258005729601175,0.30480576872528664,0.28366177833429679,0.26237895064197908,0.24096770245661442,0.21943851344146065,0.19780192098551741,0.17606851504603618,0.15424893296530237,0.13235385426422255,0.11039399541526972,0.08838010459734251,0.066322956435104038,0.044233346725379007,0.022122087153186896,6.123233995736766e-17,0.99989020309951893,0.99956083650879435,0.99901197255468788,0.99824373176432146,0.99725628283861012,0.9960498426152169,0.99462467602093607,0.99298109601351692,0.99111946351294067,0.98904018732216403,0.98674372403734889,0.98423057794759683,0.98150130092421006,0.97855649229950403,0.97539679873519769,0.97202291408041075,0.96843557921929857,0.96463558190835863,0.96062375660344412,0.95640098427652243,0.95196819222221951,0.94732635385419139,0.94247648849136878,0.9374196611341209,0.9321569822303879,0.92668960743183348,0.92101873734007089,0.91514561724301846,0.90907153684144182,0.90279782996574354,0.89632587428306265,0.88965709099474732,0.88279294452426738,0.87573494219563686,0.86848463390241415,0.86104361176735555,0.85341350979279473,0.84559600350182607,0.83759280957036997,0.82940568545020188,0.82103642898302598,0.81248687800568131,0.80375890994656352,0.79485444141335326,0.78577542777214149,0.77652386271804241,0.76710177783739131,0.75751124216162014,0.74775436171291099,0.73783327904172735,0.72775017275632248,0.71750725704433116,0.70710678118654757,0.69655102906299704,0.68584231865141043,0.67498300151821056,0.66397546230212234,0.65282211819052161,0.64152541838863519,0.63008784358171099,0.61851190539027479,0.60680014581859332,0.59495513669646738,0.58297947911447212,0.57087580285277506,0.55864676580365247,0.54629505338783169,0.53382337796479062,0.52123447823713986,0.50853111864922051,0.49571608878004925,0.48279220273074486,0.46976229850656792,0.45662923739371297,0.44339590333098849,0.43006520227652051,0.41664006156962302,0.40312342928797218,0.38951827360022723,0.37582758211423822,0.36205436122098611,0.3482016354343988,0.33427244672718515,0.32026985386283752,0.3061969317239468,0.29205677063697588,0.2778524756936438,0.26358716606906762,0.24926397433680947,0.23488604578098377,0.22045653770557183,0.20597861874109838,0.19145546814881864,0.17689027512257288,0.16228623808845993,0.14764656400248127,0.1329744676463141,0.11827317092136577,0.10354590214126295,0.088795895322934901,0.074026389476442814,0.059240627893714301,0.044441857436335226,0.029633327822559667,0.014818290913692614,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.99979722898485013,0.99918899817156959,0.9981755542233175,0.99675730813421004,0.99493483506264557,0.99270887409805397,0.99008032796116408,0.98705026263791285,0.98361990694714363,0.97979065204226767,0.97556405084709386,0.97094181742605201,0.96592582628906831,0.96051811163137235,0.9547208665085456,0.94853644194714548,0.94196734599126486,0.93501624268541483,0.92768595099414286,0.91997944365882423,0.91189984599209006,0.90345043461038232,0.89463463610514737,0.88545602565320991,0.87591832556688787,0.86602540378443871,0.85578127230144752,0.84519008554379482,0.8342561386828613,0.82298386589365646,0.81137783855657308,0.79944276340350118,0.78718348060905019,0.77460496182765459,0.76171230817735924,0.74851074817110119,0.73500563559632859,0.72120244734381456,0.70710678118654757,0.69272435350959949,0.67806099699189093,0.6631226582407953,0.64791539538053877,0.63244537559537728,0.61671887262854308,0.60074226423797905,0.58452202960988886,0.56806474673115581,0.55137708972169175,0.53446582612780125,0.51733781417765679,0.50000000000000011,0.48245941480719334,0.46472317204376862,0.44679846450162591,0.42869256140305423,0.41041280545275693,0.39196660986007509,0.37336145533262105,0.35460488704253579,0.33570451156660486,0.31666799380147265,0.29750305385520298,0.27821746391645275,0.25881904510252096,0.23931566428755782,0.21971523091221723,0.20002569377604446,0.18025503781390587,0.16041128085776046,0.14050247038509278,0.12053668025532323,0.10052200743551712,0.080466568716726014,0.060378497422286286,0.040265940109415241,0.020137053265440522,6.123233995736766e-17,0.99990831735296715,0.99963328622328396,0.99917495704211445,0.99853341385112382,0.99770877428706795,0.9967011895602228,0.99551084442665816,0.9941379571543596,0.9925827794832055,0.99084559657880678,0.98892672698021755,0.98682652254152614,0.98454536836733697,0.98208368274215596,0.97944191705369177,0.97662055571008666,0.97362011605109311,0.97044114825321137,0.96708423522880671,0.96354999251922291,0.95983906818191378,0.95595214267161166,0.95188992871555567,0.94765317118280246,0.94324264694764293,0.9386591647471505,0.93390356503288663,0.92897671981679142,0.92387953251128674,0.91861293776362174,0.91317790128449117,0.90757541967095701,0.90180652022370811,0.89587226075868798,0.88977372941312838,0.88351204444602294,0.87708835403307694,0.8705038360561721,0.86375969788738327,0.85685717616758927,0.8497975365797148,0.84258207361664905,0.8352121103438801,0.82768899815689057,0.82001411653335898,0.81218887278021112,0.80421470177556897,0.79609306570564375,0.78782545379662161,0.77941338204159161,0.77085839292256464,0.76216205512763646,0.753325963263344,0.74435173756227035,0.73524102358595012,0.72599549192313084,0.71661683788344466,0.70710678118654757,0.69746706564678218,0.68769945885342332,0.67780575184656278,0.66778775878869556,0.65764731663206444,0.64738628478182758,0.63700654475510754,0.62650999983598665,0.61589857472651066,0.60517421519376513,0.59433888771308974,0.58339457910749393,0.57234329618334379,0.56118706536238228,0.54992793231015491,0.53856796156090425,0.52710923613900784,0.51555385717702173,0.50390394353040768,0.49216163138900726,0.48032907388533946,0.46840844069979015,0.45640191766276905,0.44431170635390349,0.43214002369834564,0.4198891015602646,0.40756118633360089,0.39515853853015553,0.38268343236508984,0.37013815533991434,0.35752500782303998,0.3448463026279705,0.33210436458921194,0.31930153013597995,0.30644014686377891,0.29352257310393481,0.28055117749115838,0.26752833852922075,0.25445644415481805,0.2413378912997057,0.22817508545118598,0.21497044021102399,0.2017263768528775,0.1884453238783183,0.17512971657153087,0.16178199655276462,0.14840461133062616,0.13500001385329011,0.12157066205871496,0.10811901842394187,0.094647549513561136,0.081158725527431252,0.067655019847729023,0.05413890858541761,0.040612870126212806,0.027079384676134455,0.013540933806721845,6.123233995736766e-17],"twiddles":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99144486137381038,0.13052619222005157,0.96592582628906831,0.25881904510252074,0.92387953251128674,0.38268343236508978,0.86602540378443871,0.49999999999999994,0.79335334029123528,0.60876142900872054,0,0,0.96592582628906831,0.25881904510252074,0.86602540378443871,0.49999999999999994,0.70710678118654757,0.70710678118654746,0.50000000000000011,0.8660254037844386,0.25881904510252096,0.9659258262890682,0,0,0.92387953251128674,0.38268343236508978,0.70710678118654757,0.70710678118654746,0.38268343236508984,0.92387953251128674,6.123233995736766e-17,1,-0.38268343236508973,0.92387953251128674,0,0,0.86602540378443871,0.49999999999999994,0,0.50000000000000011,0.8660254037844386,0,6.123233995736766e-17,1,0,0,0,0,0.99862953475457383,0.052335956242943828,0.99452189536827329,0.10452846326765346,0.98768834059513777,0.15643446504023087,0.97814760073380569,0.20791169081775931,0.96592582628906831,0.25881904510252074,0.95105651629515353,0.3090169943749474,0.93358042649720174,0.35836794954530021,0.91354545764260087,0.40673664307580015,0.8910065241883679,0.45399049973954675,0.86602540378443871,0.49999999999999994,0.83867056794542405,0.54463903501502697,0.80901699437494745,0.58778525229247314,0.7771459614569709,0.62932039104983739,0.74314482547739436,0.66913060635885813,0.70710678118654757,0.70710678118654746,0.66913060635885824,0.74314482547739424,0.6293203910498375,0.77714596145697079,0.58778525229247314,0.80901699437494745,0.54463903501502708,0.83867056794542394,0.50000000000000011,0.8660254037844386,0.45399049973954686,0.8910065241883679,0.40673664307580037,0.91354545764260076,0.35836794954530038,0.93358042649720174,0.30901699437494745,0.95105651629515353,0.25881904510252096,0.9659258262890682,0.20791169081775945,0.97814760073380558,0.15643446504023092,0.98768834059513777,0.10452846326765368,0.99452189536827329,0.052335956242943966,0.99862953475457383,0,0,0.99452189536827329,0.10452846326765346,0.97814760073380569,0.20791169081775931,0.95105651629515353,0.3090169943749474,0.91354545764260087,0.40673664307580015,0.86602540378443871,0.49999999999999994,0.80901699437494745,0.58778525229247314,0.74314482547739436,0.66913060635885813,0,0.97814760073380569,0.20791169081775931,0.91354545764260087,0.40673664307580015,0.80901699437494745,0.58778525229247314,0.66913060635885824,0.74314482547739424,0.50000000000000011,0.8660254037844386,0.30901699437494745,0.95105651629515353,0.10452846326765368,0.99452189536827329,0,0.95105651629515353,0.3090169943749474,0.80901699437494745,0.58778525229247314,0.58778525229247314,0.80901699437494745,0.30901699437494745,0.95105651629515353,6.123233995736766e-17,1,-0.30901699437494734,0.95105651629515364,-0.58778525229247303,0.80901699437494745,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.99862953475457383,0.052335956242943828,0.99452189536827329,0.10452846326765346,0.98768834059513777,0.15643446504023087,0.97814760073380569,0.20791169081775931,0.96592582628906831,0.25881904510252074,0.95105651629515353,0.3090169943749474,0.93358042649720174,0.35836794954530021,0.91354545764260087,0.40673664307580015,0.8910065241883679,0.45399049973954675,0.86602540378443871,0.49999999999999994,0.83867056794542405,0.54463903501502697,0.80901699437494745,0.58778525229247314,0.7771459614569709,0.62932039104983739,0.74314482547739436,0.66913060635885813,0.70710678118654757,0.70710678118654746,0.66913060635885824,0.74314482547739424,0.6293203910498375,0.77714596145697079,0.58778525229247314,0.80901699437494745,0.54463903501502708,0.83867056794542394,0.50000000000000011,0.8660254037844386,0.45399049973954686,0.8910065241883679,0.40673664307580037,0.91354545764260076,0.35836794954530038,0.93358042649720174,0.30901699437494745,0.95105651629515353,0.25881904510252096,0.9659258262890682,0.20791169081775945,0.97814760073380558,0.15643446504023092,0.98768834059513777,0.10452846326765368,0.99452189536827329,0.052335956242943966,0.99862953475457383,0,0,0.99452189536827329,0.10452846326765346,0.97814760073380569,0.20791169081775931,0.95105651629515353,0.3090169943749474,0.91354545764260087,0.40673664307580015,0.86602540378443871,0.49999999999999994,0.80901699437494745,0.58778525229247314,0.74314482547739436,0.66913060635885813,0,0.97814760073380569,0.20791169081775931,0.91354545764260087,0.40673664307580015,0.80901699437494745,0.58778525229247314,0.66913060635885824,0.74314482547739424,0.50000000000000011,0.8660254037844386,0.30901699437494745,0.95105651629515353,0.10452846326765368,0.99452189536827329,0,0.95105651629515353,0.3090169943749474,0.80901699437494745,0.58778525229247314,0.58778525229247314,0.80901699437494745,0.30901699437494745,0.95105651629515353,6.123233995736766e-17,1,-0.30901699437494734,0.95105651629515364,-0.58778525229247303,0.80901699437494745,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.99871650717105276,0.050649168838712712,0.99486932339189516,0.10116832198743217,0.98846832432811138,0.15142777750457667,0.97952994125249448,0.20129852008866006,0.96807711886620429,0.25065253225872053,0.95413925640004882,0.29936312297335793,0.93775213214708042,0.34730525284482028,0.9189578116202306,0.39435585511331855,0.89780453957074169,0.44039415155763428,0.87434661614458209,0.48530196253108104,0.84864425749475092,0.5289640103269625,0.82076344120727629,0.57126821509479231,0.79077573693769854,0.6121059825476628,0.75875812269279097,0.65137248272222226,0.72479278722911999,0.68896691907568652,0,0.99486932339189516,0.10116832198743217,0.97952994125249448,0.20129852008866006,0.95413925640004882,0.29936312297335793,0.9189578116202306,0.39435585511331855,0.87434661614458209,0.48530196253108104,0.82076344120727629,0.57126821509479231,0.75875812269279097,0.65137248272222226,0.68896691907568663,0.72479278722911999,0.61210598254766291,0.79077573693769854,0.52896401032696239,0.84864425749475092,0.44039415155763428,0.89780453957074169,0.34730525284482028,0.93775213214708042,0.25065253225872053,0.96807711886620429,0.1514277775045767,0.98846832432811138,0.050649168838712767,0.99871650717105276,0,0.98846832432811138,0.15142777750457667,0.95413925640004882,0.29936312297335793,0.89780453957074169,0.44039415155763434,0.82076344120727629,0.57126821509479231,0.72479278722911999,0.68896691907568652,0.6121059825476628,0.79077573693769865,0.48530196253108099,0.87434661614458209,0.34730525284482028,0.93775213214708042,0.20129852008866012,0.97952994125249448,0.050649168838712767,0.99871650717105276,-0.1011683219874321,0.99486932339189516,-0.25065253225872064,0.96807711886620429,-0.39435585511331867,0.9189578116202306,-0.5289640103269625,0.84864425749475092,-0.65137248272222203,0.75875812269279108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99824373176432146,0.059240627893714287,0.99298109601351692,0.1182731709213658,0.98423057794759683,0.17689027512257297,0.97202291408041075,0.23488604578098368,0.95640098427652243,0.29205677063697583,0.9374196611341209,0.34820163543439875,0.91514561724301846,0.40312342928797223,0.88965709099474732,0.45662923739371308,0.86104361176735555,0.50853111864922051,0.82940568545020188,0.55864676580365247,0.79485444141335326,0.60680014581859343,0.75751124216162014,0.65282211819052161,0.71750725704433116,0.69655102906299704,0.67498300151821056,0.73783327904172724,0.63008784358171099,0.77652386271804241,0.58297947911447212,0.81248687800568131,0.53382337796479062,0.84559600350182607,0.48279220273074486,0.87573494219563686,0.43006520227652051,0.90279782996574354,0.37582758211423822,0.92668960743183337,0.32026985386283752,0.94732635385419139,0.26358716606906762,0.96463558190835863,0.20597861874109838,0.97855649229950403,0.14764656400248127,0.98904018732216392,0.088795895322934901,0.9960498426152169,0.029633327822559667,0.99956083650879435,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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.99675730813421004,0.080466568716725875,0.98705026263791285,0.16041128085776024,0.97094181742605201,0.23931566428755774,0.94853644194714548,0.31666799380147248,0.91997944365882423,0.39196660986007503,0.88545602565320991,0.46472317204376851,0.84519008554379482,0.53446582612780102,0.79944276340350118,0.60074226423797883,0.74851074817110119,0.66312265824079519,0.69272435350959949,0.72120244734381445,0.63244537559537728,0.77460496182765459,0.56806474673115581,0.82298386589365635,0.50000000000000011,0.8660254037844386,0.42869256140305423,0.90345043461038221,0.35460488704253579,0.93501624268541472,0.27821746391645275,0.96051811163137224,0.20002569377604446,0.97979065204226767,0.12053668025532323,0.99270887409805397,0.040265940109415241,0.99918899817156959,0,0.98705026263791285,0.16041128085776024,0.94853644194714548,0.31666799380147248,0.88545602565320991,0.46472317204376851,0.79944276340350118,0.60074226423797883,0.69272435350959949,0.72120244734381445,0.56806474673115581,0.82298386589365635,0,0.94853644194714548,0.31666799380147248,0.79944276340350118,0.60074226423797883,0.56806474673115581,0.82298386589365635,0.27821746391645275,0.96051811163137224,-0.040265940109414901,0.9991889981715697,-0.35460488704253545,0.93501624268541483,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99853341385112382,0.054138908585417526,0.9941379571543596,0.10811901842394177,0.98682652254152614,0.16178199655276473,0.97662055571008666,0.21497044021102407,0.96354999251922291,0.26752833852922081,0.94765317118280246,0.31930153013598001,0.92897671981679142,0.37013815533991434,0.90757541967095701,0.4198891015602646,0.88351204444602294,0.46840844069979015,0.85685717616758927,0.51555385717702173,0.82768899815689057,0.56118706536238239,0.79609306570564375,0.60517421519376513,0.76216205512763646,0.64738628478182769,0.72599549192313084,0.68769945885342332,0,0.9941379571543596,0.10811901842394177,0.97662055571008666,0.21497044021102407,0.94765317118280246,0.31930153013598001,0.90757541967095701,0.4198891015602646,0.85685717616758927,0.51555385717702173,0.79609306570564375,0.60517421519376513,0.72599549192313084,0.68769945885342332,0.64738628478182758,0.76216205512763646,0.56118706536238228,0.82768899815689057,0.46840844069979015,0.88351204444602294,0.37013815533991434,0.92897671981679142,0.26752833852922075,0.96354999251922302,0.16178199655276462,0.98682652254152614,0.05413890858541761,0.99853341385112382,0,0.98682652254152614,0.16178199655276473,0.94765317118280246,0.31930153013598001,0.88351204444602294,0.46840844069979015,0.79609306570564375,0.60517421519376513,0.68769945885342321,0.72599549192313095,0.56118706536238228,0.82768899815689057,0.4198891015602646,0.90757541967095701,0.26752833852922075,0.96354999251922302,0.10811901842394164,0.9941379571543596,-0.054138908585417707,0.99853341385112382,-0.2149704402110241,0.97662055571008666,-0.37013815533991445,0.92897671981679142,-0.51555385717702185,0.85685717616758916,-0.64738628478182769,0.76216205512763646,0,0,0,0,0,0,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/sinqi/test/fixtures/c/fftpack/runner.c b/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/test/fixtures/c/fftpack/runner.c new file mode 100644 index 000000000000..b8206e497ff6 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/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/sinqi/test/fixtures/c/fftpack/small.json b/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/test/fixtures/c/fftpack/small.json new file mode 100644 index 000000000000..e43dbbea66f5 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/test/fixtures/c/fftpack/small.json @@ -0,0 +1 @@ +{"lengths":[8,12,9,15,4,4,2,13,3,8],"offsets":[0,8,20,29,44,48,52,54,67,70],"cosines":[0.98078528040323043,0.92387953251128674,0.83146961230254524,0.70710678118654757,0.55557023301960229,0.38268343236508984,0.19509032201612833,6.123233995736766e-17,0.99144486137381038,0.96592582628906831,0.92387953251128674,0.86602540378443871,0.79335334029123528,0.70710678118654757,0.60876142900872066,0.50000000000000011,0.38268343236508984,0.25881904510252096,0.13052619222005171,6.123233995736766e-17,0.98480775301220802,0.93969262078590843,0.86602540378443871,0.76604444311897801,0.64278760968653936,0.50000000000000011,0.34202014332566882,0.17364817766693041,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.92387953251128674,0.70710678118654757,0.38268343236508984,6.123233995736766e-17,0.92387953251128674,0.70710678118654757,0.38268343236508984,6.123233995736766e-17,0.70710678118654757,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.86602540378443871,0.50000000000000011,6.123233995736766e-17,0.98078528040323043,0.92387953251128674,0.83146961230254524,0.70710678118654757,0.55557023301960229,0.38268343236508984,0.19509032201612833,6.123233995736766e-17],"twiddles":[0.70710678118654757,0.70710678118654746,0,0,0,0,0,0,0.86602540378443871,0.49999999999999994,0,0.50000000000000011,0.8660254037844386,0,6.123233995736766e-17,1,0,0,0,0,0.76604444311897801,0.64278760968653925,0,0.17364817766693041,0.98480775301220802,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,0,0,0,0,0,0,0,0,0,0.70710678118654757,0.70710678118654746,0,0,0,0,0,0]} diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/test/test.js b/lib/node_modules/@stdlib/fft/base/fftpack/sinqi/test/test.js new file mode 100644 index 000000000000..a6f7eca690a1 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/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[ N ], 0.0, 'returns expected value' ); + for ( i = 0; i < N-1; i++ ) { + y = workspace[ (2*N) + i + 1 ]; + 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[ N ], 0.0, 'returns expected value' ); + for ( i = 0; i < N-1; i++ ) { + y = workspace[ (2*N) + i + 1 ]; + 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[ N ], 0.0, 'returns expected value' ); + for ( i = 0; i < N-1; i++ ) { + y = workspace[ (2*N) + i + 1 ]; + 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-1; i++ ) { + t.strictEqual( workspace[ offset + ( ( (2*N)+i+1 ) * stride ) ], expected[ (2*N)+i+1 ], 'returns expected value' ); + } + t.end(); +});