From 31957575ad5372c54e4ec65f0f242d37302a195b Mon Sep 17 00:00:00 2001 From: GUNJ JOSHI Date: Wed, 15 Apr 2026 23:17:48 +0530 Subject: [PATCH 01/14] feat: add fft/base/fftpack/rffti --- .../@stdlib/fft/base/fftpack/rffti/README.md | 168 +++++++++++ .../base/fftpack/rffti/benchmark/benchmark.js | 101 +++++++ .../fft/base/fftpack/rffti/docs/repl.txt | 45 +++ .../base/fftpack/rffti/docs/types/index.d.ts | 51 ++++ .../fft/base/fftpack/rffti/examples/index.js | 46 +++ .../fft/base/fftpack/rffti/lib/index.js | 49 +++ .../fft/base/fftpack/rffti/lib/main.js | 170 +++++++++++ .../fft/base/fftpack/rffti/lib/rffti1.js | 185 ++++++++++++ .../fft/base/fftpack/rffti/package.json | 64 ++++ .../rffti/test/fixtures/c/fftpack/Makefile | 137 +++++++++ .../rffti/test/fixtures/c/fftpack/large.json | 1 + .../rffti/test/fixtures/c/fftpack/medium.json | 1 + .../rffti/test/fixtures/c/fftpack/runner.c | 282 ++++++++++++++++++ .../rffti/test/fixtures/c/fftpack/small.json | 1 + .../fft/base/fftpack/rffti/test/test.js | 231 ++++++++++++++ 15 files changed, 1532 insertions(+) create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rffti/README.md create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rffti/benchmark/benchmark.js create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/repl.txt create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/index.d.ts create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rffti/examples/index.js create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/index.js create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/main.js create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/rffti1.js create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rffti/package.json create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/Makefile create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/large.json create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/medium.json create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/runner.c create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/small.json create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/test.js diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/README.md b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/README.md new file mode 100644 index 000000000000..4aa185aefa1f --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/README.md @@ -0,0 +1,168 @@ + + +# rffti + +> Initialize a workspace array for performing a real-valued Fourier transform. + + + +
+ +
+ + + + + +
+ +## Usage + +```javascript +var rffti = require( '@stdlib/fft/base/fftpack/rffti' ); +``` + +#### rffti( N, workspace, strideW, offsetW ) + +Initializes a workspace array for performing a real-valued Fourier transform. + +```javascript +var Float64Array = require( '@stdlib/array/float64' ); + +var N = 8; +var workspace = new Float64Array( ( 2*N ) + 34 ); + +rffti( N, workspace, 1, 0 ); + +var twiddleFactors = workspace.slice( N, 2*N ); +// returns [ 0, ~0.707, ~0.707, 0, 0, 0, 0, 0 ] + +var factors = workspace.slice( 2*N, ( 2*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 three sections: + + ```text + size = N N 2+ceil(log2(N)/2) + ↓ ↓ ↓ + | scratch / workspace | twiddle factors | radix factor table | + ↑ ↑ ↑ + i = 0 ... N ... 2N ... + ``` + + - **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 `2N + 34` indexed elements (as `log2(N)/2 ≤ 32` for all `2^64`). During initialization, only the sections for storing 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 | + ``` + +- If `N` equals `1`, the function returns early without modifying the workspace, as a single data point is its own Fourier transform. + +
+ + + +
+ +## Examples + + + +```javascript +var Float64Array = require( '@stdlib/array/float64' ); +var rffti = require( '@stdlib/fft/base/fftpack/rffti' ); + +var workspace; +var N; +var nf; +var i; +var j; + +N = 8; +workspace = new Float64Array( ( 2*N ) + 34 ); + +rffti( N, workspace, 1, 0 ); + +console.log( 'Sequence length: %d', N ); +console.log( 'Twiddle factors:' ); +for ( i = N; i < 2*N; i++ ) { + console.log( ' workspace[%d] = %d', i, workspace[ i ] ); +} + +console.log( 'Factorization:' ); +nf = workspace[ ( 2*N ) + 1 ]; +console.log( ' number of factors: %d', nf ); +for ( j = 0; j < nf; j++ ) { + console.log( ' factor[%d]: %d', j, workspace[ ( 2*N ) + 2 + j ] ); +} +``` + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/benchmark/benchmark.js b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/benchmark/benchmark.js new file mode 100644 index 000000000000..07feddfa216b --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/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 rffti = require( './../lib' ); + + +// FUNCTIONS // + +/** +* Creates a benchmark function. +* +* @private +* @param {PositiveInteger} N - sequence length +* @returns {Function} benchmark function +*/ +function createBenchmark( N ) { + var workspace = new Float64Array( ( 2*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++ ) { + rffti( N, workspace, 1, 0 ); + if ( isnan( workspace[ N+1 ] ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnan( workspace[ 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/rffti/docs/repl.txt b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/repl.txt new file mode 100644 index 000000000000..aa886670dc67 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/repl.txt @@ -0,0 +1,45 @@ + +{{alias}}( N, workspace, strideW, offsetW ) + Initializes a workspace array for performing a real-valued Fourier + transform. + + The workspace array is divided into three sections: scratch/workspace + (indices 0 to N-1), twiddle factors (indices N to 2N-1), and radix factor + table (indices 2N onwards). + + The scratch/workspace section is used while performing transforms and is + not updated during initialization. The twiddle factors section stores a + table of reusable complex exponential constants as cosine/sine pairs. The + radix factor table 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`. + + Examples + -------- + > var {{alias:@stdlib/array/float64}} = require( '@stdlib/array/float64' ); + > var N = 8; + > var workspace = new {{alias:@stdlib/array/float64}}( ( 2*N ) + 34 ); + > {{alias}}( N, workspace, 1, 0 ); + > var twiddleFactors = workspace.slice( N, 2*N ) + [ 0, ~0.707, ~0.707, 0, 0, 0, 0, 0 ] + > var factors = workspace.slice( 2*N, ( 2*N ) + 4 ) + [ 8, 2, 2, 4 ] + + See Also + -------- + diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/index.d.ts b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/index.d.ts new file mode 100644 index 000000000000..2c55a4abb09d --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/index.d.ts @@ -0,0 +1,51 @@ +/* +* @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 real-valued Fourier transform. +* +* @param N - length of the sequence +* @param workspace - workspace array +* @param strideW - stride length for `workspace` +* @param offsetW - starting index for `workspace` +* +* @example +* var Float64Array = require( '@stdlib/array/float64' ); +* var N = 8; +* var workspace = new Float64Array( ( 2*N ) + 34 ); +* +* rffti( N, workspace, 1, 0 ); +* +* var twiddleFactors = workspace.slice( N, 2*N ); +* // returns [ 0, ~0.707, ~0.707, 0, 0, 0, 0, 0 ] +* +* var factors = workspace.slice( 2*N, ( 2*N ) + 4 ); +* // returns [ 8, 2, 2, 4 ] +*/ +declare function rffti( N: number, workspace: Collection, strideW: number, offsetW: number ): void; + + +// EXPORTS // + +export = rffti; diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/examples/index.js b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/examples/index.js new file mode 100644 index 000000000000..e9004065b2ee --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/examples/index.js @@ -0,0 +1,46 @@ +/** +* @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 rffti = require( './../lib' ); + +var workspace; +var N; +var nf; +var i; +var j; + +N = 8; +workspace = new Float64Array( ( 2*N ) + 34 ); + +rffti( N, workspace, 1, 0 ); + +console.log( 'Sequence length: %d', N ); +console.log( 'Twiddle factors:' ); +for ( i = N; i < 2*N; i++ ) { + console.log( ' workspace[%d] = %d', i, workspace[ i ] ); +} + +console.log( 'Factorization:' ); +nf = workspace[ ( 2*N ) + 1 ]; +console.log( ' number of factors: %d', nf ); +for ( j = 0; j < nf; j++ ) { + console.log( ' factor[%d]: %d', j, workspace[ ( 2*N ) + 2 + j ] ); +} diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/index.js b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/index.js new file mode 100644 index 000000000000..3c440549ebce --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/index.js @@ -0,0 +1,49 @@ +/** +* @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 real-valued Fourier transform. +* +* @module @stdlib/fft/base/fftpack/rffti +* +* @example +* var Float64Array = require( '@stdlib/array/float64' ); +* var rffti = require( '@stdlib/fft/base/fftpack/rffti' ); +* +* var N = 8; +* var workspace = new Float64Array( ( 2*N ) + 34 ); +* +* rffti( N, workspace, 1, 0 ); +* +* var twiddleFactors = workspace.slice( N, 2*N ); +* // returns [ 0, ~0.707, ~0.707, 0, 0, 0, 0, 0 ] +* +* var factors = workspace.slice( 2*N, ( 2*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/rffti/lib/main.js b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/main.js new file mode 100644 index 000000000000..663a19bd35cd --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/main.js @@ -0,0 +1,170 @@ +/** +* @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 rffti1 = require( './rffti1.js' ); + + +// MAIN // + +/** +* Initializes a workspace array for performing a real-valued Fourier transform. +* +* ## Notes +* +* The workspace array is divided into three sections: +* +* ```text +* size = N N 2+ceil(log2(N)/2) +* ↓ ↓ ↓ +* | scratch / workspace | twiddle factors | radix factor table | +* ↑ ↑ ↑ +* i = 0 ... N ... 2N ... +* ``` +* +* where +* +* - **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 `2N + 34` indexed elements (as `log2(N)/2 ≤ 32` for all `2^64`). During initialization, only the sections for storing twiddle factors and the factorization of `N` are updated. +* +* > Note: FFTPACK only requires `2N+15`, but we increase that number here to accommodate larger workspace arrays, where `N` may exceed `2^30` indexed elements. +* +* The first two sections each contain `N` elements, while the last section contains the sequence length, the number of integer factors, and, at most, `ceil(log2(N)/2)` integer radix factors. +* +* 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 real and backward FFT callers can reuse the same set of twiddle factors, with those performing a forward transform (e.g., `rfftf`) multiplying with `(cos,-sin)` and those performing a backward transform (e.g., `rfftb`) 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. +* +* @param {NonNegativeInteger} N - length of the sequence to transform +* @param {Float64Array} workspace - workspace array +* @param {integer} strideW - stride length for `workspace` +* @param {NonNegativeInteger} offsetW - starting index for `workspace` +* @returns {void} +* +* @example +* var Float64Array = require( '@stdlib/array/float64' ); +* +* var N = 8; +* var workspace = new Float64Array( ( 2*N ) + 34 ); +* +* rffti( N, workspace, 1, 0 ); +* +* var twiddleFactors = workspace.slice( N, 2*N ); +* // returns [ 0, ~0.707, ~0.707, 0, 0, 0, 0, 0 ] +* +* var factors = workspace.slice( 2*N, ( 2*N ) + 4 ); +* // returns [ 8, 2, 2, 4 ] +*/ +function rffti( N, workspace, strideW, offsetW ) { + var offsetT; + var offsetF; + + // When a sub-sequence is a single data point, the FFT is the identity, so no initialization necessary... + if ( N === 1 ) { + return; + } + // Resolve the starting indices for storing twiddle factors and factorization results: + offsetT = offsetW + ( N*strideW ); // index offset for twiddle factors + offsetF = offsetT + ( N*strideW ); // index offset for factorization results + + // Initialize a provided workspace array: + rffti1( N, workspace, strideW, offsetT, workspace, strideW, offsetF ); +} + + +// EXPORTS // + +module.exports = rffti; diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/rffti1.js b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/rffti1.js new file mode 100644 index 000000000000..18a9062cce13 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/rffti1.js @@ -0,0 +1,185 @@ +/** +* @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 TWO_PI = require( '@stdlib/constants/float64/two-pi' ); +var floor = require( '@stdlib/math/base/special/floor' ); +var sin = require( '@stdlib/math/base/special/sin' ); +var cos = require( '@stdlib/math/base/special/cos' ); +var decompose = require( '@stdlib/fft/base/fftpack/decompose' ); + + +// VARIABLES // + +var TRIAL_FACTORS = [ 4, 2, 3, 5 ]; + + +// MAIN // + +/** +* Initializes the working arrays for applying a Fourier transform to a real-valued sequence. +* +* @private +* @param {NonNegativeInteger} n - length of the sequence +* @param {Collection} wa - array of twiddle factors +* @param {integer} strideW - stride length for `wa` +* @param {NonNegativeInteger} offsetW - starting index for `wa` +* @param {Collection} ifac - array containing a radix factorization +* @param {integer} strideF - stride length for `ifac` +* @param {NonNegativeInteger} offsetF - starting index for `ifac` +* @returns {void} +*/ +function rffti1( n, wa, strideW, offsetW, ifac, strideF, offsetF ) { + var argld; + var argh; + var nfm1; + var arg; + var ipm; + var ido; + var nf; + var fi; + var ip; + var l2; + var l1; + var ld; + var ii; + var is; + var k1; + var i; + var j; + + // Decompose the sequence length into its radix factors: + nf = decompose( n, 4, TRIAL_FACTORS, 1, 0, ifac, strideF, offsetF ); + + // Compute the master angular step (i.e., the basic angle that generates all twiddles): + argh = TWO_PI / n; + + // Initialize the index into the twiddle factor array: + is = 0; + + // Compute the number of factors minus one: + nfm1 = nf - 1; + + // Initialize a running product of factors already processed: + l1 = 1; + + // If the number of radix factors is `1`, the only twiddle factor we need is `W_N^0 = 1`, which the main transform kernels already hard-code, so nothing to pre-compute... + if ( nfm1 === 0 ) { + return; + } + // Generate twiddle factors for each radix factor... + for ( k1 = 0; k1 < nfm1; k1++ ) { + // Resolve the next radix factor (C code: ifac[k1+2] with 1-based, JS: ifac[k1+2] with 0-based): + ip = ifac[ offsetF + ((k1+2)*strideF) ]; + + // Initialize a running offset used to step the angle: + ld = 0; + + // Compute the length of the transform after including the current radix: + l2 = l1 * ip; + + // Compute the number of data points in each sub-transform: + ido = floor( n / l2 ); + + // Compute the number of iterations for the inner loop: + ipm = ip - 1; + + // Iterate over each butterfly column within the current radix... + for ( j = 0; j < ipm; j++ ) { + // Advance to the next column: + ld += l1; + + // Initialize the index into the twiddle factor array: + i = is; + + // Compute the angle step for this column: + argld = ld * argh; + + // Initialize the harmonic counter: + fi = 0.0; + + // Iterate over each non-trivial harmonic in the column... + for ( ii = 2; ii < ido; ii += 2 ) { + // Advance the index by 2 (for cosine and sine): + i += 2; + + // Update the harmonic counter: + fi += 1.0; + + // Compute the angle for this harmonic: + arg = fi * argld; + + // Store the cosine and sine values: + wa[ offsetW + ( ( i-1 ) * strideW ) ] = cos( arg ); + wa[ offsetW + ( i*strideW ) ] = sin( arg ); + } + // Advance the index by the number of data points in each sub-transform: + is += ido; + } + // Update the running product of factors already processed: + l1 = l2; + } +} + + +// EXPORTS // + +module.exports = rffti1; diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/package.json b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/package.json new file mode 100644 index 000000000000..ea78bb766695 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/package.json @@ -0,0 +1,64 @@ +{ + "name": "@stdlib/fft/base/fftpack/rffti", + "version": "0.0.0", + "description": "Initialize a workspace array for performing a real-valued Fourier 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", + "rffti", + "fourier", + "transform", + "twiddle", + "workspace", + "initialization", + "real" + ], + "__stdlib__": {} +} diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/Makefile b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/Makefile new file mode 100644 index 000000000000..7ce16281940d --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/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/rffti/test/fixtures/c/fftpack/large.json b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/large.json new file mode 100644 index 000000000000..37ea1b0c0505 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/large.json @@ -0,0 +1 @@ +{"lengths":[502,743,655,961,886,600,210,713,500,756],"offsets":[0,501,1243,1897,2857,3742,4341,4550,5262,5761],"twiddles":[0.9999216720722226,0.012515978598993244,0.99968670055941911,0.025029996496650959,0.99929512227125272,0.037540093298792959,0.99874699855075533,0.050044309225501633,0.99804241526471715,0.062540685418132944,0.99718148279023588,0.075027264246183084,0.99616433599742471,0.08750208961396283,0.99499113422828478,0.099963207267031257,0.99366206127174295,0.11240866509834127,0.99217732533486025,0.12483651345404856,0.99053715901021533,0.13724480543893622,0.9887418192394668,0.1496315972214074,0.98679158727310268,0.16199494833799785,0.98468676862638005,0.17433292199736086,0.98242769303146482,0.18664358538367701,0.98001471438577714,0.1989250099594411,0.97744821069655108,0.21117527176757875,0.97472858402161788,0.22339245173284561,0.97185626040642126,0.23557463596246184,0.9688316898172743,0.24771991604593438,0.96565534607087056,0.2598263893540208,0.96232772676005707,0.27189215933678729,0.95884935317588393,0.28391533582071415,0.95522077022594098,0.29589403530480296,0.95144254634899461,0.3078263812556376,0.94751527342593878,0.31971050440135429,0.94343956668707329,0.33154454302447417,0.93921606461572416,0.34332664325355206,0.93484542884822197,0.35505495935359627,0.93032834407025211,0.36672765401521407,0.92566551790959517,0.37834289864243648,0.92085768082527253,0.38989887363917902,0.91590558599311611,0.40139376869429183,0.91081000918777855,0.41282578306515549,0.90557174866120382,0.42419312585977798,0.90019162501757644,0.43549401631734846,0.89467048108476877,0.44672668408720384,0.88900918178230715,0.45788936950616438,0.88320861398587747,0.46898032387419553,0.87726968638839042,0.47999780972835188,0.87119332935763005,0.49094010111496078,0.86498049479050554,0.50180548386000345,0.8586321559639315,0.51259225583764989,0.85214930738235817,0.5232987272369074,0.84553296462197658,0.53392322082633881,0.83878416417162216,0.54446407221681126,0.83190396327040383,0.55491963012223178,0.82489343974207996,0.56528825661823134,0.81775369182621194,0.57556832739875541,0.81048583800611773,0.58575823203052058,0.80309101683365569,0.5958563742052988,0.79557038675086322,0.60586117198998812,0.78792512590848029,0.615771058074432,0.78015643198138518,0.62558448001694733,0.77226552198097143,0.63529990048752383,0.76425363206449637,0.64491579750865569,0.75612201734142948,0.65443066469376809,0.74787195167683218,0.66384301148320146,0.73950472749179963,0.67315136337771708,0.73102165556099497,0.68235426216948492,0.72242406480730936,0.69145026617052108,0.71371330209367811,0.70043795043853685,0.70489073201208652,0.70931590700016367,0.69595773666979899,0.71808274507152081,0.68691571547284358,0.72673709127608965,0.67776608490678669,0.73527758985986136,0.66851027831483278,0.74370290290372321,0.65914974567328244,0.75201171053305227,0.64968595336438484,0.76020271112448046,0.64012038394662107,0.76827462150980252,0.63045453592245226,0.77622617717699094,0.62068992350357011,0.78405613246828976,0.61082807637368719,0.79176326077535386,0.60087053944890312,0.79934635473140436,0.59081887263568411,0.80680422640036986,0.58067465058649448,0.81413570746298347,0.57043946245311827,0.82133964939980675,0.56011491163770932,0.82841492367115233,0.54970261554160871,0.83536042189387583,0.53920420531196989,0.84217505601501108,0.52862132558622921,0.84885775848221934,0.51795563423446411,0.85540748241102849,0.50720880209967889,0.86182320174883242,0.49638251273605571,0.86810391143562959,0.48547846214521756,0.87424862756147037,0.47449835851053851,0.88025638752059299,0.46344392192954786,0.88612625016222102,0.45231688414446553,0.89185729593800045,0.44111898827091589,0.89744862704605188,0.42985198852485718,0.90289936757161704,0.41851764994777407,0.90820866362427555,0.40711774813017382,0.91337568347171161,0.39565406893342853,0.91839961767001066,0.38412840821001093,0.92327967919046239,0.37254257152216214,0.92801510354285432,0.36089837385904117,0.93260514889523305,0.34919763935239484,0.93704909619011678,0.33744220099079825,0.94134624925714006,0.32563390033250494,0.94549593492211281,0.31377458721695767,0.94949750311247672,0.30186611947499836,0.95335032695914357,0.28991036263782993,0.95705380289469721,0.2779091896447683,0.96060735074794645,0.26586448054983614,0.96401041383481212,0.25377812222724205,0.96726245904553487,0.24165200807578915,0.97036297692818985,0.22948803772226484,0.97331148176849547,0.21728811672385134,0.97610751166590348,0.20505415626961082,0.97875062860595807,0.1927880728810846,0.98124041852891364,0.18049178811206068,0.98357649139459968,0.16816722824754926,0.98575848124352283,0.15581632400202064,0.9877860462541963,0.14344101021694589,0.98965886879668896,0.13104322555769418,0.99137665548238285,0.11862491220982808,0.99293913720993521,0.10618801557484943,0.99434606920743418,0.09373448396544147,0.99559723107074394,0.081266268300252686,0.99669242679803249,0.068785321798275817,0.99763148482047603,0.056293599672862807,0.99841425802913664,0.043793058825431011,0.99904062379800773,0.031285657538901342,0.99951048400322373,0.018773355170923541,0.99982376503843229,0.0062581118469295857,0.99998041782632485,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99995399089228465,0.0095925022070750422,0.99981596780281456,0.019184121729215471,0.99958594343222806,0.028773975962709773,0.99926393894695731,0.038361182466285143,0.99884998397728031,0.047944859042308149,0.99834411661459477,0.057524123817963006,0.99774638340791266,0.067098095326399917,0.99705683935957679,0.076665892587846091,0.99627554792020001,0.086226635190671932,0.99540258098282641,0.095779443372404918,0.99443801887631555,0.10532343810068384,0.99338195035795129,0.1148577411541457,0.99223447260527398,0.12438147520323815,0.99099569120713871,0.13389376389094976,0.98966572015399901,0.14339373191345081,0.98824468182741765,0.15288050510063725,0.98673270698880577,0.16235321049657017,0.98512993476738953,0.17181097643980375,0.98343651264740872,0.18125293264359393,0.9816525964545445,0.19067821027598067,0.97977835034158178,0.20008594203973626,0.9778139467733028,0.20947526225217258,0.97575956651061857,0.21884530692479959,0.97361539859393453,0.22819521384282795,0.97138164032575602,0.2375241226445087,0.96905849725253246,0.24683117490030193,0.9666461831457438,0.25611551419186823,0.96414491998222918,0.26537628619087439,0.96155493792376112,0.27461263873760766,0.95887647529586684,0.28382372191938954,0.95610977856589718,0.29300868814878356,0.95325510232034805,0.30216669224158832,0.95031270924143318,0.31129689149461048,0.94728287008291279,0.32039844576320814,0.94416586364517918,0.32947051753859991,0.94096197674960236,0.33851227202493073,0.93767150421213696,0.34752287721608843,0.93429474881619357,0.35650150397226332,0.93083202128477793,0.36544732609624431,0.9272836402518978,0.37435952040944409,0.92364993223324365,0.38323726682764614,0.91993123159614254,0.39207974843646826,0.91612788052879113,0.40088615156653268,0.912240229008767,0.40965566586833907,0.90826863477082542,0.41838748438683115,0.90421346327398056,0.42708080363565143,0.90007508766787669,0.43573482367107641,0.89585388875845207,0.44434874816562614,0.89155025497289708,0.45292178448134085,0.88716458232391282,0.46145314374271779,0.88269727437326961,0.46994204090930269,0.87814874219467309,0.47838769484792726,0.87351940433593711,0.48678932840458788,0.86880968678046988,0.49514616847595799,0.86402002290807633,0.50345744608052745,0.85915085345507824,0.51172239642936346,0.85420262647375944,0.51994025899648399,0.84917579729113635,0.52811027758884121,0.84407082846705961,0.53623170041590384,0.83888818975165003,0.54430378015883696,0.83362835804207369,0.55232577403926764,0.82829181733865787,0.56029694388763485,0.8228790587003546,0.56821655621111422,0.81739058019955446,0.57608388226111285,0.81182688687625448,0.58389819810032739,0,0.99981596780281456,0.019184121729215471,0.99926393894695731,0.038361182466285143,0.99834411661459477,0.057524123817963006,0.99705683935957679,0.076665892587846091,0.99540258098282641,0.095779443372404918,0.99338195035795129,0.1148577411541457,0.99099569120713871,0.13389376389094976,0.98824468182741765,0.15288050510063725,0.98512993476738953,0.17181097643980375,0.9816525964545445,0.19067821027598067,0.9778139467733028,0.20947526225217258,0.97361539859393453,0.22819521384282795,0.96905849725253246,0.24683117490030193,0.96414491998222918,0.26537628619087439,0.95887647529586684,0.28382372191938954,0.95325510232034805,0.30216669224158832,0.94728287008291279,0.32039844576320814,0.94096197674960236,0.33851227202493073,0.93429474881619357,0.35650150397226332,0.9272836402518978,0.37435952040944409,0.91993123159614254,0.39207974843646826,0.912240229008767,0.40965566586833907,0.90421346327398056,0.42708080363565143,0.89585388875845207,0.44434874816562614,0.88716458232391282,0.46145314374271779,0.87814874219467309,0.47838769484792726,0.86880968678046988,0.49514616847595799,0.85915085345507824,0.51172239642936346,0.84917579729113635,0.52811027758884121,0.83888818975165003,0.54430378015883696,0.82829181733865787,0.56029694388763485,0.81739058019955446,0.57608388226111285,0.80618849069158549,0.59165878466935951,0.79468967190504114,0.60701591854535253,0.78289835614569425,0.62214963147491265,0.77081888337703852,0.63705435327715598,0.75845569962290305,0.65172459805467875,0.74581335533102855,0.66615496621272208,0.73289650369821047,0.68034014644656893,0.71970989895762205,0.69427491769644789,0.70625839462895112,0.70795415106921777,0.69254694173199149,0.7213728117261321,0.67858058696434997,0.73452596073598264,0.66436447084393546,0.74740875689294517,0.64990382581691819,0.76001645849845434,0.63520397433185227,0.7723444251064544,0.62027032688067185,0.78438811923138185,0.60510838000728195,0.7961431080182525,0.58972371428447568,0.807605064874238,0.57412199225992522,0.81876977106112947,0.55830895637199851,0.82963311724810618,0.5422904268361729,0.84019110502423278,0.52607229950282064,0.85043984837013287,0.50966054368715641,0.86037557508829365,0.49306119997214548,0.86999462819147788,0.4762803779851788,0.87929346724873103,0.4593242541493382,0.88826866968848683,0.44219906941007425,0.89691693205829515,0.42491112693813671,0.90523507124070413,0.40746678980960094,0.91322002562485372,0.38987247866384761,0.92086885623334425,0.372134669340353,0.92817874780397025,0.35425989049516343,0.93514700982591759,0.3362547211979286,0.94177107753004563,0.3181257885103817,0.9480485128328866,0,0.99958594343222806,0.028773975962709773,0.99834411661459477,0.057524123817963006,0.99627554792020001,0.086226635190671919,0.99338195035795129,0.1148577411541457,0.98966572015399901,0.14339373191345081,0.98512993476738953,0.17181097643980373,0.97977835034158178,0.20008594203973623,0.97361539859393453,0.22819521384282795,0.96664618314574391,0.25611551419186818,0.95887647529586684,0.28382372191938954,0.95031270924143318,0.31129689149461048,0.94096197674960247,0.33851227202493073,0.93083202128477793,0.36544732609624431,0.91993123159614265,0.3920797484364682,0.90826863477082542,0.41838748438683115,0.89585388875845207,0.44434874816562614,0.88269727437326961,0.46994204090930269,0.86880968678046999,0.49514616847595788,0.85420262647375944,0.51994025899648399,0.83888818975165003,0.54430378015883696,0.8228790587003546,0.56821655621111422,0.80618849069158549,0.59165878466935951,0.78883030740395021,0.61461105271626004,0.77081888337703863,0.63705435327715587,0.75216913410767716,0.65897010076004747,0.73289650369821047,0.68034014644656893,0.71301695206703719,0.70114679352118014,0.69254694173199161,0.72137281172613199,0.67150342417751696,0.74100145163006914,0.64990382581691819,0.76001645849845434,0.62776603356132032,0.77840208575432746,0.60510838000728195,0.7961431080182525,0.58194962825533181,0.81322483371665499,0.55830895637199862,0.82963311724810607,0.53420594150820189,0.84535437069748187,0.50966054368715663,0.86037557508829354,0.48469308927521559,0.87468429116387347,0.4593242541493382,0.88826866968848683,0.43357504657512602,0.90111746125983894,0.40746678980960094,0.91322002562485372,0.38102110444313658,0.92456634049100683,0.35425989049516343,0.93514700982591759,0.32720530927847485,0.94495327163832687,0.29987976504715314,0.95397700523401729,0.272305886443312,0.96221073794066658,0.24450650775802121,0.96964765129606578,0.21650465002193006,0.97628158669457732,0.18832350194124939,0.98210705048715752,0.15998640069487935,0.98711921853071904,0.13151681260858569,0.9913139401830674,0.10293831372222599,0.99468774174010233,0.074274570266122178,0.99723782931243787,0.045549319062744113,0.99896209113905832,0.01678634786993511,0.99985909933609618,-0.011990524318042799,0.9999281110792807,-0.040757466995330872,0.99916906921908089,-0.069490657878828618,0.99758260232803153,-0.098166302635739319,0.99517002418020428,-0.12676065458796981,0.99193333266325379,-0.15525003437706564,0.98787520812394114,-0.18361084957340015,0.98299901114850274,-0.21181961421337459,0.97730877977970565,-0.23985296824845306,0.97080922617289056,-0.26768769688992577,0.96350573269377449,-0.2953007498333805,0.95540434746124281,0,0.99926393894695731,0.038361182466285143,0.99705683935957679,0.076665892587846091,0.99338195035795129,0.1148577411541457,0.98824468182741765,0.15288050510063725,0.9816525964545445,0.19067821027598067,0.97361539859393453,0.22819521384282795,0.96414491998222918,0.26537628619087439,0.95325510232034805,0.30216669224158832,0.94096197674960236,0.33851227202493073,0.9272836402518978,0.37435952040944409,0.912240229008767,0.40965566586833907,0.89585388875845207,0.44434874816562614,0.87814874219467309,0.47838769484792726,0.85915085345507824,0.51172239642936346,0.83888818975165003,0.54430378015883696,0.81739058019955446,0.57608388226111285,0.79468967190504114,0.60701591854535253,0.77081888337703852,0.63705435327715598,0.74581335533102855,0.66615496621272208,0.71970989895762205,0.69427491769644789,0.69254694173199149,0.7213728117261321,0.66436447084393546,0.74740875689294517,0.63520397433185227,0.7723444251064544,0.60510838000728195,0.7961431080182525,0.57412199225992522,0.81876977106112947,0.5422904268361729,0.84019110502423278,0.50966054368715641,0.86037557508829365,0.4762803779851788,0.87929346724873103,0.44219906941007425,0.89691693205829515,0.40746678980960094,0.91322002562485372,0.372134669340353,0.92817874780397025,0.3362547211979286,0.94177107753004563,0.29987976504715314,0.95397700523401729,0.26306334926508379,0.96477856229988679,0.22585967211126068,0.97415984751671725,0.18832350194124917,0.98210705048715763,0.15051009658093475,0.98860847195803336,0.11247512198025425,0.99365454104307649,0.074274570266122178,0.99723782931243787,0.035964677315181139,0.99935306172824367,-0.0023981600322735895,0.99999712441009525,-0.040757466995331094,0.99916906921908089,-0.079056773990236515,0.99687011515355228,-0.11723969976051532,0.99310364655461025,-0.15525003437706564,0.98787520812394114,-0.19303182198603916,0.98119249676133891,-0.23052944318268886,0.97306535023392926,-0.26768769688992577,0.96350573269377449,-0.3044518816210442,0.95252771706518113,-0.34076787600698871,0.94014746432763707,-0.37658221846961976,0.92638319972487604,-0.41184218592368282,0.91125518593509403,-0.44649587139162922,0.89478569324181179,-0.4804922604170242,0.87699896674929934,-0.51378130616405593,0.8579211906908214,-0.54631400309259037,0.83758044988224811,-0.57804245910030827,0.81600668837777823,-0.60891996602572862,0.79323166538863377,-0.63890106840832539,0.76928890852962406,-0.66794163040451704,0.74421366446240123,-0.69599890076101534,0.71804284700807253,-0.72303157574989219,0.69081498280554676,-0.74899985997270968,0.66257015459561819,-0.77386552494420657,0.63334994221427665,-0.79759196536929577,0.60319736138211355,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99997862621587907,0.0065381275150541273,0.99991450577719376,0.013075975541056132,0.99980764142493683,0.019613264600901365,0.99965803772729944,0.026149715241379632,0.99946570107947585,0.032685048045121116,0.9992306397033901,0.039218983642540797,0.99895286364734437,0.045751242723780859,0.99863238478558947,0.052281546050650433,0.99826921681781766,0.058809614468562421,0.99786337526857627,0.065335168918466649,0.99741487748660462,0.071857930448778959,0.99692374264409223,0.078377620227305669,0.9963899917358594,0.084893959553163104,0.99581364757845936,0.091406669868691226,0.99519473480920351,0.097915472771361381,0,0.99991450577719376,0.013075975541056132,0.99965803772729944,0.026149715241379632,0.9992306397033901,0.039218983642540797,0.99863238478558947,0.052281546050650433,0.99786337526857627,0.065335168918466649,0.99692374264409223,0.078377620227305669,0.99581364757845936,0.091406669868691226,0.99453327988510742,0.10442009002567733,0.99308285849211808,0.11741565555377921,0.99146263140479085,0.13039114436144741,0.98967287566323692,0.14334433779001962,0.98771389729500847,0.15627302099308574,0.98558603126277178,0.16917498331520114,0.98328964140703223,0.18204801866988293,0.98082512038392156,0.19488992591682555,0,0.99980764142493683,0.019613264600901365,0.9992306397033901,0.039218983642540797,0.99826921681781766,0.058809614468562421,0.99692374264409223,0.078377620227305669,0.99519473480920351,0.097915472771361381,0.99308285849211808,0.11741565555377921,0.99058892616787431,0.1368706665198122,0.98771389729500847,0.15627302099308574,0.98445887794643516,0.17561525455508123,0.98082512038392156,0.19488992591682555,0.97681402257632155,0.21408961978168281,0.97242712766175254,0.23320694969814601,0.96766612335392388,0.25223456090153173,0.96253284129284478,0.27116513314348395,0.95702925634016034,0.28999138350819958,0,0.99965803772729944,0.026149715241379632,0.99863238478558947,0.052281546050650433,0.99692374264409223,0.078377620227305669,0.99453327988510742,0.10442009002567733,0.99146263140479085,0.13039114436144741,0.98771389729500847,0.15627302099308574,0.98328964140703223,0.18204801866988293,0.97819288959805883,0.20769850923827013,0.97242712766175254,0.23320694969814601,0.96599629894422434,0.2585558942009652,0.95890480164708147,0.28372800598138226,0.95115748581938919,0.30870606921429078,0.9427596500406028,0.33347300078914943,0.93371703779673987,0.35801186199353979,0.92403583355226848,0.38230587009796796,0,0.99946570107947585,0.032685048045121116,0.99786337526857627,0.065335168918466649,0.99519473480920351,0.097915472771361381,0.99146263140479085,0.13039114436144741,0.98667105317297898,0.16272748025617698,0.98082512038392156,0.19488992591682555,0.97393107998877593,0.22684411262339732,0.96599629894422434,0.2585558942009652,0.95702925634016034,0.28999138350819964,0.94703953433895105,0.3211169886490946,0.93603780793595981,0.35189944886919516,0.92403583355226848,0.38230587009796796,0.91104643647179195,0.41230376009933395,0.89708349713620683,0.44186106319280177,0.88216193631234185,0.47094619450809838,0,0.9992306397033901,0.039218983642540797,0.99692374264409223,0.078377620227305669,0.99308285849211808,0.11741565555377921,0.98771389729500847,0.15627302099308574,0.98082512038392156,0.19488992591682555,0.97242712766175254,0.23320694969814601,0.96253284129284478,0.27116513314348395,0.95115748581938919,0.30870606921429078,0.93831856473510811,0.34577199289914567,0.92403583355226848,0.38230587009796796,0.90833126940346898,0.41825148538156159,0.89122903722497282,0.45355352849145386,0.87275545257362297,0.48815767944692884,0.85293894113455326,0.52201069212830031,0.83180999498200059,0.55506047620781296,0,0.99895286364734437,0.045751242723780859,0.99581364757845936,0.091406669868691226,0.99058892616787431,0.13687066651981222,0.98328964140703223,0.18204801866988293,0.97393107998877593,0.22684411262339732,0.96253284129284467,0.27116513314348401,0.94911879633942808,0.31491825992659611,0.93371703779673987,0.35801186199353979,0.91635982114730974,0.40035568958973272,0.89708349713620683,0.44186106319280177,0.87592843564266631,0.48244105923168623,0.85293894113455315,0.52201069212830042,0.82816315988272482,0.56048709228050941,0.80165297912960964,0.59778967961367613,0.77346391842317186,0.63384033233731107,0,0.99863238478558947,0.052281546050650433,0.99453327988510742,0.10442009002567733,0.98771389729500847,0.15627302099308574,0.97819288959805883,0.20769850923827013,0.96599629894422434,0.2585558942009652,0.95115748581938919,0.30870606921429078,0.93371703779673987,0.35801186199353979,0.91372265852040047,0.40633840983398517,0.89122903722497282,0.45355352849145386,0.86629769914787857,0.49952807373669372,0.83899683724365748,0.54413629459459856,0.80940112566052302,0.58725617730210233,0.7775915154893599,0.62876977904393638,0.74365501334383721,0.66856355055340644,0.70768444337727132,0.70652864669580218,0,0.99826921681781766,0.058809614468562421,0.99308285849211808,0.11741565555377921,0.98445887794643516,0.17561525455508123,0.97242712766175254,0.23320694969814601,0.95702925634016034,0.28999138350819958,0.93831856473510811,0.34577199289914567,0.91635982114730974,0.40035568958973272,0.89122903722497282,0.45355352849145386,0.86301320484443267,0.50518136175451012,0.83180999498200059,0.55506047620781296,0.79772741961939642,0.60301821198648675,0.76088345785310629,0.64888856020544872,0.72140564750191039,0.69251273761018239,0.67943064362625916,0.7337397362155107,0.63510374548771265,0.77242684602975753,0,0.99786337526857627,0.065335168918466649,0.99146263140479085,0.13039114436144741,0.98082512038392156,0.19488992591682555,0.96599629894422434,0.2585558942009652,0.94703953433895105,0.3211169886490946,0.92403583355226848,0.38230587009796796,0.89708349713620683,0.44186106319280177,0.86629769914787857,0.49952807373669372,0.83180999498200059,0.55506047620781307,0.79376775920187448,0.60822096679712956,0.75233355577111349,0.65878237746678758,0.70768444337727132,0.70652864669580218,0.66001121881590175,0.75125574276483764,0.60951760166825375,0.79277253563464223,0.55641936375668077,0.83090161369238569,0,0.99741487748660462,0.071857930448778959,0.98967287566323692,0.14334433779001962,0.97681402257632155,0.21408961978168284,0.95890480164708147,0.28372800598138226,0.93603780793595981,0.35189944886919516,0.90833126940346898,0.41825148538156165,0.8759284356426662,0.48244105923168634,0.83899683724365748,0.54413629459459856,0.79772741961939642,0.60301821198648675,0.75233355577111349,0.65878237746678758,0.70304994309761693,0.71114047663625324,0.65013138995223463,0.75982180529304066,0.5938514982211911,0.8045746690397646,0.53450124873481708,0.84516768460520375,0.47238749682535847,0.88139097615250861,0,0.99692374264409223,0.078377620227305669,0.98771389729500847,0.15627302099308574,0.97242712766175254,0.23320694969814601,0.95115748581938919,0.30870606921429078,0.92403583355226848,0.38230587009796796,0.89122903722497282,0.45355352849145386,0.85293894113455326,0.52201069212830031,0.80940112566052302,0.58725617730210233,0.76088345785310629,0.64888856020544872,0.70768444337727132,0.70652864669580218,0.65013138995223474,0.75982180529304066,0.58857839358590391,0.80844014905485539,0.52340415999397893,0.85208455290598795,0.45500967460746577,0.8904864940096554,0.38381573550391179,0.9234097038582556,0,0.9963899917358594,0.084893959553163104,0.98558603126277178,0.16917498331520114,0.96766612335392388,0.25223456090153173,0.9427596500406028,0.33347300078914943,0.91104643647179195,0.41230376009933395,0.87275545257362297,0.48815767944692884,0.82816315988272493,0.56048709228050941,0.7775915154893599,0.62876977904393638,0.72140564750191039,0.6925127376101825,0.66001121881590175,0.75125574276483764,0.5938514982211911,0.8045746690397646,0.52340415999397893,0.85208455290598795,0.44917783508063902,0.89344237221673695,0.37170843877387955,0.9283495228330142,0.29155530139547081,0.95655397455041513,0,0.99581364757845936,0.091406669868691226,0.98328964140703223,0.18204801866988293,0.96253284129284467,0.27116513314348401,0.93371703779673987,0.35801186199353979,0.89708349713620683,0.44186106319280177,0.85293894113455315,0.52201069212830042,0.80165297912960964,0.59778967961367613,0.74365501334383721,0.66856355055340644,0.67943064362625916,0.7337397362155107,0.60951760166825375,0.79277253563464223,0.53450124873481719,0.84516768460520364,0.45500967460746555,0.89048649400965552,0.37170843877387932,0.9283495228330142,0.28529499789475687,0.95843975511047674,0.19649286620505416,0.98050525420852419,0,0.99519473480920351,0.097915472771361381,0.98082512038392156,0.19488992591682555,0.95702925634016034,0.28999138350819958,0.92403583355226848,0.38230587009796796,0.88216193631234185,0.47094619450809838,0.83180999498200059,0.55506047620781296,0.77346391842317197,0.63384033233731096,0.70768444337727132,0.70652864669580218,0.63510374548771265,0.77242684602975753,0.55641936375668077,0.83090161369238569,0.47238749682535869,0.8813909761525085,0.38381573550391179,0.9234097038582556,0.29155530139547081,0.95655397455041513,0.19649286620505438,0.98050525420852419,0.099542030354207722,0.99503335833175055,0,0.99453327988510742,0.10442009002567733,0.97819288959805883,0.20769850923827013,0.95115748581938919,0.30870606921429078,0.91372265852040047,0.40633840983398517,0.86629769914787857,0.49952807373669372,0.80940112566052302,0.58725617730210233,0.74365501334383721,0.66856355055340644,0.66977819338717659,0.74256122418492188,0.58857839358590391,0.80844014905485539,0.5009434070978166,0.86548004187573913,0.40783138580972045,0.9130572603887025,0.31026036444104343,0.95065162191883468,0.20929712992207877,0.97785209076136892,0.10604555774284545,0.99436127221599335,0.0016345427963967241,0.99999866413403116,0,0.99382931108176087,0.11092024357506909,0.97539339913049472,0.22047157851446403,0.94491978870135218,0.32730199040120717,0.90278456613468105,0.43009304475777765,0.84950773813240066,0.52757615834415095,0.7857468141588162,0.61854825522288137,0.71228869186788868,0.70188661437381183,0.63003994570196853,0.77656272561838846,0.5400156385140662,0.84165498285238316,0.44332679429365474,0.89636005793504181,0.34116668659983052,0.94000281486519655,0.23479611192145836,0.97204464188974671,0.12552782971132748,0.99209009871481124,0.014710361125735968,0.99989179678380724,-0.096288653584619285,0.99535345239309903,0,0.99308285849211808,0.11741565555377921,0.97242712766175254,0.23320694969814601,0.93831856473510811,0.34577199289914567,0.89122903722497282,0.45355352849145386,0.83180999498200059,0.55506047620781296,0.76088345785310629,0.64888856020544872,0.67943064362625916,0.7337397362155107,0.58857839358590391,0.80844014905485539,0.4895835834717176,0.87195637207086896,0.38381573550391179,0.9234097038582556,0.27273807202524109,0.96208832446296444,0.15788727286899965,0.98745714290089071,0.040852216495301338,0.99916519975798845,-0.076748001003214439,0.9970505224621321,-0.19328646493495738,0.98114236605751948,0,0.99229395402521225,0.12390604829874093,0.96929458238998012,0.24590244518799312,0.93135635352472834,0.36410897098138251,0.87906397490113208,0.47670381583434152,0.81322338146680029,0.58195165764494827,0.7348493145017575,0.67823040699772308,0.64514968233253112,0.7640562069548511,0.5455069439379564,0.83810630239574702,0.43745680236427792,0.89923942644060095,0.32266453632859388,0.94651338976046906,0.20289933479014663,0.97919960168584419,0.080007030047405739,0.99679429931304964,-0.044118350399038012,0.99902631154442956,-0.16756377477246842,0.9858612384022416,-0.28842669084168737,0.95750198120427599,0,0.99146263140479085,0.13039114436144741,0.96599629894422434,0.2585558942009652,0.92403583355226848,0.38230587009796796,0.86629769914787857,0.49952807373669372,0.79376775920187448,0.60822096679712956,0.70768444337727132,0.70652864669580218,0.60951760166825375,0.79277253563464223,0.5009434070978166,0.86548004187573913,0.38381573550391157,0.9234097038582556,0.26013451109673014,0.96557238782831045,0.13201155827841407,0.99124817703787227,0.0016345427963967241,0.99999866413403116,-0.12877038207429581,0.9916744368493321,-0.25697658651315997,0.9664176291769746,-0.38079498327322114,0.92465949447023321,0,0.99058892616787431,0.1368706665198122,0.96253284129284478,0.27116513314348395,0.91635982114730974,0.40035568958973272,0.85293894113455326,0.52201069212830031,0.77346391842317197,0.63384033233731096,0.67943064362625916,0.7337397362155107,0.57260902492739563,0.81982858243153311,0.45500967460746577,0.8904864940096554,0.32884606500341118,0.94438353730450653,0.19649286620505438,0.98050525420852419,0.060441249664014055,0.99817175643225464,-0.076748001003214439,0.9970505224621321,-0.21249268946262409,0.97716265632950838,-0.3442378091433943,0.93888249038745841,-0.46950363394884903,0.88293053957195589,0,0.98967287566323692,0.14334433779001962,0.95890480164708147,0.28372800598138226,0.90833126940346898,0.41825148538156165,0.83899683724365748,0.54413629459459856,0.75233355577111349,0.65878237746678758,0.65013138995223463,0.75982180529304066,0.53450124873481708,0.84516768460520375,0.40783138580972045,0.9130572603887025,0.27273807202524109,0.96208832446296444,0.13201155827841407,0.99124817703787227,-0.011441555020875007,0.99993454326706022,-0.15465835159755087,0.98796801278236146,-0.29468079612089326,0.95559574528016633,-0.42861683020184249,0.90348636562359086,-0.55370010568614392,0.83271615389828546,0,0.98871451904981,0.1498118814383653,0.9551128003597944,0.29624236460856102,0.89995326704229262,0.43598637265389845,0.82448092282225682,0.56588974889297994,0.73039925110560977,0.68302044916998239,0.61983176572019194,0.78473472091158869,0.49527408116605859,0.86873677516559433,0.35953758419568033,0.9331306047658785,0.21568597811066673,0.97646277903791345,0.066966132031271081,0.99775524912714464,-0.083265204062817968,0.99652742350242285,-0.23161716440837804,0.97280701536914416,-0.37474130256060256,0.92712941715554631,-0.50940716905023276,0.86052561619060919,-0.63257522573545,0.77449892432833278,0,0.98771389729500847,0.15627302099308574,0.95115748581938919,0.30870606921429078,0.89122903722497282,0.45355352849145386,0.80940112566052302,0.58725617730210233,0.70768444337727132,0.70652864669580218,0.58857839358590391,0.80844014905485539,0.45500967460746577,0.8904864940096554,0.31026036444104343,0.95065162191883468,0.15788727286899965,0.98745714290089071,0.0016345427963967241,0.99999866413403116,-0.15465835159755065,0.98796801278236146,-0.30715094920767366,0.95166080848211099,-0.45209617060199464,0.89196919931520735,-0.58593239202721625,0.81035993976335263,-0.70537096235918251,0.7088383493156114,0,0.98667105317297898,0.16272748025617698,0.94703953433895105,0.3211169886490946,0.88216193631234185,0.47094619450809838,0.79376775920187448,0.60822096679712956,0.68421340558059629,0.72928184923512418,0.55641936375668077,0.83090161369238569,0.41379235370668971,0.91037129129486383,0.26013451109673014,0.96557238782831045,0.099542030354207722,0.99503335833175055,-0.063704031247604778,0.99796883538655867,-0.22525187755908466,0.97430056535758369,-0.38079498327322114,0.92465949447023321,-0.52618689681926745,0.85036894911309502,-0.65755177602775561,0.75340935874380022,-0.77138770991886918,0.6363654618111535,0,0.98558603126277178,0.16917498331520114,0.9427596500406028,0.33347300078914943,0.87275545257362297,0.48815767944692884,0.7775915154893599,0.62876977904393638,0.66001121881590175,0.75125574276483764,0.52340415999397893,0.85208455290598795,0.37170843877387955,0.9283495228330142,0.20929712992207877,0.97785209076136892,0.040852216495301116,0.99916519975798845,-0.12877038207429581,0.9916744368493321,-0.29468079612089326,0.95559574528016633,-0.45209617060199464,0.89196919931520735,-0.59647854494454045,0.80262902104324874,-0.7236656730885701,0.69015070353747143,-0.8299910124563924,0.55777676470216364,0,0.98445887794643516,0.17561525455508123,0.93831856473510811,0.34577199289914567,0.86301320484443267,0.50518136175451012,0.76088345785310629,0.64888856020544872,0.63510374548771265,0.77242684602975753,0.4895835834717176,0.87195637207086896,0.32884606500341118,0.94438353730450653,0.15788727286899965,0.98745714290089071,-0.017979010022135145,0.99983836453630037,-0.19328646493495738,0.98114236605751948,-0.36258614276206713,0.93195026105309176,-0.52061582958998343,0.85379105053890869,-0.66246360811654847,0.74909409817539219,-0.78372053106354456,0.62111362019317828,-0.88061766115225448,0.47382753704985647,0,0.98328964140703223,0.18204801866988293,0.93371703779673987,0.35801186199353979,0.85293894113455315,0.52201069212830042,0.74365501334383721,0.66856355055340644,0.60951760166825375,0.79277253563464223,0.45500967460746555,0.89048649400965552,0.28529499789475687,0.95843975511047674,0.10604555774284545,0.99436127221599335,-0.076748001003214439,0.9970505224621321,-0.25697658651315997,0.9664176291769746,-0.4286168302018421,0.90348636562359108,-0.58593239202721659,0.81035993976335241,-0.72366567308857044,0.6901507035374711,-0.83721352835246132,0.54687613583298955,-0.92278110706104532,0.38532457545709631,0,0.98207837162658185,0.18847300067458328,0.92895585603343711,0.37019051519614077,0.84253653718600863,0.53863919603627941,0.72591796491763172,0.68778129387898013,0.58328012865557111,0.81227107021950529,0.41973563298678113,0.9076464060421251,0.24114644525905019,0.97048873869763363,0.053913783580311951,0.99854559432208967,-0.13525132368548876,0.99081132383583659,-0.31956858303108082,0.94756314868166291,-0.49243146360686718,0.87035122430545164,-0.64764399680237239,0.76194307753653667,-0.77964285993994276,0.62622440941300483,-0.88369678387784778,0.46805981900174715,-0.95607613710486583,0.29311844032513168,0,0.98082512038392156,0.19488992591682555,0.92403583355226848,0.38230587009796796,0.83180999498200059,0.55506047620781296,0.70768444337727132,0.70652864669580218,0.55641936375668077,0.83090161369238569,0.38381573550391179,0.9234097038582556,0.19649286620505438,0.98050525420852419,0.0016345427963967241,0.99999866413403116,-0.19328646493495738,0.98114236605751948,-0.38079498327322114,0.92465949447023321,-0.55370010568614347,0.83271615389828568,-0.70537096235918251,0.7088383493156114,-0.8299910124563924,0.55777676470216364,-0.92278110706104521,0.38532457545709675,-0.980182768385924,0.19809528151701675,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99997485448833301,0.0070915718312131127,0.99989941921792547,0.014182787020021789,0.99977369798249438,0.021273288941957496,0.99959769710468938,0.028362721008422635,0.99937142543577462,0.035450726684623728,0.99909489435518395,0.042536949507501906,0.99876811776994834,0.049621033103659846,0.99839111211399678,0.056702621207284122,0.99796389634732929,0.063781357678062159,0.99748649195506423,0.070856886519092929,0.9969589229463568,0.077928851894790388,0.9963812158531925,0.084996898148778824,0.99575339972905208,0.092060669821779142,0.99507550614745099,0.099119811669485289,0.99434756920035117,0.10617396868042993,0.99356962549644645,0.11322278609383818,0.99274171415932211,0.12026590941746905,0.99186387682548616,0.12730298444544313,0.99093615764227672,0.13433365727605595,0.98995860326564078,0.14135757432957619,0.98893126285778832,0.14837438236602735,0.9878541880847197,0.15538372850295276,0.98672743311362743,0.16238526023316235,0.98555105461017223,0.16937862544246041,0.98432511173563275,0.17636347242735409,0.98304966614393074,0.18333944991274065,0.98172478197853019,0.1903062070695736,0.98035052586921156,0.19726339353250619,0.97892696692872094,0.20421065941751174,0.97745417674929413,0.21114765533947941,0.97593222939905666,0.21807403242978554,0.97436120141829796,0.22498944235383814,0.97274117181562292,0.23189353732859544,0.97107222206397825,0.23878597014005598,0.96935443609655469,0.24566639416072031,0.96758790030256658,0.25253446336702357,0.96577270352290656,0.25938983235673696,0.96390893704567826,0.26623215636633868,0.9619966946016052,0.27306109128835238,0.96003607235931665,0.27987629368865247,0.95802716892051165,0.28667742082373598,0.95597008531499983,0.29346413065795957,0.95386492499562081,0.30023608188074052,0.95171179383304128,0.30699293392372184,0.94951080011043099,0.31373434697789987,0.94726205451801626,0.32045998201071341,0.94496567014751442,0.32716950078309393,0.94262176248644536,0.33386256586647645,0.94023044941232403,0.34053884065976864,0.93779185118673181,0.347197989406279,0.93530609044926916,0.35383967721060267,0.93277329221138727,0.3604635700554632,0.93019358385010154,0.36706933481851101,0.92756709510158519,0.37365663928907628,0.92489395805464514,0.38022515218487618,0.92217430714407922,0.38677454316867532,0.91940827914391454,0.393304482864899,0.91659601316053008,0.39981464287619756,0.91373765062565981,0.40630469579996198,0.91083333528928079,0.41277431524478914,0.90788321321238341,0.41922317584689667,0.90488743275962569,0.4256509532864855,0.90184614459187251,0.43205732430405047,0.89875950165861784,0.43844196671663727,0.89562765919029375,0.44480455943404529,0.89245077469046263,0.45114478247497569,0.88922900792789705,0.45746231698312367,0.88596252092854455,0.46375684524321381,0.88265147796737908,0.47002805069697851,0.87929604556013918,0.47627561795907797,0.87589639245495465,0.4824992328329612,0.87245268962385891,0.48869858232666752,0.86896511025419143,0.49487335466856658,0.86543382973988781,0.50102323932303872,0.8618590256726586,0.50714792700609113,0.8582408778330588,0.5132471097009127,0.85457956818144554,0.51932048067336412,0.85087528084882813,0.52536773448740437,0.84712820212760731,0.53138856702045034,0.84333852046220625,0.53738267547867302,0.83950642643959428,0.54334975841222388,0.83563211277970117,0.54928951573039586,0.83171577432572552,0.55520164871671518,0.82775760803433607,0.56108586004396366,0.82375781296576611,0.56694185378913242,0.8197165902738025,0.57276933544830322,0.8156341431956704,0.5785680119514599,0.81151067704181068,0.58433759167722732,0.80734639918555606,0.59007778446753667,0.80314151905270148,0.59578830164221852,0.7988962481109716,0.6014688560135204,0.79461079985938654,0.60711916190054982,0.79028538981752428,0.61273893514364153,0.78592023551468226,0.61832789311864822,0.78151555647893722,0.62388575475115404,0.7770715742261054,0.62941224053060996,0.77258851224860203,0.6349070725243906,0.76806659600420146,0.64036997439177201,0.76350605290469931,0.64580067139782893,0.75890711230447483,0.65119889042725132,0.75427000548895695,0.65656435999808027,0.749594965662993,0.66189681027536029,0.74488222793911996,0.6671959730847099,0.74013202932574029,0.67246158192580896,0.73534460871520368,0.67769337198580004,0.73052020687179176,0.68289108015260724,0.72565906641960987,0.68805444502816804,0.72076143183038621,0.69318320694157864,0.71582754941117621,0.69827710796215436,0.71085766729197553,0.70333589191239998,0.70585203541324193,0.70835930438089367,0.70081090551332503,0.71334709273508179,0.69573453111580608,0.71829900613398423,0.69062316751674868,0.72321479554080803,0.68547707177185857,0.72809421373547401,0.68029650268355712,0.73293701532704758,0.67508172078796524,0.73774295676608104,0.66983298834180072,0.74251179635686126,0.66455056930918965,0.74724329426956504,0.65923472934839089,0.7519372125523206,0.65388573579843579,0.75659331514317407,0.64850385766568397,0.76121136788196109,0.64308936561029406,0.76579113852208403,0.63764253193261222,0.77033239674219045,0.63216363055947833,0.7748349141577574,0.62665293703044911,0.77929846433257643,0.62111072848394122,0.7837228227901416,0.6155372836432943,0.78810776702493845,0.60993288280275271,0.79245307651363406,0.60429780781336973,0.7967585327261677,0.59863234206883353,0.80102391913674031,0.59293677049121374,0.80524902123470454,0.5872113795166336,0.80943362653535222,0.58145645708086413,0.81357752459060051,0.57567229260484398,0.81768050699957551,0.56985917698012367,0.82174236741909323,0.56401740255423671,0.82576290157403653,0.55814726311599727,0.82974190726762842,0.55224905388072443,0.83367918439160082,0.54632307147539683,0.83757453493625778,0.54036961392373373,0.84142776300043431,0.53438898063120777,0.84523867480134784,0.52838147236998745,0.84900707868434422,0.5223473912638108,0.8527327851325357,0.51628704077279186,0.85641560677633233,0.51020072567815822,0.86005535840286507,0.50408875206692438,0.86365185696529989,0.49795142731649822,0.86720492159204343,0.49178906007922146,0.87071437359583992,0.48560196026684888,0.87418003648275666,0.47939043903496159,0.87760173596106039,0.47315480876731858,0.88097929994998303,0.46689538306014722,0.8843125585883751,0.46061247670637201,0.88760134424324855,0.45430640567978264,0.89084549151820758,0.44797748711914442,0.89404483726176553,0.44162603931224859,0.89719922057555102,0.4352523816799046,0.90030848282239939,0.4288568347598774,0.90337246763433032,0.42243972019076631,0.90639102092041224,0.41600136069583005,0.90936399087451114,0.40954208006675591,0.91229122798292595,0.40306220314737684,0.91517258503190679,0.39656205581733445,0.91800791711505914,0.39004196497568938,0.92079708164063112,0.38350225852448244,0.92353993833868442,0.37694326535224365,0.9262363492681488,0.37036531531745115,0.92888617882375935,0.36376873923194397,0.93148929374287603,0.35715386884428407,0.93404556311218556,0.35052103682307212,0.93655485837428576,0.3438705767402182,0.93901705333414986,0.33720282305416577,0.94143202416547367,0.33051811109307067,0.94379964941690275,0.32381677703793821,0.94611981001814049,0.31709915790571602,0.94839238928593572,0.31036559153234422,0.95061727292995157,0.30361641655576654,0.9527943490585129,0.29685197239889949,0.95492350818423299,0.29007259925256162,0.95700464322952106,0.28327863805836612,0.95903764953196557,0.27647043049157422,0.96102242484959921,0.26964831894391111,0.96295886936604036,0.262812646506348,0.96484688569551247,0.2559637569518472,0.96668637888774234,0.24910199471807265,0.96847725643273486,0.24222770489006917,0.97021942826542573,0.23534123318290714,0.97191280677021052,0.22844292592429546,0.97355730678535146,0.2215331300371656,0.97515284560725979,0.21461219302222401,0.97669934299465544,0.20768046294047518,0.97819672117260237,0.20073828839571856,0.97964490483641942,0.19378601851701643,0.9810438211554684,0.18682400294113505,0.98239339977681583,0.17985259179496241,0.98369357282877201,0.17287213567789933,0.98494427492430348,0.16588298564422685,0.98614544316432207,0.15888549318545261,0.98729701714084783,0.15188001021263339,0.98839893894004682,0.14486688903867637,0.98945115314514431,0.13784648236062236,0.99045360683921113,0.13081914324190769,0.99140624960782509,0.12378522509460746,0.9923090335416066,0.11674508166166361,0.99316191323862768,0.109699066999094,0.99396484580669564,0.10264753545818599,0.99471779086550993,0.095590841667677076,0.99542071054869308,0.088529340515919555,0.99607356950569492,0.081463387133032181,0.99667633490357022,0.074393336873041643,0.99722897642863051,0.067319545296010738,0.99773146628796783,0.060242368150156295,0.99818377921085311,0.053162161353959521,0.99858589245000628,0.04607928097826583,0.99893778578274139,0.038994083228377024,0.99923944151198241,0.03190692442613869,0.99949084446715397,0.024818160992019746,0.99969198200494447,0.017728149427187024,0.99984284400994106,0.010637246295577793,0.99994342289513916,0.0035458082059671202,0.99999371360232381,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99994516936551214,0.010471784116245792,0.9997806834748455,0.020942419883356957,0.9995065603657316,0.031410759078128292,0.99912283009885838,0.041875653729199623,0.99862953475457383,0.052335956242943828,0.99802672842827156,0.06279051952931336,0.9973144772244581,0.073238197127631674,0.99649285924950437,0.083677843332315482,0.99556196460308,0.094108313318514311,0.99452189536827329,0.10452846326765346,0.99337276560039645,0.1149371504928666,0.99211470131447788,0.12533323356430423,0.9907478404714436,0.13571557243430438,0.98927233296298833,0.14608302856241159,0.98768834059513777,0.15643446504023087,0.98599603707050498,0.16676874671610226,0.98419560796924188,0.17708474031958327,0.98228725072868872,0.1873813145857246,0.98027117462172186,0.19765734037912613,0.97814760073380569,0.20791169081775931,0.97591676193874743,0.21814324139654251,0.97357890287316029,0.22835087011065572,0.97113427990963608,0.23853345757858085,0.96858316112863119,0.24868988716485474,0.96592582628906831,0.25881904510252074,0.96316256679765822,0.2689198206152657,0.96029368567694307,0.27899110603922922,0.95731949753206724,0.28903179694447156,0.95424032851627694,0.29904079225608665,0.95105651629515353,0.3090169943749474,0.94776841000958567,0.31895930929806993,0.94437637023748111,0.32886664673858318,0.94088076895422545,0.33873792024529137,0.93728198949189157,0.34857204732181518,0.93358042649720174,0.35836794954530021,0.92977648588825146,0.36812455268467792,0.92587058480999473,0.37784078681846711,0.92186315158850052,0.38751558645210293,0.91775462568398114,0.39714789063478056,0.91354545764260087,0.40673664307580015,0.90923610904706853,0.4162807922604011,0.90482705246601958,0.4257792915650726,0.90031877140219352,0.43523109937232746,0.8957117602394129,0.44463517918492745,0.8910065241883679,0.45399049973954675,0.88620357923121473,0.46329603511986167,0.88130345206499228,0.47255076486905395,0.87630668004386358,0.48175367410171521,0.87121381112018947,0.49090375361514077,0.86602540378443871,0.49999999999999994,0.86074202700394364,0.50904141575037132,0.85536426016050671,0.51802700937313018,0.84989269298686398,0.52695579549667759,0.84432792550201519,0.53582679497899655,0.83867056794542405,0.54463903501502697,0.83292124071009954,0.55339154924334399,0.82708057427456183,0.56208337785213058,0.82114920913370404,0.5707135676844316,0.81512779572855421,0.57928117234267884,0.80901699437494745,0.58778525229247314,0.80281747519111457,0.59622487496561571,0.79652991802419637,0.60459911486237483,0.79015501237569041,0.61290705365297637,0.78369345732583984,0.6211477802783103,0.7771459614569709,0.62932039104983739,0.77051324277578925,0.63742398974868963,0.76379602863464224,0.64545768772395051,0.75699505565175651,0.65342060399010538,0.75011106963045959,0.66131186532365183,0.74314482547739436,0.66913060635885813,0.73609708711973443,0.67687596968266073,0.72896862742141155,0.68454710592868862,0.72176022809836227,0.6921431738704068,0.71447267963280336,0.69966334051336543,0.70710678118654768,0.70710678118654746,0.69966334051336554,0.71447267963280325,0.69214317387040691,0.72176022809836204,0.68454710592868873,0.72896862742141144,0.67687596968266073,0.73609708711973421,0.66913060635885824,0.74314482547739424,0.66131186532365194,0.75011106963045959,0.6534206039901056,0.75699505565175629,0.64545768772395062,0.76379602863464213,0.63742398974868975,0.77051324277578914,0.6293203910498375,0.77714596145697079,0.62114778027831041,0.78369345732583973,0.6129070536529766,0.7901550123756903,0.60459911486237494,0.79652991802419626,0.59622487496561594,0.80281747519111446,0.58778525229247325,0.80901699437494734,0.57928117234267895,0.81512779572855409,0.57071356768443182,0.82114920913370393,0.56208337785213069,0.82708057427456172,0.55339154924334411,0.83292124071009943,0.54463903501502708,0.83867056794542394,0.53582679497899677,0.84432792550201496,0.5269557954966777,0.84989269298686387,0.51802700937313029,0.8553642601605066,0.50904141575037143,0.86074202700394353,0.50000000000000011,0.8660254037844386,0.49090375361514094,0.87121381112018936,0.48175367410171532,0.87630668004386358,0.47255076486905406,0.88130345206499217,0.46329603511986178,0.88620357923121462,0.45399049973954686,0.8910065241883679,0.44463517918492751,0.89571176023941279,0.43523109937232773,0.90031877140219341,0.42577929156507283,0.90482705246601947,0.41628079226040138,0.90923610904706842,0.40673664307580037,0.91354545764260076,0.39714789063478079,0.91775462568398103,0.3875155864521031,0.92186315158850052,0.37784078681846728,0.92587058480999473,0.36812455268467809,0.92977648588825135,0.35836794954530038,0.93358042649720174,0.34857204732181529,0.93728198949189145,0.33873792024529148,0.94088076895422545,0.32886664673858329,0.944376370237481,0.31895930929807004,0.94776841000958567,0.30901699437494745,0.95105651629515353,0.29904079225608693,0.95424032851627683,0.28903179694447184,0.95731949753206724,0.2789911060392295,0.96029368567694295,0.26891982061526593,0.9631625667976581,0.25881904510252096,0.9659258262890682,0.24868988716485496,0.96858316112863108,0.23853345757858105,0.97113427990963597,0.22835087011065588,0.97357890287316018,0.2181432413965427,0.97591676193874732,0.20791169081775945,0.97814760073380558,0.19765734037912627,0.98027117462172186,0.18738131458572474,0.98228725072868861,0.17708474031958338,0.98419560796924188,0.16676874671610234,0.98599603707050487,0.15643446504023092,0.98768834059513777,0.14608302856241187,0.98927233296298833,0.13571557243430463,0.9907478404714436,0.12533323356430448,0.99211470131447776,0.11493715049286683,0.99337276560039645,0.10452846326765368,0.99452189536827329,0.094108313318514505,0.99556196460308,0.083677843332315663,0.99649285924950437,0.073238197127631854,0.9973144772244581,0.062790519529313527,0.99802672842827156,0.052335956242943966,0.99862953475457383,0.041875653729199748,0.99912283009885838,0.031410759078128396,0.9995065603657316,0.020942419883357051,0.9997806834748455,0.010471784116245868,0.99994516936551214,0,0,0.9997806834748455,0.020942419883356957,0.99912283009885838,0.041875653729199623,0.99802672842827156,0.06279051952931336,0.99649285924950437,0.083677843332315482,0.99452189536827329,0.10452846326765346,0.99211470131447788,0.12533323356430423,0.98927233296298833,0.14608302856241159,0.98599603707050498,0.16676874671610226,0.98228725072868872,0.1873813145857246,0.97814760073380569,0.20791169081775931,0.97357890287316029,0.22835087011065572,0.96858316112863119,0.24868988716485474,0.96316256679765822,0.2689198206152657,0.95731949753206724,0.28903179694447156,0.95105651629515353,0.3090169943749474,0.94437637023748111,0.32886664673858318,0.93728198949189157,0.34857204732181518,0.92977648588825146,0.36812455268467792,0.92186315158850052,0.38751558645210293,0.91354545764260087,0.40673664307580015,0.90482705246601958,0.4257792915650726,0.8957117602394129,0.44463517918492745,0.88620357923121473,0.46329603511986167,0.87630668004386358,0.48175367410171521,0.86602540378443871,0.49999999999999994,0.85536426016050671,0.51802700937313018,0.84432792550201519,0.53582679497899655,0.83292124071009954,0.55339154924334399,0.82114920913370404,0.5707135676844316,0.80901699437494745,0.58778525229247314,0.79652991802419637,0.60459911486237483,0.78369345732583984,0.6211477802783103,0.77051324277578925,0.63742398974868963,0.75699505565175651,0.65342060399010538,0.74314482547739436,0.66913060635885813,0.72896862742141155,0.68454710592868862,0.71447267963280336,0.69966334051336543,0,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.99802672842827156,0.06279051952931336,0.99211470131447788,0.12533323356430423,0.98228725072868872,0.1873813145857246,0.96858316112863119,0.24868988716485474,0.95105651629515364,0.30901699437494734,0.92977648588825146,0.36812455268467792,0.90482705246601958,0.4257792915650726,0.87630668004386358,0.48175367410171521,0.84432792550201519,0.53582679497899655,0.80901699437494745,0.58778525229247303,0.77051324277578936,0.63742398974868963,0.72896862742141155,0.68454710592868862,0.68454710592868873,0.72896862742141144,0.63742398974868975,0.77051324277578914,0.58778525229247325,0.80901699437494734,0.53582679497899677,0.84432792550201496,0.48175367410171532,0.87630668004386358,0.42577929156507283,0.90482705246601947,0.36812455268467809,0.92977648588825135,0.30901699437494767,0.95105651629515353,0.24868988716485496,0.96858316112863108,0.18738131458572493,0.98228725072868861,0.12533323356430448,0.99211470131447776,0.062790519529313527,0.99802672842827156,2.8327694488239898e-16,1,-0.06279051952931318,0.99802672842827156,-0.12533323356430393,0.99211470131447788,-0.18738131458572438,0.98228725072868872,-0.24868988716485441,0.96858316112863119,-0.30901699437494712,0.95105651629515364,-0.36812455268467759,0.92977648588825157,-0.42577929156507233,0.90482705246601969,-0.48175367410171505,0.87630668004386369,-0.53582679497899643,0.84432792550201519,-0.58778525229247269,0.80901699437494767,-0.63742398974868941,0.77051324277578948,-0.68454710592868839,0.72896862742141177,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.99955243228350332,0.029915466169398455,0.99821012976773515,0.059804153945034168,0.99597429399523907,0.089639308903433496,0.99284692634183735,0.11939422454024434,0.98883082622512852,0.14904226617617444,0.98392958859862967,0.17855689479863665,0.97814760073380569,0.20791169081775934,0.9714900382928674,0.2370803777154975,0.96396286069585324,0.26603684556667512,0.95557280578614068,0.29475517441090421,0.94632738379916415,0.32320965745446001,0.9362348706397372,0.35137482408134268,0.9253043004739967,0.37922546265292839,0.91354545764260087,0.40673664307580021,0.90096886790241915,0.43388373911755812,0.88758578900455409,0.46064245045063229,0.87340820061712976,0.4869888244043673,0.8584487936018661,0.51289927740590613,0.84272095865403918,0.53835061609068235,0.82623877431599491,0.56332005806362206,0.80901699437494745,0.58778525229247314,0.79107103465634121,0.61172429911500636,0.77241695922459952,0.63511576984217877,0.75307146600361097,0.65793872593971259,0.73305187182982634,0.68017273777091947,0.71237609695134474,0.70179790288399135,0.69106264898686465,0.72279486382739155,0.66913060635885824,0.74314482547739424,0.64659960121579962,0.76282957186226652,0.62348980185873359,0.7818314824680298,0.59982189468791369,0.80013354801120629,0.5756170656856735,0.81771938566443136,0.55089698145210253,0.83457325372130264,0.52568376981050469,0.85068006568733956,0.49999999999999989,0.86602540378443871,0.47386866247299869,0.880595531856738,0.44731314831563262,0.89437740766633689,0.4203572283095654,0.90735869456786489,0.39302503165392366,0.91952777255145057,0.36534102436639498,0.93087374864420425,0.33732998738282988,0.9413864666609032,0.30901699437494745,0.95105651629515353,0.28042738930600275,0.95987524154288906,0.25158676374450839,0.96783474845066653,0.22252093395631445,0.97492791218182362,0.19325591779555323,0.98114838339417265,0.1638179114151376,0.98649059392352145,0.13423326581765554,0.9909497617679347,0.10452846326765346,0.99452189536827329,0.074730093586424171,0.99720379718118013,0.044864830350514986,0.99899306654131459,0.014959407015263606,0.99988810181027343,0,0.99821012976773515,0.059804153945034168,0.99284692634183735,0.11939422454024434,0.98392958859862967,0.17855689479863665,0.9714900382928674,0.2370803777154975,0.95557280578614068,0.29475517441090421,0.9362348706397372,0.35137482408134268,0.91354545764260087,0.40673664307580021,0.88758578900455409,0.46064245045063229,0.8584487936018661,0.51289927740590613,0.82623877431599491,0.56332005806362206,0.79107103465634121,0.61172429911500636,0.75307146600361097,0.65793872593971259,0.71237609695134474,0.70179790288399135,0.66913060635885824,0.74314482547739424,0.62348980185873359,0.7818314824680298,0.5756170656856735,0.81771938566443136,0.52568376981050469,0.85068006568733956,0,0.99284692634183735,0.11939422454024434,0.9714900382928674,0.2370803777154975,0.9362348706397372,0.35137482408134268,0.88758578900455409,0.46064245045063229,0.82623877431599491,0.56332005806362206,0.75307146600361097,0.65793872593971259,0.66913060635885824,0.74314482547739424,0.5756170656856735,0.81771938566443136,0.47386866247299869,0.880595531856738,0.36534102436639498,0.93087374864420425,0.25158676374450839,0.96783474845066653,0.13423326581765554,0.9909497617679347,0.014959407015263606,0.99988810181027343,-0.10452846326765355,0.99452189536827329,-0.22252093395631434,0.97492791218182362,-0.33732998738282999,0.9413864666609032,-0.44731314831563268,0.89437740766633678,0,0.98392958859862967,0.17855689479863665,0.9362348706397372,0.35137482408134268,0.8584487936018661,0.51289927740590613,0,0.9362348706397372,0.35137482408134268,0.75307146600361097,0.65793872593971259,0.47386866247299869,0.880595531856738,0,0.8584487936018661,0.51289927740590613,0.47386866247299869,0.880595531856738,-0.044864830350514862,0.9989930665413147,0,0.75307146600361097,0.65793872593971259,0.13423326581765554,0.9909497617679347,-0.55089698145210242,0.83457325372130275,0,0,0,0,0,0,0,0.99996117174520505,0.0088122075529626955,0.999844689996087,0.017623730780645046,0.99965056379821193,0.026433885410909019,0.99937880822674274,0.035241987277897083,0.99902944438526853,0.044047352375162142,0.9986024994041659,0.052849296908785058,0.99809800643849178,0.061647137350475764,0.99751600466540913,0.070440190490653629,0.99685653928114404,0.079227773491503145,0.99611966149747655,0.088009203940000738,0.99530542853776338,0.09678379990090856,0.99441390363249416,0.10555087996973124,0.99344515601438121,0.11430976332563132,0.99239926091298314,0.1230597697842995,0.99127629954886309,0.13180021985077531,0,0.999844689996087,0.017623730780645046,0.99937880822674274,0.035241987277897083,0.9986024994041659,0.052849296908785058,0.99751600466540913,0.070440190490653629,0.99611966149747655,0.088009203940000738,0.99441390363249416,0.10555087996973124,0.99239926091298314,0.1230597697842995,0.99007635912728087,0.1405304347722143,0.98744591981515817,0.15795744819538038,0.9845087600436947,0.17533539687475186,0.98126579215348175,0.19265888287177388,0.97771802347523074,0.20992252516509055,0.97386655601687633,0.22712096132199761,0.96971258612127043,0.24424884916412135,0.96525740409457461,0.26130086842680633,0,0.99965056379821193,0.026433885410909019,0.9986024994041659,0.052849296908785058,0.99685653928114404,0.079227773491503145,0.99441390363249416,0.10555087996973124,0.99127629954886309,0.13180021985077531,0.98744591981515817,0.15795744819538038,0.98292544137807047,0.18400428443850239,0.97771802347523074,0.20992252516509055,0.97182730542730511,0.2356940568319518,0.96525740409457461,0.26130086842680633,0.9580129109997747,0.28672506405568676,0.95009888911920748,0.31194887544988514,0.94152086934436641,0.33695467438370491,0.93228484661654942,0.36172498499434197,0.92239727573715991,0.38624249599528243,0,0.99937880822674274,0.035241987277897083,0.99751600466540913,0.070440190490653629,0.99441390363249416,0.10555087996973124,0.99007635912728087,0.1405304347722143,0.9845087600436947,0.17533539687475186,0.97771802347523074,0.20992252516509055,0.96971258612127043,0.24424884916412135,0.96050239380546487,0.27827172241169551,0.95009888911920748,0.31194887544988514,0.93851499720554654,0.34523846833786209,0.92576510970120018,0.37809914263315209,0.91186506685662383,0.41049007277468347,0.8968321378563433,0.44237101680379198,0.88068499936400457,0.47370236636016844,0.86344371231879369,0.50444519589063408,0,0.99902944438526853,0.044047352375162142,0.99611966149747655,0.088009203940000738,0.99127629954886309,0.13180021985077531,0.9845087600436947,0.17533539687475186,0.97583017952890083,0.21853022839093245,0.96525740409457461,0.26130086842680633,0.95281095667383808,0.30356429441270844,0.93851499720554654,0.34523846833786209,0.92239727573715991,0.38624249599528249,0.90448907855881377,0.42649678400643065,0.88482516747315054,0.46592319432081408,0.86344371231879369,0.50444519589063408,0.84038621687844572,0.54198801322606205,0.81569743831542896,0.57847877154278271,0.78942530029505387,0.6138466382200557,0,0.9986024994041659,0.052849296908785058,0.99441390363249416,0.10555087996973124,0.98744591981515817,0.15795744819538038,0.97771802347523074,0.20992252516509055,0.96525740409457461,0.26130086842680633,0.95009888911920748,0.31194887544988514,0.93228484661654942,0.36172498499434197,0.91186506685662383,0.41049007277468347,0.8888966231481934,0.45810784031245166,0.86344371231879369,0.50444519589063408,0.83557747528452464,0.54937262654517072,0.80537579821110405,0.59276456005384381,0.77292309482194277,0.63449971591078747,0.73831007046168617,0.67446144430564758,0.70163346857466846,0.71253805215993882,0,0.99809800643849178,0.061647137350475764,0.99239926091298314,0.1230597697842995,0.98292544137807047,0.18400428443850239,0.96971258612127043,0.24424884916412135,0.95281095667383808,0.30356429441270838,0.93228484661654942,0.36172498499434197,0.90821233700774806,0.41850967839098374,0.88068499936400457,0.47370236636016844,0.8498075473232467,0.52709309662757664,0.81569743831542896,0.5784787715427826,0.77848442675598184,0.62766392066010157,0.73831007046168617,0.67446144430564758,0.6953271921665608,0.71869332530208363,0.64969929818615069,0.76019130614367281,0.60159995644160769,0.79879752904566226,0,0.99751600466540913,0.070440190490653629,0.99007635912728087,0.1405304347722143,0.97771802347523074,0.20992252516509055,0.96050239380546487,0.27827172241169551,0.93851499720554654,0.34523846833786209,0.91186506685662383,0.41049007277468347,0.88068499936400457,0.47370236636016844,0.84512969701205654,0.5345613110096068,0.80537579821110405,0.59276456005384381,0.76162079995945398,0.64802296029471163,0.71408207668015056,0.70006198851541956,0.66299580030687011,0.74862311530933423,0.60861576698395847,0.79346508945165828,0.55121213620955356,0.83436513643326482,0.49107008868571961,0.87112006520238039,0,0.99685653928114404,0.079227773491503145,0.98744591981515817,0.15795744819538038,0.97182730542730511,0.2356940568319518,0.95009888911920748,0.31194887544988514,0.92239727573715991,0.38624249599528249,0.8888966231481934,0.45810784031245166,0.8498075473232467,0.52709309662757664,0.80537579821110405,0.59276456005384381,0.75588071472777374,0.65470935925999252,0.70163346857466835,0.71253805215993893,0.64297510792656476,0.76588707430457559,0.58027441328852247,0.81442102458290022,0.51392557900182079,0.85783477386245144,0.44434573497510427,0.89585538331219194,0.37197232422141663,0.92824382034749753,0,0.99611966149747655,0.088009203940000738,0.9845087600436947,0.17533539687475186,0.96525740409457461,0.26130086842680633,0.93851499720554654,0.34523846833786209,0.90448907855881377,0.42649678400643065,0.86344371231879369,0.50444519589063408,0.81569743831542896,0.57847877154278271,0.76162079995945398,0.64802296029471163,0.70163346857466835,0.71253805215993893,0.63620098646434409,0.77152336634854779,0.56583115398777784,0.82452113688907913,0.49107008868571961,0.87112006520238039,0.41249798703853191,0.9109585120570306,0.33072462174870593,0.94372730413460826,0.24638460949187202,0.96917213342395359,0,0.99530542853776338,0.09678379990090856,0.98126579215348175,0.19265888287177388,0.9580129109997747,0.28672506405568676,0.92576510970120018,0.37809914263315209,0.88482516747315054,0.46592319432081403,0.83557747528452464,0.54937262654517072,0.77848442675598184,0.62766392066010157,0.71408207668015056,0.70006198851541956,0.64297510792656476,0.76588707430457548,0.56583115398777795,0.82452113688907913,0.48337453047308038,0.87541365267508198,0.39637943440572077,0.91808678455808357,0.305662675176404,0.95213986840379927,0.21207600540317936,0.97725317494098252,0.11649812370437293,0.99319091174524987,0,0.99441390363249416,0.10555087996973124,0.97771802347523074,0.20992252516509055,0.95009888911920748,0.31194887544988514,0.91186506685662383,0.41049007277468347,0.86344371231879369,0.50444519589063408,0.80537579821110405,0.59276456005384381,0.73831007046168617,0.67446144430564758,0.66299580030687011,0.74862311530933423,0.58027441328852247,0.81442102458290022,0.49107008868571961,0.87112006520238039,0.39637943440572077,0.91808678455808357,0.29726035268834611,0.95479646140923669,0.19482022101825985,0.98083896817081873,0.090203520290279851,0.99592335293798639,-0.015420951551759477,0.9998810900568319,0,0.99344515601438121,0.11430976332563132,0.97386655601687633,0.22712096132199761,0.9415208693443663,0.33695467438370497,0.8968321378563433,0.44237101680379198,0.84038621687844572,0.54198801322606205,0.77292309482194266,0.63449971591078758,0.6953271921665608,0.71869332530208374,0.60861576698395847,0.79346508945165828,0.51392557900182079,0.85783477386245144,0.41249798703853191,0.9109585120570306,0.305662675176404,0.95213986840379927,0.19482022101825963,0.98083896817081884,0.081423734552078575,0.9966795751150882,-0.033040191667533338,0.99945402382229298,-0.14707097128387378,0.98912594213558969,0,0.99239926091298314,0.1230597697842995,0.96971258612127043,0.24424884916412135,0.93228484661654942,0.36172498499434197,0.88068499936400457,0.47370236636016844,0.81569743831542896,0.5784787715427826,0.73831007046168617,0.67446144430564758,0.64969929818615069,0.76019130614367281,0.55121213620955356,0.83436513643326482,0.44434573497510427,0.89585538331219194,0.33072462174870615,0.94372730413460815,0.21207600540317936,0.97725317494098252,0.090203520290279851,0.99592335293798639,-0.033040191667533116,0.99945402382229298,-0.1557816438728464,0.98779151617751493,-0.27615498481891132,0.96111311735906868,0,0.99127629954886309,0.13180021985077531,0.96525740409457461,0.26130086842680633,0.92239727573715991,0.38624249599528249,0.86344371231879369,0.50444519589063408,0.78942530029505387,0.6138466382200557,0.70163346857466835,0.71253805215993893,0.60159995644160769,0.79879752904566237,0.49107008868571961,0.87112006520238039,0.37197232422141663,0.92824382034749753,0.24638460949187202,0.96917213342395359,0.11649812370437271,0.99319091174524987,-0.015420951551759699,0.9998810900568319,-0.147070971283874,0.98912594213558969,-0.27615498481891154,0.96111311735906857,-0.40042081162265242,0.91633136671154958,0,0.99007635912728087,0.1405304347722143,0.96050239380546487,0.27827172241169551,0.91186506685662383,0.41049007277468347,0.84512969701205654,0.5345613110096068,0.76162079995945398,0.64802296029471163,0.66299580030687011,0.74862311530933423,0.55121213620955356,0.83436513643326482,0.42848840954338091,0.90354727761583342,0.29726035268834611,0.95479646140923669,0.16013248586175727,0.98709553082350343,0.01982642447167297,0.99980343712785313,-0.12087313755090549,0.99266796292546877,-0.259173696357056,0.96583072798323233,-0.39233036179060116,0.91982437846431098,-0.51770033599639897,0.85556201534968557,0,0.98879953283142141,0.14924973659059776,0.95544903225527433,0.2951561396319915,0.90069558064507649,0.43445076937028021,0.82576570647508063,0.56401329595117788,0.73233790893646022,0.6809413977241896,0.62250505798714317,0.78261577595932952,0.49872751210930794,0.86675882958598127,0.36377800398057814,0.93148567558492623,0.22067952867137736,0.9753463721290907,0.072637625730854222,0.99735839863520692,-0.077031427894072579,0.99702866514288357,-0.22497490556084701,0.97436455799043098,-0.36787873514064473,0.92987377435398155,-0.50254173733052021,0.86455294935638405,-0.62594733506077405,0.77986533050925855,0,0.98744591981515817,0.15795744819538038,0.95009888911920748,0.31194887544988514,0.8888966231481934,0.45810784031245166,0.80537579821110405,0.59276456005384381,0.70163346857466835,0.71253805215993893,0.58027441328852247,0.81442102458290022,0.44434573497510427,0.89585538331219194,0.29726035268834611,0.95479646140923669,0.14271130979474017,0.98976435683281183,-0.015420951551759699,0.9998810900568319,-0.17316602117364485,0.98489264852109071,-0.32656321056532189,0.94517536441935956,-0.47176099849528641,0.88172646569031277,-0.60511373561886883,0.79613903745851944,-0.72327318002663465,0.69056202259765154,0,0.98601562519535335,0.16665289337607242,0.94445362625876683,0.32864471370564519,0.87647644033175987,0.48144475232716688,0.78398530430666902,0.6207793832201417,0.66956707960805928,0.7427515909812209,0.53642190091326591,0.84394996547224188,0.3882736723868882,0.92154411469619801,0.2292659147376408,0.9733638273222982,0.063845876125150705,0.99795977078327758,-0.10335985181026972,0.99464402729507162,-0.26767473393075503,0.96350933405707051,-0.42450308844119661,0.90542648950861027,-0.56945862236265488,0.82201999818546223,-0.69848711066239877,0.71562263535923309,-0.80797978785870728,0.58921020222989884,0,0.9845087600436947,0.17533539687475186,0.93851499720554654,0.34523846833786209,0.86344371231879369,0.50444519589063408,0.76162079995945398,0.64802296029471163,0.63620098646434409,0.77152336634854779,0.49107008868571961,0.87112006520238039,0.33072462174870593,0.94372730413460826,0.16013248586175727,0.98709553082350343,-0.015420951551759699,0.9998810900568319,-0.19049660964359094,0.98168785350247523,-0.35967021035371921,0.93307949274652446,-0.51770033599639897,0.85556201534968557,-0.65969082137831836,0.75153710499828263,-0.78124244913835073,0.62422771138768862,-0.87858924841107544,0.47757819524813055,0,0.98292544137807047,0.18400428443850239,0.93228484661654942,0.36172498499434197,0.8498075473232467,0.52709309662757664,0.73831007046168617,0.67446144430564758,0.60159995644160769,0.79879752904566237,0.44434573497510427,0.89585538331219194,0.27191749890812733,0.96232056706045133,0.090203520290279851,0.99592335293798639,-0.094590828917769196,0.99551623547014512,-0.27615498481891154,0.96111311735906857,-0.44828869176599678,0.89388883471868641,-0.60511373561886883,0.79613903745851944,-0.74127467956822257,0.67120179486576825,-0.85212174757509718,0.52334360348585751,-0.93386961011798764,0.35761369003168447,0,0.98126579215348175,0.19265888287177388,0.92576510970120018,0.37809914263315209,0.83557747528452464,0.54937262654517072,0.71408207668015056,0.70006198851541956,0.56583115398777795,0.82452113688907913,0.39637943440572077,0.91808678455808357,0.21207600540317936,0.97725317494098252,0.01982642447167297,0.99980343712785313,-0.17316602117364463,0.98489264852109082,-0.35967021035371899,0.93307949274652457,-0.53269812657985816,0.846305326663084,-0.68576668796040186,0.72782144079699995,-0.81314065800800828,0.58206723863682908,-0.9100475358644613,0.41450389921811598,-0.97285637434672123,0.23140975539711409,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99992104420381611,0.012566039883352607,0.99968418928329994,0.025130095443337479,0.9992894726405892,0.037690182669934541,0.99873695660601747,0.050244318179769556,0.99802672842827156,0.062790519529313374,0.99715890026061393,0.075326805527932722,0.9961336091431725,0.08785119655074318,0.99495101698130017,0.10036171485121489,0.9936113105200084,0.11285638487348168,0.99211470131447788,0.12533323356430426,0.99046142569665119,0.13779029068463808,0.98865174473791406,0.15022558912075706,0.98668594420786804,0.16263716519488358,0.98456433452920533,0.17502305897527606,0.98228725072868872,0.18738131458572463,0.97985505238424686,0.19970998051440703,0.97726812356819348,0.21200710992205465,0.97452687278657713,0.22427076094938117,0.97163173291467397,0.23649899702372471,0.96858316112863108,0.24868988716485479,0.96538163883327388,0.26084150628989694,0.96202767158608593,0.27295193551732522,0.95852178901737584,0.28501926246997611,0.95486454474664295,0.29704158157703492,0.95105651629515353,0.3090169943749474,0.94709830499474434,0.32094360980720948,0.94299053589286441,0.33281954452298668,0.93873385765387407,0.34464292317451706,0.93432894245661202,0.35641187871325075,0.92977648588825135,0.36812455268467797,0.92507720683445804,0.37977909552180111,0.92023184736587038,0.39137366683720243,0.91524117262091753,0.40290643571366264,0.91010597068499566,0.41437558099328414,0.90482705246601958,0.42577929156507266,0.89940525156637108,0.43711576665093288,0.89384142415126377,0.44838321609003223,0.88813644881354448,0.45957986062148787,0.88229122643495328,0.47070393216533257,0.87630668004386358,0.48175367410171532,0.87018375466952569,0.49272734154829156,0.86392341719283527,0.5036232016357608,0.85752665619365231,0.51443953378150642,0.85099448179469184,0.52517462996129571,0.84432792550201508,0.53582679497899666,0.83752804004214176,0.54639434673426912,0.83059589919581267,0.55687561648818795,0.82353259762842745,0.56726894912675652,0.81633925071718394,0.57757270342226763,0.80901699437494745,0.58778525229247314,0.80156698487087663,0.59790498305751882,0.79399039864783538,0.60793029769460538,0.78628843213661892,0.61785961309033433,0.77846230156702334,0.62769136129070058,0.77051324277578914,0.63742398974868975,0.76244251101144789,0.64705596156944434,0.75425138073610376,0.65658575575295652,0.74594114542418211,0.66601186743425167,0.73751311735817393,0.67533280812102447,0.72896862742141155,0.68454710592868873,0.72030902488790682,0.69365330581280504,0.71153567720928534,0.70264996979884919,0,0.99968418928329994,0.025130095443337479,0.99873695660601747,0.050244318179769556,0.99715890026061393,0.075326805527932722,0.99495101698130017,0.10036171485121489,0.99211470131447788,0.12533323356430426,0.98865174473791406,0.15022558912075706,0.98456433452920533,0.17502305897527606,0.97985505238424686,0.19970998051440703,0.97452687278657713,0.22427076094938117,0.96858316112863108,0.24868988716485479,0.96202767158608593,0.27295193551732522,0.95486454474664295,0.29704158157703492,0.94709830499474434,0.32094360980720948,0.93873385765387407,0.34464292317451706,0.92977648588825135,0.36812455268467797,0.92023184736587038,0.39137366683720243,0.91010597068499566,0.41437558099328414,0.89940525156637108,0.43711576665093288,0.88813644881354448,0.45957986062148787,0.87630668004386358,0.48175367410171532,0.86392341719283527,0.5036232016357608,0.85099448179469184,0.52517462996129571,0.83752804004214176,0.54639434673426912,0.82353259762842745,0.56726894912675652,0.80901699437494745,0.58778525229247314,0.79399039864783538,0.60793029769460538,0.77846230156702334,0.62769136129070058,0.76244251101144789,0.64705596156944434,0.74594114542418211,0.66601186743425167,0.72896862742141155,0.68454710592868873,0.71153567720928534,0.70264996979884919,0.69365330581280493,0.72030902488790682,0.67533280812102447,0.73751311735817393,0.65658575575295641,0.75425138073610376,0.63742398974868975,0.77051324277578925,0.61785961309033433,0.78628843213661892,0.59790498305751894,0.80156698487087652,0.57757270342226752,0.81633925071718405,0.55687561648818795,0.83059589919581267,0.53582679497899655,0.84432792550201508,0.51443953378150642,0.85752665619365231,0.49272734154829156,0.87018375466952569,0.47070393216533257,0.88229122643495328,0.44838321609003223,0.89384142415126377,0.42577929156507266,0.90482705246601958,0.40290643571366269,0.91524117262091753,0.37977909552180111,0.92507720683445804,0.35641187871325075,0.93432894245661202,0.33281954452298668,0.94299053589286441,0.30901699437494745,0.95105651629515353,0.28501926246997616,0.95852178901737584,0.260841506289897,0.96538163883327388,0.23649899702372476,0.97163173291467386,0.21200710992205452,0.97726812356819348,0.18738131458572452,0.98228725072868872,0.1626371651948835,0.98668594420786804,0.13779029068463797,0.99046142569665119,0.1128563848734816,0.9936113105200084,0.087851196550743096,0.9961336091431725,0.062790519529313304,0.99802672842827156,0.037690182669934472,0.9992894726405892,0.012566039883352554,0.99992104420381611,0,0.9992894726405892,0.037690182669934541,0.99715890026061393,0.075326805527932722,0.9936113105200084,0.11285638487348168,0.98865174473791406,0.15022558912075706,0.98228725072868872,0.1873813145857246,0.97452687278657713,0.22427076094938117,0.96538163883327388,0.26084150628989694,0.95486454474664295,0.29704158157703492,0.94299053589286452,0.33281954452298662,0.92977648588825146,0.36812455268467792,0.91524117262091753,0.40290643571366264,0.89940525156637108,0.43711576665093288,0.88229122643495328,0.47070393216533252,0.86392341719283527,0.5036232016357608,0.84432792550201508,0.53582679497899666,0.82353259762842745,0.56726894912675652,0.80156698487087663,0.59790498305751882,0.77846230156702345,0.62769136129070047,0.75425138073610387,0.65658575575295641,0.72896862742141155,0.68454710592868862,0.70264996979884919,0.71153567720928534,0.67533280812102447,0.73751311735817393,0.64705596156944434,0.76244251101144789,0.61785961309033433,0.78628843213661892,0.58778525229247314,0.80901699437494745,0.55687561648818806,0.83059589919581256,0.52517462996129571,0.85099448179469184,0.49272734154829156,0.87018375466952569,0.45957986062148792,0.88813644881354448,0.42577929156507266,0.90482705246601958,0.39137366683720254,0.92023184736587027,0.35641187871325075,0.93432894245661202,0.32094360980720943,0.94709830499474434,0.28501926246997616,0.95852178901737584,0.24868988716485474,0.96858316112863108,0.21200710992205474,0.97726812356819348,0.17502305897527604,0.98456433452920533,0.13779029068463819,0.99046142569665119,0.10036171485121491,0.99495101698130017,0.062790519529313527,0.99802672842827156,0.025130095443337531,0.99968418928329994,-0.012566039883352653,0.99992104420381611,-0.050244318179769473,0.99873695660601747,-0.087851196550743194,0.9961336091431725,-0.12533323356430415,0.99211470131447788,-0.16263716519488358,0.98668594420786804,-0.19970998051440689,0.97985505238424686,-0.23649899702372465,0.97163173291467397,-0.27295193551732527,0.96202767158608593,-0.30901699437494734,0.95105651629515364,-0.34464292317451706,0.93873385765387407,-0.379779095521801,0.92507720683445804,-0.41437558099328414,0.91010597068499566,-0.44838321609003212,0.89384142415126389,-0.48175367410171505,0.87630668004386369,-0.51443953378150653,0.8575266561936522,-0.54639434673426901,0.83752804004214176,-0.57757270342226741,0.81633925071718405,-0.60793029769460549,0.79399039864783527,-0.63742398974868975,0.77051324277578925,-0.66601186743425156,0.74594114542418222,-0.69365330581280482,0.72030902488790705,0,0.99873695660601747,0.050244318179769556,0.99495101698130017,0.10036171485121489,0.98865174473791406,0.15022558912075706,0.97985505238424686,0.19970998051440703,0.96858316112863108,0.24868988716485479,0.95486454474664295,0.29704158157703492,0.93873385765387407,0.34464292317451706,0.92023184736587038,0.39137366683720243,0.89940525156637108,0.43711576665093288,0.87630668004386358,0.48175367410171532,0.85099448179469184,0.52517462996129571,0.82353259762842745,0.56726894912675652,0,0.99495101698130017,0.10036171485121489,0.97985505238424686,0.19970998051440703,0.95486454474664295,0.29704158157703492,0.92023184736587038,0.39137366683720243,0.87630668004386358,0.48175367410171532,0.82353259762842745,0.56726894912675652,0.76244251101144789,0.64705596156944434,0.69365330581280493,0.72030902488790682,0.61785961309033433,0.78628843213661892,0.53582679497899655,0.84432792550201508,0.44838321609003223,0.89384142415126377,0.35641187871325075,0.93432894245661202,0,0.98865174473791406,0.15022558912075706,0.95486454474664295,0.29704158157703492,0.89940525156637108,0.43711576665093288,0.82353259762842745,0.56726894912675652,0.72896862742141155,0.68454710592868862,0.61785961309033433,0.78628843213661892,0.49272734154829156,0.87018375466952569,0.35641187871325075,0.93432894245661202,0.21200710992205474,0.97726812356819348,0.062790519529313527,0.99802672842827156,-0.087851196550743194,0.9961336091431725,-0.23649899702372465,0.97163173291467397,0,0.97985505238424686,0.19970998051440703,0.92023184736587038,0.39137366683720243,0.82353259762842745,0.56726894912675652,0.69365330581280493,0.72030902488790682,0.53582679497899655,0.84432792550201508,0.35641187871325075,0.93432894245661202,0.1626371651948835,0.98668594420786804,-0.037690182669934576,0.9992894726405892,-0.23649899702372465,0.97163173291467397,-0.42577929156507272,0.90482705246601947,-0.59790498305751894,0.80156698487087652,-0.74594114542418211,0.66601186743425167,0,0.96858316112863108,0.24868988716485479,0.87630668004386358,0.48175367410171532,0,0.87630668004386358,0.48175367410171532,0.53582679497899655,0.84432792550201508,0,0.72896862742141155,0.68454710592868873,0.062790519529313304,0.99802672842827156,0,0.53582679497899655,0.84432792550201508,-0.42577929156507272,0.90482705246601947,0,0,0,0,0,0.9999654630763769,0.0083109959960970241,0.99986185469110567,0.016621417919726152,0.99968918200081625,0.024930691738072875,0.99944745693267556,0.033238243497626739,0.99913669618356415,0.041543499363826515,0.99875692121892234,0.049845885660697163,0.99830815827126818,0.058144828910475829,0.99779043833838499,0.066439755873224177,0.99720379718118013,0.074730093586424254,0.99654827532121548,0.083015269404555239,0.99582391803790782,0.091294711038648294,0.99503077536540141,0.099567846595816661,0.99416890208911213,0.10783410461875863,0.99323835774194302,0.11609291412523023,0.99223920660017206,0.12434370464748516,0.99117151767901279,0.13258590627167927,0.99003536472784648,0.14081894967723654,0.98883082622512852,0.14904226617617444,0.98755798537296757,0.15725528775238523,0.98621693009137823,0.16545744710087118,0.98480775301220802,0.17364817766693033,0.9833305514727394,0.18182691368529075,0.9817854275089658,0.18999309021918998,0.98017248784854383,0.19814614319939758,0.97849184390342125,0.20628550946317739,0.9767436117621412,0.21441062679318743,0.97492791218182362,0.22252093395631439,0.97304487057982381,0.23061587074244017,0.97109461702506994,0.23869487800313774,0.96907728622907796,0.24675739769029362,0.96699301753664724,0.25480287289465464,0.96484195491623492,0.26283074788429533,0.96262424695001203,0.27084046814300511,0.96034004682359986,0.27883148040859029,0.9579895123154889,0.28680323271109021,0.95557280578614068,0.29475517441090421,0.95309009416677304,0.30268675623682589,0.95054154894782905,0.31059743032398374,0.94792734616713181,0.31848665025168443,0.94524766639772484,0.3263538710811556,0.94250269473539927,0.33419854939318755,0.93969262078590843,0.34202014332566871,0.93681763865187095,0.3498181126110147,0.93387794691936366,0.35759191861348627,0.93087374864420425,0.36534102436639498,0.92780525133792546,0.3730648946091939,0.92467266695344152,0.38076299582444956,0.92147621187040762,0.38843479627469474,0.918216106880274,0.39607976603915679,0.91489257717103467,0.40369737705036218,0.91150585231167314,0.41128710313061156,0.90805616623630503,0.41884842002832484,0.90454375722801916,0.42638080545425383,0.90096886790241915,0.43388373911755812,0.89733174519086401,0.44135670276174394,0.89363264032341228,0.44879918020046217,0.88987180881146866,0.45621065735316296,0.88604951043013436,0.46359062228060566,0.88216600920026411,0.4709385652202201,0.87822157337022855,0.47825397862131819,0.87421647539738567,0.48553635718015209,0.87015099192926093,0.49278519787481767,0.86602540378443871,0.49999999999999994,0.86183999593316396,0.50718026520155923,0.85759505747765952,0.51432549751095358,0.85329088163215572,0.521435203379498,0.84892776570263739,0.52850889171245541,0.84450601106630785,0.5355460739029585,0.8400259231507714,0.54254626386575944,0.83548781141293649,0.54950897807080601,0.83089198931763975,0.556433735576641,0.82623877431599491,0.56332005806362206,0.82152848782346399,0.57016746986696165,0.81676145519765675,0.57697549800958292,0.8119380057158565,0.58374367223478985,0.80705847255227614,0.59047152503874989,0.80212319275504385,0.59715859170278618,0.7971325072229225,0.60380441032547738,0.7920867606817622,0.61040852185456318,0.78698630166068895,0.61697047011865247,0.7818314824680298,0.62348980185873348,0.77662265916697837,0.6299660667594813,0.77136019155099977,0.63639881748036342,0.76604444311897801,0.64278760968653925,0.76067578105010858,0.64913200207955191,0.75525457617853486,0.65543155642781015,0.74978120296773421,0.66168583759685939,0.74425603948465158,0.66789441357943746,0.73867946737358559,0.67405685552531536,0.73305187182982634,0.68017273777091936,0.72737364157304873,0.6862416378687336,0.72164516882046204,0.69226313661647965,0.71586684925971844,0.69823681808607274,0.71003908202158039,0.70416226965235185,0,0.99986185469110567,0.016621417919726152,0.99944745693267556,0.033238243497626739,0.99875692121892234,0.049845885660697163,0.99779043833838499,0.066439755873224177,0.99654827532121548,0.083015269404555239,0.99503077536540141,0.099567846595816661,0.99323835774194302,0.11609291412523023,0.99117151767901279,0.13258590627167927,0.98883082622512852,0.14904226617617444,0.98621693009137823,0.16545744710087118,0.9833305514727394,0.18182691368529075,0.98017248784854383,0.19814614319939758,0.9767436117621412,0.21441062679318743,0.97304487057982381,0.23061587074244017,0.96907728622907796,0.24675739769029362,0.96484195491623492,0.26283074788429533,0.96034004682359986,0.27883148040859029,0.95557280578614068,0.29475517441090421,0.95054154894782905,0.31059743032398374,0.94524766639772484,0.3263538710811556,0.93969262078590843,0.34202014332566871,0.93387794691936366,0.35759191861348627,0.92780525133792546,0.3730648946091939,0.92147621187040762,0.38843479627469474,0.91489257717103467,0.40369737705036218,0.90805616623630503,0.41884842002832484,0.90096886790241915,0.43388373911755812,0.89363264032341228,0.44879918020046217,0.88604951043013436,0.46359062228060566,0.87822157337022855,0.47825397862131819,0.87015099192926093,0.49278519787481767,0.86183999593316396,0.50718026520155923,0.85329088163215572,0.521435203379498,0.84450601106630785,0.5355460739029585,0.83548781141293649,0.54950897807080601,0.82623877431599491,0.56332005806362206,0.81676145519765675,0.57697549800958292,0.80705847255227614,0.59047152503874989,0.7971325072229225,0.60380441032547738,0.78698630166068895,0.61697047011865247,0.77662265916697837,0.6299660667594813,0.76604444311897801,0.64278760968653925,0.75525457617853486,0.65543155642781015,0.74425603948465158,0.66789441357943746,0.73305187182982634,0.68017273777091936,0.72164516882046204,0.69226313661647965,0.71003908202158039,0.70416226965235185,0.69823681808607285,0.71586684925971844,0.6862416378687336,0.72737364157304873,0.67405685552531536,0.73867946737358559,0.66168583759685939,0.74978120296773421,0.64913200207955191,0.76067578105010847,0.63639881748036342,0.77136019155099977,0.62348980185873359,0.7818314824680298,0.61040852185456318,0.7920867606817622,0.59715859170278618,0.80212319275504373,0.58374367223478996,0.8119380057158565,0.57016746986696165,0.82152848782346399,0.556433735576641,0.83089198931763975,0.54254626386575944,0.8400259231507714,0.52850889171245552,0.84892776570263739,0.51432549751095358,0.85759505747765952,0.50000000000000011,0.8660254037844386,0.48553635718015214,0.87421647539738556,0.4709385652202201,0.88216600920026411,0.45621065735316307,0.88987180881146855,0.44135670276174405,0.89733174519086389,0.42638080545425383,0.90454375722801916,0.41128710313061151,0.91150585231167314,0.3960797660391569,0.918216106880274,0.38076299582444961,0.92467266695344152,0.36534102436639498,0.93087374864420425,0.34981811261101486,0.93681763865187084,0.33419854939318761,0.94250269473539927,0.31848665025168443,0.94792734616713181,0.30268675623682606,0.95309009416677304,0.28680323271109032,0.9579895123154889,0.27084046814300516,0.96262424695001203,0.25480287289465459,0.96699301753664724,0.23869487800313785,0.97109461702506983,0.22252093395631445,0.97492791218182362,0.20628550946317739,0.97849184390342125,0.18999309021919011,0.9817854275089658,0.17364817766693041,0.98480775301220802,0.15725528775238529,0.98755798537296757,0.14081894967723671,0.99003536472784637,0.12434370464748527,0.99223920660017206,0.10783410461875867,0.99416890208911213,0.091294711038648266,0.99582391803790782,0.074730093586424393,0.99720379718118013,0.058144828910475899,0.99830815827126818,0.041543499363826522,0.99913669618356415,0.024930691738073035,0.99968918200081625,0.0083109959960971196,0.9999654630763769,0,0.99968918200081625,0.024930691738072875,0.99875692121892234,0.049845885660697163,0.99720379718118013,0.074730093586424254,0.99503077536540141,0.099567846595816661,0.99223920660017206,0.12434370464748518,0.98883082622512852,0.14904226617617444,0.98480775301220802,0.17364817766693036,0.98017248784854383,0.19814614319939758,0.97492791218182362,0.22252093395631439,0.96907728622907796,0.24675739769029365,0.96262424695001203,0.27084046814300511,0.95557280578614068,0.29475517441090421,0.94792734616713181,0.31848665025168443,0.93969262078590832,0.34202014332566877,0.93087374864420425,0.36534102436639504,0.92147621187040762,0.38843479627469474,0.91150585231167314,0.41128710313061156,0.90096886790241915,0.43388373911755812,0.88987180881146855,0.45621065735316302,0.87822157337022855,0.47825397862131824,0.8660254037844386,0.5,0.85329088163215561,0.52143520337949811,0.8400259231507714,0.54254626386575944,0.82623877431599491,0.56332005806362206,0.8119380057158565,0.58374367223478985,0.7971325072229225,0.60380441032547738,0.7818314824680298,0.62348980185873348,0.76604444311897801,0.64278760968653936,0.74978120296773421,0.66168583759685951,0.73305187182982634,0.68017273777091947,0.71586684925971844,0.69823681808607285,0.69823681808607285,0.71586684925971844,0.68017273777091936,0.73305187182982634,0.66168583759685939,0.74978120296773421,0.64278760968653936,0.76604444311897801,0.62348980185873359,0.7818314824680298,0.60380441032547727,0.7971325072229225,0.58374367223478985,0.8119380057158565,0.56332005806362195,0.82623877431599491,0.54254626386575944,0.84002592315077151,0.521435203379498,0.85329088163215572,0.49999999999999989,0.86602540378443871,0.47825397862131824,0.87822157337022855,0.45621065735316291,0.88987180881146866,0.43388373911755818,0.90096886790241915,0.41128710313061151,0.91150585231167314,0.38843479627469479,0.92147621187040762,0.36534102436639498,0.93087374864420425,0.3420201433256686,0.93969262078590843,0.31848665025168443,0.94792734616713181,0.2947551744109041,0.95557280578614079,0.27084046814300516,0.96262424695001203,0.24675739769029356,0.96907728622907796,0.22252093395631445,0.97492791218182362,0.19814614319939755,0.98017248784854383,0.17364817766693022,0.98480775301220813,0.14904226617617444,0.98883082622512852,0.12434370464748506,0.99223920660017206,0.099567846595816661,0.99503077536540141,0.074730093586424171,0.99720379718118013,0.049845885660697198,0.99875692121892234,0.024930691738072813,0.99968918200081625,6.123233995736766e-17,1,-0.024930691738072913,0.99968918200081625,-0.049845885660697295,0.99875692121892234,-0.074730093586424268,0.99720379718118013,-0.099567846595816759,0.99503077536540141,-0.12434370464748516,0.99223920660017206,-0.14904226617617453,0.98883082622512852,-0.1736481776669303,0.98480775301220802,-0.19814614319939763,0.98017248784854383,-0.22252093395631434,0.97492791218182362,-0.24675739769029367,0.96907728622907796,-0.27084046814300522,0.96262424695001203,-0.29475517441090421,0.95557280578614068,-0.31848665025168454,0.9479273461671317,-0.34202014332566871,0.93969262078590843,-0.3653410243663951,0.93087374864420425,-0.38843479627469468,0.92147621187040762,-0.41128710313061156,0.91150585231167314,-0.43388373911755806,0.90096886790241915,-0.45621065735316296,0.88987180881146855,-0.4782539786213183,0.87822157337022844,-0.50000000000000022,0.8660254037844386,-0.521435203379498,0.85329088163215572,-0.54254626386575944,0.84002592315077151,-0.56332005806362206,0.82623877431599491,-0.58374367223478996,0.81193800571585639,-0.6038044103254776,0.79713250722292239,-0.62348980185873348,0.78183148246802991,-0.64278760968653936,0.76604444311897801,-0.66168583759685951,0.7497812029677341,-0.68017273777091958,0.73305187182982623,-0.69823681808607274,0.71586684925971855,0,0.99944745693267556,0.033238243497626739,0.99779043833838499,0.066439755873224177,0.99503077536540141,0.099567846595816661,0.99117151767901279,0.13258590627167927,0.98621693009137823,0.16545744710087118,0.98017248784854383,0.19814614319939758,0.97304487057982381,0.23061587074244017,0.96484195491623492,0.26283074788429533,0.95557280578614068,0.29475517441090421,0.94524766639772484,0.3263538710811556,0.93387794691936366,0.35759191861348627,0.92147621187040762,0.38843479627469474,0.90805616623630503,0.41884842002832484,0.89363264032341228,0.44879918020046217,0.87822157337022855,0.47825397862131819,0.86183999593316396,0.50718026520155923,0.84450601106630785,0.5355460739029585,0.82623877431599491,0.56332005806362206,0.80705847255227614,0.59047152503874989,0.78698630166068895,0.61697047011865247,0.76604444311897801,0.64278760968653925,0.74425603948465158,0.66789441357943746,0.72164516882046204,0.69226313661647965,0.69823681808607285,0.71586684925971844,0.67405685552531536,0.73867946737358559,0.64913200207955191,0.76067578105010847,0.62348980185873359,0.7818314824680298,0.59715859170278618,0.80212319275504373,0.57016746986696165,0.82152848782346399,0.54254626386575944,0.8400259231507714,0.51432549751095358,0.85759505747765952,0,0.99779043833838499,0.066439755873224177,0.99117151767901279,0.13258590627167927,0.98017248784854383,0.19814614319939758,0.96484195491623492,0.26283074788429533,0.94524766639772484,0.3263538710811556,0.92147621187040762,0.38843479627469474,0.89363264032341228,0.44879918020046217,0.86183999593316396,0.50718026520155923,0.82623877431599491,0.56332005806362206,0.78698630166068895,0.61697047011865247,0.74425603948465158,0.66789441357943746,0.69823681808607285,0.71586684925971844,0.64913200207955191,0.76067578105010847,0.59715859170278618,0.80212319275504373,0.54254626386575944,0.8400259231507714,0.48553635718015214,0.87421647539738556,0.42638080545425383,0.90454375722801916,0.36534102436639498,0.93087374864420425,0.30268675623682606,0.95309009416677304,0.23869487800313785,0.97109461702506983,0.17364817766693041,0.98480775301220802,0.10783410461875867,0.99416890208911213,0.041543499363826522,0.99913669618356415,-0.024930691738072913,0.99968918200081625,-0.091294711038648141,0.99582391803790782,-0.15725528775238515,0.98755798537296757,-0.22252093395631434,0.97492791218182362,-0.28680323271109021,0.9579895123154889,-0.34981811261101475,0.93681763865187095,-0.4112871031306114,0.91150585231167325,-0.47093856522022021,0.88216600920026411,0,0.99503077536540141,0.099567846595816661,0.98017248784854383,0.19814614319939758,0.95557280578614068,0.29475517441090421,0.92147621187040762,0.38843479627469474,0.87822157337022855,0.47825397862131824,0.82623877431599491,0.56332005806362206,0.76604444311897801,0.64278760968653936,0.69823681808607285,0.71586684925971844,0.62348980185873359,0.7818314824680298,0.54254626386575944,0.84002592315077151,0,0.98017248784854383,0.19814614319939758,0.92147621187040762,0.38843479627469474,0.82623877431599491,0.56332005806362206,0.69823681808607285,0.71586684925971844,0.54254626386575944,0.84002592315077151,0.36534102436639498,0.93087374864420425,0.17364817766693022,0.98480775301220813,-0.024930691738072913,0.99968918200081625,-0.22252093395631434,0.97492791218182362,-0.41128710313061156,0.91150585231167314,0,0.95557280578614068,0.29475517441090421,0.82623877431599491,0.56332005806362206,0.62348980185873359,0.7818314824680298,0,0.82623877431599491,0.56332005806362206,0.36534102436639498,0.93087374864420425,-0.22252093395631434,0.97492791218182362,0,0,0,0,0,0,0]} diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/medium.json b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/medium.json new file mode 100644 index 000000000000..215106655dfe --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/medium.json @@ -0,0 +1 @@ +{"lengths":[58,74,109,19,21,75,91,16,58,23],"offsets":[0,57,130,238,256,276,350,440,455,512],"twiddles":[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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99639748854252652,0.084805924475509192,0.98561591034770846,0.16900082032184907,0.96773294693349887,0.25197806138512518,0.94287744546108421,0.33313979474205757,0.91122849038813569,0.4119012482439926,0.87301411316118815,0.48769494381363454,0.82850964924384218,0.55997478613759533,0.77803575431843952,0.62821999729564226,0.72195609395452454,0.69193886897754608,0.66067472339008149,0.75067230525272433,0.59463317630428669,0.80399713036694054,0.52430728355723166,0.85152913773331129,0.45020374481767328,0.89292585814956849,0.37285647778030861,0.92788902729650935,0.29282277127655043,0.95616673473925096,0.21067926999572642,0.97755523894768614,0.12701781974687887,0.99190043525887683,0.042441203196148462,0.99909896620468142,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95557280578614068,0.29475517441090421,0.82623877431599491,0.56332005806362206,0.62348980185873359,0.7818314824680298,0,0.82623877431599491,0.56332005806362206,0.36534102436639498,0.93087374864420425,-0.22252093395631434,0.97492791218182362,0,0,0,0,0,0,0,0.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.99761727230124764,0.068991144404324925,0.99048044398756319,0.13765351458716821,0.97862352529595531,0.20565990308593657,0.96210301984360058,0.27268622848949375,0.94099765536237645,0.33841307983367042,0.91540800852536641,0.40252723873996749,0,0.99048044398756319,0.13765351458716821,0.96210301984360058,0.27268622848949375,0.91540800852536641,0.40252723873996749,0.85128444158435124,0.52470448779900802,0.7709531747949796,0.63689182933488919,0.67594364414475439,0.73695331598433667,0,0.97862352529595531,0.20565990308593657,0.91540800852536641,0.40252723873996749,0.81305609947853252,0.58218534772077069,0.67594364414475439,0.73695331598433667,0.50993260439013599,0.86021435641350064,0.32212044179849075,0.94669869598280587,0,0.96210301984360058,0.27268622848949375,0.85128444158435124,0.52470448779900802,0.67594364414475439,0.73695331598433667,0.44937040096716135,0.89334553378556314,0.18873759545291671,0.98202755565343036,-0.086200379880619196,0.99627781994202647,0,0.94099765536237645,0.33841307983367042,0.7709531747949796,0.63689182933488919,0.50993260439013577,0.86021435641350075,0.18873759545291671,0.98202755565343036,-0.15472933479028111,0.98795689832874645,-0.47993747795978653,0.87730269419944185,0,0.91540800852536641,0.40252723873996749,0.67594364414475439,0.73695331598433667,0.32212044179849075,0.94669869598280587,-0.086200379880619196,0.99627781994202647,-0.47993747795978614,0.87730269419944207,-0.79247684195109025,0.60990200440007303,0,0,0,0,0,0,0,0,0,0,0,0,0,0.92387953251128674,0.38268343236508978,0,0,0.70710678118654757,0.70710678118654746,0,0,0.38268343236508984,0.92387953251128674,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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/rffti/test/fixtures/c/fftpack/runner.c b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/runner.c new file mode 100644 index 000000000000..82f5947a89b0 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/runner.c @@ -0,0 +1,282 @@ +/** +* @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 + +/** +* Define prototypes for external functions. +*/ +extern void rffti( 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 twiddle offsets +* @param twiddles twiddle factors +* @param num number of sequence lengths +* @param total total number of twiddle values +*/ +void write_data_as_json( FILE *f, const int *lengths, const int *offsets, 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, "twiddles", twiddles, total ); + fprintf( f, "}\n" ); +} + +/** +* Generates test fixtures. +* +* @param lengths sequence lengths +* @param offsets twiddle offsets into flat output array +* @param num number of sequence lengths +* @param total total number of 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 *twiddles; + double *wsave; + FILE *f; + int off; + int n; + + // Allocate an output array: + 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( 2*n + 15, sizeof(double) ); + if ( wsave == NULL ) { + printf( "Error allocating memory.\n" ); + exit( 1 ); + } + rffti( n, wsave ); + + // Copy twiddle region into flat array (N-1 values starting at wsave[n]): + off = offsets[ i ]; + for ( j = 0; j < (unsigned int)( n - 1 ); j++ ) { + twiddles[ off + j ] = wsave[ 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, twiddles, num, total ); + + // Close the file: + fclose( f ); + + // Free allocated memory: + free( twiddles ); +} + +/** +* Computes offsets into a flat twiddle array for each sequence length. +* +* @param offsets output array of offsets +* @param lengths sequence lengths +* @param num number of sequence lengths +* @return total number of 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 ] - 1; + } + return total; +} + +/** +* Main execution sequence. +*/ +int main( void ) { + unsigned int total; + unsigned int num; + int *lengths; + int *offsets; + + // 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/rffti/test/fixtures/c/fftpack/small.json b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/small.json new file mode 100644 index 000000000000..519a16fcee1e --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/small.json @@ -0,0 +1 @@ +{"lengths":[2,3,12,8,9,5,2,11,11,15],"offsets":[0,1,3,14,21,29,33,34,44,54],"twiddles":[0,0,0,0.86602540378443871,0.49999999999999994,0,0.50000000000000011,0.8660254037844386,0,6.123233995736766e-17,1,0,0,0,0.70710678118654757,0.70710678118654746,0,0,0,0,0,0.76604444311897801,0.64278760968653925,0,0.17364817766693041,0.98480775301220802,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.91354545764260087,0.40673664307580015,0.66913060635885824,0.74314482547739424,0,0.66913060635885824,0.74314482547739424,-0.10452846326765333,0.9945218953682734,0,0,0,0,0]} diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/test.js b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/test.js new file mode 100644 index 000000000000..88262f7c17b1 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/test.js @@ -0,0 +1,231 @@ +/** +* @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 abs = require( '@stdlib/math/base/special/abs' ); +var EPS = require( '@stdlib/constants/float64/eps' ); +var rffti = 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 rffti, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function has an arity of 4', function test( t ) { + t.strictEqual( rffti.length, 4, 'returns expected value' ); + t.end(); +}); + +tape( 'the function correctly initializes twiddle factors (small sequence lengths)', function test( t ) { + var workspace; + var expected; + var lengths; + var offsets; + var delta; + var tol; + var off; + var y; + var N; + var i; + var k; + + lengths = small.lengths; + offsets = small.offsets; + expected = small.twiddles; + + for ( k = 0; k < lengths.length; k++ ) { + N = lengths[ k ]; + off = offsets[ k ]; + workspace = new Float64Array( ( 2*N ) + 34 ); + rffti( N, workspace, 1, 0 ); + + t.strictEqual( workspace[ N ], 0.0, 'returns expected value' ); + for ( i = 0; i < N-1; i++ ) { + y = workspace[ N+i+1 ]; + if ( y === expected[ off+i ] ) { + t.strictEqual( y, expected[ off+i ], 'returns expected value' ); + } else { + delta = abs( y - expected[ off+i ] ); + tol = EPS * abs( expected[ off+i ] ); + t.ok( delta <= tol, 'within tolerance. N: '+N+'. workspace['+(N+i+1)+']. Value: '+y+'. Expected: '+expected[off+i]+'. tol: '+tol+'. delta: '+delta+'.' ); + } + } + } + t.end(); +}); + +tape( 'the function correctly initializes twiddle factors (medium sequence lengths)', function test( t ) { + var workspace; + var expected; + var lengths; + var offsets; + var delta; + var tol; + var off; + var y; + var N; + var i; + var k; + + lengths = medium.lengths; + offsets = medium.offsets; + expected = medium.twiddles; + + for ( k = 0; k < lengths.length; k++ ) { + N = lengths[ k ]; + off = offsets[ k ]; + workspace = new Float64Array( ( 2*N ) + 34 ); + rffti( N, workspace, 1, 0 ); + + t.strictEqual( workspace[ N ], 0.0, 'returns expected value' ); + for ( i = 0; i < N-1; i++ ) { + y = workspace[ N+i+1 ]; + if ( y === expected[ off+i ] ) { + t.strictEqual( y, expected[ off+i ], 'returns expected value' ); + } else { + delta = abs( y - expected[ off+i ] ); + tol = EPS * abs( expected[ off+i ] ); + t.ok( delta <= tol, 'within tolerance. N: '+N+'. workspace['+(N+i+1)+']. Value: '+y+'. Expected: '+expected[off+i]+'. tol: '+tol+'. delta: '+delta+'.' ); + } + } + } + t.end(); +}); + +tape( 'the function correctly initializes twiddle factors (large sequence lengths)', function test( t ) { + var workspace; + var expected; + var lengths; + var offsets; + var delta; + var tol; + var off; + var y; + var N; + var i; + var k; + + lengths = large.lengths; + offsets = large.offsets; + expected = large.twiddles; + + for ( k = 0; k < lengths.length; k++ ) { + N = lengths[ k ]; + off = offsets[ k ]; + workspace = new Float64Array( ( 2*N ) + 34 ); + rffti( N, workspace, 1, 0 ); + + t.strictEqual( workspace[ N ], 0.0, 'returns expected value' ); + for ( i = 0; i < N-1; i++ ) { + y = workspace[ N+i+1 ]; + if ( y === expected[ off+i ] ) { + t.strictEqual( y, expected[ off+i ], 'returns expected value' ); + } else { + delta = abs( y - expected[ off+i ] ); + tol = EPS * abs( expected[ off+i ] ); + t.ok( delta <= tol, 'within tolerance. N: '+N+'. workspace['+(N+i+1)+']. Value: '+y+'. Expected: '+expected[off+i]+'. tol: '+tol+'. delta: '+delta+'.' ); + } + } + } + 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( ( 2*N ) + 34 ); + + for ( i = 0; i < workspace.length; i++ ) { + workspace[ i ] = i + 1.0; + } + rffti( N, workspace, 1, 0 ); + for ( i = 0; i < N; i++ ) { + t.strictEqual( workspace[ i ], i + 1.0, 'returns expected value' ); + } + t.end(); +}); + +tape( 'the function does not modify the workspace when N is 1', function test( t ) { + var workspace; + var expected; + var N; + var i; + + N = 1; + workspace = new Float64Array( ( 2*N ) + 34 ); + for ( i = 0; i < workspace.length; i++ ) { + workspace[ i ] = i + 1.0; + } + expected = new Float64Array( workspace ); + + rffti( N, workspace, 1, 0 ); + + t.deepEqual( workspace, expected, '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 + ( ( ( 2*N ) + 34 ) * stride ) ); + + rffti( N, workspace, stride, offset ); + + t.strictEqual( workspace[ offset + ( 2*N * stride ) ], N, 'returns expected value' ); + + nf = workspace[ offset + ( ( ( 2*N ) + 1 ) * stride ) ]; + t.strictEqual( nf, 2, 'returns expected value' ); + t.strictEqual( workspace[ offset + ( ( ( 2*N ) + 2 ) * stride ) ], 2, 'returns expected value' ); + t.strictEqual( workspace[ offset + ( ( ( 2*N ) + 3 ) * stride ) ], 4, 'returns expected value' ); + + expected = new Float64Array( ( 2*N ) + 34 ); + rffti( N, expected, 1, 0 ); + + for ( i = 0; i < N-1; i++ ) { + t.strictEqual( workspace[ offset + ( ( N+i+1 ) * stride ) ], expected[ N+i+1 ], 'returns expected value' ); + } + t.end(); +}); From 64909dfa9a3573d27ea4bebacf702f7aece3a435 Mon Sep 17 00:00:00 2001 From: GUNJ JOSHI Date: Wed, 15 Apr 2026 23:22:04 +0530 Subject: [PATCH 02/14] docs: add test.ts --- .../fft/base/fftpack/rffti/docs/types/test.ts | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/test.ts diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/test.ts b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/test.ts new file mode 100644 index 000000000000..a01b8b17546f --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/test.ts @@ -0,0 +1,93 @@ +/* +* @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 rffti = require( './index' ); + +// TESTS // + +// The function returns void... +{ + const workspace = new Float64Array( ( 2*8 ) + 34 ); + + rffti( 8, workspace, 1, 0 ); // $ExpectType void +} + +// The compiler throws an error if the function is provided a first argument which is not a number... +{ + const workspace = new Float64Array( ( 2*8 ) + 34 ); + + rffti( '8', workspace, 1, 0 ); // $ExpectError + rffti( true, workspace, 1, 0 ); // $ExpectError + rffti( false, workspace, 1, 0 ); // $ExpectError + rffti( null, workspace, 1, 0 ); // $ExpectError + rffti( void 0, workspace, 1, 0 ); // $ExpectError + rffti( [], workspace, 1, 0 ); // $ExpectError + rffti( {}, workspace, 1, 0 ); // $ExpectError + rffti( ( x: number ): number => x, workspace, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a second argument which is not an array of numbers... +{ + rffti( 8, '50', 1, 0 ); // $ExpectError + rffti( 8, 50, 1, 0 ); // $ExpectError + rffti( 8, true, 1, 0 ); // $ExpectError + rffti( 8, false, 1, 0 ); // $ExpectError + rffti( 8, null, 1, 0 ); // $ExpectError + rffti( 8, void 0, 1, 0 ); // $ExpectError + rffti( 8, {}, 1, 0 ); // $ExpectError + rffti( 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( ( 2*8 ) + 34 ); + + rffti( 8, workspace, '1', 0 ); // $ExpectError + rffti( 8, workspace, true, 0 ); // $ExpectError + rffti( 8, workspace, false, 0 ); // $ExpectError + rffti( 8, workspace, null, 0 ); // $ExpectError + rffti( 8, workspace, void 0, 0 ); // $ExpectError + rffti( 8, workspace, [], 0 ); // $ExpectError + rffti( 8, workspace, {}, 0 ); // $ExpectError + rffti( 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( ( 2*8 ) + 34 ); + + rffti( 8, workspace, 1, '0' ); // $ExpectError + rffti( 8, workspace, 1, true ); // $ExpectError + rffti( 8, workspace, 1, false ); // $ExpectError + rffti( 8, workspace, 1, null ); // $ExpectError + rffti( 8, workspace, 1, void 0 ); // $ExpectError + rffti( 8, workspace, 1, [] ); // $ExpectError + rffti( 8, workspace, 1, {} ); // $ExpectError + rffti( 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( ( 2*8 ) + 34 ); + + rffti(); // $ExpectError + rffti( 8 ); // $ExpectError + rffti( 8, workspace ); // $ExpectError + rffti( 8, workspace, 1 ); // $ExpectError + rffti( 8, workspace, 1, 0, 123 ); // $ExpectError +} From 274ca8ed1d63d93d466461d0d2e070111b4a961d Mon Sep 17 00:00:00 2001 From: GUNJ JOSHI Date: Fri, 17 Apr 2026 22:14:39 +0530 Subject: [PATCH 03/14] test: use is-almost-same-value --- 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 status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: passed - task: lint_javascript_benchmarks status: na - 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: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../fft/base/fftpack/rffti/test/test.js | 45 +++++++------------ 1 file changed, 16 insertions(+), 29 deletions(-) diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/test.js b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/test.js index 88262f7c17b1..4f158aa9df20 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/test.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/test.js @@ -22,8 +22,7 @@ var tape = require( 'tape' ); var Float64Array = require( '@stdlib/array/float64' ); -var abs = require( '@stdlib/math/base/special/abs' ); -var EPS = require( '@stdlib/constants/float64/eps' ); +var isAlmostSameValue = require( '@stdlib/number/float64/base/assert/is-almost-same-value' ); var rffti = require( './../lib' ); @@ -52,10 +51,10 @@ tape( 'the function correctly initializes twiddle factors (small sequence length var expected; var lengths; var offsets; - var delta; - var tol; + var ulps; var off; var y; + var e; var N; var i; var k; @@ -64,6 +63,7 @@ tape( 'the function correctly initializes twiddle factors (small sequence length offsets = small.offsets; expected = small.twiddles; + ulps = 1; for ( k = 0; k < lengths.length; k++ ) { N = lengths[ k ]; off = offsets[ k ]; @@ -73,13 +73,8 @@ tape( 'the function correctly initializes twiddle factors (small sequence length t.strictEqual( workspace[ N ], 0.0, 'returns expected value' ); for ( i = 0; i < N-1; i++ ) { y = workspace[ N+i+1 ]; - if ( y === expected[ off+i ] ) { - t.strictEqual( y, expected[ off+i ], 'returns expected value' ); - } else { - delta = abs( y - expected[ off+i ] ); - tol = EPS * abs( expected[ off+i ] ); - t.ok( delta <= tol, 'within tolerance. N: '+N+'. workspace['+(N+i+1)+']. Value: '+y+'. Expected: '+expected[off+i]+'. tol: '+tol+'. delta: '+delta+'.' ); - } + e = expected[ off+i ]; + t.strictEqual( isAlmostSameValue( y, e, ulps ), true, 'within '+ulps+' ULPs. N: '+N+'. y: '+y+'. E: '+e ); } } t.end(); @@ -90,10 +85,10 @@ tape( 'the function correctly initializes twiddle factors (medium sequence lengt var expected; var lengths; var offsets; - var delta; - var tol; + var ulps; var off; var y; + var e; var N; var i; var k; @@ -102,6 +97,7 @@ tape( 'the function correctly initializes twiddle factors (medium sequence lengt offsets = medium.offsets; expected = medium.twiddles; + ulps = 1; for ( k = 0; k < lengths.length; k++ ) { N = lengths[ k ]; off = offsets[ k ]; @@ -111,13 +107,8 @@ tape( 'the function correctly initializes twiddle factors (medium sequence lengt t.strictEqual( workspace[ N ], 0.0, 'returns expected value' ); for ( i = 0; i < N-1; i++ ) { y = workspace[ N+i+1 ]; - if ( y === expected[ off+i ] ) { - t.strictEqual( y, expected[ off+i ], 'returns expected value' ); - } else { - delta = abs( y - expected[ off+i ] ); - tol = EPS * abs( expected[ off+i ] ); - t.ok( delta <= tol, 'within tolerance. N: '+N+'. workspace['+(N+i+1)+']. Value: '+y+'. Expected: '+expected[off+i]+'. tol: '+tol+'. delta: '+delta+'.' ); - } + e = expected[ off+i ]; + t.strictEqual( isAlmostSameValue( y, e, ulps ), true, 'within '+ulps+' ULPs. N: '+N+'. y: '+y+'. E: '+e ); } } t.end(); @@ -128,10 +119,10 @@ tape( 'the function correctly initializes twiddle factors (large sequence length var expected; var lengths; var offsets; - var delta; - var tol; + var ulps; var off; var y; + var e; var N; var i; var k; @@ -140,6 +131,7 @@ tape( 'the function correctly initializes twiddle factors (large sequence length offsets = large.offsets; expected = large.twiddles; + ulps = 1; for ( k = 0; k < lengths.length; k++ ) { N = lengths[ k ]; off = offsets[ k ]; @@ -149,13 +141,8 @@ tape( 'the function correctly initializes twiddle factors (large sequence length t.strictEqual( workspace[ N ], 0.0, 'returns expected value' ); for ( i = 0; i < N-1; i++ ) { y = workspace[ N+i+1 ]; - if ( y === expected[ off+i ] ) { - t.strictEqual( y, expected[ off+i ], 'returns expected value' ); - } else { - delta = abs( y - expected[ off+i ] ); - tol = EPS * abs( expected[ off+i ] ); - t.ok( delta <= tol, 'within tolerance. N: '+N+'. workspace['+(N+i+1)+']. Value: '+y+'. Expected: '+expected[off+i]+'. tol: '+tol+'. delta: '+delta+'.' ); - } + e = expected[ off+i ]; + t.strictEqual( isAlmostSameValue( y, e, ulps ), true, 'within '+ulps+' ULPs. N: '+N+'. y: '+y+'. E: '+e ); } } t.end(); From e7f37ce235f7f5c280067988337e63438aefa25a Mon Sep 17 00:00:00 2001 From: Gunj Joshi Date: Fri, 17 Apr 2026 22:18:08 +0530 Subject: [PATCH 04/14] Update README examples Co-authored-by: Athan Signed-off-by: Gunj Joshi --- .../@stdlib/fft/base/fftpack/rffti/README.md | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/README.md b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/README.md index 4aa185aefa1f..bd22a2a55aff 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/README.md +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/README.md @@ -114,28 +114,23 @@ The function accepts the following arguments: var Float64Array = require( '@stdlib/array/float64' ); var rffti = require( '@stdlib/fft/base/fftpack/rffti' ); -var workspace; -var N; -var nf; -var i; -var j; - -N = 8; -workspace = new Float64Array( ( 2*N ) + 34 ); +var N = 8; +var workspace = new Float64Array( ( 2*N ) + 34 ); rffti( N, workspace, 1, 0 ); console.log( 'Sequence length: %d', N ); console.log( 'Twiddle factors:' ); +var i; for ( i = N; i < 2*N; i++ ) { console.log( ' workspace[%d] = %d', i, workspace[ i ] ); } console.log( 'Factorization:' ); -nf = workspace[ ( 2*N ) + 1 ]; +var nf = workspace[ ( 2*N ) + 1 ]; console.log( ' number of factors: %d', nf ); -for ( j = 0; j < nf; j++ ) { - console.log( ' factor[%d]: %d', j, workspace[ ( 2*N ) + 2 + j ] ); +for ( i = 0; i < nf; i++ ) { + console.log( ' factor[%d]: %d', i, workspace[ ( 2*N ) + 2 + i ] ); } ``` From 9ca9dbf2b1dc9c6d69ace948dea08c993e301144 Mon Sep 17 00:00:00 2001 From: GUNJ JOSHI Date: Fri, 17 Apr 2026 22:20:15 +0530 Subject: [PATCH 05/14] docs: update examples --- 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 status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: passed - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - 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: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../fft/base/fftpack/rffti/examples/index.js | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/examples/index.js b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/examples/index.js index e9004065b2ee..bf8d4caa83ab 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/examples/index.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/examples/index.js @@ -21,26 +21,21 @@ var Float64Array = require( '@stdlib/array/float64' ); var rffti = require( './../lib' ); -var workspace; -var N; -var nf; -var i; -var j; - -N = 8; -workspace = new Float64Array( ( 2*N ) + 34 ); +var N = 8; +var workspace = new Float64Array( ( 2*N ) + 34 ); rffti( N, workspace, 1, 0 ); console.log( 'Sequence length: %d', N ); console.log( 'Twiddle factors:' ); +var i; for ( i = N; i < 2*N; i++ ) { console.log( ' workspace[%d] = %d', i, workspace[ i ] ); } console.log( 'Factorization:' ); -nf = workspace[ ( 2*N ) + 1 ]; +var nf = workspace[ ( 2*N ) + 1 ]; console.log( ' number of factors: %d', nf ); -for ( j = 0; j < nf; j++ ) { - console.log( ' factor[%d]: %d', j, workspace[ ( 2*N ) + 2 + j ] ); +for ( i = 0; i < nf; i++ ) { + console.log( ' factor[%d]: %d', i, workspace[ ( 2*N ) + 2 + i ] ); } From cba0e7f1b0ff57b4e0bb7f607152ddbb84cd220b Mon Sep 17 00:00:00 2001 From: GUNJ JOSHI Date: Fri, 17 Apr 2026 22:40:29 +0530 Subject: [PATCH 06/14] docs: update repl text --- 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 status: na - task: lint_package_json status: na - task: lint_repl_help status: passed - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - 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: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../fft/base/fftpack/rffti/docs/repl.txt | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/repl.txt b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/repl.txt index aa886670dc67..d8aa85b19e9f 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/repl.txt +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/repl.txt @@ -3,15 +3,18 @@ Initializes a workspace array for performing a real-valued Fourier transform. - The workspace array is divided into three sections: scratch/workspace - (indices 0 to N-1), twiddle factors (indices N to 2N-1), and radix factor - table (indices 2N onwards). - - The scratch/workspace section is used while performing transforms and is - not updated during initialization. The twiddle factors section stores a - table of reusable complex exponential constants as cosine/sine pairs. The - radix factor table stores the sequence length N, the number of factors into - which N was decomposed, and the individual integer radix factors. + The workspace array is divided into three sections: + + 1. scratch/workspace: the section ranges from indices 0 to N-1 and is used + while performing transforms. This section is not updated during + initialization. + + 2. twiddle factors: the section ranges from indices N to 2N-1 and stores a + table of reusable complex exponential constants as cosine/sine pairs. + + 3. radix factor table: the section starts at index 2N 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. From c27a17540c50c003f558a70565326f37828d3be1 Mon Sep 17 00:00:00 2001 From: Athan Date: Sun, 19 Apr 2026 03:10:00 -0700 Subject: [PATCH 07/14] style: add empty line Signed-off-by: Athan --- .../@stdlib/fft/base/fftpack/rffti/docs/types/index.d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/index.d.ts b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/index.d.ts index 2c55a4abb09d..c8ab146082dd 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/index.d.ts +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/index.d.ts @@ -32,6 +32,7 @@ import { Collection } from '@stdlib/types/array'; * * @example * var Float64Array = require( '@stdlib/array/float64' ); +* * var N = 8; * var workspace = new Float64Array( ( 2*N ) + 34 ); * From 500b84b9a7efe2a06414679ca3820342ef6b20b7 Mon Sep 17 00:00:00 2001 From: Athan Date: Sun, 19 Apr 2026 03:12:29 -0700 Subject: [PATCH 08/14] style: add empty line Signed-off-by: Athan --- .../@stdlib/fft/base/fftpack/rffti/docs/types/test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/test.ts b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/test.ts index a01b8b17546f..e2bf310b07b7 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/test.ts +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/test.ts @@ -18,6 +18,7 @@ import rffti = require( './index' ); + // TESTS // // The function returns void... From daef1f3d7cd9da9a052a4502883040bf2f74f4cb Mon Sep 17 00:00:00 2001 From: Athan Date: Sun, 19 Apr 2026 03:29:05 -0700 Subject: [PATCH 09/14] Apply suggestions from code review Co-authored-by: Athan Signed-off-by: Athan --- lib/node_modules/@stdlib/fft/base/fftpack/rffti/README.md | 1 + .../@stdlib/fft/base/fftpack/rffti/docs/types/index.d.ts | 3 ++- .../@stdlib/fft/base/fftpack/rffti/docs/types/test.ts | 4 ++-- .../@stdlib/fft/base/fftpack/rffti/examples/index.js | 1 + lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/main.js | 6 ++++-- 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/README.md b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/README.md index bd22a2a55aff..9cb66af3c708 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/README.md +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/README.md @@ -128,6 +128,7 @@ for ( i = N; i < 2*N; i++ ) { console.log( 'Factorization:' ); var nf = workspace[ ( 2*N ) + 1 ]; + console.log( ' number of factors: %d', nf ); for ( i = 0; i < nf; i++ ) { console.log( ' factor[%d]: %d', i, workspace[ ( 2*N ) + 2 + i ] ); diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/index.d.ts b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/index.d.ts index c8ab146082dd..7bd195ea2ca8 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/index.d.ts +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/index.d.ts @@ -29,6 +29,7 @@ import { Collection } from '@stdlib/types/array'; * @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' ); @@ -44,7 +45,7 @@ import { Collection } from '@stdlib/types/array'; * var factors = workspace.slice( 2*N, ( 2*N ) + 4 ); * // returns [ 8, 2, 2, 4 ] */ -declare function rffti( N: number, workspace: Collection, strideW: number, offsetW: number ): void; +declare function rffti>( N: number, workspace: T, strideW: number, offsetW: number ): T; // EXPORTS // diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/test.ts b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/test.ts index e2bf310b07b7..6d1f815d9301 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/test.ts +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/test.ts @@ -21,11 +21,11 @@ import rffti = require( './index' ); // TESTS // -// The function returns void... +// The function returns a collection... { const workspace = new Float64Array( ( 2*8 ) + 34 ); - rffti( 8, workspace, 1, 0 ); // $ExpectType void + rffti( 8, workspace, 1, 0 ); // $ExpectType Float64Array } // The compiler throws an error if the function is provided a first argument which is not a number... diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/examples/index.js b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/examples/index.js index bf8d4caa83ab..92a7803afedf 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/examples/index.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/examples/index.js @@ -35,6 +35,7 @@ for ( i = N; i < 2*N; i++ ) { console.log( 'Factorization:' ); var nf = workspace[ ( 2*N ) + 1 ]; + console.log( ' number of factors: %d', nf ); for ( i = 0; i < nf; i++ ) { console.log( ' factor[%d]: %d', i, workspace[ ( 2*N ) + 2 + i ] ); diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/main.js b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/main.js index 663a19bd35cd..e7a656fddbc4 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/main.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/main.js @@ -129,10 +129,10 @@ var rffti1 = require( './rffti1.js' ); * In short, twiddle factors are cached roots of unity that allow each stage of the algorithm to rotate data quickly and predictably. * * @param {NonNegativeInteger} N - length of the sequence to transform -* @param {Float64Array} workspace - workspace array +* @param {Collection} workspace - workspace array * @param {integer} strideW - stride length for `workspace` * @param {NonNegativeInteger} offsetW - starting index for `workspace` -* @returns {void} +* @returns {Collection} workspace array * * @example * var Float64Array = require( '@stdlib/array/float64' ); @@ -162,6 +162,8 @@ function rffti( N, workspace, strideW, offsetW ) { // Initialize a provided workspace array: rffti1( N, workspace, strideW, offsetT, workspace, strideW, offsetF ); + + return workspace; } From 5c8446bed0ae7a600777e05f608e321e724dbf56 Mon Sep 17 00:00:00 2001 From: Athan Date: Sun, 19 Apr 2026 03:31:32 -0700 Subject: [PATCH 10/14] Apply suggestions from code review Co-authored-by: Athan Signed-off-by: Athan --- .../@stdlib/fft/base/fftpack/rffti/docs/repl.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/repl.txt b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/repl.txt index d8aa85b19e9f..fe99f4ad3524 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/repl.txt +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/repl.txt @@ -32,6 +32,11 @@ offsetW: integer Starting index for `workspace`. + Returns + ------- + out: ArrayLikeObject + Workspace array. + Examples -------- > var {{alias:@stdlib/array/float64}} = require( '@stdlib/array/float64' ); From 2eb785a61a269785cdc6046511eae4a386e95182 Mon Sep 17 00:00:00 2001 From: GUNJ JOSHI Date: Sat, 25 Apr 2026 13:56:23 +0530 Subject: [PATCH 11/14] refactor: revert to old implementation --- 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 status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - 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: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../fft/base/fftpack/rffti/lib/rffti1.js | 120 +++++++++--------- 1 file changed, 59 insertions(+), 61 deletions(-) diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/rffti1.js b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/rffti1.js index 18a9062cce13..60c1bfee8e0d 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/rffti1.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/rffti1.js @@ -60,15 +60,15 @@ // MODULES // +var sincos = require( '@stdlib/math/base/special/sincos' ).assign; var TWO_PI = require( '@stdlib/constants/float64/two-pi' ); var floor = require( '@stdlib/math/base/special/floor' ); -var sin = require( '@stdlib/math/base/special/sin' ); -var cos = require( '@stdlib/math/base/special/cos' ); var decompose = require( '@stdlib/fft/base/fftpack/decompose' ); // VARIABLES // +// Define a list of initial trial factors for FFT factorization: var TRIAL_FACTORS = [ 4, 2, 3, 5 ]; @@ -78,104 +78,102 @@ var TRIAL_FACTORS = [ 4, 2, 3, 5 ]; * Initializes the working arrays for applying a Fourier transform to a real-valued sequence. * * @private -* @param {NonNegativeInteger} n - length of the sequence -* @param {Collection} wa - array of twiddle factors -* @param {integer} strideW - stride length for `wa` -* @param {NonNegativeInteger} offsetW - starting index for `wa` -* @param {Collection} ifac - array containing a radix factorization -* @param {integer} strideF - stride length for `ifac` -* @param {NonNegativeInteger} offsetF - starting index for `ifac` +* @param {NonNegativeInteger} N - length of the sequence +* @param {Collection} twiddles - array of twiddle factors +* @param {integer} strideT - stride length for `twiddles` +* @param {NonNegativeInteger} offsetT - starting index for `twiddles` +* @param {Collection} factors - array containing a radix factorization +* @param {integer} strideF - stride length for `factors` +* @param {NonNegativeInteger} offsetF - starting index for `factors` * @returns {void} */ -function rffti1( n, wa, strideW, offsetW, ifac, strideF, offsetF ) { +function rffti1( N, twiddles, strideT, offsetT, factors, strideF, offsetF ) { + var factor; var argld; var argh; - var nfm1; - var arg; - var ipm; - var ido; + var fidx; var nf; var fi; - var ip; var l2; var l1; var ld; - var ii; - var is; - var k1; - var i; + var st; + var it; + var im; + var M; + var m; + var k; var j; // Decompose the sequence length into its radix factors: - nf = decompose( n, 4, TRIAL_FACTORS, 1, 0, ifac, strideF, offsetF ); + nf = decompose( N, 4, TRIAL_FACTORS, 1, 0, factors, strideF, offsetF ); + // If the number of radix factors is `1`, the only twiddle factor we need is `W_N^0 = 1`, which the main transform kernels already hard-code, so nothing to pre-compute... + if ( nf-1 === 0 ) { + return; + } // Compute the master angular step (i.e., the basic angle that generates all twiddles): - argh = TWO_PI / n; - - // Initialize the index into the twiddle factor array: - is = 0; + argh = TWO_PI / N; - // Compute the number of factors minus one: - nfm1 = nf - 1; + // Define the location of the first sine term we want to compute: + im = 1; // Initialize a running product of factors already processed: l1 = 1; - // If the number of radix factors is `1`, the only twiddle factor we need is `W_N^0 = 1`, which the main transform kernels already hard-code, so nothing to pre-compute... - if ( nfm1 === 0 ) { - return; - } - // Generate twiddle factors for each radix factor... - for ( k1 = 0; k1 < nfm1; k1++ ) { - // Resolve the next radix factor (C code: ifac[k1+2] with 1-based, JS: ifac[k1+2] with 0-based): - ip = ifac[ offsetF + ((k1+2)*strideF) ]; + // Compute the index of the first radix factor: + fidx = offsetF + ( 2*strideF ); - // Initialize a running offset used to step the angle: - ld = 0; + // Compute the stride length for each cosine/sine pair: + st = 2 * strideT; + + // Generate twiddle factors... + for ( k = 0; k < nf-1; k++ ) { + // Resolve the next radix factor: + factor = factors[ fidx ]; // Compute the length of the transform after including the current radix: - l2 = l1 * ip; + l2 = factor * l1; - // Compute the number of data points in each sub-transform: - ido = floor( n / l2 ); + // Compute the number of the "butterfly wings" (at this stage, the data is viewed as a `factor`-point transform of sub-vectors of length `l1`; `M` describes how many such vectors fit in the full array of length `N`): + M = floor( N / l2 ); - // Compute the number of iterations for the inner loop: - ipm = ip - 1; + // Initialize a running offset used to step the angle: + ld = 0; // Iterate over each butterfly column within the current radix... - for ( j = 0; j < ipm; j++ ) { + for ( j = 1; j < factor; j++ ) { // Advance to the next column: ld += l1; - // Initialize the index into the twiddle factor array: - i = is; - // Compute the angle step for this column: - argld = ld * argh; + argld = ld * argh; // 2π ⋅ j ⋅ li / N, which is the j-th column's base angle - // Initialize the harmonic counter: - fi = 0.0; + // Initialize a counter which counts from `1` to `(M/2)-1` (i.e., all non-trivial harmonics): + fi = 1.0; - // Iterate over each non-trivial harmonic in the column... - for ( ii = 2; ii < ido; ii += 2 ) { - // Advance the index by 2 (for cosine and sine): - i += 2; + // Compute the index of the sine term: + it = offsetT + ( (im+1)*strideT ); - // Update the harmonic counter: - fi += 1.0; + // Iterate over each non-trivial harmonic in the column (note: we skip the `m=0` and `m=1` (i.e., the first cosine/sine pair, the first harmonic `W_N^0 = cos(0) + j sin(0) = 1 + j⋅0` is trivial and hard-coded by transform kernels)... + for ( m = 2; m < M; m += 2 ) { + // Compute `(cos(fi*argld), sin(fi*argld))`: + sincos( fi*argld, twiddles, -strideT, it ); // note: `sincos` returns the sine and cosine, in that order, so we need to use a negative stride when assigning the values to `twiddles` to ensure that cosine comes before sine in the twiddles table - // Compute the angle for this harmonic: - arg = fi * argld; + // Update for the next harmonic: + fi += 1.0; - // Store the cosine and sine values: - wa[ offsetW + ( ( i-1 ) * strideW ) ] = cos( arg ); - wa[ offsetW + ( i*strideW ) ] = sin( arg ); + // Resolve the index of the next sine term: + it += st; } - // Advance the index by the number of data points in each sub-transform: - is += ido; + // Advance `im` by the size of the current block, skipping the cosine/sine pairs we have just written: + im += M; } // Update the running product of factors already processed: l1 = l2; + + // Resolve the index of the next radix factor: + fidx += strideF; } } From 40a06063cd90c47d30c57e494b7caecbdecaf682 Mon Sep 17 00:00:00 2001 From: GUNJ JOSHI Date: Sat, 25 Apr 2026 14:35:32 +0530 Subject: [PATCH 12/14] test: add test confirming the workspace array is returned --- 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 status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: passed - task: lint_javascript_benchmarks status: na - 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: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../@stdlib/fft/base/fftpack/rffti/test/test.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/test.js b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/test.js index 4f158aa9df20..8173a6ee269a 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/test.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/test.js @@ -46,6 +46,19 @@ tape( 'the function has an arity of 4', function test( t ) { 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( ( 2*N ) + 34 ); + out = rffti( N, workspace, 1, 0 ); + + t.strictEqual( out, workspace, 'same reference' ); + t.end(); +}); + tape( 'the function correctly initializes twiddle factors (small sequence lengths)', function test( t ) { var workspace; var expected; From 7b69d8448ff375261a0c7f1d41979e29aae7dd4f Mon Sep 17 00:00:00 2001 From: GUNJ JOSHI Date: Sat, 25 Apr 2026 15:10:28 +0530 Subject: [PATCH 13/14] docs: update examples to reflect the returned workspace array --- 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 status: passed - task: lint_package_json status: na - task: lint_repl_help status: passed - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - 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: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: skipped - task: lint_license_headers status: passed --- --- lib/node_modules/@stdlib/fft/base/fftpack/rffti/README.md | 6 +++++- .../@stdlib/fft/base/fftpack/rffti/docs/repl.txt | 5 ++++- .../@stdlib/fft/base/fftpack/rffti/docs/types/index.d.ts | 6 +++++- .../@stdlib/fft/base/fftpack/rffti/lib/index.js | 6 +++++- lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/main.js | 6 +++++- 5 files changed, 24 insertions(+), 5 deletions(-) diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/README.md b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/README.md index 9cb66af3c708..c2de5f7a15f6 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/README.md +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/README.md @@ -50,7 +50,11 @@ var Float64Array = require( '@stdlib/array/float64' ); var N = 8; var workspace = new Float64Array( ( 2*N ) + 34 ); -rffti( N, workspace, 1, 0 ); +var out = rffti( N, workspace, 1, 0 ); +// returns + +var bool = ( out === workspace ); +// returns true var twiddleFactors = workspace.slice( N, 2*N ); // returns [ 0, ~0.707, ~0.707, 0, 0, 0, 0, 0 ] diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/repl.txt b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/repl.txt index fe99f4ad3524..92ba0e409b67 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/repl.txt +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/repl.txt @@ -42,7 +42,10 @@ > var {{alias:@stdlib/array/float64}} = require( '@stdlib/array/float64' ); > var N = 8; > var workspace = new {{alias:@stdlib/array/float64}}( ( 2*N ) + 34 ); - > {{alias}}( N, workspace, 1, 0 ); + > var out = {{alias}}( N, workspace, 1, 0 ) + + > var bool = ( out === workspace ) + true > var twiddleFactors = workspace.slice( N, 2*N ) [ 0, ~0.707, ~0.707, 0, 0, 0, 0, 0 ] > var factors = workspace.slice( 2*N, ( 2*N ) + 4 ) diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/index.d.ts b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/index.d.ts index 7bd195ea2ca8..648888833e33 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/index.d.ts +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/docs/types/index.d.ts @@ -37,7 +37,11 @@ import { Collection } from '@stdlib/types/array'; * var N = 8; * var workspace = new Float64Array( ( 2*N ) + 34 ); * -* rffti( N, workspace, 1, 0 ); +* var out = rffti( N, workspace, 1, 0 ); +* // returns +* +* var bool = ( out === workspace ); +* // returns true * * var twiddleFactors = workspace.slice( N, 2*N ); * // returns [ 0, ~0.707, ~0.707, 0, 0, 0, 0, 0 ] diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/index.js b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/index.js index 3c440549ebce..51c16c7bcb35 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/index.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/index.js @@ -30,7 +30,11 @@ * var N = 8; * var workspace = new Float64Array( ( 2*N ) + 34 ); * -* rffti( N, workspace, 1, 0 ); +* var out = rffti( N, workspace, 1, 0 ); +* // returns +* +* var bool = ( out === workspace ); +* // returns true * * var twiddleFactors = workspace.slice( N, 2*N ); * // returns [ 0, ~0.707, ~0.707, 0, 0, 0, 0, 0 ] diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/main.js b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/main.js index e7a656fddbc4..08aafc0ffdb1 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/main.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/lib/main.js @@ -140,7 +140,11 @@ var rffti1 = require( './rffti1.js' ); * var N = 8; * var workspace = new Float64Array( ( 2*N ) + 34 ); * -* rffti( N, workspace, 1, 0 ); +* var out = rffti( N, workspace, 1, 0 ); +* // returns +* +* var bool = ( out === workspace ); +* // returns true * * var twiddleFactors = workspace.slice( N, 2*N ); * // returns [ 0, ~0.707, ~0.707, 0, 0, 0, 0, 0 ] From d51d175f424230d2f3200afc914ee93a983dbfd0 Mon Sep 17 00:00:00 2001 From: Gunj Joshi Date: Fri, 22 May 2026 22:51:01 +0530 Subject: [PATCH 14/14] test: seed the fixture generator --- 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 status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - 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: missing_dependencies - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../fft/base/fftpack/rffti/test/fixtures/c/fftpack/large.json | 2 +- .../base/fftpack/rffti/test/fixtures/c/fftpack/medium.json | 2 +- .../fft/base/fftpack/rffti/test/fixtures/c/fftpack/runner.c | 4 ++++ .../fft/base/fftpack/rffti/test/fixtures/c/fftpack/small.json | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/large.json b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/large.json index 37ea1b0c0505..01ea1093cdc9 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/large.json +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/large.json @@ -1 +1 @@ -{"lengths":[502,743,655,961,886,600,210,713,500,756],"offsets":[0,501,1243,1897,2857,3742,4341,4550,5262,5761],"twiddles":[0.9999216720722226,0.012515978598993244,0.99968670055941911,0.025029996496650959,0.99929512227125272,0.037540093298792959,0.99874699855075533,0.050044309225501633,0.99804241526471715,0.062540685418132944,0.99718148279023588,0.075027264246183084,0.99616433599742471,0.08750208961396283,0.99499113422828478,0.099963207267031257,0.99366206127174295,0.11240866509834127,0.99217732533486025,0.12483651345404856,0.99053715901021533,0.13724480543893622,0.9887418192394668,0.1496315972214074,0.98679158727310268,0.16199494833799785,0.98468676862638005,0.17433292199736086,0.98242769303146482,0.18664358538367701,0.98001471438577714,0.1989250099594411,0.97744821069655108,0.21117527176757875,0.97472858402161788,0.22339245173284561,0.97185626040642126,0.23557463596246184,0.9688316898172743,0.24771991604593438,0.96565534607087056,0.2598263893540208,0.96232772676005707,0.27189215933678729,0.95884935317588393,0.28391533582071415,0.95522077022594098,0.29589403530480296,0.95144254634899461,0.3078263812556376,0.94751527342593878,0.31971050440135429,0.94343956668707329,0.33154454302447417,0.93921606461572416,0.34332664325355206,0.93484542884822197,0.35505495935359627,0.93032834407025211,0.36672765401521407,0.92566551790959517,0.37834289864243648,0.92085768082527253,0.38989887363917902,0.91590558599311611,0.40139376869429183,0.91081000918777855,0.41282578306515549,0.90557174866120382,0.42419312585977798,0.90019162501757644,0.43549401631734846,0.89467048108476877,0.44672668408720384,0.88900918178230715,0.45788936950616438,0.88320861398587747,0.46898032387419553,0.87726968638839042,0.47999780972835188,0.87119332935763005,0.49094010111496078,0.86498049479050554,0.50180548386000345,0.8586321559639315,0.51259225583764989,0.85214930738235817,0.5232987272369074,0.84553296462197658,0.53392322082633881,0.83878416417162216,0.54446407221681126,0.83190396327040383,0.55491963012223178,0.82489343974207996,0.56528825661823134,0.81775369182621194,0.57556832739875541,0.81048583800611773,0.58575823203052058,0.80309101683365569,0.5958563742052988,0.79557038675086322,0.60586117198998812,0.78792512590848029,0.615771058074432,0.78015643198138518,0.62558448001694733,0.77226552198097143,0.63529990048752383,0.76425363206449637,0.64491579750865569,0.75612201734142948,0.65443066469376809,0.74787195167683218,0.66384301148320146,0.73950472749179963,0.67315136337771708,0.73102165556099497,0.68235426216948492,0.72242406480730936,0.69145026617052108,0.71371330209367811,0.70043795043853685,0.70489073201208652,0.70931590700016367,0.69595773666979899,0.71808274507152081,0.68691571547284358,0.72673709127608965,0.67776608490678669,0.73527758985986136,0.66851027831483278,0.74370290290372321,0.65914974567328244,0.75201171053305227,0.64968595336438484,0.76020271112448046,0.64012038394662107,0.76827462150980252,0.63045453592245226,0.77622617717699094,0.62068992350357011,0.78405613246828976,0.61082807637368719,0.79176326077535386,0.60087053944890312,0.79934635473140436,0.59081887263568411,0.80680422640036986,0.58067465058649448,0.81413570746298347,0.57043946245311827,0.82133964939980675,0.56011491163770932,0.82841492367115233,0.54970261554160871,0.83536042189387583,0.53920420531196989,0.84217505601501108,0.52862132558622921,0.84885775848221934,0.51795563423446411,0.85540748241102849,0.50720880209967889,0.86182320174883242,0.49638251273605571,0.86810391143562959,0.48547846214521756,0.87424862756147037,0.47449835851053851,0.88025638752059299,0.46344392192954786,0.88612625016222102,0.45231688414446553,0.89185729593800045,0.44111898827091589,0.89744862704605188,0.42985198852485718,0.90289936757161704,0.41851764994777407,0.90820866362427555,0.40711774813017382,0.91337568347171161,0.39565406893342853,0.91839961767001066,0.38412840821001093,0.92327967919046239,0.37254257152216214,0.92801510354285432,0.36089837385904117,0.93260514889523305,0.34919763935239484,0.93704909619011678,0.33744220099079825,0.94134624925714006,0.32563390033250494,0.94549593492211281,0.31377458721695767,0.94949750311247672,0.30186611947499836,0.95335032695914357,0.28991036263782993,0.95705380289469721,0.2779091896447683,0.96060735074794645,0.26586448054983614,0.96401041383481212,0.25377812222724205,0.96726245904553487,0.24165200807578915,0.97036297692818985,0.22948803772226484,0.97331148176849547,0.21728811672385134,0.97610751166590348,0.20505415626961082,0.97875062860595807,0.1927880728810846,0.98124041852891364,0.18049178811206068,0.98357649139459968,0.16816722824754926,0.98575848124352283,0.15581632400202064,0.9877860462541963,0.14344101021694589,0.98965886879668896,0.13104322555769418,0.99137665548238285,0.11862491220982808,0.99293913720993521,0.10618801557484943,0.99434606920743418,0.09373448396544147,0.99559723107074394,0.081266268300252686,0.99669242679803249,0.068785321798275817,0.99763148482047603,0.056293599672862807,0.99841425802913664,0.043793058825431011,0.99904062379800773,0.031285657538901342,0.99951048400322373,0.018773355170923541,0.99982376503843229,0.0062581118469295857,0.99998041782632485,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99995399089228465,0.0095925022070750422,0.99981596780281456,0.019184121729215471,0.99958594343222806,0.028773975962709773,0.99926393894695731,0.038361182466285143,0.99884998397728031,0.047944859042308149,0.99834411661459477,0.057524123817963006,0.99774638340791266,0.067098095326399917,0.99705683935957679,0.076665892587846091,0.99627554792020001,0.086226635190671932,0.99540258098282641,0.095779443372404918,0.99443801887631555,0.10532343810068384,0.99338195035795129,0.1148577411541457,0.99223447260527398,0.12438147520323815,0.99099569120713871,0.13389376389094976,0.98966572015399901,0.14339373191345081,0.98824468182741765,0.15288050510063725,0.98673270698880577,0.16235321049657017,0.98512993476738953,0.17181097643980375,0.98343651264740872,0.18125293264359393,0.9816525964545445,0.19067821027598067,0.97977835034158178,0.20008594203973626,0.9778139467733028,0.20947526225217258,0.97575956651061857,0.21884530692479959,0.97361539859393453,0.22819521384282795,0.97138164032575602,0.2375241226445087,0.96905849725253246,0.24683117490030193,0.9666461831457438,0.25611551419186823,0.96414491998222918,0.26537628619087439,0.96155493792376112,0.27461263873760766,0.95887647529586684,0.28382372191938954,0.95610977856589718,0.29300868814878356,0.95325510232034805,0.30216669224158832,0.95031270924143318,0.31129689149461048,0.94728287008291279,0.32039844576320814,0.94416586364517918,0.32947051753859991,0.94096197674960236,0.33851227202493073,0.93767150421213696,0.34752287721608843,0.93429474881619357,0.35650150397226332,0.93083202128477793,0.36544732609624431,0.9272836402518978,0.37435952040944409,0.92364993223324365,0.38323726682764614,0.91993123159614254,0.39207974843646826,0.91612788052879113,0.40088615156653268,0.912240229008767,0.40965566586833907,0.90826863477082542,0.41838748438683115,0.90421346327398056,0.42708080363565143,0.90007508766787669,0.43573482367107641,0.89585388875845207,0.44434874816562614,0.89155025497289708,0.45292178448134085,0.88716458232391282,0.46145314374271779,0.88269727437326961,0.46994204090930269,0.87814874219467309,0.47838769484792726,0.87351940433593711,0.48678932840458788,0.86880968678046988,0.49514616847595799,0.86402002290807633,0.50345744608052745,0.85915085345507824,0.51172239642936346,0.85420262647375944,0.51994025899648399,0.84917579729113635,0.52811027758884121,0.84407082846705961,0.53623170041590384,0.83888818975165003,0.54430378015883696,0.83362835804207369,0.55232577403926764,0.82829181733865787,0.56029694388763485,0.8228790587003546,0.56821655621111422,0.81739058019955446,0.57608388226111285,0.81182688687625448,0.58389819810032739,0,0.99981596780281456,0.019184121729215471,0.99926393894695731,0.038361182466285143,0.99834411661459477,0.057524123817963006,0.99705683935957679,0.076665892587846091,0.99540258098282641,0.095779443372404918,0.99338195035795129,0.1148577411541457,0.99099569120713871,0.13389376389094976,0.98824468182741765,0.15288050510063725,0.98512993476738953,0.17181097643980375,0.9816525964545445,0.19067821027598067,0.9778139467733028,0.20947526225217258,0.97361539859393453,0.22819521384282795,0.96905849725253246,0.24683117490030193,0.96414491998222918,0.26537628619087439,0.95887647529586684,0.28382372191938954,0.95325510232034805,0.30216669224158832,0.94728287008291279,0.32039844576320814,0.94096197674960236,0.33851227202493073,0.93429474881619357,0.35650150397226332,0.9272836402518978,0.37435952040944409,0.91993123159614254,0.39207974843646826,0.912240229008767,0.40965566586833907,0.90421346327398056,0.42708080363565143,0.89585388875845207,0.44434874816562614,0.88716458232391282,0.46145314374271779,0.87814874219467309,0.47838769484792726,0.86880968678046988,0.49514616847595799,0.85915085345507824,0.51172239642936346,0.84917579729113635,0.52811027758884121,0.83888818975165003,0.54430378015883696,0.82829181733865787,0.56029694388763485,0.81739058019955446,0.57608388226111285,0.80618849069158549,0.59165878466935951,0.79468967190504114,0.60701591854535253,0.78289835614569425,0.62214963147491265,0.77081888337703852,0.63705435327715598,0.75845569962290305,0.65172459805467875,0.74581335533102855,0.66615496621272208,0.73289650369821047,0.68034014644656893,0.71970989895762205,0.69427491769644789,0.70625839462895112,0.70795415106921777,0.69254694173199149,0.7213728117261321,0.67858058696434997,0.73452596073598264,0.66436447084393546,0.74740875689294517,0.64990382581691819,0.76001645849845434,0.63520397433185227,0.7723444251064544,0.62027032688067185,0.78438811923138185,0.60510838000728195,0.7961431080182525,0.58972371428447568,0.807605064874238,0.57412199225992522,0.81876977106112947,0.55830895637199851,0.82963311724810618,0.5422904268361729,0.84019110502423278,0.52607229950282064,0.85043984837013287,0.50966054368715641,0.86037557508829365,0.49306119997214548,0.86999462819147788,0.4762803779851788,0.87929346724873103,0.4593242541493382,0.88826866968848683,0.44219906941007425,0.89691693205829515,0.42491112693813671,0.90523507124070413,0.40746678980960094,0.91322002562485372,0.38987247866384761,0.92086885623334425,0.372134669340353,0.92817874780397025,0.35425989049516343,0.93514700982591759,0.3362547211979286,0.94177107753004563,0.3181257885103817,0.9480485128328866,0,0.99958594343222806,0.028773975962709773,0.99834411661459477,0.057524123817963006,0.99627554792020001,0.086226635190671919,0.99338195035795129,0.1148577411541457,0.98966572015399901,0.14339373191345081,0.98512993476738953,0.17181097643980373,0.97977835034158178,0.20008594203973623,0.97361539859393453,0.22819521384282795,0.96664618314574391,0.25611551419186818,0.95887647529586684,0.28382372191938954,0.95031270924143318,0.31129689149461048,0.94096197674960247,0.33851227202493073,0.93083202128477793,0.36544732609624431,0.91993123159614265,0.3920797484364682,0.90826863477082542,0.41838748438683115,0.89585388875845207,0.44434874816562614,0.88269727437326961,0.46994204090930269,0.86880968678046999,0.49514616847595788,0.85420262647375944,0.51994025899648399,0.83888818975165003,0.54430378015883696,0.8228790587003546,0.56821655621111422,0.80618849069158549,0.59165878466935951,0.78883030740395021,0.61461105271626004,0.77081888337703863,0.63705435327715587,0.75216913410767716,0.65897010076004747,0.73289650369821047,0.68034014644656893,0.71301695206703719,0.70114679352118014,0.69254694173199161,0.72137281172613199,0.67150342417751696,0.74100145163006914,0.64990382581691819,0.76001645849845434,0.62776603356132032,0.77840208575432746,0.60510838000728195,0.7961431080182525,0.58194962825533181,0.81322483371665499,0.55830895637199862,0.82963311724810607,0.53420594150820189,0.84535437069748187,0.50966054368715663,0.86037557508829354,0.48469308927521559,0.87468429116387347,0.4593242541493382,0.88826866968848683,0.43357504657512602,0.90111746125983894,0.40746678980960094,0.91322002562485372,0.38102110444313658,0.92456634049100683,0.35425989049516343,0.93514700982591759,0.32720530927847485,0.94495327163832687,0.29987976504715314,0.95397700523401729,0.272305886443312,0.96221073794066658,0.24450650775802121,0.96964765129606578,0.21650465002193006,0.97628158669457732,0.18832350194124939,0.98210705048715752,0.15998640069487935,0.98711921853071904,0.13151681260858569,0.9913139401830674,0.10293831372222599,0.99468774174010233,0.074274570266122178,0.99723782931243787,0.045549319062744113,0.99896209113905832,0.01678634786993511,0.99985909933609618,-0.011990524318042799,0.9999281110792807,-0.040757466995330872,0.99916906921908089,-0.069490657878828618,0.99758260232803153,-0.098166302635739319,0.99517002418020428,-0.12676065458796981,0.99193333266325379,-0.15525003437706564,0.98787520812394114,-0.18361084957340015,0.98299901114850274,-0.21181961421337459,0.97730877977970565,-0.23985296824845306,0.97080922617289056,-0.26768769688992577,0.96350573269377449,-0.2953007498333805,0.95540434746124281,0,0.99926393894695731,0.038361182466285143,0.99705683935957679,0.076665892587846091,0.99338195035795129,0.1148577411541457,0.98824468182741765,0.15288050510063725,0.9816525964545445,0.19067821027598067,0.97361539859393453,0.22819521384282795,0.96414491998222918,0.26537628619087439,0.95325510232034805,0.30216669224158832,0.94096197674960236,0.33851227202493073,0.9272836402518978,0.37435952040944409,0.912240229008767,0.40965566586833907,0.89585388875845207,0.44434874816562614,0.87814874219467309,0.47838769484792726,0.85915085345507824,0.51172239642936346,0.83888818975165003,0.54430378015883696,0.81739058019955446,0.57608388226111285,0.79468967190504114,0.60701591854535253,0.77081888337703852,0.63705435327715598,0.74581335533102855,0.66615496621272208,0.71970989895762205,0.69427491769644789,0.69254694173199149,0.7213728117261321,0.66436447084393546,0.74740875689294517,0.63520397433185227,0.7723444251064544,0.60510838000728195,0.7961431080182525,0.57412199225992522,0.81876977106112947,0.5422904268361729,0.84019110502423278,0.50966054368715641,0.86037557508829365,0.4762803779851788,0.87929346724873103,0.44219906941007425,0.89691693205829515,0.40746678980960094,0.91322002562485372,0.372134669340353,0.92817874780397025,0.3362547211979286,0.94177107753004563,0.29987976504715314,0.95397700523401729,0.26306334926508379,0.96477856229988679,0.22585967211126068,0.97415984751671725,0.18832350194124917,0.98210705048715763,0.15051009658093475,0.98860847195803336,0.11247512198025425,0.99365454104307649,0.074274570266122178,0.99723782931243787,0.035964677315181139,0.99935306172824367,-0.0023981600322735895,0.99999712441009525,-0.040757466995331094,0.99916906921908089,-0.079056773990236515,0.99687011515355228,-0.11723969976051532,0.99310364655461025,-0.15525003437706564,0.98787520812394114,-0.19303182198603916,0.98119249676133891,-0.23052944318268886,0.97306535023392926,-0.26768769688992577,0.96350573269377449,-0.3044518816210442,0.95252771706518113,-0.34076787600698871,0.94014746432763707,-0.37658221846961976,0.92638319972487604,-0.41184218592368282,0.91125518593509403,-0.44649587139162922,0.89478569324181179,-0.4804922604170242,0.87699896674929934,-0.51378130616405593,0.8579211906908214,-0.54631400309259037,0.83758044988224811,-0.57804245910030827,0.81600668837777823,-0.60891996602572862,0.79323166538863377,-0.63890106840832539,0.76928890852962406,-0.66794163040451704,0.74421366446240123,-0.69599890076101534,0.71804284700807253,-0.72303157574989219,0.69081498280554676,-0.74899985997270968,0.66257015459561819,-0.77386552494420657,0.63334994221427665,-0.79759196536929577,0.60319736138211355,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99997862621587907,0.0065381275150541273,0.99991450577719376,0.013075975541056132,0.99980764142493683,0.019613264600901365,0.99965803772729944,0.026149715241379632,0.99946570107947585,0.032685048045121116,0.9992306397033901,0.039218983642540797,0.99895286364734437,0.045751242723780859,0.99863238478558947,0.052281546050650433,0.99826921681781766,0.058809614468562421,0.99786337526857627,0.065335168918466649,0.99741487748660462,0.071857930448778959,0.99692374264409223,0.078377620227305669,0.9963899917358594,0.084893959553163104,0.99581364757845936,0.091406669868691226,0.99519473480920351,0.097915472771361381,0,0.99991450577719376,0.013075975541056132,0.99965803772729944,0.026149715241379632,0.9992306397033901,0.039218983642540797,0.99863238478558947,0.052281546050650433,0.99786337526857627,0.065335168918466649,0.99692374264409223,0.078377620227305669,0.99581364757845936,0.091406669868691226,0.99453327988510742,0.10442009002567733,0.99308285849211808,0.11741565555377921,0.99146263140479085,0.13039114436144741,0.98967287566323692,0.14334433779001962,0.98771389729500847,0.15627302099308574,0.98558603126277178,0.16917498331520114,0.98328964140703223,0.18204801866988293,0.98082512038392156,0.19488992591682555,0,0.99980764142493683,0.019613264600901365,0.9992306397033901,0.039218983642540797,0.99826921681781766,0.058809614468562421,0.99692374264409223,0.078377620227305669,0.99519473480920351,0.097915472771361381,0.99308285849211808,0.11741565555377921,0.99058892616787431,0.1368706665198122,0.98771389729500847,0.15627302099308574,0.98445887794643516,0.17561525455508123,0.98082512038392156,0.19488992591682555,0.97681402257632155,0.21408961978168281,0.97242712766175254,0.23320694969814601,0.96766612335392388,0.25223456090153173,0.96253284129284478,0.27116513314348395,0.95702925634016034,0.28999138350819958,0,0.99965803772729944,0.026149715241379632,0.99863238478558947,0.052281546050650433,0.99692374264409223,0.078377620227305669,0.99453327988510742,0.10442009002567733,0.99146263140479085,0.13039114436144741,0.98771389729500847,0.15627302099308574,0.98328964140703223,0.18204801866988293,0.97819288959805883,0.20769850923827013,0.97242712766175254,0.23320694969814601,0.96599629894422434,0.2585558942009652,0.95890480164708147,0.28372800598138226,0.95115748581938919,0.30870606921429078,0.9427596500406028,0.33347300078914943,0.93371703779673987,0.35801186199353979,0.92403583355226848,0.38230587009796796,0,0.99946570107947585,0.032685048045121116,0.99786337526857627,0.065335168918466649,0.99519473480920351,0.097915472771361381,0.99146263140479085,0.13039114436144741,0.98667105317297898,0.16272748025617698,0.98082512038392156,0.19488992591682555,0.97393107998877593,0.22684411262339732,0.96599629894422434,0.2585558942009652,0.95702925634016034,0.28999138350819964,0.94703953433895105,0.3211169886490946,0.93603780793595981,0.35189944886919516,0.92403583355226848,0.38230587009796796,0.91104643647179195,0.41230376009933395,0.89708349713620683,0.44186106319280177,0.88216193631234185,0.47094619450809838,0,0.9992306397033901,0.039218983642540797,0.99692374264409223,0.078377620227305669,0.99308285849211808,0.11741565555377921,0.98771389729500847,0.15627302099308574,0.98082512038392156,0.19488992591682555,0.97242712766175254,0.23320694969814601,0.96253284129284478,0.27116513314348395,0.95115748581938919,0.30870606921429078,0.93831856473510811,0.34577199289914567,0.92403583355226848,0.38230587009796796,0.90833126940346898,0.41825148538156159,0.89122903722497282,0.45355352849145386,0.87275545257362297,0.48815767944692884,0.85293894113455326,0.52201069212830031,0.83180999498200059,0.55506047620781296,0,0.99895286364734437,0.045751242723780859,0.99581364757845936,0.091406669868691226,0.99058892616787431,0.13687066651981222,0.98328964140703223,0.18204801866988293,0.97393107998877593,0.22684411262339732,0.96253284129284467,0.27116513314348401,0.94911879633942808,0.31491825992659611,0.93371703779673987,0.35801186199353979,0.91635982114730974,0.40035568958973272,0.89708349713620683,0.44186106319280177,0.87592843564266631,0.48244105923168623,0.85293894113455315,0.52201069212830042,0.82816315988272482,0.56048709228050941,0.80165297912960964,0.59778967961367613,0.77346391842317186,0.63384033233731107,0,0.99863238478558947,0.052281546050650433,0.99453327988510742,0.10442009002567733,0.98771389729500847,0.15627302099308574,0.97819288959805883,0.20769850923827013,0.96599629894422434,0.2585558942009652,0.95115748581938919,0.30870606921429078,0.93371703779673987,0.35801186199353979,0.91372265852040047,0.40633840983398517,0.89122903722497282,0.45355352849145386,0.86629769914787857,0.49952807373669372,0.83899683724365748,0.54413629459459856,0.80940112566052302,0.58725617730210233,0.7775915154893599,0.62876977904393638,0.74365501334383721,0.66856355055340644,0.70768444337727132,0.70652864669580218,0,0.99826921681781766,0.058809614468562421,0.99308285849211808,0.11741565555377921,0.98445887794643516,0.17561525455508123,0.97242712766175254,0.23320694969814601,0.95702925634016034,0.28999138350819958,0.93831856473510811,0.34577199289914567,0.91635982114730974,0.40035568958973272,0.89122903722497282,0.45355352849145386,0.86301320484443267,0.50518136175451012,0.83180999498200059,0.55506047620781296,0.79772741961939642,0.60301821198648675,0.76088345785310629,0.64888856020544872,0.72140564750191039,0.69251273761018239,0.67943064362625916,0.7337397362155107,0.63510374548771265,0.77242684602975753,0,0.99786337526857627,0.065335168918466649,0.99146263140479085,0.13039114436144741,0.98082512038392156,0.19488992591682555,0.96599629894422434,0.2585558942009652,0.94703953433895105,0.3211169886490946,0.92403583355226848,0.38230587009796796,0.89708349713620683,0.44186106319280177,0.86629769914787857,0.49952807373669372,0.83180999498200059,0.55506047620781307,0.79376775920187448,0.60822096679712956,0.75233355577111349,0.65878237746678758,0.70768444337727132,0.70652864669580218,0.66001121881590175,0.75125574276483764,0.60951760166825375,0.79277253563464223,0.55641936375668077,0.83090161369238569,0,0.99741487748660462,0.071857930448778959,0.98967287566323692,0.14334433779001962,0.97681402257632155,0.21408961978168284,0.95890480164708147,0.28372800598138226,0.93603780793595981,0.35189944886919516,0.90833126940346898,0.41825148538156165,0.8759284356426662,0.48244105923168634,0.83899683724365748,0.54413629459459856,0.79772741961939642,0.60301821198648675,0.75233355577111349,0.65878237746678758,0.70304994309761693,0.71114047663625324,0.65013138995223463,0.75982180529304066,0.5938514982211911,0.8045746690397646,0.53450124873481708,0.84516768460520375,0.47238749682535847,0.88139097615250861,0,0.99692374264409223,0.078377620227305669,0.98771389729500847,0.15627302099308574,0.97242712766175254,0.23320694969814601,0.95115748581938919,0.30870606921429078,0.92403583355226848,0.38230587009796796,0.89122903722497282,0.45355352849145386,0.85293894113455326,0.52201069212830031,0.80940112566052302,0.58725617730210233,0.76088345785310629,0.64888856020544872,0.70768444337727132,0.70652864669580218,0.65013138995223474,0.75982180529304066,0.58857839358590391,0.80844014905485539,0.52340415999397893,0.85208455290598795,0.45500967460746577,0.8904864940096554,0.38381573550391179,0.9234097038582556,0,0.9963899917358594,0.084893959553163104,0.98558603126277178,0.16917498331520114,0.96766612335392388,0.25223456090153173,0.9427596500406028,0.33347300078914943,0.91104643647179195,0.41230376009933395,0.87275545257362297,0.48815767944692884,0.82816315988272493,0.56048709228050941,0.7775915154893599,0.62876977904393638,0.72140564750191039,0.6925127376101825,0.66001121881590175,0.75125574276483764,0.5938514982211911,0.8045746690397646,0.52340415999397893,0.85208455290598795,0.44917783508063902,0.89344237221673695,0.37170843877387955,0.9283495228330142,0.29155530139547081,0.95655397455041513,0,0.99581364757845936,0.091406669868691226,0.98328964140703223,0.18204801866988293,0.96253284129284467,0.27116513314348401,0.93371703779673987,0.35801186199353979,0.89708349713620683,0.44186106319280177,0.85293894113455315,0.52201069212830042,0.80165297912960964,0.59778967961367613,0.74365501334383721,0.66856355055340644,0.67943064362625916,0.7337397362155107,0.60951760166825375,0.79277253563464223,0.53450124873481719,0.84516768460520364,0.45500967460746555,0.89048649400965552,0.37170843877387932,0.9283495228330142,0.28529499789475687,0.95843975511047674,0.19649286620505416,0.98050525420852419,0,0.99519473480920351,0.097915472771361381,0.98082512038392156,0.19488992591682555,0.95702925634016034,0.28999138350819958,0.92403583355226848,0.38230587009796796,0.88216193631234185,0.47094619450809838,0.83180999498200059,0.55506047620781296,0.77346391842317197,0.63384033233731096,0.70768444337727132,0.70652864669580218,0.63510374548771265,0.77242684602975753,0.55641936375668077,0.83090161369238569,0.47238749682535869,0.8813909761525085,0.38381573550391179,0.9234097038582556,0.29155530139547081,0.95655397455041513,0.19649286620505438,0.98050525420852419,0.099542030354207722,0.99503335833175055,0,0.99453327988510742,0.10442009002567733,0.97819288959805883,0.20769850923827013,0.95115748581938919,0.30870606921429078,0.91372265852040047,0.40633840983398517,0.86629769914787857,0.49952807373669372,0.80940112566052302,0.58725617730210233,0.74365501334383721,0.66856355055340644,0.66977819338717659,0.74256122418492188,0.58857839358590391,0.80844014905485539,0.5009434070978166,0.86548004187573913,0.40783138580972045,0.9130572603887025,0.31026036444104343,0.95065162191883468,0.20929712992207877,0.97785209076136892,0.10604555774284545,0.99436127221599335,0.0016345427963967241,0.99999866413403116,0,0.99382931108176087,0.11092024357506909,0.97539339913049472,0.22047157851446403,0.94491978870135218,0.32730199040120717,0.90278456613468105,0.43009304475777765,0.84950773813240066,0.52757615834415095,0.7857468141588162,0.61854825522288137,0.71228869186788868,0.70188661437381183,0.63003994570196853,0.77656272561838846,0.5400156385140662,0.84165498285238316,0.44332679429365474,0.89636005793504181,0.34116668659983052,0.94000281486519655,0.23479611192145836,0.97204464188974671,0.12552782971132748,0.99209009871481124,0.014710361125735968,0.99989179678380724,-0.096288653584619285,0.99535345239309903,0,0.99308285849211808,0.11741565555377921,0.97242712766175254,0.23320694969814601,0.93831856473510811,0.34577199289914567,0.89122903722497282,0.45355352849145386,0.83180999498200059,0.55506047620781296,0.76088345785310629,0.64888856020544872,0.67943064362625916,0.7337397362155107,0.58857839358590391,0.80844014905485539,0.4895835834717176,0.87195637207086896,0.38381573550391179,0.9234097038582556,0.27273807202524109,0.96208832446296444,0.15788727286899965,0.98745714290089071,0.040852216495301338,0.99916519975798845,-0.076748001003214439,0.9970505224621321,-0.19328646493495738,0.98114236605751948,0,0.99229395402521225,0.12390604829874093,0.96929458238998012,0.24590244518799312,0.93135635352472834,0.36410897098138251,0.87906397490113208,0.47670381583434152,0.81322338146680029,0.58195165764494827,0.7348493145017575,0.67823040699772308,0.64514968233253112,0.7640562069548511,0.5455069439379564,0.83810630239574702,0.43745680236427792,0.89923942644060095,0.32266453632859388,0.94651338976046906,0.20289933479014663,0.97919960168584419,0.080007030047405739,0.99679429931304964,-0.044118350399038012,0.99902631154442956,-0.16756377477246842,0.9858612384022416,-0.28842669084168737,0.95750198120427599,0,0.99146263140479085,0.13039114436144741,0.96599629894422434,0.2585558942009652,0.92403583355226848,0.38230587009796796,0.86629769914787857,0.49952807373669372,0.79376775920187448,0.60822096679712956,0.70768444337727132,0.70652864669580218,0.60951760166825375,0.79277253563464223,0.5009434070978166,0.86548004187573913,0.38381573550391157,0.9234097038582556,0.26013451109673014,0.96557238782831045,0.13201155827841407,0.99124817703787227,0.0016345427963967241,0.99999866413403116,-0.12877038207429581,0.9916744368493321,-0.25697658651315997,0.9664176291769746,-0.38079498327322114,0.92465949447023321,0,0.99058892616787431,0.1368706665198122,0.96253284129284478,0.27116513314348395,0.91635982114730974,0.40035568958973272,0.85293894113455326,0.52201069212830031,0.77346391842317197,0.63384033233731096,0.67943064362625916,0.7337397362155107,0.57260902492739563,0.81982858243153311,0.45500967460746577,0.8904864940096554,0.32884606500341118,0.94438353730450653,0.19649286620505438,0.98050525420852419,0.060441249664014055,0.99817175643225464,-0.076748001003214439,0.9970505224621321,-0.21249268946262409,0.97716265632950838,-0.3442378091433943,0.93888249038745841,-0.46950363394884903,0.88293053957195589,0,0.98967287566323692,0.14334433779001962,0.95890480164708147,0.28372800598138226,0.90833126940346898,0.41825148538156165,0.83899683724365748,0.54413629459459856,0.75233355577111349,0.65878237746678758,0.65013138995223463,0.75982180529304066,0.53450124873481708,0.84516768460520375,0.40783138580972045,0.9130572603887025,0.27273807202524109,0.96208832446296444,0.13201155827841407,0.99124817703787227,-0.011441555020875007,0.99993454326706022,-0.15465835159755087,0.98796801278236146,-0.29468079612089326,0.95559574528016633,-0.42861683020184249,0.90348636562359086,-0.55370010568614392,0.83271615389828546,0,0.98871451904981,0.1498118814383653,0.9551128003597944,0.29624236460856102,0.89995326704229262,0.43598637265389845,0.82448092282225682,0.56588974889297994,0.73039925110560977,0.68302044916998239,0.61983176572019194,0.78473472091158869,0.49527408116605859,0.86873677516559433,0.35953758419568033,0.9331306047658785,0.21568597811066673,0.97646277903791345,0.066966132031271081,0.99775524912714464,-0.083265204062817968,0.99652742350242285,-0.23161716440837804,0.97280701536914416,-0.37474130256060256,0.92712941715554631,-0.50940716905023276,0.86052561619060919,-0.63257522573545,0.77449892432833278,0,0.98771389729500847,0.15627302099308574,0.95115748581938919,0.30870606921429078,0.89122903722497282,0.45355352849145386,0.80940112566052302,0.58725617730210233,0.70768444337727132,0.70652864669580218,0.58857839358590391,0.80844014905485539,0.45500967460746577,0.8904864940096554,0.31026036444104343,0.95065162191883468,0.15788727286899965,0.98745714290089071,0.0016345427963967241,0.99999866413403116,-0.15465835159755065,0.98796801278236146,-0.30715094920767366,0.95166080848211099,-0.45209617060199464,0.89196919931520735,-0.58593239202721625,0.81035993976335263,-0.70537096235918251,0.7088383493156114,0,0.98667105317297898,0.16272748025617698,0.94703953433895105,0.3211169886490946,0.88216193631234185,0.47094619450809838,0.79376775920187448,0.60822096679712956,0.68421340558059629,0.72928184923512418,0.55641936375668077,0.83090161369238569,0.41379235370668971,0.91037129129486383,0.26013451109673014,0.96557238782831045,0.099542030354207722,0.99503335833175055,-0.063704031247604778,0.99796883538655867,-0.22525187755908466,0.97430056535758369,-0.38079498327322114,0.92465949447023321,-0.52618689681926745,0.85036894911309502,-0.65755177602775561,0.75340935874380022,-0.77138770991886918,0.6363654618111535,0,0.98558603126277178,0.16917498331520114,0.9427596500406028,0.33347300078914943,0.87275545257362297,0.48815767944692884,0.7775915154893599,0.62876977904393638,0.66001121881590175,0.75125574276483764,0.52340415999397893,0.85208455290598795,0.37170843877387955,0.9283495228330142,0.20929712992207877,0.97785209076136892,0.040852216495301116,0.99916519975798845,-0.12877038207429581,0.9916744368493321,-0.29468079612089326,0.95559574528016633,-0.45209617060199464,0.89196919931520735,-0.59647854494454045,0.80262902104324874,-0.7236656730885701,0.69015070353747143,-0.8299910124563924,0.55777676470216364,0,0.98445887794643516,0.17561525455508123,0.93831856473510811,0.34577199289914567,0.86301320484443267,0.50518136175451012,0.76088345785310629,0.64888856020544872,0.63510374548771265,0.77242684602975753,0.4895835834717176,0.87195637207086896,0.32884606500341118,0.94438353730450653,0.15788727286899965,0.98745714290089071,-0.017979010022135145,0.99983836453630037,-0.19328646493495738,0.98114236605751948,-0.36258614276206713,0.93195026105309176,-0.52061582958998343,0.85379105053890869,-0.66246360811654847,0.74909409817539219,-0.78372053106354456,0.62111362019317828,-0.88061766115225448,0.47382753704985647,0,0.98328964140703223,0.18204801866988293,0.93371703779673987,0.35801186199353979,0.85293894113455315,0.52201069212830042,0.74365501334383721,0.66856355055340644,0.60951760166825375,0.79277253563464223,0.45500967460746555,0.89048649400965552,0.28529499789475687,0.95843975511047674,0.10604555774284545,0.99436127221599335,-0.076748001003214439,0.9970505224621321,-0.25697658651315997,0.9664176291769746,-0.4286168302018421,0.90348636562359108,-0.58593239202721659,0.81035993976335241,-0.72366567308857044,0.6901507035374711,-0.83721352835246132,0.54687613583298955,-0.92278110706104532,0.38532457545709631,0,0.98207837162658185,0.18847300067458328,0.92895585603343711,0.37019051519614077,0.84253653718600863,0.53863919603627941,0.72591796491763172,0.68778129387898013,0.58328012865557111,0.81227107021950529,0.41973563298678113,0.9076464060421251,0.24114644525905019,0.97048873869763363,0.053913783580311951,0.99854559432208967,-0.13525132368548876,0.99081132383583659,-0.31956858303108082,0.94756314868166291,-0.49243146360686718,0.87035122430545164,-0.64764399680237239,0.76194307753653667,-0.77964285993994276,0.62622440941300483,-0.88369678387784778,0.46805981900174715,-0.95607613710486583,0.29311844032513168,0,0.98082512038392156,0.19488992591682555,0.92403583355226848,0.38230587009796796,0.83180999498200059,0.55506047620781296,0.70768444337727132,0.70652864669580218,0.55641936375668077,0.83090161369238569,0.38381573550391179,0.9234097038582556,0.19649286620505438,0.98050525420852419,0.0016345427963967241,0.99999866413403116,-0.19328646493495738,0.98114236605751948,-0.38079498327322114,0.92465949447023321,-0.55370010568614347,0.83271615389828568,-0.70537096235918251,0.7088383493156114,-0.8299910124563924,0.55777676470216364,-0.92278110706104521,0.38532457545709675,-0.980182768385924,0.19809528151701675,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99997485448833301,0.0070915718312131127,0.99989941921792547,0.014182787020021789,0.99977369798249438,0.021273288941957496,0.99959769710468938,0.028362721008422635,0.99937142543577462,0.035450726684623728,0.99909489435518395,0.042536949507501906,0.99876811776994834,0.049621033103659846,0.99839111211399678,0.056702621207284122,0.99796389634732929,0.063781357678062159,0.99748649195506423,0.070856886519092929,0.9969589229463568,0.077928851894790388,0.9963812158531925,0.084996898148778824,0.99575339972905208,0.092060669821779142,0.99507550614745099,0.099119811669485289,0.99434756920035117,0.10617396868042993,0.99356962549644645,0.11322278609383818,0.99274171415932211,0.12026590941746905,0.99186387682548616,0.12730298444544313,0.99093615764227672,0.13433365727605595,0.98995860326564078,0.14135757432957619,0.98893126285778832,0.14837438236602735,0.9878541880847197,0.15538372850295276,0.98672743311362743,0.16238526023316235,0.98555105461017223,0.16937862544246041,0.98432511173563275,0.17636347242735409,0.98304966614393074,0.18333944991274065,0.98172478197853019,0.1903062070695736,0.98035052586921156,0.19726339353250619,0.97892696692872094,0.20421065941751174,0.97745417674929413,0.21114765533947941,0.97593222939905666,0.21807403242978554,0.97436120141829796,0.22498944235383814,0.97274117181562292,0.23189353732859544,0.97107222206397825,0.23878597014005598,0.96935443609655469,0.24566639416072031,0.96758790030256658,0.25253446336702357,0.96577270352290656,0.25938983235673696,0.96390893704567826,0.26623215636633868,0.9619966946016052,0.27306109128835238,0.96003607235931665,0.27987629368865247,0.95802716892051165,0.28667742082373598,0.95597008531499983,0.29346413065795957,0.95386492499562081,0.30023608188074052,0.95171179383304128,0.30699293392372184,0.94951080011043099,0.31373434697789987,0.94726205451801626,0.32045998201071341,0.94496567014751442,0.32716950078309393,0.94262176248644536,0.33386256586647645,0.94023044941232403,0.34053884065976864,0.93779185118673181,0.347197989406279,0.93530609044926916,0.35383967721060267,0.93277329221138727,0.3604635700554632,0.93019358385010154,0.36706933481851101,0.92756709510158519,0.37365663928907628,0.92489395805464514,0.38022515218487618,0.92217430714407922,0.38677454316867532,0.91940827914391454,0.393304482864899,0.91659601316053008,0.39981464287619756,0.91373765062565981,0.40630469579996198,0.91083333528928079,0.41277431524478914,0.90788321321238341,0.41922317584689667,0.90488743275962569,0.4256509532864855,0.90184614459187251,0.43205732430405047,0.89875950165861784,0.43844196671663727,0.89562765919029375,0.44480455943404529,0.89245077469046263,0.45114478247497569,0.88922900792789705,0.45746231698312367,0.88596252092854455,0.46375684524321381,0.88265147796737908,0.47002805069697851,0.87929604556013918,0.47627561795907797,0.87589639245495465,0.4824992328329612,0.87245268962385891,0.48869858232666752,0.86896511025419143,0.49487335466856658,0.86543382973988781,0.50102323932303872,0.8618590256726586,0.50714792700609113,0.8582408778330588,0.5132471097009127,0.85457956818144554,0.51932048067336412,0.85087528084882813,0.52536773448740437,0.84712820212760731,0.53138856702045034,0.84333852046220625,0.53738267547867302,0.83950642643959428,0.54334975841222388,0.83563211277970117,0.54928951573039586,0.83171577432572552,0.55520164871671518,0.82775760803433607,0.56108586004396366,0.82375781296576611,0.56694185378913242,0.8197165902738025,0.57276933544830322,0.8156341431956704,0.5785680119514599,0.81151067704181068,0.58433759167722732,0.80734639918555606,0.59007778446753667,0.80314151905270148,0.59578830164221852,0.7988962481109716,0.6014688560135204,0.79461079985938654,0.60711916190054982,0.79028538981752428,0.61273893514364153,0.78592023551468226,0.61832789311864822,0.78151555647893722,0.62388575475115404,0.7770715742261054,0.62941224053060996,0.77258851224860203,0.6349070725243906,0.76806659600420146,0.64036997439177201,0.76350605290469931,0.64580067139782893,0.75890711230447483,0.65119889042725132,0.75427000548895695,0.65656435999808027,0.749594965662993,0.66189681027536029,0.74488222793911996,0.6671959730847099,0.74013202932574029,0.67246158192580896,0.73534460871520368,0.67769337198580004,0.73052020687179176,0.68289108015260724,0.72565906641960987,0.68805444502816804,0.72076143183038621,0.69318320694157864,0.71582754941117621,0.69827710796215436,0.71085766729197553,0.70333589191239998,0.70585203541324193,0.70835930438089367,0.70081090551332503,0.71334709273508179,0.69573453111580608,0.71829900613398423,0.69062316751674868,0.72321479554080803,0.68547707177185857,0.72809421373547401,0.68029650268355712,0.73293701532704758,0.67508172078796524,0.73774295676608104,0.66983298834180072,0.74251179635686126,0.66455056930918965,0.74724329426956504,0.65923472934839089,0.7519372125523206,0.65388573579843579,0.75659331514317407,0.64850385766568397,0.76121136788196109,0.64308936561029406,0.76579113852208403,0.63764253193261222,0.77033239674219045,0.63216363055947833,0.7748349141577574,0.62665293703044911,0.77929846433257643,0.62111072848394122,0.7837228227901416,0.6155372836432943,0.78810776702493845,0.60993288280275271,0.79245307651363406,0.60429780781336973,0.7967585327261677,0.59863234206883353,0.80102391913674031,0.59293677049121374,0.80524902123470454,0.5872113795166336,0.80943362653535222,0.58145645708086413,0.81357752459060051,0.57567229260484398,0.81768050699957551,0.56985917698012367,0.82174236741909323,0.56401740255423671,0.82576290157403653,0.55814726311599727,0.82974190726762842,0.55224905388072443,0.83367918439160082,0.54632307147539683,0.83757453493625778,0.54036961392373373,0.84142776300043431,0.53438898063120777,0.84523867480134784,0.52838147236998745,0.84900707868434422,0.5223473912638108,0.8527327851325357,0.51628704077279186,0.85641560677633233,0.51020072567815822,0.86005535840286507,0.50408875206692438,0.86365185696529989,0.49795142731649822,0.86720492159204343,0.49178906007922146,0.87071437359583992,0.48560196026684888,0.87418003648275666,0.47939043903496159,0.87760173596106039,0.47315480876731858,0.88097929994998303,0.46689538306014722,0.8843125585883751,0.46061247670637201,0.88760134424324855,0.45430640567978264,0.89084549151820758,0.44797748711914442,0.89404483726176553,0.44162603931224859,0.89719922057555102,0.4352523816799046,0.90030848282239939,0.4288568347598774,0.90337246763433032,0.42243972019076631,0.90639102092041224,0.41600136069583005,0.90936399087451114,0.40954208006675591,0.91229122798292595,0.40306220314737684,0.91517258503190679,0.39656205581733445,0.91800791711505914,0.39004196497568938,0.92079708164063112,0.38350225852448244,0.92353993833868442,0.37694326535224365,0.9262363492681488,0.37036531531745115,0.92888617882375935,0.36376873923194397,0.93148929374287603,0.35715386884428407,0.93404556311218556,0.35052103682307212,0.93655485837428576,0.3438705767402182,0.93901705333414986,0.33720282305416577,0.94143202416547367,0.33051811109307067,0.94379964941690275,0.32381677703793821,0.94611981001814049,0.31709915790571602,0.94839238928593572,0.31036559153234422,0.95061727292995157,0.30361641655576654,0.9527943490585129,0.29685197239889949,0.95492350818423299,0.29007259925256162,0.95700464322952106,0.28327863805836612,0.95903764953196557,0.27647043049157422,0.96102242484959921,0.26964831894391111,0.96295886936604036,0.262812646506348,0.96484688569551247,0.2559637569518472,0.96668637888774234,0.24910199471807265,0.96847725643273486,0.24222770489006917,0.97021942826542573,0.23534123318290714,0.97191280677021052,0.22844292592429546,0.97355730678535146,0.2215331300371656,0.97515284560725979,0.21461219302222401,0.97669934299465544,0.20768046294047518,0.97819672117260237,0.20073828839571856,0.97964490483641942,0.19378601851701643,0.9810438211554684,0.18682400294113505,0.98239339977681583,0.17985259179496241,0.98369357282877201,0.17287213567789933,0.98494427492430348,0.16588298564422685,0.98614544316432207,0.15888549318545261,0.98729701714084783,0.15188001021263339,0.98839893894004682,0.14486688903867637,0.98945115314514431,0.13784648236062236,0.99045360683921113,0.13081914324190769,0.99140624960782509,0.12378522509460746,0.9923090335416066,0.11674508166166361,0.99316191323862768,0.109699066999094,0.99396484580669564,0.10264753545818599,0.99471779086550993,0.095590841667677076,0.99542071054869308,0.088529340515919555,0.99607356950569492,0.081463387133032181,0.99667633490357022,0.074393336873041643,0.99722897642863051,0.067319545296010738,0.99773146628796783,0.060242368150156295,0.99818377921085311,0.053162161353959521,0.99858589245000628,0.04607928097826583,0.99893778578274139,0.038994083228377024,0.99923944151198241,0.03190692442613869,0.99949084446715397,0.024818160992019746,0.99969198200494447,0.017728149427187024,0.99984284400994106,0.010637246295577793,0.99994342289513916,0.0035458082059671202,0.99999371360232381,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99994516936551214,0.010471784116245792,0.9997806834748455,0.020942419883356957,0.9995065603657316,0.031410759078128292,0.99912283009885838,0.041875653729199623,0.99862953475457383,0.052335956242943828,0.99802672842827156,0.06279051952931336,0.9973144772244581,0.073238197127631674,0.99649285924950437,0.083677843332315482,0.99556196460308,0.094108313318514311,0.99452189536827329,0.10452846326765346,0.99337276560039645,0.1149371504928666,0.99211470131447788,0.12533323356430423,0.9907478404714436,0.13571557243430438,0.98927233296298833,0.14608302856241159,0.98768834059513777,0.15643446504023087,0.98599603707050498,0.16676874671610226,0.98419560796924188,0.17708474031958327,0.98228725072868872,0.1873813145857246,0.98027117462172186,0.19765734037912613,0.97814760073380569,0.20791169081775931,0.97591676193874743,0.21814324139654251,0.97357890287316029,0.22835087011065572,0.97113427990963608,0.23853345757858085,0.96858316112863119,0.24868988716485474,0.96592582628906831,0.25881904510252074,0.96316256679765822,0.2689198206152657,0.96029368567694307,0.27899110603922922,0.95731949753206724,0.28903179694447156,0.95424032851627694,0.29904079225608665,0.95105651629515353,0.3090169943749474,0.94776841000958567,0.31895930929806993,0.94437637023748111,0.32886664673858318,0.94088076895422545,0.33873792024529137,0.93728198949189157,0.34857204732181518,0.93358042649720174,0.35836794954530021,0.92977648588825146,0.36812455268467792,0.92587058480999473,0.37784078681846711,0.92186315158850052,0.38751558645210293,0.91775462568398114,0.39714789063478056,0.91354545764260087,0.40673664307580015,0.90923610904706853,0.4162807922604011,0.90482705246601958,0.4257792915650726,0.90031877140219352,0.43523109937232746,0.8957117602394129,0.44463517918492745,0.8910065241883679,0.45399049973954675,0.88620357923121473,0.46329603511986167,0.88130345206499228,0.47255076486905395,0.87630668004386358,0.48175367410171521,0.87121381112018947,0.49090375361514077,0.86602540378443871,0.49999999999999994,0.86074202700394364,0.50904141575037132,0.85536426016050671,0.51802700937313018,0.84989269298686398,0.52695579549667759,0.84432792550201519,0.53582679497899655,0.83867056794542405,0.54463903501502697,0.83292124071009954,0.55339154924334399,0.82708057427456183,0.56208337785213058,0.82114920913370404,0.5707135676844316,0.81512779572855421,0.57928117234267884,0.80901699437494745,0.58778525229247314,0.80281747519111457,0.59622487496561571,0.79652991802419637,0.60459911486237483,0.79015501237569041,0.61290705365297637,0.78369345732583984,0.6211477802783103,0.7771459614569709,0.62932039104983739,0.77051324277578925,0.63742398974868963,0.76379602863464224,0.64545768772395051,0.75699505565175651,0.65342060399010538,0.75011106963045959,0.66131186532365183,0.74314482547739436,0.66913060635885813,0.73609708711973443,0.67687596968266073,0.72896862742141155,0.68454710592868862,0.72176022809836227,0.6921431738704068,0.71447267963280336,0.69966334051336543,0.70710678118654768,0.70710678118654746,0.69966334051336554,0.71447267963280325,0.69214317387040691,0.72176022809836204,0.68454710592868873,0.72896862742141144,0.67687596968266073,0.73609708711973421,0.66913060635885824,0.74314482547739424,0.66131186532365194,0.75011106963045959,0.6534206039901056,0.75699505565175629,0.64545768772395062,0.76379602863464213,0.63742398974868975,0.77051324277578914,0.6293203910498375,0.77714596145697079,0.62114778027831041,0.78369345732583973,0.6129070536529766,0.7901550123756903,0.60459911486237494,0.79652991802419626,0.59622487496561594,0.80281747519111446,0.58778525229247325,0.80901699437494734,0.57928117234267895,0.81512779572855409,0.57071356768443182,0.82114920913370393,0.56208337785213069,0.82708057427456172,0.55339154924334411,0.83292124071009943,0.54463903501502708,0.83867056794542394,0.53582679497899677,0.84432792550201496,0.5269557954966777,0.84989269298686387,0.51802700937313029,0.8553642601605066,0.50904141575037143,0.86074202700394353,0.50000000000000011,0.8660254037844386,0.49090375361514094,0.87121381112018936,0.48175367410171532,0.87630668004386358,0.47255076486905406,0.88130345206499217,0.46329603511986178,0.88620357923121462,0.45399049973954686,0.8910065241883679,0.44463517918492751,0.89571176023941279,0.43523109937232773,0.90031877140219341,0.42577929156507283,0.90482705246601947,0.41628079226040138,0.90923610904706842,0.40673664307580037,0.91354545764260076,0.39714789063478079,0.91775462568398103,0.3875155864521031,0.92186315158850052,0.37784078681846728,0.92587058480999473,0.36812455268467809,0.92977648588825135,0.35836794954530038,0.93358042649720174,0.34857204732181529,0.93728198949189145,0.33873792024529148,0.94088076895422545,0.32886664673858329,0.944376370237481,0.31895930929807004,0.94776841000958567,0.30901699437494745,0.95105651629515353,0.29904079225608693,0.95424032851627683,0.28903179694447184,0.95731949753206724,0.2789911060392295,0.96029368567694295,0.26891982061526593,0.9631625667976581,0.25881904510252096,0.9659258262890682,0.24868988716485496,0.96858316112863108,0.23853345757858105,0.97113427990963597,0.22835087011065588,0.97357890287316018,0.2181432413965427,0.97591676193874732,0.20791169081775945,0.97814760073380558,0.19765734037912627,0.98027117462172186,0.18738131458572474,0.98228725072868861,0.17708474031958338,0.98419560796924188,0.16676874671610234,0.98599603707050487,0.15643446504023092,0.98768834059513777,0.14608302856241187,0.98927233296298833,0.13571557243430463,0.9907478404714436,0.12533323356430448,0.99211470131447776,0.11493715049286683,0.99337276560039645,0.10452846326765368,0.99452189536827329,0.094108313318514505,0.99556196460308,0.083677843332315663,0.99649285924950437,0.073238197127631854,0.9973144772244581,0.062790519529313527,0.99802672842827156,0.052335956242943966,0.99862953475457383,0.041875653729199748,0.99912283009885838,0.031410759078128396,0.9995065603657316,0.020942419883357051,0.9997806834748455,0.010471784116245868,0.99994516936551214,0,0,0.9997806834748455,0.020942419883356957,0.99912283009885838,0.041875653729199623,0.99802672842827156,0.06279051952931336,0.99649285924950437,0.083677843332315482,0.99452189536827329,0.10452846326765346,0.99211470131447788,0.12533323356430423,0.98927233296298833,0.14608302856241159,0.98599603707050498,0.16676874671610226,0.98228725072868872,0.1873813145857246,0.97814760073380569,0.20791169081775931,0.97357890287316029,0.22835087011065572,0.96858316112863119,0.24868988716485474,0.96316256679765822,0.2689198206152657,0.95731949753206724,0.28903179694447156,0.95105651629515353,0.3090169943749474,0.94437637023748111,0.32886664673858318,0.93728198949189157,0.34857204732181518,0.92977648588825146,0.36812455268467792,0.92186315158850052,0.38751558645210293,0.91354545764260087,0.40673664307580015,0.90482705246601958,0.4257792915650726,0.8957117602394129,0.44463517918492745,0.88620357923121473,0.46329603511986167,0.87630668004386358,0.48175367410171521,0.86602540378443871,0.49999999999999994,0.85536426016050671,0.51802700937313018,0.84432792550201519,0.53582679497899655,0.83292124071009954,0.55339154924334399,0.82114920913370404,0.5707135676844316,0.80901699437494745,0.58778525229247314,0.79652991802419637,0.60459911486237483,0.78369345732583984,0.6211477802783103,0.77051324277578925,0.63742398974868963,0.75699505565175651,0.65342060399010538,0.74314482547739436,0.66913060635885813,0.72896862742141155,0.68454710592868862,0.71447267963280336,0.69966334051336543,0,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.99802672842827156,0.06279051952931336,0.99211470131447788,0.12533323356430423,0.98228725072868872,0.1873813145857246,0.96858316112863119,0.24868988716485474,0.95105651629515364,0.30901699437494734,0.92977648588825146,0.36812455268467792,0.90482705246601958,0.4257792915650726,0.87630668004386358,0.48175367410171521,0.84432792550201519,0.53582679497899655,0.80901699437494745,0.58778525229247303,0.77051324277578936,0.63742398974868963,0.72896862742141155,0.68454710592868862,0.68454710592868873,0.72896862742141144,0.63742398974868975,0.77051324277578914,0.58778525229247325,0.80901699437494734,0.53582679497899677,0.84432792550201496,0.48175367410171532,0.87630668004386358,0.42577929156507283,0.90482705246601947,0.36812455268467809,0.92977648588825135,0.30901699437494767,0.95105651629515353,0.24868988716485496,0.96858316112863108,0.18738131458572493,0.98228725072868861,0.12533323356430448,0.99211470131447776,0.062790519529313527,0.99802672842827156,2.8327694488239898e-16,1,-0.06279051952931318,0.99802672842827156,-0.12533323356430393,0.99211470131447788,-0.18738131458572438,0.98228725072868872,-0.24868988716485441,0.96858316112863119,-0.30901699437494712,0.95105651629515364,-0.36812455268467759,0.92977648588825157,-0.42577929156507233,0.90482705246601969,-0.48175367410171505,0.87630668004386369,-0.53582679497899643,0.84432792550201519,-0.58778525229247269,0.80901699437494767,-0.63742398974868941,0.77051324277578948,-0.68454710592868839,0.72896862742141177,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.99955243228350332,0.029915466169398455,0.99821012976773515,0.059804153945034168,0.99597429399523907,0.089639308903433496,0.99284692634183735,0.11939422454024434,0.98883082622512852,0.14904226617617444,0.98392958859862967,0.17855689479863665,0.97814760073380569,0.20791169081775934,0.9714900382928674,0.2370803777154975,0.96396286069585324,0.26603684556667512,0.95557280578614068,0.29475517441090421,0.94632738379916415,0.32320965745446001,0.9362348706397372,0.35137482408134268,0.9253043004739967,0.37922546265292839,0.91354545764260087,0.40673664307580021,0.90096886790241915,0.43388373911755812,0.88758578900455409,0.46064245045063229,0.87340820061712976,0.4869888244043673,0.8584487936018661,0.51289927740590613,0.84272095865403918,0.53835061609068235,0.82623877431599491,0.56332005806362206,0.80901699437494745,0.58778525229247314,0.79107103465634121,0.61172429911500636,0.77241695922459952,0.63511576984217877,0.75307146600361097,0.65793872593971259,0.73305187182982634,0.68017273777091947,0.71237609695134474,0.70179790288399135,0.69106264898686465,0.72279486382739155,0.66913060635885824,0.74314482547739424,0.64659960121579962,0.76282957186226652,0.62348980185873359,0.7818314824680298,0.59982189468791369,0.80013354801120629,0.5756170656856735,0.81771938566443136,0.55089698145210253,0.83457325372130264,0.52568376981050469,0.85068006568733956,0.49999999999999989,0.86602540378443871,0.47386866247299869,0.880595531856738,0.44731314831563262,0.89437740766633689,0.4203572283095654,0.90735869456786489,0.39302503165392366,0.91952777255145057,0.36534102436639498,0.93087374864420425,0.33732998738282988,0.9413864666609032,0.30901699437494745,0.95105651629515353,0.28042738930600275,0.95987524154288906,0.25158676374450839,0.96783474845066653,0.22252093395631445,0.97492791218182362,0.19325591779555323,0.98114838339417265,0.1638179114151376,0.98649059392352145,0.13423326581765554,0.9909497617679347,0.10452846326765346,0.99452189536827329,0.074730093586424171,0.99720379718118013,0.044864830350514986,0.99899306654131459,0.014959407015263606,0.99988810181027343,0,0.99821012976773515,0.059804153945034168,0.99284692634183735,0.11939422454024434,0.98392958859862967,0.17855689479863665,0.9714900382928674,0.2370803777154975,0.95557280578614068,0.29475517441090421,0.9362348706397372,0.35137482408134268,0.91354545764260087,0.40673664307580021,0.88758578900455409,0.46064245045063229,0.8584487936018661,0.51289927740590613,0.82623877431599491,0.56332005806362206,0.79107103465634121,0.61172429911500636,0.75307146600361097,0.65793872593971259,0.71237609695134474,0.70179790288399135,0.66913060635885824,0.74314482547739424,0.62348980185873359,0.7818314824680298,0.5756170656856735,0.81771938566443136,0.52568376981050469,0.85068006568733956,0,0.99284692634183735,0.11939422454024434,0.9714900382928674,0.2370803777154975,0.9362348706397372,0.35137482408134268,0.88758578900455409,0.46064245045063229,0.82623877431599491,0.56332005806362206,0.75307146600361097,0.65793872593971259,0.66913060635885824,0.74314482547739424,0.5756170656856735,0.81771938566443136,0.47386866247299869,0.880595531856738,0.36534102436639498,0.93087374864420425,0.25158676374450839,0.96783474845066653,0.13423326581765554,0.9909497617679347,0.014959407015263606,0.99988810181027343,-0.10452846326765355,0.99452189536827329,-0.22252093395631434,0.97492791218182362,-0.33732998738282999,0.9413864666609032,-0.44731314831563268,0.89437740766633678,0,0.98392958859862967,0.17855689479863665,0.9362348706397372,0.35137482408134268,0.8584487936018661,0.51289927740590613,0,0.9362348706397372,0.35137482408134268,0.75307146600361097,0.65793872593971259,0.47386866247299869,0.880595531856738,0,0.8584487936018661,0.51289927740590613,0.47386866247299869,0.880595531856738,-0.044864830350514862,0.9989930665413147,0,0.75307146600361097,0.65793872593971259,0.13423326581765554,0.9909497617679347,-0.55089698145210242,0.83457325372130275,0,0,0,0,0,0,0,0.99996117174520505,0.0088122075529626955,0.999844689996087,0.017623730780645046,0.99965056379821193,0.026433885410909019,0.99937880822674274,0.035241987277897083,0.99902944438526853,0.044047352375162142,0.9986024994041659,0.052849296908785058,0.99809800643849178,0.061647137350475764,0.99751600466540913,0.070440190490653629,0.99685653928114404,0.079227773491503145,0.99611966149747655,0.088009203940000738,0.99530542853776338,0.09678379990090856,0.99441390363249416,0.10555087996973124,0.99344515601438121,0.11430976332563132,0.99239926091298314,0.1230597697842995,0.99127629954886309,0.13180021985077531,0,0.999844689996087,0.017623730780645046,0.99937880822674274,0.035241987277897083,0.9986024994041659,0.052849296908785058,0.99751600466540913,0.070440190490653629,0.99611966149747655,0.088009203940000738,0.99441390363249416,0.10555087996973124,0.99239926091298314,0.1230597697842995,0.99007635912728087,0.1405304347722143,0.98744591981515817,0.15795744819538038,0.9845087600436947,0.17533539687475186,0.98126579215348175,0.19265888287177388,0.97771802347523074,0.20992252516509055,0.97386655601687633,0.22712096132199761,0.96971258612127043,0.24424884916412135,0.96525740409457461,0.26130086842680633,0,0.99965056379821193,0.026433885410909019,0.9986024994041659,0.052849296908785058,0.99685653928114404,0.079227773491503145,0.99441390363249416,0.10555087996973124,0.99127629954886309,0.13180021985077531,0.98744591981515817,0.15795744819538038,0.98292544137807047,0.18400428443850239,0.97771802347523074,0.20992252516509055,0.97182730542730511,0.2356940568319518,0.96525740409457461,0.26130086842680633,0.9580129109997747,0.28672506405568676,0.95009888911920748,0.31194887544988514,0.94152086934436641,0.33695467438370491,0.93228484661654942,0.36172498499434197,0.92239727573715991,0.38624249599528243,0,0.99937880822674274,0.035241987277897083,0.99751600466540913,0.070440190490653629,0.99441390363249416,0.10555087996973124,0.99007635912728087,0.1405304347722143,0.9845087600436947,0.17533539687475186,0.97771802347523074,0.20992252516509055,0.96971258612127043,0.24424884916412135,0.96050239380546487,0.27827172241169551,0.95009888911920748,0.31194887544988514,0.93851499720554654,0.34523846833786209,0.92576510970120018,0.37809914263315209,0.91186506685662383,0.41049007277468347,0.8968321378563433,0.44237101680379198,0.88068499936400457,0.47370236636016844,0.86344371231879369,0.50444519589063408,0,0.99902944438526853,0.044047352375162142,0.99611966149747655,0.088009203940000738,0.99127629954886309,0.13180021985077531,0.9845087600436947,0.17533539687475186,0.97583017952890083,0.21853022839093245,0.96525740409457461,0.26130086842680633,0.95281095667383808,0.30356429441270844,0.93851499720554654,0.34523846833786209,0.92239727573715991,0.38624249599528249,0.90448907855881377,0.42649678400643065,0.88482516747315054,0.46592319432081408,0.86344371231879369,0.50444519589063408,0.84038621687844572,0.54198801322606205,0.81569743831542896,0.57847877154278271,0.78942530029505387,0.6138466382200557,0,0.9986024994041659,0.052849296908785058,0.99441390363249416,0.10555087996973124,0.98744591981515817,0.15795744819538038,0.97771802347523074,0.20992252516509055,0.96525740409457461,0.26130086842680633,0.95009888911920748,0.31194887544988514,0.93228484661654942,0.36172498499434197,0.91186506685662383,0.41049007277468347,0.8888966231481934,0.45810784031245166,0.86344371231879369,0.50444519589063408,0.83557747528452464,0.54937262654517072,0.80537579821110405,0.59276456005384381,0.77292309482194277,0.63449971591078747,0.73831007046168617,0.67446144430564758,0.70163346857466846,0.71253805215993882,0,0.99809800643849178,0.061647137350475764,0.99239926091298314,0.1230597697842995,0.98292544137807047,0.18400428443850239,0.96971258612127043,0.24424884916412135,0.95281095667383808,0.30356429441270838,0.93228484661654942,0.36172498499434197,0.90821233700774806,0.41850967839098374,0.88068499936400457,0.47370236636016844,0.8498075473232467,0.52709309662757664,0.81569743831542896,0.5784787715427826,0.77848442675598184,0.62766392066010157,0.73831007046168617,0.67446144430564758,0.6953271921665608,0.71869332530208363,0.64969929818615069,0.76019130614367281,0.60159995644160769,0.79879752904566226,0,0.99751600466540913,0.070440190490653629,0.99007635912728087,0.1405304347722143,0.97771802347523074,0.20992252516509055,0.96050239380546487,0.27827172241169551,0.93851499720554654,0.34523846833786209,0.91186506685662383,0.41049007277468347,0.88068499936400457,0.47370236636016844,0.84512969701205654,0.5345613110096068,0.80537579821110405,0.59276456005384381,0.76162079995945398,0.64802296029471163,0.71408207668015056,0.70006198851541956,0.66299580030687011,0.74862311530933423,0.60861576698395847,0.79346508945165828,0.55121213620955356,0.83436513643326482,0.49107008868571961,0.87112006520238039,0,0.99685653928114404,0.079227773491503145,0.98744591981515817,0.15795744819538038,0.97182730542730511,0.2356940568319518,0.95009888911920748,0.31194887544988514,0.92239727573715991,0.38624249599528249,0.8888966231481934,0.45810784031245166,0.8498075473232467,0.52709309662757664,0.80537579821110405,0.59276456005384381,0.75588071472777374,0.65470935925999252,0.70163346857466835,0.71253805215993893,0.64297510792656476,0.76588707430457559,0.58027441328852247,0.81442102458290022,0.51392557900182079,0.85783477386245144,0.44434573497510427,0.89585538331219194,0.37197232422141663,0.92824382034749753,0,0.99611966149747655,0.088009203940000738,0.9845087600436947,0.17533539687475186,0.96525740409457461,0.26130086842680633,0.93851499720554654,0.34523846833786209,0.90448907855881377,0.42649678400643065,0.86344371231879369,0.50444519589063408,0.81569743831542896,0.57847877154278271,0.76162079995945398,0.64802296029471163,0.70163346857466835,0.71253805215993893,0.63620098646434409,0.77152336634854779,0.56583115398777784,0.82452113688907913,0.49107008868571961,0.87112006520238039,0.41249798703853191,0.9109585120570306,0.33072462174870593,0.94372730413460826,0.24638460949187202,0.96917213342395359,0,0.99530542853776338,0.09678379990090856,0.98126579215348175,0.19265888287177388,0.9580129109997747,0.28672506405568676,0.92576510970120018,0.37809914263315209,0.88482516747315054,0.46592319432081403,0.83557747528452464,0.54937262654517072,0.77848442675598184,0.62766392066010157,0.71408207668015056,0.70006198851541956,0.64297510792656476,0.76588707430457548,0.56583115398777795,0.82452113688907913,0.48337453047308038,0.87541365267508198,0.39637943440572077,0.91808678455808357,0.305662675176404,0.95213986840379927,0.21207600540317936,0.97725317494098252,0.11649812370437293,0.99319091174524987,0,0.99441390363249416,0.10555087996973124,0.97771802347523074,0.20992252516509055,0.95009888911920748,0.31194887544988514,0.91186506685662383,0.41049007277468347,0.86344371231879369,0.50444519589063408,0.80537579821110405,0.59276456005384381,0.73831007046168617,0.67446144430564758,0.66299580030687011,0.74862311530933423,0.58027441328852247,0.81442102458290022,0.49107008868571961,0.87112006520238039,0.39637943440572077,0.91808678455808357,0.29726035268834611,0.95479646140923669,0.19482022101825985,0.98083896817081873,0.090203520290279851,0.99592335293798639,-0.015420951551759477,0.9998810900568319,0,0.99344515601438121,0.11430976332563132,0.97386655601687633,0.22712096132199761,0.9415208693443663,0.33695467438370497,0.8968321378563433,0.44237101680379198,0.84038621687844572,0.54198801322606205,0.77292309482194266,0.63449971591078758,0.6953271921665608,0.71869332530208374,0.60861576698395847,0.79346508945165828,0.51392557900182079,0.85783477386245144,0.41249798703853191,0.9109585120570306,0.305662675176404,0.95213986840379927,0.19482022101825963,0.98083896817081884,0.081423734552078575,0.9966795751150882,-0.033040191667533338,0.99945402382229298,-0.14707097128387378,0.98912594213558969,0,0.99239926091298314,0.1230597697842995,0.96971258612127043,0.24424884916412135,0.93228484661654942,0.36172498499434197,0.88068499936400457,0.47370236636016844,0.81569743831542896,0.5784787715427826,0.73831007046168617,0.67446144430564758,0.64969929818615069,0.76019130614367281,0.55121213620955356,0.83436513643326482,0.44434573497510427,0.89585538331219194,0.33072462174870615,0.94372730413460815,0.21207600540317936,0.97725317494098252,0.090203520290279851,0.99592335293798639,-0.033040191667533116,0.99945402382229298,-0.1557816438728464,0.98779151617751493,-0.27615498481891132,0.96111311735906868,0,0.99127629954886309,0.13180021985077531,0.96525740409457461,0.26130086842680633,0.92239727573715991,0.38624249599528249,0.86344371231879369,0.50444519589063408,0.78942530029505387,0.6138466382200557,0.70163346857466835,0.71253805215993893,0.60159995644160769,0.79879752904566237,0.49107008868571961,0.87112006520238039,0.37197232422141663,0.92824382034749753,0.24638460949187202,0.96917213342395359,0.11649812370437271,0.99319091174524987,-0.015420951551759699,0.9998810900568319,-0.147070971283874,0.98912594213558969,-0.27615498481891154,0.96111311735906857,-0.40042081162265242,0.91633136671154958,0,0.99007635912728087,0.1405304347722143,0.96050239380546487,0.27827172241169551,0.91186506685662383,0.41049007277468347,0.84512969701205654,0.5345613110096068,0.76162079995945398,0.64802296029471163,0.66299580030687011,0.74862311530933423,0.55121213620955356,0.83436513643326482,0.42848840954338091,0.90354727761583342,0.29726035268834611,0.95479646140923669,0.16013248586175727,0.98709553082350343,0.01982642447167297,0.99980343712785313,-0.12087313755090549,0.99266796292546877,-0.259173696357056,0.96583072798323233,-0.39233036179060116,0.91982437846431098,-0.51770033599639897,0.85556201534968557,0,0.98879953283142141,0.14924973659059776,0.95544903225527433,0.2951561396319915,0.90069558064507649,0.43445076937028021,0.82576570647508063,0.56401329595117788,0.73233790893646022,0.6809413977241896,0.62250505798714317,0.78261577595932952,0.49872751210930794,0.86675882958598127,0.36377800398057814,0.93148567558492623,0.22067952867137736,0.9753463721290907,0.072637625730854222,0.99735839863520692,-0.077031427894072579,0.99702866514288357,-0.22497490556084701,0.97436455799043098,-0.36787873514064473,0.92987377435398155,-0.50254173733052021,0.86455294935638405,-0.62594733506077405,0.77986533050925855,0,0.98744591981515817,0.15795744819538038,0.95009888911920748,0.31194887544988514,0.8888966231481934,0.45810784031245166,0.80537579821110405,0.59276456005384381,0.70163346857466835,0.71253805215993893,0.58027441328852247,0.81442102458290022,0.44434573497510427,0.89585538331219194,0.29726035268834611,0.95479646140923669,0.14271130979474017,0.98976435683281183,-0.015420951551759699,0.9998810900568319,-0.17316602117364485,0.98489264852109071,-0.32656321056532189,0.94517536441935956,-0.47176099849528641,0.88172646569031277,-0.60511373561886883,0.79613903745851944,-0.72327318002663465,0.69056202259765154,0,0.98601562519535335,0.16665289337607242,0.94445362625876683,0.32864471370564519,0.87647644033175987,0.48144475232716688,0.78398530430666902,0.6207793832201417,0.66956707960805928,0.7427515909812209,0.53642190091326591,0.84394996547224188,0.3882736723868882,0.92154411469619801,0.2292659147376408,0.9733638273222982,0.063845876125150705,0.99795977078327758,-0.10335985181026972,0.99464402729507162,-0.26767473393075503,0.96350933405707051,-0.42450308844119661,0.90542648950861027,-0.56945862236265488,0.82201999818546223,-0.69848711066239877,0.71562263535923309,-0.80797978785870728,0.58921020222989884,0,0.9845087600436947,0.17533539687475186,0.93851499720554654,0.34523846833786209,0.86344371231879369,0.50444519589063408,0.76162079995945398,0.64802296029471163,0.63620098646434409,0.77152336634854779,0.49107008868571961,0.87112006520238039,0.33072462174870593,0.94372730413460826,0.16013248586175727,0.98709553082350343,-0.015420951551759699,0.9998810900568319,-0.19049660964359094,0.98168785350247523,-0.35967021035371921,0.93307949274652446,-0.51770033599639897,0.85556201534968557,-0.65969082137831836,0.75153710499828263,-0.78124244913835073,0.62422771138768862,-0.87858924841107544,0.47757819524813055,0,0.98292544137807047,0.18400428443850239,0.93228484661654942,0.36172498499434197,0.8498075473232467,0.52709309662757664,0.73831007046168617,0.67446144430564758,0.60159995644160769,0.79879752904566237,0.44434573497510427,0.89585538331219194,0.27191749890812733,0.96232056706045133,0.090203520290279851,0.99592335293798639,-0.094590828917769196,0.99551623547014512,-0.27615498481891154,0.96111311735906857,-0.44828869176599678,0.89388883471868641,-0.60511373561886883,0.79613903745851944,-0.74127467956822257,0.67120179486576825,-0.85212174757509718,0.52334360348585751,-0.93386961011798764,0.35761369003168447,0,0.98126579215348175,0.19265888287177388,0.92576510970120018,0.37809914263315209,0.83557747528452464,0.54937262654517072,0.71408207668015056,0.70006198851541956,0.56583115398777795,0.82452113688907913,0.39637943440572077,0.91808678455808357,0.21207600540317936,0.97725317494098252,0.01982642447167297,0.99980343712785313,-0.17316602117364463,0.98489264852109082,-0.35967021035371899,0.93307949274652457,-0.53269812657985816,0.846305326663084,-0.68576668796040186,0.72782144079699995,-0.81314065800800828,0.58206723863682908,-0.9100475358644613,0.41450389921811598,-0.97285637434672123,0.23140975539711409,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99992104420381611,0.012566039883352607,0.99968418928329994,0.025130095443337479,0.9992894726405892,0.037690182669934541,0.99873695660601747,0.050244318179769556,0.99802672842827156,0.062790519529313374,0.99715890026061393,0.075326805527932722,0.9961336091431725,0.08785119655074318,0.99495101698130017,0.10036171485121489,0.9936113105200084,0.11285638487348168,0.99211470131447788,0.12533323356430426,0.99046142569665119,0.13779029068463808,0.98865174473791406,0.15022558912075706,0.98668594420786804,0.16263716519488358,0.98456433452920533,0.17502305897527606,0.98228725072868872,0.18738131458572463,0.97985505238424686,0.19970998051440703,0.97726812356819348,0.21200710992205465,0.97452687278657713,0.22427076094938117,0.97163173291467397,0.23649899702372471,0.96858316112863108,0.24868988716485479,0.96538163883327388,0.26084150628989694,0.96202767158608593,0.27295193551732522,0.95852178901737584,0.28501926246997611,0.95486454474664295,0.29704158157703492,0.95105651629515353,0.3090169943749474,0.94709830499474434,0.32094360980720948,0.94299053589286441,0.33281954452298668,0.93873385765387407,0.34464292317451706,0.93432894245661202,0.35641187871325075,0.92977648588825135,0.36812455268467797,0.92507720683445804,0.37977909552180111,0.92023184736587038,0.39137366683720243,0.91524117262091753,0.40290643571366264,0.91010597068499566,0.41437558099328414,0.90482705246601958,0.42577929156507266,0.89940525156637108,0.43711576665093288,0.89384142415126377,0.44838321609003223,0.88813644881354448,0.45957986062148787,0.88229122643495328,0.47070393216533257,0.87630668004386358,0.48175367410171532,0.87018375466952569,0.49272734154829156,0.86392341719283527,0.5036232016357608,0.85752665619365231,0.51443953378150642,0.85099448179469184,0.52517462996129571,0.84432792550201508,0.53582679497899666,0.83752804004214176,0.54639434673426912,0.83059589919581267,0.55687561648818795,0.82353259762842745,0.56726894912675652,0.81633925071718394,0.57757270342226763,0.80901699437494745,0.58778525229247314,0.80156698487087663,0.59790498305751882,0.79399039864783538,0.60793029769460538,0.78628843213661892,0.61785961309033433,0.77846230156702334,0.62769136129070058,0.77051324277578914,0.63742398974868975,0.76244251101144789,0.64705596156944434,0.75425138073610376,0.65658575575295652,0.74594114542418211,0.66601186743425167,0.73751311735817393,0.67533280812102447,0.72896862742141155,0.68454710592868873,0.72030902488790682,0.69365330581280504,0.71153567720928534,0.70264996979884919,0,0.99968418928329994,0.025130095443337479,0.99873695660601747,0.050244318179769556,0.99715890026061393,0.075326805527932722,0.99495101698130017,0.10036171485121489,0.99211470131447788,0.12533323356430426,0.98865174473791406,0.15022558912075706,0.98456433452920533,0.17502305897527606,0.97985505238424686,0.19970998051440703,0.97452687278657713,0.22427076094938117,0.96858316112863108,0.24868988716485479,0.96202767158608593,0.27295193551732522,0.95486454474664295,0.29704158157703492,0.94709830499474434,0.32094360980720948,0.93873385765387407,0.34464292317451706,0.92977648588825135,0.36812455268467797,0.92023184736587038,0.39137366683720243,0.91010597068499566,0.41437558099328414,0.89940525156637108,0.43711576665093288,0.88813644881354448,0.45957986062148787,0.87630668004386358,0.48175367410171532,0.86392341719283527,0.5036232016357608,0.85099448179469184,0.52517462996129571,0.83752804004214176,0.54639434673426912,0.82353259762842745,0.56726894912675652,0.80901699437494745,0.58778525229247314,0.79399039864783538,0.60793029769460538,0.77846230156702334,0.62769136129070058,0.76244251101144789,0.64705596156944434,0.74594114542418211,0.66601186743425167,0.72896862742141155,0.68454710592868873,0.71153567720928534,0.70264996979884919,0.69365330581280493,0.72030902488790682,0.67533280812102447,0.73751311735817393,0.65658575575295641,0.75425138073610376,0.63742398974868975,0.77051324277578925,0.61785961309033433,0.78628843213661892,0.59790498305751894,0.80156698487087652,0.57757270342226752,0.81633925071718405,0.55687561648818795,0.83059589919581267,0.53582679497899655,0.84432792550201508,0.51443953378150642,0.85752665619365231,0.49272734154829156,0.87018375466952569,0.47070393216533257,0.88229122643495328,0.44838321609003223,0.89384142415126377,0.42577929156507266,0.90482705246601958,0.40290643571366269,0.91524117262091753,0.37977909552180111,0.92507720683445804,0.35641187871325075,0.93432894245661202,0.33281954452298668,0.94299053589286441,0.30901699437494745,0.95105651629515353,0.28501926246997616,0.95852178901737584,0.260841506289897,0.96538163883327388,0.23649899702372476,0.97163173291467386,0.21200710992205452,0.97726812356819348,0.18738131458572452,0.98228725072868872,0.1626371651948835,0.98668594420786804,0.13779029068463797,0.99046142569665119,0.1128563848734816,0.9936113105200084,0.087851196550743096,0.9961336091431725,0.062790519529313304,0.99802672842827156,0.037690182669934472,0.9992894726405892,0.012566039883352554,0.99992104420381611,0,0.9992894726405892,0.037690182669934541,0.99715890026061393,0.075326805527932722,0.9936113105200084,0.11285638487348168,0.98865174473791406,0.15022558912075706,0.98228725072868872,0.1873813145857246,0.97452687278657713,0.22427076094938117,0.96538163883327388,0.26084150628989694,0.95486454474664295,0.29704158157703492,0.94299053589286452,0.33281954452298662,0.92977648588825146,0.36812455268467792,0.91524117262091753,0.40290643571366264,0.89940525156637108,0.43711576665093288,0.88229122643495328,0.47070393216533252,0.86392341719283527,0.5036232016357608,0.84432792550201508,0.53582679497899666,0.82353259762842745,0.56726894912675652,0.80156698487087663,0.59790498305751882,0.77846230156702345,0.62769136129070047,0.75425138073610387,0.65658575575295641,0.72896862742141155,0.68454710592868862,0.70264996979884919,0.71153567720928534,0.67533280812102447,0.73751311735817393,0.64705596156944434,0.76244251101144789,0.61785961309033433,0.78628843213661892,0.58778525229247314,0.80901699437494745,0.55687561648818806,0.83059589919581256,0.52517462996129571,0.85099448179469184,0.49272734154829156,0.87018375466952569,0.45957986062148792,0.88813644881354448,0.42577929156507266,0.90482705246601958,0.39137366683720254,0.92023184736587027,0.35641187871325075,0.93432894245661202,0.32094360980720943,0.94709830499474434,0.28501926246997616,0.95852178901737584,0.24868988716485474,0.96858316112863108,0.21200710992205474,0.97726812356819348,0.17502305897527604,0.98456433452920533,0.13779029068463819,0.99046142569665119,0.10036171485121491,0.99495101698130017,0.062790519529313527,0.99802672842827156,0.025130095443337531,0.99968418928329994,-0.012566039883352653,0.99992104420381611,-0.050244318179769473,0.99873695660601747,-0.087851196550743194,0.9961336091431725,-0.12533323356430415,0.99211470131447788,-0.16263716519488358,0.98668594420786804,-0.19970998051440689,0.97985505238424686,-0.23649899702372465,0.97163173291467397,-0.27295193551732527,0.96202767158608593,-0.30901699437494734,0.95105651629515364,-0.34464292317451706,0.93873385765387407,-0.379779095521801,0.92507720683445804,-0.41437558099328414,0.91010597068499566,-0.44838321609003212,0.89384142415126389,-0.48175367410171505,0.87630668004386369,-0.51443953378150653,0.8575266561936522,-0.54639434673426901,0.83752804004214176,-0.57757270342226741,0.81633925071718405,-0.60793029769460549,0.79399039864783527,-0.63742398974868975,0.77051324277578925,-0.66601186743425156,0.74594114542418222,-0.69365330581280482,0.72030902488790705,0,0.99873695660601747,0.050244318179769556,0.99495101698130017,0.10036171485121489,0.98865174473791406,0.15022558912075706,0.97985505238424686,0.19970998051440703,0.96858316112863108,0.24868988716485479,0.95486454474664295,0.29704158157703492,0.93873385765387407,0.34464292317451706,0.92023184736587038,0.39137366683720243,0.89940525156637108,0.43711576665093288,0.87630668004386358,0.48175367410171532,0.85099448179469184,0.52517462996129571,0.82353259762842745,0.56726894912675652,0,0.99495101698130017,0.10036171485121489,0.97985505238424686,0.19970998051440703,0.95486454474664295,0.29704158157703492,0.92023184736587038,0.39137366683720243,0.87630668004386358,0.48175367410171532,0.82353259762842745,0.56726894912675652,0.76244251101144789,0.64705596156944434,0.69365330581280493,0.72030902488790682,0.61785961309033433,0.78628843213661892,0.53582679497899655,0.84432792550201508,0.44838321609003223,0.89384142415126377,0.35641187871325075,0.93432894245661202,0,0.98865174473791406,0.15022558912075706,0.95486454474664295,0.29704158157703492,0.89940525156637108,0.43711576665093288,0.82353259762842745,0.56726894912675652,0.72896862742141155,0.68454710592868862,0.61785961309033433,0.78628843213661892,0.49272734154829156,0.87018375466952569,0.35641187871325075,0.93432894245661202,0.21200710992205474,0.97726812356819348,0.062790519529313527,0.99802672842827156,-0.087851196550743194,0.9961336091431725,-0.23649899702372465,0.97163173291467397,0,0.97985505238424686,0.19970998051440703,0.92023184736587038,0.39137366683720243,0.82353259762842745,0.56726894912675652,0.69365330581280493,0.72030902488790682,0.53582679497899655,0.84432792550201508,0.35641187871325075,0.93432894245661202,0.1626371651948835,0.98668594420786804,-0.037690182669934576,0.9992894726405892,-0.23649899702372465,0.97163173291467397,-0.42577929156507272,0.90482705246601947,-0.59790498305751894,0.80156698487087652,-0.74594114542418211,0.66601186743425167,0,0.96858316112863108,0.24868988716485479,0.87630668004386358,0.48175367410171532,0,0.87630668004386358,0.48175367410171532,0.53582679497899655,0.84432792550201508,0,0.72896862742141155,0.68454710592868873,0.062790519529313304,0.99802672842827156,0,0.53582679497899655,0.84432792550201508,-0.42577929156507272,0.90482705246601947,0,0,0,0,0,0.9999654630763769,0.0083109959960970241,0.99986185469110567,0.016621417919726152,0.99968918200081625,0.024930691738072875,0.99944745693267556,0.033238243497626739,0.99913669618356415,0.041543499363826515,0.99875692121892234,0.049845885660697163,0.99830815827126818,0.058144828910475829,0.99779043833838499,0.066439755873224177,0.99720379718118013,0.074730093586424254,0.99654827532121548,0.083015269404555239,0.99582391803790782,0.091294711038648294,0.99503077536540141,0.099567846595816661,0.99416890208911213,0.10783410461875863,0.99323835774194302,0.11609291412523023,0.99223920660017206,0.12434370464748516,0.99117151767901279,0.13258590627167927,0.99003536472784648,0.14081894967723654,0.98883082622512852,0.14904226617617444,0.98755798537296757,0.15725528775238523,0.98621693009137823,0.16545744710087118,0.98480775301220802,0.17364817766693033,0.9833305514727394,0.18182691368529075,0.9817854275089658,0.18999309021918998,0.98017248784854383,0.19814614319939758,0.97849184390342125,0.20628550946317739,0.9767436117621412,0.21441062679318743,0.97492791218182362,0.22252093395631439,0.97304487057982381,0.23061587074244017,0.97109461702506994,0.23869487800313774,0.96907728622907796,0.24675739769029362,0.96699301753664724,0.25480287289465464,0.96484195491623492,0.26283074788429533,0.96262424695001203,0.27084046814300511,0.96034004682359986,0.27883148040859029,0.9579895123154889,0.28680323271109021,0.95557280578614068,0.29475517441090421,0.95309009416677304,0.30268675623682589,0.95054154894782905,0.31059743032398374,0.94792734616713181,0.31848665025168443,0.94524766639772484,0.3263538710811556,0.94250269473539927,0.33419854939318755,0.93969262078590843,0.34202014332566871,0.93681763865187095,0.3498181126110147,0.93387794691936366,0.35759191861348627,0.93087374864420425,0.36534102436639498,0.92780525133792546,0.3730648946091939,0.92467266695344152,0.38076299582444956,0.92147621187040762,0.38843479627469474,0.918216106880274,0.39607976603915679,0.91489257717103467,0.40369737705036218,0.91150585231167314,0.41128710313061156,0.90805616623630503,0.41884842002832484,0.90454375722801916,0.42638080545425383,0.90096886790241915,0.43388373911755812,0.89733174519086401,0.44135670276174394,0.89363264032341228,0.44879918020046217,0.88987180881146866,0.45621065735316296,0.88604951043013436,0.46359062228060566,0.88216600920026411,0.4709385652202201,0.87822157337022855,0.47825397862131819,0.87421647539738567,0.48553635718015209,0.87015099192926093,0.49278519787481767,0.86602540378443871,0.49999999999999994,0.86183999593316396,0.50718026520155923,0.85759505747765952,0.51432549751095358,0.85329088163215572,0.521435203379498,0.84892776570263739,0.52850889171245541,0.84450601106630785,0.5355460739029585,0.8400259231507714,0.54254626386575944,0.83548781141293649,0.54950897807080601,0.83089198931763975,0.556433735576641,0.82623877431599491,0.56332005806362206,0.82152848782346399,0.57016746986696165,0.81676145519765675,0.57697549800958292,0.8119380057158565,0.58374367223478985,0.80705847255227614,0.59047152503874989,0.80212319275504385,0.59715859170278618,0.7971325072229225,0.60380441032547738,0.7920867606817622,0.61040852185456318,0.78698630166068895,0.61697047011865247,0.7818314824680298,0.62348980185873348,0.77662265916697837,0.6299660667594813,0.77136019155099977,0.63639881748036342,0.76604444311897801,0.64278760968653925,0.76067578105010858,0.64913200207955191,0.75525457617853486,0.65543155642781015,0.74978120296773421,0.66168583759685939,0.74425603948465158,0.66789441357943746,0.73867946737358559,0.67405685552531536,0.73305187182982634,0.68017273777091936,0.72737364157304873,0.6862416378687336,0.72164516882046204,0.69226313661647965,0.71586684925971844,0.69823681808607274,0.71003908202158039,0.70416226965235185,0,0.99986185469110567,0.016621417919726152,0.99944745693267556,0.033238243497626739,0.99875692121892234,0.049845885660697163,0.99779043833838499,0.066439755873224177,0.99654827532121548,0.083015269404555239,0.99503077536540141,0.099567846595816661,0.99323835774194302,0.11609291412523023,0.99117151767901279,0.13258590627167927,0.98883082622512852,0.14904226617617444,0.98621693009137823,0.16545744710087118,0.9833305514727394,0.18182691368529075,0.98017248784854383,0.19814614319939758,0.9767436117621412,0.21441062679318743,0.97304487057982381,0.23061587074244017,0.96907728622907796,0.24675739769029362,0.96484195491623492,0.26283074788429533,0.96034004682359986,0.27883148040859029,0.95557280578614068,0.29475517441090421,0.95054154894782905,0.31059743032398374,0.94524766639772484,0.3263538710811556,0.93969262078590843,0.34202014332566871,0.93387794691936366,0.35759191861348627,0.92780525133792546,0.3730648946091939,0.92147621187040762,0.38843479627469474,0.91489257717103467,0.40369737705036218,0.90805616623630503,0.41884842002832484,0.90096886790241915,0.43388373911755812,0.89363264032341228,0.44879918020046217,0.88604951043013436,0.46359062228060566,0.87822157337022855,0.47825397862131819,0.87015099192926093,0.49278519787481767,0.86183999593316396,0.50718026520155923,0.85329088163215572,0.521435203379498,0.84450601106630785,0.5355460739029585,0.83548781141293649,0.54950897807080601,0.82623877431599491,0.56332005806362206,0.81676145519765675,0.57697549800958292,0.80705847255227614,0.59047152503874989,0.7971325072229225,0.60380441032547738,0.78698630166068895,0.61697047011865247,0.77662265916697837,0.6299660667594813,0.76604444311897801,0.64278760968653925,0.75525457617853486,0.65543155642781015,0.74425603948465158,0.66789441357943746,0.73305187182982634,0.68017273777091936,0.72164516882046204,0.69226313661647965,0.71003908202158039,0.70416226965235185,0.69823681808607285,0.71586684925971844,0.6862416378687336,0.72737364157304873,0.67405685552531536,0.73867946737358559,0.66168583759685939,0.74978120296773421,0.64913200207955191,0.76067578105010847,0.63639881748036342,0.77136019155099977,0.62348980185873359,0.7818314824680298,0.61040852185456318,0.7920867606817622,0.59715859170278618,0.80212319275504373,0.58374367223478996,0.8119380057158565,0.57016746986696165,0.82152848782346399,0.556433735576641,0.83089198931763975,0.54254626386575944,0.8400259231507714,0.52850889171245552,0.84892776570263739,0.51432549751095358,0.85759505747765952,0.50000000000000011,0.8660254037844386,0.48553635718015214,0.87421647539738556,0.4709385652202201,0.88216600920026411,0.45621065735316307,0.88987180881146855,0.44135670276174405,0.89733174519086389,0.42638080545425383,0.90454375722801916,0.41128710313061151,0.91150585231167314,0.3960797660391569,0.918216106880274,0.38076299582444961,0.92467266695344152,0.36534102436639498,0.93087374864420425,0.34981811261101486,0.93681763865187084,0.33419854939318761,0.94250269473539927,0.31848665025168443,0.94792734616713181,0.30268675623682606,0.95309009416677304,0.28680323271109032,0.9579895123154889,0.27084046814300516,0.96262424695001203,0.25480287289465459,0.96699301753664724,0.23869487800313785,0.97109461702506983,0.22252093395631445,0.97492791218182362,0.20628550946317739,0.97849184390342125,0.18999309021919011,0.9817854275089658,0.17364817766693041,0.98480775301220802,0.15725528775238529,0.98755798537296757,0.14081894967723671,0.99003536472784637,0.12434370464748527,0.99223920660017206,0.10783410461875867,0.99416890208911213,0.091294711038648266,0.99582391803790782,0.074730093586424393,0.99720379718118013,0.058144828910475899,0.99830815827126818,0.041543499363826522,0.99913669618356415,0.024930691738073035,0.99968918200081625,0.0083109959960971196,0.9999654630763769,0,0.99968918200081625,0.024930691738072875,0.99875692121892234,0.049845885660697163,0.99720379718118013,0.074730093586424254,0.99503077536540141,0.099567846595816661,0.99223920660017206,0.12434370464748518,0.98883082622512852,0.14904226617617444,0.98480775301220802,0.17364817766693036,0.98017248784854383,0.19814614319939758,0.97492791218182362,0.22252093395631439,0.96907728622907796,0.24675739769029365,0.96262424695001203,0.27084046814300511,0.95557280578614068,0.29475517441090421,0.94792734616713181,0.31848665025168443,0.93969262078590832,0.34202014332566877,0.93087374864420425,0.36534102436639504,0.92147621187040762,0.38843479627469474,0.91150585231167314,0.41128710313061156,0.90096886790241915,0.43388373911755812,0.88987180881146855,0.45621065735316302,0.87822157337022855,0.47825397862131824,0.8660254037844386,0.5,0.85329088163215561,0.52143520337949811,0.8400259231507714,0.54254626386575944,0.82623877431599491,0.56332005806362206,0.8119380057158565,0.58374367223478985,0.7971325072229225,0.60380441032547738,0.7818314824680298,0.62348980185873348,0.76604444311897801,0.64278760968653936,0.74978120296773421,0.66168583759685951,0.73305187182982634,0.68017273777091947,0.71586684925971844,0.69823681808607285,0.69823681808607285,0.71586684925971844,0.68017273777091936,0.73305187182982634,0.66168583759685939,0.74978120296773421,0.64278760968653936,0.76604444311897801,0.62348980185873359,0.7818314824680298,0.60380441032547727,0.7971325072229225,0.58374367223478985,0.8119380057158565,0.56332005806362195,0.82623877431599491,0.54254626386575944,0.84002592315077151,0.521435203379498,0.85329088163215572,0.49999999999999989,0.86602540378443871,0.47825397862131824,0.87822157337022855,0.45621065735316291,0.88987180881146866,0.43388373911755818,0.90096886790241915,0.41128710313061151,0.91150585231167314,0.38843479627469479,0.92147621187040762,0.36534102436639498,0.93087374864420425,0.3420201433256686,0.93969262078590843,0.31848665025168443,0.94792734616713181,0.2947551744109041,0.95557280578614079,0.27084046814300516,0.96262424695001203,0.24675739769029356,0.96907728622907796,0.22252093395631445,0.97492791218182362,0.19814614319939755,0.98017248784854383,0.17364817766693022,0.98480775301220813,0.14904226617617444,0.98883082622512852,0.12434370464748506,0.99223920660017206,0.099567846595816661,0.99503077536540141,0.074730093586424171,0.99720379718118013,0.049845885660697198,0.99875692121892234,0.024930691738072813,0.99968918200081625,6.123233995736766e-17,1,-0.024930691738072913,0.99968918200081625,-0.049845885660697295,0.99875692121892234,-0.074730093586424268,0.99720379718118013,-0.099567846595816759,0.99503077536540141,-0.12434370464748516,0.99223920660017206,-0.14904226617617453,0.98883082622512852,-0.1736481776669303,0.98480775301220802,-0.19814614319939763,0.98017248784854383,-0.22252093395631434,0.97492791218182362,-0.24675739769029367,0.96907728622907796,-0.27084046814300522,0.96262424695001203,-0.29475517441090421,0.95557280578614068,-0.31848665025168454,0.9479273461671317,-0.34202014332566871,0.93969262078590843,-0.3653410243663951,0.93087374864420425,-0.38843479627469468,0.92147621187040762,-0.41128710313061156,0.91150585231167314,-0.43388373911755806,0.90096886790241915,-0.45621065735316296,0.88987180881146855,-0.4782539786213183,0.87822157337022844,-0.50000000000000022,0.8660254037844386,-0.521435203379498,0.85329088163215572,-0.54254626386575944,0.84002592315077151,-0.56332005806362206,0.82623877431599491,-0.58374367223478996,0.81193800571585639,-0.6038044103254776,0.79713250722292239,-0.62348980185873348,0.78183148246802991,-0.64278760968653936,0.76604444311897801,-0.66168583759685951,0.7497812029677341,-0.68017273777091958,0.73305187182982623,-0.69823681808607274,0.71586684925971855,0,0.99944745693267556,0.033238243497626739,0.99779043833838499,0.066439755873224177,0.99503077536540141,0.099567846595816661,0.99117151767901279,0.13258590627167927,0.98621693009137823,0.16545744710087118,0.98017248784854383,0.19814614319939758,0.97304487057982381,0.23061587074244017,0.96484195491623492,0.26283074788429533,0.95557280578614068,0.29475517441090421,0.94524766639772484,0.3263538710811556,0.93387794691936366,0.35759191861348627,0.92147621187040762,0.38843479627469474,0.90805616623630503,0.41884842002832484,0.89363264032341228,0.44879918020046217,0.87822157337022855,0.47825397862131819,0.86183999593316396,0.50718026520155923,0.84450601106630785,0.5355460739029585,0.82623877431599491,0.56332005806362206,0.80705847255227614,0.59047152503874989,0.78698630166068895,0.61697047011865247,0.76604444311897801,0.64278760968653925,0.74425603948465158,0.66789441357943746,0.72164516882046204,0.69226313661647965,0.69823681808607285,0.71586684925971844,0.67405685552531536,0.73867946737358559,0.64913200207955191,0.76067578105010847,0.62348980185873359,0.7818314824680298,0.59715859170278618,0.80212319275504373,0.57016746986696165,0.82152848782346399,0.54254626386575944,0.8400259231507714,0.51432549751095358,0.85759505747765952,0,0.99779043833838499,0.066439755873224177,0.99117151767901279,0.13258590627167927,0.98017248784854383,0.19814614319939758,0.96484195491623492,0.26283074788429533,0.94524766639772484,0.3263538710811556,0.92147621187040762,0.38843479627469474,0.89363264032341228,0.44879918020046217,0.86183999593316396,0.50718026520155923,0.82623877431599491,0.56332005806362206,0.78698630166068895,0.61697047011865247,0.74425603948465158,0.66789441357943746,0.69823681808607285,0.71586684925971844,0.64913200207955191,0.76067578105010847,0.59715859170278618,0.80212319275504373,0.54254626386575944,0.8400259231507714,0.48553635718015214,0.87421647539738556,0.42638080545425383,0.90454375722801916,0.36534102436639498,0.93087374864420425,0.30268675623682606,0.95309009416677304,0.23869487800313785,0.97109461702506983,0.17364817766693041,0.98480775301220802,0.10783410461875867,0.99416890208911213,0.041543499363826522,0.99913669618356415,-0.024930691738072913,0.99968918200081625,-0.091294711038648141,0.99582391803790782,-0.15725528775238515,0.98755798537296757,-0.22252093395631434,0.97492791218182362,-0.28680323271109021,0.9579895123154889,-0.34981811261101475,0.93681763865187095,-0.4112871031306114,0.91150585231167325,-0.47093856522022021,0.88216600920026411,0,0.99503077536540141,0.099567846595816661,0.98017248784854383,0.19814614319939758,0.95557280578614068,0.29475517441090421,0.92147621187040762,0.38843479627469474,0.87822157337022855,0.47825397862131824,0.82623877431599491,0.56332005806362206,0.76604444311897801,0.64278760968653936,0.69823681808607285,0.71586684925971844,0.62348980185873359,0.7818314824680298,0.54254626386575944,0.84002592315077151,0,0.98017248784854383,0.19814614319939758,0.92147621187040762,0.38843479627469474,0.82623877431599491,0.56332005806362206,0.69823681808607285,0.71586684925971844,0.54254626386575944,0.84002592315077151,0.36534102436639498,0.93087374864420425,0.17364817766693022,0.98480775301220813,-0.024930691738072913,0.99968918200081625,-0.22252093395631434,0.97492791218182362,-0.41128710313061156,0.91150585231167314,0,0.95557280578614068,0.29475517441090421,0.82623877431599491,0.56332005806362206,0.62348980185873359,0.7818314824680298,0,0.82623877431599491,0.56332005806362206,0.36534102436639498,0.93087374864420425,-0.22252093395631434,0.97492791218182362,0,0,0,0,0,0,0]} +{"lengths":[259,615,618,201,648,971,569,524,342,823],"offsets":[0,258,872,1489,1689,2336,3306,3874,4397,4738],"twiddles":[0.99970575512072213,0.024257023282068805,0.99882319364298633,0.048499771554363059,0.99735283494518367,0.072713978207805285,0.99529554431834921,0.096885393429768346,0.99265253245694707,0.12099979258994435,0.9894253547463896,0.14504298461139381,0.98561591034770846,0.16900082032184907,0.98122644107991797,0.1928592007803574,0.97625953010072786,0.21660408557436325,0.97071810038638084,0.24022150108234722,0.96460541301151181,0.26369754869715928,0.95792506523003795,0.28701841300520692,0.95068098835821235,0.31017036991668395,0.94287744546108421,0.33313979474205757,0.93451902884372884,0.35591317021005814,0.92561065734872361,0.37847709442245486,0.91615757346145843,0.40081828874093606,0.90616534022498785,0.42292360560145142,0,0.99882319364298633,0.048499771554363059,0.99529554431834921,0.096885393429768346,0.9894253547463896,0.14504298461139381,0.98122644107991797,0.1928592007803574,0.97071810038638084,0.24022150108234722,0.95792506523003795,0.28701841300520692,0.94287744546108421,0.33313979474205757,0.92561065734872361,0.37847709442245486,0.90616534022498785,0.42292360560145142,0.88458726083548767,0.46637471840524203,0.86092720562221858,0.50872816574229318,0.83524086119194496,0.54988426400046964,0.80758868325149491,0.58974614766365085,0.77803575431843952,0.62821999729564226,0.74665163054205241,0.66521526035479261,0.71351017799507233,0.70064486431960682,0.6786893988215752,0.73442542162374047,0.64227124765013588,0.76647742591803558,0,0.99735283494518367,0.072713978207805285,0.9894253547463896,0.14504298461139381,0.97625953010072786,0.21660408557436325,0.95792506523003795,0.28701841300520692,0.93451902884372884,0.35591317021005814,0.90616534022498785,0.42292360560145142,0.87301411316118815,0.48769494381363454,0.83524086119194496,0.54988426400046964,0.79304556838249773,0.60916231537159382,0.74665163054205241,0.66521526035479261,0.69630467249262196,0.71774633615570793,0.64227124765013588,0.76647742591803558,0.58483742680266448,0.81115053116597169,0.52430728355723166,0.85152913773331129,0.46100128447376204,0.88739946794752,0.3952545924093237,0.91857161243930208,0.3274152920553221,0.94488053558549301,0.25784254706223786,0.96618694926212789,0,0.99529554431834921,0.096885393429768346,0.98122644107991797,0.1928592007803574,0.95792506523003795,0.28701841300520692,0.92561065734872361,0.37847709442245486,0.88458726083548767,0.46637471840524203,0.83524086119194496,0.54988426400046964,0.77803575431843952,0.62821999729564226,0.71351017799507233,0.70064486431960682,0.64227124765013588,0.76647742591803558,0.56498924406486239,0.82509826935402997,0.4823913067609637,0.87595583630765872,0.3952545924093237,0.91857161243930208,0.30439896263176669,0.95254462968865894,0.21067926999572642,0.97755523894768614,0.11497731478221103,0.99336811761072363,0.01819354820511962,0.99983448370403183,-0.078761399854417713,0.99689349576219655,-0.17497528888387551,0.98457282528008272,0,0.99265253245694707,0.12099979258994435,0.97071810038638084,0.24022150108234722,0.93451902884372884,0.35591317021005814,0.88458726083548767,0.46637471840524203,0.8216565404512729,0.56998292038766007,0.74665163054205241,0.66521526035479261,0.66067472339008149,0.75067230525272433,0.56498924406486239,0.82509826935402997,0.46100128447376204,0.88739946794752,0.35023894093270863,0.93666038896407622,0.23432985889002245,0.97215714636707895,0.11497731478221103,0.99336811761072363,-0.0060648135026995014,0.99998160884947151,-0.12701781974687876,0.99190043525887683,-0.2461043073750987,0.96924334916027299,-0.36157430818203079,0.93234329496311918,-0.47173099800142432,0.88174251656851632,-0.57495563142708306,0.81818458913027947,0,0.9894253547463896,0.14504298461139381,0.95792506523003795,0.28701841300520692,0.90616534022498785,0.42292360560145142,0.83524086119194496,0.54988426400046964,0.74665163054205241,0.66521526035479261,0.64227124765013588,0.76647742591803558,0.52430728355723166,0.85152913773331129,0.3952545924093237,0.91857161243930208,0.25784254706223786,0.96618694926212789,0.11497731478221103,0.99336811761072363,-0.030319606129884956,0.99954025505935906,-0.17497528888387551,0.98457282528008272,-0.3159303684216761,0.94878237879344285,-0.45020374481767339,0.89292585814956849,-0.57495563142708306,0.81818458913027947,-0.68754761435867873,0.7261392965469432,-0.78559845305665621,0.61873667303222679,-0.86703444184891532,0.49824820787208046,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99994781138976108,0.010216383745088785,0.99979125100634614,0.020431701132438921,0.99953033519109313,0.030644885915615212,0.99916509117766938,0.040854872070777773,0.99869555708922997,0.051060593907950605,0.9981217819344379,0.061260986182255367,0.9974438256023489,0.071454984205098687,0.99666175885616082,0.081641523955301387,0.99577566332582645,0.091819542190158046,0.99478563149953469,0.10198797655641534,0.99369176671405557,0.11214576570115752,0.99249418314395499,0.1222918493825874,0.99119300578967739,0.13242516858069164,0.98978837046449819,0.14254466560777812,0.98828042378034853,0.15264928421887447,0.98666932313251188,0.16273796972197613,0.98495523668319584,0.17280966908813197,0.98313834334397954,0.18286333106135669,0.98121883275713973,0.19289790626835787,0.97919690527585612,0.20291234732806676,0.97707277194329922,0.21290560896096089,0.97484665447060215,0.22287664809816748,0.97251878521371926,0.23282442399033618,0.97008940714917313,0.24274789831626933,0.9675587738486936,0.25264603529129942,0.96492714945275082,0.26251780177540102,0.96219480864298434,0.27236216738102731,0.95936203661353348,0.28217810458065901,0.95642912904126876,0.29196458881405485,0.95339639205493054,0.30172059859519229,0.95026414220317601,0.31144511561888744,0.94703270642153836,0.32113712486708279,0.94370242199830279,0.3307956147147923,0.94027363653930063,0.34041957703569159,0.93674670793162784,0.35000800730734355,0.93312200430628933,0.35955990471604782,0.92939990399977446,0.36907427226130246,0.92558079551456762,0.37855011685986856,0.92166507747859727,0.38798644944942523,0.91765315860362795,0.39738228509180523,0.91354545764260087,0.40673664307580015,0.90934240334592487,0.41604854701952437,0.90504443441672477,0.42531702497232671,0.90065199946505126,0.43454110951624053,0.8961655569610556,0.44371983786695968,0.89158557518713633,0.45285225197433127,0.88691253218906085,0.46193739862235467,0.88214691572606829,0.47097432952867496,0.87728922321995917,0.47996210144356261,0.87233996170317496,0.48889977624836689,0.86729964776587642,0.49778642105343401,0.86216880750202252,0.5066211082954799,0.85694797645445886,0.51540291583440645,0.85163769955901858,0.524130927049552,0.84623853108764413,0.53280423093536566,0.84075103459053335,0.54142192219649532,0.83517578283731808,0.54998310134228023,0.82951335775727975,0.55848687478063719,0.8237643503786094,0.5669323549113312,0.81792936076671774,0.57531866021862055,0.81200899796160186,0.58364491536326712,0.80600387991427569,0.59191025127390207,0.79991463342226965,0.6001138052377365,0.79374189406420737,0.60825472099060984,0.78748630613346571,0.61633214880636367,0.78114852257092537,0.62434524558553384,0.77472920489681862,0.63229317494335113,0.76822902314168173,0.64017510729704064,0.76164865577641871,0.64799021995241135,0.75498878964148508,0.65573769718972652,0.74825011987519663,0.66341673034884641,0.74143334984117326,0.67102651791363388,0.73453919105492382,0.6785662655956145,0.72756836310957995,0.68603518641688221,0.72052159360078705,0.69343250079224172,0.7133996180507598,0.70075743661057932,0.70620317983151026,0.70800922931545429,0.69893303008725727,0.71518712198490064,0.69158992765602345,0.72229036541043257,0.68417463899043041,0.72931821817524489,0.67668793807769811,0.73626994673160018,0.66913060635885824,0.74314482547739424,0.66150343264718992,0.74994213683189226,0.65380721304588529,0.7566611713106286,0.64604275086495444,0.76330122759945984,0.63821085653737841,0.76986161262776687,0.63031234753451815,0.77634164164079511,0.62234804828078927,0.78274063827112772,0.61431879006761103,0.78905793460928231,0.60622541096663807,0.7952928712734264,0.59806875574228535,0.80144479747820097,0.58984967576355352,0.80751307110264836,0.58156902891516571,0.81349705875723433,0.57322767950802367,0.81939613584996029,0.56482649818899355,0.82520968665155581,0.55636636185003019,0.8309371043597471,0.54784815353664951,0.83657779116259345,0.53927276235575861,0.84213115830088459,0.53064108338285343,0.84759662612959441,0.52195401756859361,0.85297362417838229,0.51321247164476247,0.85826159121113765,0.50441735802962662,0.86345997528455909,0,0.99979125100634614,0.020431701132438921,0.99916509117766938,0.040854872070777773,0.9981217819344379,0.061260986182255367,0.99666175885616082,0.081641523955301387,0.99478563149953469,0.10198797655641534,0.99249418314395499,0.1222918493825874,0.98978837046449819,0.14254466560777812,0.98666932313251188,0.16273796972197613,0.98313834334397954,0.18286333106135669,0.97919690527585612,0.20291234732806676,0.97484665447060215,0.22287664809816748,0.97008940714917313,0.24274789831626933,0.96492714945275082,0.26251780177540102,0.95936203661353348,0.28217810458065901,0.95339639205493054,0.30172059859519229,0.94703270642153836,0.32113712486708279,0.94027363653930063,0.34041957703569159,0.93312200430628933,0.35955990471604782,0.92558079551456762,0.37855011685986856,0.91765315860362795,0.39738228509180523,0.90934240334592487,0.41604854701952437,0.90065199946505126,0.43454110951624053,0.89158557518713633,0.45285225197433127,0.88214691572606829,0.47097432952867496,0.87233996170317496,0.48889977624836689,0.86216880750202252,0.5066211082954799,0.85163769955901858,0.524130927049552,0.84075103459053335,0.54142192219649532,0.82951335775727975,0.55848687478063719,0.81792936076671774,0.57531866021862055,0.80600387991427569,0.59191025127390207,0.79374189406420737,0.60825472099060984,0.78114852257092537,0.62434524558553384,0.76822902314168173,0.64017510729704064,0.75498878964148508,0.65573769718972652,0.74143334984117326,0.67102651791363388,0.72756836310957995,0.68603518641688221,0.7133996180507598,0.70075743661057932,0.69893303008725727,0.71518712198490064,0.68417463899043041,0.72931821817524489,0.66913060635885824,0.74314482547739424,0.65380721304588529,0.7566611713106286,0.63821085653737841,0.76986161262776687,0.62234804828078927,0.78274063827112772,0.60622541096663807,0.7952928712734264,0.58984967576355352,0.80751307110264836,0.57322767950802367,0.81939613584996029,0.55636636185003019,0.8309371043597471,0.53927276235575861,0.84213115830088459,0.52195401756859361,0.85297362417838229,0.50441735802962662,0.86345997528455909,0.48667010525891918,0.87358583358893394,0.4687196686987834,0.8833469715660448,0.45057354262035432,0.8927393139604326,0.43223930299474717,0.90175893948805141,0.41372460433010444,0.91040208247339727,0.39503717647585423,0.91866513442166986,0.37618482139551362,0.92654464552531168,0.35717540990938473,0.93403732610429602,0.33801687840850292,0.94114004797956152,0.31871722554120951,0.94784984577902098,0.29928450887373237,0.95416391817559776,0.27972684152616806,0.96007962905677469,0.26005238878527065,0.96559450862516527,0.24026936469546087,0.97070625442964964,0.22038602862947904,0.97541273232664261,0.20041068184011365,0.97971197737109483,0.18035166399444508,0.98360219463685361,0.16021734969205123,0.98708175996603997,0.14001614496862919,0.99014922064713251,0.11975648378649216,0.99280329602147055,0.099446824513407237,0.99504287801792723,0.079095646391243821,0.99686703161552659,0.05871144599590726,0.99827499523381313,0.038302733690035493,0.99926618105081,0.017878030069939755,0.9998401752484336,-0.0025541375917272082,0.99999673818526158,-0.022985238906090319,0.99973580449658295,-0.043406743929472351,0.99905748312168763,-0.063810126724628255,0.99796205725838438,-0.084186868920306773,0.99644998424476638,-0.10452846326765333,0.9945218953682734,-0.12482641719196928,0.99217859560213073,-0.14507225633834475,0.98942106326927448,-0.1652575281096848,0.9862504496339034,-0.18537380519565161,0.98266807842082904,-0.20541268909104968,0.97867544526282246,-0.22536581360218477,0.97427421707619122,-0.24522484833973299,0.96946623136484489,-0.26498150219666156,0.96425349545314099,-0.28462752680974923,0.9586381856478311,-0.30415472000326155,0.95262264632945692,-0.32355492921334233,0.94620938897357654,-0.34282005489169304,0.93940109110222803,-0.36194205388711781,0.93220059516606979,-0.3809129428035225,0.92461090735766271,-0.39972480133296751,0.91663519635639112,-0.41836977556237903,0.90827679200554534,-0.43684008125254309,0.89953918392211885,-0.45512800708800849,0.89042602003990068,-0.47322591789654772,0.88094110508646939,-0.49112625783682295,0.87108839899472801,0,0.99953033519109313,0.030644885915615212,0.9981217819344379,0.061260986182255367,0.99577566332582657,0.091819542190158032,0.99249418314395499,0.1222918493825874,0.98828042378034853,0.15264928421887447,0.98313834334397954,0.18286333106135666,0.97707277194329922,0.21290560896096086,0.97008940714917313,0.24274789831626933,0.96219480864298434,0.27236216738102731,0.95339639205493054,0.30172059859519229,0.94370242199830279,0.3307956147147923,0.93312200430628933,0.35955990471604776,0.92166507747859727,0.38798644944942517,0.90934240334592487,0.41604854701952432,0.8961655569610556,0.44371983786695962,0.88214691572606829,0.47097432952867496,0.86729964776587642,0.49778642105343401,0.85163769955901858,0.524130927049552,0.83517578283731808,0.54998310134228023,0.81792936076671774,0.57531866021862055,0,0.9981217819344379,0.061260986182255367,0.99249418314395499,0.1222918493825874,0.98313834334397954,0.18286333106135666,0.97008940714917313,0.24274789831626933,0.95339639205493054,0.30172059859519229,0.93312200430628933,0.35955990471604776,0.90934240334592487,0.41604854701952432,0.88214691572606829,0.47097432952867496,0.85163769955901858,0.524130927049552,0.81792936076671774,0.57531866021862055,0.78114852257092537,0.62434524558553384,0.74143334984117337,0.67102651791363377,0.69893303008725727,0.71518712198490053,0.6538072130458854,0.75666117131062849,0.60622541096663818,0.79529287127342629,0.55636636185003019,0.8309371043597471,0.50441735802962662,0.86345997528455909,0.45057354262035432,0.8927393139604326,0.39503717647585423,0.91866513442166986,0.33801687840850292,0.94114004797956152,0,0.99577566332582645,0.091819542190158046,0.98313834334397954,0.18286333106135669,0.96219480864298434,0.27236216738102731,0.93312200430628933,0.35955990471604782,0.8961655569610556,0.44371983786695968,0.85163769955901858,0.524130927049552,0.79991463342226965,0.6001138052377365,0.74143334984117326,0.67102651791363388,0.67668793807769811,0.73626994673160018,0.60622541096663807,0.7952928712734264,0.53064108338285343,0.84759662612959441,0.45057354262035432,0.8927393139604326,0.36669925317684809,0.93033953894239163,0.27972684152616806,0.96007962905677469,0.19039110916466842,0.98170831999685493,0.099446824513407237,0.99504287801792723,0.0076623461263018869,0.99997064379502698,-0.084186868920306773,0.99644998424476638,-0.17532481661118743,0.98451064426965618,-0.26498150219666156,0.96425349545314099,0,0.99249418314395499,0.1222918493825874,0.97008940714917313,0.24274789831626933,0.93312200430628933,0.35955990471604776,0.88214691572606829,0.47097432952867496,0.81792936076671774,0.57531866021862055,0.74143334984117337,0.67102651791363377,0.6538072130458854,0.75666117131062849,0.55636636185003019,0.8309371043597471,0.45057354262035432,0.8927393139604326,0.33801687840850292,0.94114004797956152,0.22038602862947904,0.97541273232664261,0.099446824513407445,0.99504287801792723,-0.022985238906090097,0.99973580449658295,-0.14507225633834453,0.98942106326927448,-0.26498150219666133,0.9642534954531411,-0.3809129428035225,0.92461090735766271,-0.49112625783682295,0.87108839899472801,-0.59396696538108751,0.80448943065523359,-0.68789125840396959,0.72581376165749512,-0.77148917982194276,0.63624244232656013,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99994831684112406,0.010166791362219731,0.99979327270679419,0.020332531820652998,0.99953488362335152,0.030496170580141393,0.99917317629952429,0.040656657062771384,0.99870818812366646,0.050812941016468702,0.99813996715989384,0.060963972623559008,0.99746857214311491,0.071108702609283689,0.99669407247296038,0.081246082350259541,0.99581654820660925,0.091375063982871096,0.99483609005051377,0.10149460051158439,0.99375279935102301,0.11160364591717112,0.99256678808390786,0.1217011552648317,0.9912781788427858,0.13178608481220641,0.98988710482644893,0.1418573921172632,0.98839370982509611,0.15191403614605092,0.98679814820546974,0.1619549773803074,0.98510058489489893,0.17197917792491049,0.98330119536425242,0.18198560161516153,0.98140016560980015,0.19197321412388973,0.97939769213398775,0.20194098306836697,0.97729398192512484,0.21188787811702126,0.97508925243598943,0.22181287109593834,0.97278373156135023,0.23171493609514029,0.97037765761441064,0.24159304957462996,0.96787127930217487,0.25144619047019068,0.96526485569973985,0.26127334029892979,0.962558656223516,0.27107348326455549,0.95975296060337811,0.28084560636237593,0.95684805885375124,0.29058869948400995,0.9538442512436327,0.30030175552179805,0.9507418482655543,0.30998377047290337,0.94754117060348819,0.31963374354309215,0.94424254909969862,0.32925067725018159,0.94084632472054397,0.33883357752714643,0.93735284852123257,0.34838145382487162,0.93376248160953546,0.35789331921454187,0.9300755951084595,0.36736819048965696,0.92629257011788635,0.37680508826766201,0.92241379767517928,0.3862030370911827,0.91843967871476306,0.39556106552885462,0.9143706240266809,0.4048782062757369,0.91020705421413273,0.41415349625329845,0.90594939964999865,0.42338597670896833,0.90159810043235322,0.43257469331523801,0.89715360633897423,0.44171869626830707,0.89261637678085004,0.45081704038626075,0.88798688075469323,0.45986878520676988,0.88326559679446082,0.46887299508430325,0.87845301292189082,0.47782873928684144,0.87354962659605717,0.48673509209208354,0.86855594466194874,0.49559113288313561,0.86347248329807924,0.5043959462436709,0.85829976796313123,0.51314862205255429,0.85303833334164147,0.52184825557791659,0.84768872328873324,0.53049394757067447,0.84225149077389883,0.53908480435748241,0.83672719782384208,0.54761993793310804,0.83111641546438353,0.55609846605222191,0.82541972366143535,0.56451951232059261,0.81963771126105245,0.57288220628567577,0.81377097592856618,0.5811856835265895,0.8078201240868047,0.58942908574346708,0.80178577085341063,0.59761156084617539,0.79566853997725762,0.60573226304239336,0.78946906377397619,0.61379035292503703,0.78318798306059356,0.62178499755902727,0.77682594708929431,0.62971537056738647,0.77038361348031048,0.63758065221665838,0.76386164815394486,0.64538002950164097,0.7572607252617376,0.65311269622942336,0.75058152711678217,0.66077785310271953,0.7438247441231961,0.66837470780248853,0.73699107470475722,0.67590247506983359,0.73008122523271024,0.68336037678717121,0.72309590995275108,0.69074764205866301,0.71603585091119881,0.69806350728989941,0.70890177788035968,0.70530721626683024,0.70169442828309314,0.71247802023393192,0.69441454711658812,0.71957517797160275,0.68706288687535433,0.7265979558727812,0.67964020747344023,0.73354562801877499,0.67214727616588366,0.74041747625429755,0.66458486746940282,0.74721279026170062,0.65695376308233822,0.75393086763439732,0.64925475180385039,0.76057101394946713,0.64148862945238583,0.76713254283943633,0.63365619878341517,0.77361477606322449,0.62575826940645563,0.78001704357625279,0.61779565770138467,0.78633868359970283,0.60976918673405422,0.79257904268892332,0.60167968617121248,0.79873747580097387,0.59352799219474506,0.80481334636130053,0.58531494741524204,0.81080602632953613,0.57704140078489941,0.81671489626441918,0.56870820750976747,0.82253934538782236,0.56031622896134992,0.82827877164788677,0.55186633258756801,0.83393258178125396,0.54335939182309545,0.83950019137438903,0.53479628599907425,0.84498102492398985,0.52617790025222189,0.85037451589647417,0.51750512543333804,0.85568010678654038,0.50877885801522049,0.86089724917479449,0.49999999999999989,0.86602540378443871,0.49116945882590363,0.87106404053701414,0.48228814727345615,0.87601263860719325,0.47335698337112969,0.88087068647661559,0.46437689030045004,0.88563768198676129,0.45534879630057101,0.89031313239085785,0.44627363457232566,0.89489655440481297,0.43715234318176505,0.89938747425717036,0.42798586496319291,0.9037854277380819,0.41877514742170974,0.90808996024729027,0.40952114263527162,0.91230062684112057,0.40022480715627778,0.91641699227847162,0.39088710191269549,0.92043863106580548,0.38150899210873157,0.92436512750112976,0.37209144712506415,0.92819607571696594,0.36263544041864049,0.9319310797223036,0.3531419494220544,0.93556975344353199,0.34361195544251288,0.93911172076434679,0.33404644356040203,0.94255661556462866,0.32444640252746199,0.945904081758287,0.31481282466458482,0.94915377333006756,0.30514670575924108,0.9523053543713188,0.29544904496254892,0.95535849911471338,0.2857208446859959,0.95831289196792147,0.27596311049782252,0.96116822754623277,0.26617685101908162,0.96392421070412249,0.25636307781938011,0.96658055656576003,0.24652280531231693,0.96913699055445479,0.23665705065062695,0.97159324842103889,0.22676683362104103,0.97394907627118121,0.21685317653887543,0.97620423059163153,0.20691710414235823,0.97835847827539191,0.19695964348670594,0.98041159664581168,0.18698182383796097,0.9823633734796049,0.17698467656659911,0.98421360702878735,0.16696923504092209,0.98596210604153001,0.15693653452024103,0.98760868978192839,0.14688761204786591,0.98915318804868424,0.13682350634391002,0.99059544119269904,0.12674525769792169,0.991935300133576,0.11665390786135239,0.99317262637503012,0.10655049993987611,0.99430729201920387,0.09643607828556644,0.99533917977988795,0.08631168838894597,0.99626818299464404,0.076178376770918002,0.99709420563583062,0.066037190874590687,0.99781716232052897,0.055889178957007998,0.99843697831936873,0.045735389980794357,0.99895358956425229,0.035576873505727448,0.99936694265497772,0.025414679580249136,0.99967699486475792,0.015249858632925991,0.99988371414463784,0.0050834613638695023,0.99998707912680651,0,0.99979327270679419,0.020332531820652998,0.99917317629952429,0.040656657062771384,0.99813996715989384,0.060963972623559008,0.99669407247296038,0.081246082350259541,0.99483609005051377,0.10149460051158439,0.99256678808390786,0.1217011552648317,0.98988710482644893,0.1418573921172632,0.98679814820546974,0.1619549773803074,0.98330119536425242,0.18198560161516153,0.97939769213398775,0.20194098306836697,0.97508925243598943,0.22181287109593834,0.97037765761441064,0.24159304957462996,0.96526485569973985,0.26127334029892979,0.95975296060337811,0.28084560636237593,0.9538442512436327,0.30030175552179805,0.94754117060348819,0.31963374354309215,0.94084632472054397,0.33883357752714643,0.93376248160953546,0.35789331921454187,0.92629257011788635,0.37680508826766201,0.91843967871476306,0.39556106552885462,0.91020705421413273,0.41415349625329845,0.90159810043235322,0.43257469331523801,0.89261637678085004,0.45081704038626075,0.88326559679446082,0.46887299508430325,0.87354962659605717,0.48673509209208354,0.86347248329807924,0.5043959462436709,0.85303833334164147,0.52184825557791659,0.84225149077389883,0.53908480435748241,0.83111641546438353,0.55609846605222191,0.81963771126105245,0.57288220628567577,0.8078201240868047,0.58942908574346708,0.79566853997725762,0.60573226304239336,0.78318798306059356,0.62178499755902727,0.77038361348031048,0.63758065221665838,0.7572607252617376,0.65311269622942336,0.7438247441231961,0.66837470780248853,0.73008122523271024,0.68336037678717121,0.71603585091119881,0.69806350728989941,0.70169442828309314,0.71247802023393192,0.68706288687535433,0.7265979558727812,0.67214727616588366,0.74041747625429755,0.65695376308233822,0.75393086763439732,0.64148862945238583,0.76713254283943633,0.62575826940645563,0.78001704357625279,0.60976918673405422,0.79257904268892332,0.59352799219474506,0.80481334636130053,0.57704140078489941,0.81671489626441918,0.56031622896134992,0.82827877164788677,0.54335939182309545,0.83950019137438903,0.52617790025222189,0.85037451589647417,0.50877885801522049,0.86089724917479449,0,0.99917317629952429,0.040656657062771384,0.99669407247296038,0.081246082350259541,0.99256678808390786,0.1217011552648317,0.98679814820546974,0.1619549773803074,0.97939769213398775,0.20194098306836697,0.97037765761441064,0.24159304957462996,0.95975296060337811,0.28084560636237593,0.94754117060348819,0.31963374354309215,0.93376248160953546,0.35789331921454187,0.91843967871476306,0.39556106552885462,0.90159810043235322,0.43257469331523801,0.88326559679446082,0.46887299508430325,0.86347248329807924,0.5043959462436709,0.84225149077389883,0.53908480435748241,0.81963771126105245,0.57288220628567577,0.79566853997725762,0.60573226304239336,0.77038361348031048,0.63758065221665838,0.7438247441231961,0.66837470780248853,0.71603585091119881,0.69806350728989941,0.68706288687535433,0.7265979558727812,0.65695376308233822,0.75393086763439732,0.62575826940645563,0.78001704357625279,0.59352799219474506,0.80481334636130053,0.56031622896134992,0.82827877164788677,0.52617790025222189,0.85037451589647417,0.49116945882590363,0.87106404053701414,0.45534879630057101,0.89031313239085785,0.41877514742170974,0.90808996024729027,0.38150899210873157,0.92436512750112976,0.34361195544251288,0.93911172076434679,0.30514670575924108,0.9523053543713188,0.26617685101908162,0.96392421070412249,0.22676683362104103,0.97394907627118121,0.18698182383796097,0.9823633734796049,0.14688761204786591,0.98915318804868424,0.10655049993987611,0.99430729201920387,0.066037190874590687,0.99781716232052897,0.025414679580249136,0.99967699486475792,-0.01524985863292609,0.99988371414463784,-0.055889178957008102,0.99843697831936873,-0.096436078285566551,0.99533917977988795,-0.13682350634391011,0.99059544119269904,-0.17698467656659922,0.98421360702878735,-0.21685317653887551,0.97620423059163153,-0.25636307781938023,0.96658055656576003,-0.2954490449625492,0.95535849911471327,-0.33404644356040208,0.94255661556462866,-0.3720914471250642,0.92819607571696594,-0.40952114263527173,0.91230062684112057,-0.44627363457232572,0.89489655440481286,-0.48228814727345626,0.87601263860719325,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99951145760046589,0.03125453767682429,0.99804630774921599,0.062478537019982648,0.99560598202189809,0.093641489534350766,0.99219286482368529,0.12471294637273277,0.98781029105950946,0.15566254808696697,0.98246254287557611,0.18646005429168117,0.97615484547534526,0.21707537321171355,0.96889336201406373,0.24747859108432871,0.96068518757684018,0.27764000138750056,0.95153834224614542,0.30753013386570344,0.94146176326551134,0.33711978332485076,0.93046529630708663,0.36638003816824616,0.91855968585157977,0.39528230864566533,0.90575656468999055,0.42379835478796629,0.89206844255738649,0.45190031399993386,0.87750869390983122,0.47956072828439789,0.86209154485640649,0.50675257107102523,0.84583205925909744,0.53344927362357031,0.82874612401412162,0.55962475099978393,0.81085043352908504,0.5852534275386132,0.79216247341112933,0.61031026184979209,0.77270050338201135,0.63477077128140225,0.75248353943680657,0.65861105584150048,0.73153133526366898,0.68180782155043773,0.70986436294280331,0.70433840320105223,0.68750379294350594,0.72618078650449913,0.66447147343882174,0.74731362960007708,0.64078990895802601,0.76771628390803637,0.61648223839779126,0.78736881430499195,0.59157221241352231,0.80625201860222984,0.5660841702129531,0.82434744630787338,0.54004301577467573,0.84163741665457892,0.51347419351484191,0.85810503587514431,0,0.99804630774921599,0.062478537019982648,0.99219286482368529,0.12471294637273277,0.98246254287557611,0.18646005429168117,0.96889336201406373,0.24747859108432871,0.95153834224614542,0.30753013386570344,0.93046529630708663,0.36638003816824616,0.90575656468999055,0.42379835478796629,0.87750869390983122,0.47956072828439789,0.84583205925909744,0.53344927362357031,0.81085043352908504,0.5852534275386132,0.77270050338201135,0.63477077128140225,0.73153133526366898,0.68180782155043773,0.68750379294350594,0.72618078650449913,0.64078990895802601,0.76771628390803637,0.59157221241352231,0.80625201860222984,0.54004301577467573,0.84163741665457892,0.48640366342581109,0.87373421370915205,0.43086374494097046,0.90241699523858832,0.37364027613685968,0.92757368658687767,0.31495685110861033,0.94910599088813508,0.25504276856167651,0.96692977315025064,0.19413213585362751,0.98097538900265424,0.13246295424668797,0.99118795682364902,0.070276188945293,0.99752757218401011,0.0078148275523839076,0.99996946376893259,-0.054677069376585792,0.99850409016908293,-0.11695532197208247,0.99313717716255423,-0.17877658515512931,0.9838896953420494,-0.23989929948009772,0.97079777817471258,-0.30008463500034077,0.95391258081477903,-0.35909742446862458,0.93330008022071897,-0.41670708222598662,0.90904081735789222,-0.47268850518856537,0.88122958249402839,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99995299150722616,0.0096961216859783959,0.99981197044850145,0.01939133177182437,0.9995769500822006,0.029084718743111401,0.99924795250423004,0.03877537125681671,0.99882500864595036,0.048462378227002958,0.99830815827126818,0.058144828910475822,0.99769744997289767,0.067821812992409344,0.99699294116779202,0.077492420671930934,0.99619469809174555,0.087155742747658166,0.99530279579316583,0.096810870703179092,0.99431731812601842,0.10645689679246825,0.99323835774194302,0.11609291412523022,0.99206601608154232,0.12571801675216268,0.99080040336484532,0.13533129975013108,0.98944163858094447,0.14493185930724672,0.98798984947680901,0.15451879280784048,0.98644517254527386,0.16409119891732396,0.98480775301220802,0.17364817766693033,0.98307774482286003,0.18318883053832663,0.98125531062738469,0.19271226054808968,0.97934062176555148,0.20221757233203794,0.97733385825063557,0.21170387222941073,0.97523520875249314,0.22117026836688777,0.97304487057982381,0.23061587074244014,0.97076304966161997,0.24003979130900588,0.9683899605278059,0.24944114405798126,0.96592582628906831,0.25881904510252074,0.96337087861588033,0.26817261276063731,0.96072535771672052,0.27750096763809573,0.9579895123154889,0.28680323271109021,0.95516359962812303,0.29607853340869988,0.95224788533841531,0.30532599769511309,0.9492426435730339,0.31454475615161365,0.94614815687575049,0.32373394205832101,0.94296471618087596,0.33289269147567657,0.93969262078590843,0.34202014332566871,0.93633217832339311,0.35111543947278878,0.93288370473200055,0.36017772480471039,0.92934752422682243,0.36920614731268442,0.92572396926889045,0.37819985817164248,0.92201338053391846,0.38715801182000059,0.918216106880274,0.39607976603915679,0.91433250531617938,0.40496428203267359,0.91036294096614667,0.41381072450513912,0.90630778703664994,0.42261826174069944,0.90216742478103773,0.43138606568125343,0.89794224346368812,0.44011331200430481,0.89363264032341228,0.44879918020046211,0.88923902053610615,0.45744285365058074,0.88476179717665782,0.46604351970253877,0.8802013911801112,0.47460036974764036,0.87555823130209087,0.48311259929663841,0.87083275407849214,0.49157940805537054,0.86602540378443871,0.49999999999999994,0.8611366323925137,0.50837358345185557,0.85616689953026648,0.51669937115186282,0.85111667243699973,0.52497658033456018,0.84598642591984108,0.53320443280169116,0.84077664230910321,0.54138215499536957,0.83548781141293649,0.54950897807080601,0.83012043047127881,0.55758413796859274,0.82467500410910677,0.56560687548653854,0.8191520442889918,0.57357643635104605,0.81355207026296761,0.5814920712880266,0.80787560852371121,0.58935303609334477,0.80212319275504385,0.59715859170278618,0.79629536378175581,0.60490800426154168,0.79039266951875931,0.61260054519320284,0.78441566491957571,0.62023549126826005,0.77836491192416002,0.62781212467209857,0.77224097940606917,0.63532973307248508,0.76604444311897801,0.64278760968653925,0.75977588564254939,0.65018505334718335,0.75343589632766073,0.65752136856906362,0.74702507124099604,0.66479586561393778,0.74054401310900464,0.67200786055552242,0.73399333126123534,0.6791566753437932,0.72737364157304873,0.6862416378687336,0.72068556640771464,0.69326208202352424,0.7139297345578991,0.70021734776716849,0.70710678118654757,0.70710678118654746,0.70021734776716849,0.71392973455789899,0.69326208202352424,0.72068556640771453,0.6862416378687336,0.72737364157304873,0.6791566753437932,0.73399333126123523,0.67200786055552242,0.74054401310900453,0.66479586561393789,0.74702507124099593,0.65752136856906362,0.75343589632766073,0.65018505334718346,0.75977588564254939,0.64278760968653936,0.76604444311897801,0.63532973307248508,0.77224097940606906,0.62781212467209857,0.77836491192416002,0.62023549126826005,0.78441566491957571,0.61260054519320284,0.79039266951875931,0.60490800426154168,0.79629536378175569,0.59715859170278629,0.80212319275504373,0.589353036093345,0.8078756085237111,0.58149207128802671,0.8135520702629675,0.57357643635104616,0.81915204428899169,0.56560687548653865,0.82467500410910666,0.55758413796859296,0.8301204304712787,0.54950897807080612,0.83548781141293638,0.54138215499536968,0.84077664230910309,0.53320443280169139,0.84598642591984097,0.52497658033456018,0.85111667243699973,0.51669937115186304,0.85616689953026648,0.50837358345185557,0.8611366323925137,0.50000000000000011,0.8660254037844386,0.49157940805537059,0.87083275407849203,0.48311259929663858,0.87555823130209076,0.47460036974764042,0.88020139118011109,0.46604351970253893,0.8847617971766577,0.45744285365058079,0.88923902053610615,0.44879918020046228,0.89363264032341216,0.44011331200430487,0.89794224346368812,0.43138606568125354,0.90216742478103762,0.42261826174069944,0.90630778703664994,0.41381072450513923,0.91036294096614667,0.40496428203267359,0.91433250531617938,0.3960797660391569,0.918216106880274,0.38715801182000059,0.92201338053391846,0.37819985817164259,0.92572396926889033,0.36920614731268442,0.92934752422682243,0.3601777248047105,0.93288370473200044,0.35111543947278878,0.93633217832339311,0.34202014332566882,0.93969262078590832,0.33289269147567657,0.94296471618087596,0.32373394205832112,0.94614815687575038,0.31454475615161387,0.94924264357303378,0.3053259976951132,0.95224788533841531,0.29607853340870011,0.95516359962812303,0.28680323271109032,0.9579895123154889,0.27750096763809595,0.96072535771672041,0.26817261276063747,0.96337087861588033,0.25881904510252096,0.9659258262890682,0.24944114405798137,0.9683899605278059,0.2400397913090061,0.97076304966161997,0.23061587074244025,0.97304487057982381,0.22117026836688797,0.97523520875249303,0.21170387222941084,0.97733385825063546,0.20221757233203813,0.97934062176555148,0.19271226054808976,0.98125531062738469,0.18318883053832682,0.98307774482285992,0.17364817766693041,0.98480775301220802,0.16409119891732415,0.98644517254527386,0.15451879280784056,0.98798984947680901,0.14493185930724692,0.98944163858094447,0.13533129975013117,0.99080040336484532,0.12571801675216288,0.99206601608154232,0.1160929141252303,0.99323835774194302,0.10645689679246843,0.99431731812601842,0.096810870703179161,0.99530279579316583,0.08715574274765836,0.99619469809174555,0.077492420671931017,0.99699294116779202,0.067821812992409525,0.99769744997289767,0.058144828910475899,0.99830815827126818,0.048462378227003132,0.99882500864595036,0.038775371256816779,0.99924795250423004,0.029084718743111582,0.9995769500822006,0.019391331771824435,0.99981197044850145,0.0096961216859785693,0.99995299150722616,0,0,0.99981197044850145,0.01939133177182437,0.99924795250423004,0.03877537125681671,0.99830815827126818,0.058144828910475822,0.99699294116779202,0.077492420671930934,0.99530279579316583,0.096810870703179092,0.99323835774194302,0.11609291412523022,0.99080040336484532,0.13533129975013108,0.98798984947680901,0.15451879280784048,0.98480775301220802,0.17364817766693033,0.98125531062738469,0.19271226054808968,0.97733385825063557,0.21170387222941073,0.97304487057982381,0.23061587074244014,0.9683899605278059,0.24944114405798126,0.96337087861588033,0.26817261276063731,0.9579895123154889,0.28680323271109021,0.95224788533841531,0.30532599769511309,0.94614815687575049,0.32373394205832101,0.93969262078590843,0.34202014332566871,0.93288370473200055,0.36017772480471039,0.92572396926889045,0.37819985817164248,0.918216106880274,0.39607976603915679,0.91036294096614667,0.41381072450513912,0.90216742478103773,0.43138606568125343,0.89363264032341228,0.44879918020046211,0.88476179717665782,0.46604351970253877,0.87555823130209087,0.48311259929663841,0.86602540378443871,0.49999999999999994,0.85616689953026648,0.51669937115186282,0.84598642591984108,0.53320443280169116,0.83548781141293649,0.54950897807080601,0.82467500410910677,0.56560687548653854,0.81355207026296761,0.5814920712880266,0.80212319275504385,0.59715859170278618,0.79039266951875931,0.61260054519320284,0.77836491192416002,0.62781212467209857,0.76604444311897801,0.64278760968653925,0.75343589632766073,0.65752136856906362,0.74054401310900464,0.67200786055552242,0.72737364157304873,0.6862416378687336,0.7139297345578991,0.70021734776716849,0,0.99924795250423004,0.03877537125681671,0.99699294116779202,0.077492420671930934,0.99323835774194302,0.11609291412523022,0.98798984947680901,0.15451879280784048,0.98125531062738469,0.19271226054808968,0.97304487057982381,0.23061587074244014,0.96337087861588033,0.26817261276063731,0.95224788533841531,0.30532599769511309,0.93969262078590843,0.34202014332566871,0.92572396926889045,0.37819985817164248,0.91036294096614667,0.41381072450513912,0.89363264032341228,0.44879918020046211,0.87555823130209087,0.48311259929663841,0.85616689953026648,0.51669937115186282,0.83548781141293649,0.54950897807080601,0.81355207026296761,0.5814920712880266,0.79039266951875931,0.61260054519320284,0.76604444311897801,0.64278760968653925,0.74054401310900464,0.67200786055552242,0.7139297345578991,0.70021734776716849,0.6862416378687336,0.72737364157304873,0.65752136856906362,0.75343589632766073,0.62781212467209857,0.77836491192416002,0.59715859170278629,0.80212319275504373,0.56560687548653865,0.82467500410910666,0.53320443280169139,0.84598642591984097,0.50000000000000011,0.8660254037844386,0.46604351970253893,0.8847617971766577,0.43138606568125354,0.90216742478103762,0.3960797660391569,0.918216106880274,0.3601777248047105,0.93288370473200044,0.32373394205832112,0.94614815687575038,0.28680323271109032,0.9579895123154889,0.24944114405798137,0.9683899605278059,0.21170387222941084,0.97733385825063546,0.17364817766693041,0.98480775301220802,0.13533129975013117,0.99080040336484532,0.096810870703179161,0.99530279579316583,0.058144828910475899,0.99830815827126818,0.019391331771824435,0.99981197044850145,0,0.99830815827126818,0.058144828910475822,0.99323835774194302,0.11609291412523022,0.98480775301220802,0.1736481776669303,0.97304487057982381,0.23061587074244014,0.9579895123154889,0.28680323271109021,0.93969262078590843,0.34202014332566866,0.918216106880274,0.39607976603915673,0.89363264032341228,0.44879918020046211,0.86602540378443871,0.49999999999999994,0.83548781141293649,0.54950897807080601,0.80212319275504385,0.59715859170278618,0.76604444311897812,0.64278760968653925,0.72737364157304885,0.68624163786873349,0.68624163786873371,0.72737364157304862,0.64278760968653947,0.76604444311897801,0.59715859170278629,0.80212319275504373,0.54950897807080612,0.83548781141293638,0.50000000000000011,0.8660254037844386,0.44879918020046228,0.89363264032341216,0.3960797660391569,0.918216106880274,0.34202014332566882,0.93969262078590832,0.28680323271109032,0.9579895123154889,0.23061587074244025,0.97304487057982381,0.17364817766693064,0.98480775301220802,0.11609291412523053,0.99323835774194291,0.058144828910476121,0.99830815827126818,2.8327694488239898e-16,1,-0.058144828910475552,0.99830815827126818,-0.11609291412522996,0.99323835774194302,-0.17364817766693008,0.98480775301220813,-0.23061587074243992,0.97304487057982392,-0.28680323271108998,0.9579895123154889,-0.34202014332566849,0.93969262078590843,-0.39607976603915662,0.91821610688027411,-0.44879918020046178,0.8936326403234125,-0.49999999999999983,0.86602540378443871,-0.54950897807080568,0.8354878114129366,-0.59715859170278596,0.80212319275504396,-0.64278760968653903,0.76604444311897835,-0.68624163786873349,0.72737364157304885,0,0.99699294116779202,0.077492420671930934,0.98798984947680901,0.15451879280784048,0.97304487057982381,0.23061587074244014,0.95224788533841531,0.30532599769511309,0.92572396926889045,0.37819985817164248,0.89363264032341228,0.44879918020046211,0.85616689953026648,0.51669937115186282,0.81355207026296761,0.5814920712880266,0.76604444311897801,0.64278760968653925,0.7139297345578991,0.70021734776716849,0.65752136856906362,0.75343589632766073,0.59715859170278629,0.80212319275504373,0.53320443280169139,0.84598642591984097,0,0.98798984947680901,0.15451879280784048,0.95224788533841531,0.30532599769511309,0.89363264032341228,0.44879918020046211,0.81355207026296761,0.5814920712880266,0.7139297345578991,0.70021734776716849,0.59715859170278629,0.80212319275504373,0.46604351970253893,0.8847617971766577,0.32373394205832112,0.94614815687575038,0.17364817766693041,0.98480775301220802,0.019391331771824435,0.99981197044850145,-0.13533129975013106,0.99080040336484532,-0.28680323271108998,0.9579895123154889,-0.43138606568125326,0.90216742478103773,0,0.97304487057982381,0.23061587074244014,0.89363264032341228,0.44879918020046211,0.76604444311897812,0.64278760968653925,0.59715859170278629,0.80212319275504373,0,0.89363264032341228,0.44879918020046211,0.59715859170278629,0.80212319275504373,0.17364817766693064,0.98480775301220802,-0.28680323271108998,0.9579895123154889,0,0.76604444311897801,0.64278760968653925,0,0.17364817766693041,0.98480775301220802,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.9999281110792807,0.011990524318042962,0.99971245465315683,0.023979324664381761,0.99935306172824367,0.035964677315181159,0.99884998397728031,0.047944859042308149,0.9982032937316998,0.059918147361093972,0.99741308397122974,0.071882820777989201,0.99647946831052381,0.083837159038076495,0.99540258098282641,0.095779443372404918,0.9941825768206729,0.10770795674511109,0.99281963123362849,0.11962098410029072,0.9913139401830674,0.13151681260858564,0.98966572015399901,0.14339373191345081,0.98787520812394114,0.15525003437706569,0.98594266152884857,0.16708401532585457,0.98386835822609919,0.17889397329558099,0.9816525964545445,0.19067821027598067,0.97929569479162915,0.20243503195489748,0.97679799210758655,0.21416274796188825,0.97415984751671725,0.22585967211126057,0.97138164032575602,0.23752412264450873,0.9684637699793357,0.24915442247211347,0.96540665600255637,0.26074889941467033,0.96221073794066658,0.27230588644331183,0.95887647529586684,0.28382372191938954,0.95540434746124281,0.29530074983338067,0.9517948536518398,0.30673532004298554,0.9480485128328866,0.3181257885103817,0.94416586364517918,0.32947051753859996,0.94014746432763696,0.34076787600698882,0.93599389263703991,0.35201623960573386,0.93170574576495979,0.36321399106939706,0.9272836402518978,0.37435952040944409,0.92272821189863918,0.38545122514572466,0.91804011567483923,0.39648751053687392,0.91322002562485372,0.40746678980960094,0.90826863477082542,0.41838748438683115,0.90318665501304352,0.42924802411467144,0.89797481702758775,0.44004684748816275,0.8926338701612736,0.45078240187579038,0.88716458232391271,0.46145314374271784,0.88156773987790471,0.47205753887271301,0.87584414752517514,0.48259406258873427,0.86999462819147799,0.49306119997214548,0.86402002290807622,0.50345744608052756,0.85792119069082129,0.51378130616405604,0.85169900841664437,0.52403129588041286,0.84535437069748198,0.53420594150820178,0.83888818975165003,0.54430378015883696,0.83230139527268743,0.55432335998687421,0.82559493429568631,0.56426324039875353,0.81876977106112947,0.57412199225992522,0.81182688687625448,0.58389819810032739,0.80476727997396258,0.59359045231818686,0.79759196536929577,0.60319736138211355,0.79030197471349939,0.61271754403145939,0.78289835614569425,0.62214963147491276,0.77538217414217658,0.63149226758730093,0.76775450936337097,0.64074410910457025,0.76001645849845445,0.64990382581691819,0.75216913410767716,0.65897010076004747,0.74421366446240123,0.66794163040451704,0.73615119338287993,0.67681712484316014,0.72798288007380163,0.68559530797654455,0.71970989895762205,0.69427491769644789,0.71133343950570849,0.70285470606731981,0,0.99971245465315683,0.023979324664381761,0.99884998397728031,0.047944859042308149,0.99741308397122974,0.071882820777989201,0.99540258098282641,0.095779443372404918,0.99281963123362849,0.11962098410029072,0.98966572015399901,0.14339373191345081,0.98594266152884857,0.16708401532585457,0.9816525964545445,0.19067821027598067,0.97679799210758655,0.21416274796188825,0.97138164032575602,0.23752412264450873,0.96540665600255637,0.26074889941467033,0.95887647529586684,0.28382372191938954,0.9517948536518398,0.30673532004298554,0.94416586364517918,0.32947051753859996,0.93599389263703991,0.35201623960573386,0.9272836402518978,0.37435952040944409,0.91804011567483923,0.39648751053687392,0.90826863477082542,0.41838748438683115,0.89797481702758775,0.44004684748816275,0.88716458232391271,0.46145314374271784,0.87584414752517514,0.48259406258873427,0.86402002290807622,0.50345744608052756,0.85169900841664437,0.52403129588041286,0.83888818975165003,0.54430378015883696,0.82559493429568631,0.56426324039875353,0.81182688687625448,0.58389819810032739,0.79759196536929577,0.60319736138211355,0.78289835614569425,0.62214963147491276,0.76775450936337097,0.64074410910457025,0.75216913410767716,0.65897010076004747,0.73615119338287993,0.67681712484316014,0.71970989895762205,0.69427491769644789,0.70285470606731981,0.71133343950570849,0.68559530797654455,0.72798288007380163,0.66794163040451704,0.74421366446240123,0.64990382581691819,0.76001645849845434,0.63149226758730093,0.77538217414217658,0.61271754403145928,0.7903019747134995,0.59359045231818686,0.80476727997396258,0.57412199225992511,0.81876977106112958,0.5543233599868741,0.83230139527268754,0.53420594150820166,0.84535437069748198,0.51378130616405593,0.85792119069082129,0.49306119997214531,0.86999462819147799,0.47205753887271307,0.88156773987790471,0.45078240187579044,0.8926338701612736,0.4292480241146715,0.90318665501304352,0.40746678980960094,0.91322002562485372,0.38545122514572466,0.92272821189863918,0.36321399106939706,0.93170574576495979,0.34076787600698882,0.94014746432763696,0.3181257885103817,0.9480485128328866,0.29530074983338062,0.95540434746124281,0.27230588644331177,0.96221073794066658,0.24915442247211336,0.9684637699793357,0.22585967211126048,0.97415984751671736,0.20243503195489734,0.97929569479162915,0.1788939732955811,0.98386835822609919,0.15525003437706575,0.98787520812394103,0.13151681260858569,0.9913139401830674,0.10770795674511113,0.9941825768206729,0.083837159038076495,0.99647946831052381,0.059918147361093958,0.9982032937316998,0.035964677315181139,0.99935306172824367,0.011990524318042921,0.9999281110792807,0,0.99935306172824367,0.035964677315181159,0.99741308397122974,0.071882820777989201,0.9941825768206729,0.10770795674511109,0.98966572015399901,0.14339373191345081,0.98386835822609919,0.17889397329558099,0.97679799210758655,0.21416274796188825,0.9684637699793357,0.24915442247211342,0.95887647529586684,0.28382372191938954,0.9480485128328866,0.3181257885103817,0.93599389263703991,0.35201623960573386,0.92272821189863918,0.38545122514572461,0.90826863477082542,0.41838748438683115,0.8926338701612736,0.45078240187579038,0.87584414752517525,0.48259406258873416,0.85792119069082129,0.51378130616405604,0.83888818975165003,0.54430378015883696,0.81876977106112947,0.57412199225992522,0.79759196536929577,0.60319736138211355,0.77538217414217669,0.63149226758730093,0.75216913410767716,0.65897010076004747,0.72798288007380163,0.68559530797654455,0.70285470606731981,0.71133343950570849,0.67681712484316014,0.73615119338287982,0.64990382581691819,0.76001645849845434,0.62214963147491276,0.78289835614569425,0.59359045231818686,0.80476727997396258,0.56426324039875353,0.8255949342956862,0.53420594150820189,0.84535437069748187,0.50345744608052756,0.86402002290807633,0.47205753887271307,0.88156773987790471,0.4400468474881627,0.89797481702758775,0.40746678980960094,0.91322002562485372,0.37435952040944415,0.9272836402518978,0.34076787600698882,0.94014746432763696,0.30673532004298559,0.9517948536518398,0.27230588644331177,0.96221073794066658,0.23752412264450873,0.97138164032575602,0.20243503195489757,0.97929569479162915,0.16708401532585451,0.98594266152884857,0.13151681260858569,0.9913139401830674,0.095779443372405057,0.99540258098282641,0.059918147361093958,0.9982032937316998,0.023979324664381838,0.99971245465315683,-0.011990524318042799,0.9999281110792807,-0.047944859042308129,0.99884998397728031,-0.08383715903807637,0.99647946831052381,-0.11962098410029073,0.99281963123362849,-0.15525003437706564,0.98787520812394114,-0.1906782102759805,0.98165259645454461,-0.22585967211126057,0.97415984751671725,-0.26074889941467022,0.96540665600255637,-0.29530074983338073,0.95540434746124281,-0.32947051753859991,0.94416586364517918,-0.36321399106939695,0.9317057457649599,-0.39648751053687392,0.91804011567483923,-0.42924802411467117,0.90318665501304363,-0.46145314374271773,0.88716458232391282,-0.49306119997214543,0.86999462819147799,-0.52403129588041297,0.85169900841664425,-0.55432335998687399,0.83230139527268754,-0.58389819810032739,0.81182688687625448,-0.61271754403145939,0.79030197471349939,-0.64074410910457014,0.76775450936337108,-0.66794163040451704,0.74421366446240123,-0.69427491769644789,0.71970989895762205,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99983124163332271,0.018370853381597361,0.99932502349206376,0.036735506292772425,0.99848151643331617,0.055087760355865434,0.99730100515482734,0.073421421378035326,0.9957838880989075,0.091730301441903458,0.99393067731794948,0.11000822099407928,0.99174199830160237,0.12824901093086305,0.98921858976565791,0.14644651468042152,0.98636130340272232,0.16459459028073389,0.98317110359475501,0.18268711245260688,0.97964906708757393,0.20071797466705893,0.97579638262743562,0.21868109120637577,0.97161435055981382,0.2365703992181423,0.96710438239051078,0.25437986076155633,0.96226800030925042,0.27210346484533499,0.95710683667591423,0.28973522945652458,0.95162263346959186,0.3072692035795303,0.94581724170063464,0.32469946920468346,0.93969262078590843,0.34202014332566871,0.93325083788745711,0.35922537992513726,0.92649406721480176,0.37630937194783542,0.91942458929110782,0.39326635326058312,0.91204479018347051,0.41009060059844005,0.90435716069757754,0.42677643549640359,0.89636429553702013,0.44331822620598577,0.88806889242753762,0.4597103895960224,0.87947375120648907,0.47594739303707351,0.87058177287786243,0.49202375626877815,0.86139595863313612,0.50793405324953411,0.85191940883832706,0.52367291398787785,0.84215532198756582,0.53923502635494613,0.83210699362355012,0.55461513787740879,0.82177781522524518,0.5698080575102662,0.81117127306320225,0.58480865738891352,0.80029094702288417,0.59961187455988163,0.78914050939639357,0.61421271268966782,0.77772372364301401,0.62860624375108209,0.76604444311897801,0.64278760968653925,0.75410660977689625,0.65675202404773436,0.74191425283528156,0.67049477361114895,0.72947148741862089,0.68401121996884306,0.71678251316845132,0.69729680109399539,0.70385161282591147,0.71034703288066403,0.69068315078624443,0.72315751065724665,0.6772815716257411,0.73572391067313159,0.66365139860162137,0.7480419915580353,0.64979723212535956,0.76010759575353637,0.63572374820996813,0.77191665091632078,0.62143569689176481,0.78346517129266602,0.6069379006271568,0.79474925906369964,0.59223525266498012,0.80576510566097803,0.57733271539494657,0.8165089930519428,0.56223531867275423,0.8269772949948182,0.54694815812242692,0.83716647826252855,0.53147639341645603,0.84707310383522183,0.51582524653432404,0.85669382806099625,0.50000000000000011,0.8660254037844386,0.48400599509899889,0.87506468144259364,0.46784863007560795,0.88380861012799428,0.45153335831088948,0.89225423861839392,0.43506568648207333,0.90039871637285351,0.41845117270396115,0.90823929449384633,0.40169542465296953,0.9157733266550574,0.38480409767444568,0.92299826999456269,0.36778289287389332,0.9299116859730876,0.35063755519275447,0.93651124119705476,0.33337387146939557,0.94279470820614331,0.31599766848595262,0.94875996622509429,0.29851481100169464,0.95440500187950739,0.28093119977356945,0.95972790987538903,0.26325276956459931,0.96472689364222042,0.24548548714079924,0.96940026593933037,0.22763534925729345,0.97374644942536759,0.20970838063431035,0.97776397719067931,0.19171063192373849,0.98145149325241787,0.17364817766693041,0.98480775301220802,0.15552711424444327,0.98783162367621935,0.13735355781840825,0.99052208463750324,0.11913364226822376,0.99287822782046486,0.10087351712026828,0.99489925798735368,0.082579345472332394,0.99658449300666985,0.064257301913470136,0.99793336408339472,0.045913570439971865,0.99894541595096864,0.027554342368162059,0.99962030702495142,0.0091858142447264219,0.99995780951831237,0,0.99932502349206376,0.036735506292772425,0.99730100515482734,0.073421421378035326,0.99393067731794948,0.11000822099407928,0.98921858976565791,0.14644651468042152,0.98317110359475501,0.18268711245260688,0.97579638262743562,0.21868109120637577,0.96710438239051078,0.25437986076155633,0.95710683667591423,0.28973522945652458,0.94581724170063464,0.32469946920468346,0.93325083788745711,0.35922537992513726,0.91942458929110782,0.39326635326058312,0.90435716069757754,0.42677643549640359,0.88806889242753762,0.4597103895960224,0.87058177287786243,0.49202375626877815,0.85191940883832706,0.52367291398787785,0.83210699362355012,0.55461513787740879,0.81117127306320225,0.58480865738891352,0.78914050939639357,0.61421271268966782,0.76604444311897801,0.64278760968653925,0.74191425283528156,0.67049477361114895,0.71678251316845132,0.69729680109399539,0.69068315078624443,0.72315751065724665,0.66365139860162137,0.7480419915580353,0.63572374820996813,0.77191665091632078,0.6069379006271568,0.79474925906369964,0.57733271539494657,0.8165089930519428,0.54694815812242692,0.83716647826252855,0.51582524653432404,0.85669382806099625,0,0.99730100515482734,0.073421421378035326,0.98921858976565791,0.14644651468042152,0.97579638262743562,0.21868109120637577,0.95710683667591423,0.28973522945652458,0.93325083788745711,0.35922537992513726,0.90435716069757754,0.42677643549640359,0.87058177287786243,0.49202375626877815,0.83210699362355012,0.55461513787740879,0.78914050939639357,0.61421271268966782,0.74191425283528156,0.67049477361114895,0.69068315078624443,0.72315751065724665,0.63572374820996813,0.77191665091632078,0.57733271539494657,0.8165089930519428,0.51582524653432404,0.85669382806099625,0.45153335831088948,0.89225423861839392,0.38480409767444568,0.92299826999456269,0.31599766848595262,0.94875996622509429,0.24548548714079924,0.96940026593933037,0.17364817766693041,0.98480775301220802,0.10087351712026828,0.99489925798735368,0.027554342368162059,0.99962030702495142,-0.045913570439971747,0.99894541595096864,-0.11913364226822364,0.99287822782046486,-0.19171063192373816,0.98145149325241798,-0.26325276956459898,0.96472689364222042,-0.33337387146939523,0.94279470820614342,-0.40169542465296926,0.91577332665505751,-0.46784863007560762,0.88380861012799439,0,0.99393067731794948,0.11000822099407928,0.97579638262743562,0.21868109120637577,0.94581724170063475,0.3246994692046834,0.90435716069757754,0.42677643549640359,0.85191940883832706,0.52367291398787785,0.78914050939639369,0.61421271268966771,0.71678251316845132,0.69729680109399528,0.63572374820996813,0.77191665091632078,0.54694815812242692,0.83716647826252855,0,0.97579638262743562,0.21868109120637577,0.90435716069757754,0.42677643549640359,0.78914050939639369,0.61421271268966771,0.63572374820996813,0.77191665091632078,0.45153335831088948,0.89225423861839392,0.24548548714079946,0.96940026593933037,0.027554342368162281,0.99962030702495142,-0.19171063192373816,0.98145149325241798,-0.40169542465296926,0.91577332665505751,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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/rffti/test/fixtures/c/fftpack/medium.json b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/medium.json index 215106655dfe..9426aa08c1c5 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/medium.json +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/medium.json @@ -1 +1 @@ -{"lengths":[58,74,109,19,21,75,91,16,58,23],"offsets":[0,57,130,238,256,276,350,440,455,512],"twiddles":[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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99639748854252652,0.084805924475509192,0.98561591034770846,0.16900082032184907,0.96773294693349887,0.25197806138512518,0.94287744546108421,0.33313979474205757,0.91122849038813569,0.4119012482439926,0.87301411316118815,0.48769494381363454,0.82850964924384218,0.55997478613759533,0.77803575431843952,0.62821999729564226,0.72195609395452454,0.69193886897754608,0.66067472339008149,0.75067230525272433,0.59463317630428669,0.80399713036694054,0.52430728355723166,0.85152913773331129,0.45020374481767328,0.89292585814956849,0.37285647778030861,0.92788902729650935,0.29282277127655043,0.95616673473925096,0.21067926999572642,0.97755523894768614,0.12701781974687887,0.99190043525887683,0.042441203196148462,0.99909896620468142,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95557280578614068,0.29475517441090421,0.82623877431599491,0.56332005806362206,0.62348980185873359,0.7818314824680298,0,0.82623877431599491,0.56332005806362206,0.36534102436639498,0.93087374864420425,-0.22252093395631434,0.97492791218182362,0,0,0,0,0,0,0,0.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.99761727230124764,0.068991144404324925,0.99048044398756319,0.13765351458716821,0.97862352529595531,0.20565990308593657,0.96210301984360058,0.27268622848949375,0.94099765536237645,0.33841307983367042,0.91540800852536641,0.40252723873996749,0,0.99048044398756319,0.13765351458716821,0.96210301984360058,0.27268622848949375,0.91540800852536641,0.40252723873996749,0.85128444158435124,0.52470448779900802,0.7709531747949796,0.63689182933488919,0.67594364414475439,0.73695331598433667,0,0.97862352529595531,0.20565990308593657,0.91540800852536641,0.40252723873996749,0.81305609947853252,0.58218534772077069,0.67594364414475439,0.73695331598433667,0.50993260439013599,0.86021435641350064,0.32212044179849075,0.94669869598280587,0,0.96210301984360058,0.27268622848949375,0.85128444158435124,0.52470448779900802,0.67594364414475439,0.73695331598433667,0.44937040096716135,0.89334553378556314,0.18873759545291671,0.98202755565343036,-0.086200379880619196,0.99627781994202647,0,0.94099765536237645,0.33841307983367042,0.7709531747949796,0.63689182933488919,0.50993260439013577,0.86021435641350075,0.18873759545291671,0.98202755565343036,-0.15472933479028111,0.98795689832874645,-0.47993747795978653,0.87730269419944185,0,0.91540800852536641,0.40252723873996749,0.67594364414475439,0.73695331598433667,0.32212044179849075,0.94669869598280587,-0.086200379880619196,0.99627781994202647,-0.47993747795978614,0.87730269419944207,-0.79247684195109025,0.60990200440007303,0,0,0,0,0,0,0,0,0,0,0,0,0,0.92387953251128674,0.38268343236508978,0,0,0.70710678118654757,0.70710678118654746,0,0,0.38268343236508984,0.92387953251128674,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]} +{"lengths":[34,49,74,77,101,16,81,113,56,96],"offsets":[0,33,81,154,230,330,345,425,537,592],"twiddles":[0.98297309968390179,0.18374951781657034,0.93247222940435581,0.36124166618715292,0.85021713572961422,0.52643216287735572,0.73900891722065909,0.67369564364655721,0.60263463637925641,0.79801722728023949,0.44573835577653831,0.89516329135506234,0.27366299007208278,0.96182564317281904,0.092268359463302016,0.99573417629503447,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99179001382324616,0.127877161684506,0.96729486303902945,0.25365458390950735,0.92691675734602175,0.37526700487937409,0,0.96729486303902945,0.25365458390950735,0.87131870412338941,0.49071755200393785,0.71834935009772771,0.69568255060348638,0,0.92691675734602175,0.37526700487937409,0.71834935009772771,0.69568255060348638,0.404783343122394,0.91441262301581239,0,0.87131870412338941,0.49071755200393785,0.51839256831052516,0.85514276300534608,0.032051577571655332,0.99948621620068789,0,0.80141362186795673,0.59811053049121587,0.28452758663103267,0.95866785303666058,-0.34536505442130727,0.93846842204976055,0,0.71834935009772771,0.69568255060348638,0.032051577571655332,0.99948621620068789,-0.67230089026131656,0.74027799707531572,0,0,0,0,0,0,0,0.99639748854252652,0.084805924475509192,0.98561591034770846,0.16900082032184907,0.96773294693349887,0.25197806138512518,0.94287744546108421,0.33313979474205757,0.91122849038813569,0.4119012482439926,0.87301411316118815,0.48769494381363454,0.82850964924384218,0.55997478613759533,0.77803575431843952,0.62821999729564226,0.72195609395452454,0.69193886897754608,0.66067472339008149,0.75067230525272433,0.59463317630428669,0.80399713036694054,0.52430728355723166,0.85152913773331129,0.45020374481767328,0.89292585814956849,0.37285647778030861,0.92788902729650935,0.29282277127655043,0.95616673473925096,0.21067926999572642,0.97755523894768614,0.12701781974687887,0.99190043525887683,0.042441203196148462,0.99909896620468142,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.99667258249419322,0.08150928354706316,0.98671247339128887,0.16247613626020579,0.97018595557406451,0.24236173709321232,0.94720301029191012,0.32063446055273548,0.91791658525375941,0.39677341457824244,0,0.98671247339128887,0.16247613626020579,0.94720301029191012,0.32063446055273548,0.88252157678632126,0.4702719069927368,0.79438708541211267,0.60741185247774743,0.68514171496784426,0.72840979565826902,0,0.97018595557406451,0.24236173709321232,0.88252157678632126,0.4702719069927368,0.74223412300426994,0.67014066183755949,0.55768866698682951,0.83005020975508048,0.33988930158261688,0.94046545001381143,0,0.94720301029191012,0.32063446055273548,0.79438708541211267,0.60741185247774743,0.55768866698682951,0.83005020975508048,0.26210168293910224,0.96504026226913986,-0.061161660821842483,0.99812787319336693,0,0.91791658525375941,0.39677341457824244,0.68514171496784426,0.72840979565826902,0.33988930158261688,0.94046545001381143,-0.061161660821842483,0.99812787319336693,-0.45217190728268547,0.89193080800269398,0,0.88252157678632126,0.4702719069927368,0.55768866698682951,0.83005020975508048,0.10182298670383554,0.99480253285700404,-0.37796670142890643,0.92581919002089819,-0.76895052533936181,0.63930828993555178,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.92387953251128674,0.38268343236508978,0,0,0.70710678118654757,0.70710678118654746,0,0,0.38268343236508984,0.92387953251128674,0,0,0,0,0,0.99699294116779202,0.077492420671930934,0.98798984947680901,0.15451879280784048,0.97304487057982381,0.23061587074244014,0.95224788533841531,0.30532599769511309,0.92572396926889045,0.37819985817164248,0.89363264032341228,0.44879918020046211,0.85616689953026648,0.51669937115186282,0.81355207026296761,0.5814920712880266,0.76604444311897801,0.64278760968653925,0.7139297345578991,0.70021734776716849,0.65752136856906362,0.75343589632766073,0.59715859170278629,0.80212319275504373,0.53320443280169139,0.84598642591984097,0,0.98798984947680901,0.15451879280784048,0.95224788533841531,0.30532599769511309,0.89363264032341228,0.44879918020046211,0.81355207026296761,0.5814920712880266,0.7139297345578991,0.70021734776716849,0.59715859170278629,0.80212319275504373,0.46604351970253893,0.8847617971766577,0.32373394205832112,0.94614815687575038,0.17364817766693041,0.98480775301220802,0.019391331771824435,0.99981197044850145,-0.13533129975013106,0.99080040336484532,-0.28680323271108998,0.9579895123154889,-0.43138606568125326,0.90216742478103773,0,0.97304487057982381,0.23061587074244014,0.89363264032341228,0.44879918020046211,0.76604444311897812,0.64278760968653925,0.59715859170278629,0.80212319275504373,0,0.89363264032341228,0.44879918020046211,0.59715859170278629,0.80212319275504373,0.17364817766693064,0.98480775301220802,-0.28680323271108998,0.9579895123154889,0,0.76604444311897801,0.64278760968653925,0,0.17364817766693041,0.98480775301220802,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.9937122098932426,0.11196447610330786,0.97492791218182362,0.22252093395631439,0.94388333030836757,0.33027906195516704,0.90096886790241915,0.43388373911755812,0.84672419922828424,0.53203207651533657,0.7818314824680298,0.62348980185873348,0.70710678118654757,0.70710678118654746,0.62348980185873359,0.7818314824680298,0.53203207651533657,0.84672419922828412,0.43388373911755818,0.90096886790241915,0.33027906195516715,0.94388333030836757,0.22252093395631445,0.97492791218182362,0.11196447610330791,0.9937122098932426,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.99785892323860348,0.065403129230143062,0.99144486137381038,0.13052619222005157,0.98078528040323043,0.19509032201612825,0.96592582628906831,0.25881904510252074,0.94693012949510569,0.32143946530316153,0.92387953251128674,0.38268343236508978,0.89687274153268837,0.44228869021900125,0.86602540378443871,0.49999999999999994,0.83146961230254524,0.55557023301960218,0.79335334029123528,0.60876142900872054,0.7518398074789775,0.65934581510006884,0.70710678118654757,0.70710678118654746,0.65934581510006895,0.75183980747897738,0.60876142900872066,0.79335334029123517,0.5555702330196024,0.83146961230254512,0.50000000000000011,0.8660254037844386,0.44228869021900147,0.89687274153268826,0.38268343236508984,0.92387953251128674,0.3214394653031617,0.94693012949510558,0.25881904510252096,0.9659258262890682,0.19509032201612833,0.98078528040323043,0.13052619222005171,0.99144486137381038,0.06540312923014327,0.99785892323860348,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]} diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/runner.c b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/runner.c index 82f5947a89b0..6f783f0bf820 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/runner.c +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/runner.c @@ -27,6 +27,7 @@ #include #include +#include /** * Define prototypes for external functions. @@ -246,6 +247,9 @@ int main( void ) { 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; diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/small.json b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/small.json index 519a16fcee1e..fbf7013f13bc 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/small.json +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rffti/test/fixtures/c/fftpack/small.json @@ -1 +1 @@ -{"lengths":[2,3,12,8,9,5,2,11,11,15],"offsets":[0,1,3,14,21,29,33,34,44,54],"twiddles":[0,0,0,0.86602540378443871,0.49999999999999994,0,0.50000000000000011,0.8660254037844386,0,6.123233995736766e-17,1,0,0,0,0.70710678118654757,0.70710678118654746,0,0,0,0,0,0.76604444311897801,0.64278760968653925,0,0.17364817766693041,0.98480775301220802,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.91354545764260087,0.40673664307580015,0.66913060635885824,0.74314482547739424,0,0.66913060635885824,0.74314482547739424,-0.10452846326765333,0.9945218953682734,0,0,0,0,0]} +{"lengths":[13,13,12,9,14,4,5,5,15,11],"offsets":[0,12,24,35,43,56,59,63,67,81],"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.86602540378443871,0.49999999999999994,0,0.50000000000000011,0.8660254037844386,0,6.123233995736766e-17,1,0,0,0,0.76604444311897801,0.64278760968653925,0,0.17364817766693041,0.98480775301220802,0,0,0,0.90096886790241915,0.43388373911755812,0.62348980185873359,0.7818314824680298,0.22252093395631445,0.97492791218182362,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.91354545764260087,0.40673664307580015,0.66913060635885824,0.74314482547739424,0,0.66913060635885824,0.74314482547739424,-0.10452846326765333,0.9945218953682734,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}