diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/LICENSE b/lib/node_modules/@stdlib/math/base/special/atan2f/LICENSE new file mode 100644 index 000000000000..a805c2f4a606 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/LICENSE @@ -0,0 +1,213 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + +DEPENDENCIES & ATTRIBUTION + +The library links against the following external libraries or contains +implementations from the following external libraries, which have their own +licenses: + +* Go + +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/README.md b/lib/node_modules/@stdlib/math/base/special/atan2f/README.md new file mode 100755 index 000000000000..7285ee42a6f8 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/README.md @@ -0,0 +1,200 @@ + + +# atan2f + +> Compute the angle in the plane (in radians) between the positive x-axis and the ray from `(0,0)` to the point `(x,y)` as a single-precision floating-point number. + +
+ +## Usage + +```javascript +var atan2f = require( '@stdlib/math/base/special/atan2f' ); +``` + +#### atan2f( y, x ) + +Computes the angle in the plane (in radians) between the positive x-axis and the ray from `(0,0)` to the point `(x,y)` as a single-precision floating-point number. + +```javascript +var v = atan2f( 2.0, 2.0 ); // => atanf( 1.0 ) +// returns ~0.785 + +v = atan2f( 6.0, 2.0 ); // => atanf( 3.0 ) +// returns ~1.249 + +v = atan2f( -1.0, -1.0 ); // => atanf( 1.0 ) - π +// returns ~-2.356 + +v = atan2f( 3.0, 0.0 ); // => π/2 +// returns ~1.571 + +v = atan2f( -2.0, 0.0 ); // => -π/2 +// returns ~-1.571 + +v = atan2f( 0.0, 0.0 ); +// returns 0.0 + +v = atan2f( 3.0, NaN ); +// returns NaN +``` + +
+ + + +
+ +## Examples + + + +```javascript +var uniform = require( '@stdlib/random/array/uniform' ); +var logEachMap = require( '@stdlib/console/log-each-map' ); +var atan2f = require( '@stdlib/math/base/special/atan2f' ); + +var opts = { + 'dtype': 'float32' +}; +var x = uniform( 100, 0.0, 100.0, opts ); +var y = uniform( 100, 0.0, 100.0, opts ); + +logEachMap( 'atan2f(%0.4f,%0.4f) = %0.4f', y, x, atan2f ); +``` + +
+ + + + + +* * * + +
+ +## C APIs + + + +
+ +
+ + + + + +
+ +### Usage + +```c +#include "stdlib/math/base/special/atan2f.h" +``` + +#### stdlib_base_atan2f( y, x ) + +Computes the angle in the plane (in radians) between the positive x-axis and the ray from `(0,0)` to the point `(x,y)` as a single-precision floating-point number. + +```c +float out = stdlib_base_atan2f( 2.0f, 2.0f ); +// returns ~0.785f + +out = stdlib_base_atan2f( 6.0f, 2.0f ); +// returns ~1.249f +``` + +The function accepts the following arguments: + +- **y**: `[in] float` `y` coordinate. +- **x**: `[in] float` `x` coordinate. + +```c +float stdlib_base_atan2f( const float y, const float x ); +``` + +
+ + + + + +
+ +
+ + + + + +
+ +### Examples + +```c +#include "stdlib/math/base/special/atan2f.h" +#include +#include + +int main( void ) { + float y; + float x; + float v; + int i; + + for ( i = 0; i < 100; i++ ) { + y = ( ( (float)rand() / (float)RAND_MAX ) * 100.0f ); + x = ( ( (float)rand() / (float)RAND_MAX ) * 100.0f ); + v = stdlib_base_atan2f( y, x ); + printf( "atan2f(%f, %f) = %f\n", y, x, v ); + } + return 0; +} +``` + +
+ + + +
+ + + + + + + + + + + + + + diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/benchmark/benchmark.js b/lib/node_modules/@stdlib/math/base/special/atan2f/benchmark/benchmark.js new file mode 100644 index 000000000000..a72102afc681 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/benchmark/benchmark.js @@ -0,0 +1,58 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 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 uniform = require( '@stdlib/random/array/uniform' ); +var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var pkg = require( './../package.json' ).name; +var atan2f = require( './../lib' ); + + +// MAIN // + +bench( pkg, function benchmark( b ) { + var x; + var y; + var z; + var i; + + x = uniform( 100, 0.0, 100.0, { + 'dtype': 'float32' + }); + y = uniform( 100, 0.0, 100.0, { + 'dtype': 'float32' + }); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + z = atan2f( y[ i%y.length ], x[ i%x.length ] ); + if ( isnanf( z ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnanf( z ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/math/base/special/atan2f/benchmark/benchmark.native.js new file mode 100755 index 000000000000..7d2a8cb06ee3 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/benchmark/benchmark.native.js @@ -0,0 +1,67 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 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 resolve = require( 'path' ).resolve; +var bench = require( '@stdlib/bench' ); +var uniform = require( '@stdlib/random/array/uniform' ); +var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var tryRequire = require( '@stdlib/utils/try-require' ); +var pkg = require( './../package.json' ).name; + + +// VARIABLES // + +var atan2f = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( atan2f instanceof Error ) +}; + + +// MAIN // + +bench( pkg+'::native', opts, function benchmark( b ) { + var x; + var y; + var z; + var i; + + x = uniform( 100, 0.0, 100.0, { + 'dtype': 'float32' + }); + y = uniform( 100, 0.0, 100.0, { + 'dtype': 'float32' + }); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + z = atan2f( y[ i%y.length ], x[ i%x.length ] ); + if ( isnanf( z ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnanf( z ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/benchmark/c/Makefile b/lib/node_modules/@stdlib/math/base/special/atan2f/benchmark/c/Makefile new file mode 100644 index 000000000000..635d877081d5 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/benchmark/c/Makefile @@ -0,0 +1,126 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2025 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 := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [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 +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +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], [2][2]). +# +# [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 := benchmark.out + + +# RULES # + +#/ +# Compiles C source files. +# +# @param {string} [C_COMPILER] - C compiler +# @param {string} [CFLAGS] - C compiler flags +# @param {(string|void)} [fPIC] - compiler 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 - compiler flag indicating whether to generate position independent code +#/ +$(c_targets): %.out: %.c + $(QUIET) $(CC) $(CFLAGS) $(fPIC) -o $@ $< -lm + +#/ +# Runs compiled benchmarks. +# +# @example +# make run +#/ +run: $(c_targets) + $(QUIET) ./$< + +.PHONY: run + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/benchmark/c/benchmark.c b/lib/node_modules/@stdlib/math/base/special/atan2f/benchmark/c/benchmark.c new file mode 100644 index 000000000000..c014221e4ba0 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/benchmark/c/benchmark.c @@ -0,0 +1,137 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 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. +*/ + +#include +#include +#include +#include +#include + +#define NAME "atan2f" +#define ITERATIONS 1000000 +#define REPEATS 3 + +/** +* Prints the TAP version. +*/ +static void print_version( void ) { + printf( "TAP version 13\n" ); +} + +/** +* Prints the TAP summary. +* +* @param total total number of tests +* @param passing total number of passing tests +*/ +static void print_summary( int total, int passing ) { + printf( "#\n" ); + printf( "1..%d\n", total ); // TAP plan + printf( "# total %d\n", total ); + printf( "# pass %d\n", passing ); + printf( "#\n" ); + printf( "# ok\n" ); +} + +/** +* Prints benchmarks results. +* +* @param elapsed elapsed time in seconds +*/ +static void print_results( double elapsed ) { + double rate = (double)ITERATIONS / elapsed; + printf( " ---\n" ); + printf( " iterations: %d\n", ITERATIONS ); + printf( " elapsed: %0.9f\n", elapsed ); + printf( " rate: %0.9f\n", rate ); + printf( " ...\n" ); +} + +/** +* Returns a clock time. +* +* @return clock time +*/ +static double tic( void ) { + struct timeval now; + gettimeofday( &now, NULL ); + return (double)now.tv_sec + (double)now.tv_usec/1.0e6; +} + +/** +* Generates a random number on the interval [0,1). +* +* @return random number +*/ +static float rand_float( void ) { + int r = rand(); + return (float)r / ( (float)RAND_MAX + 1.0f ); +} + +/** +* Runs a benchmark. +* +* @return elapsed time in seconds +*/ +static double benchmark( void ) { + double elapsed; + float x[ 100 ]; + float y[ 100 ]; + double t; + float z; + int i; + + for( i = 0; i < 100; i++ ) { + x[ i ] = 100.0f * rand_float(); + y[ i ] = 100.0f * rand_float(); + } + + t = tic(); + for ( i = 0; i < ITERATIONS; i++ ) { + z = atan2f( x[ i%100 ], y[ i%100 ] ); + if ( z != z ) { + printf( "should not return NaN\n" ); + break; + } + } + elapsed = tic() - t; + if ( z != z ) { + printf( "should not return NaN\n" ); + } + return elapsed; +} + +/** +* Main execution sequence. +*/ +int main( void ) { + double elapsed; + int i; + + // Use the current time to seed the random number generator: + srand( time( NULL ) ); + + print_version(); + for ( i = 0; i < REPEATS; i++ ) { + printf( "# c::%s\n", NAME ); + elapsed = benchmark(); + print_results( elapsed ); + printf( "ok %d benchmark finished\n", i+1 ); + } + print_summary( REPEATS, REPEATS ); +} diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/benchmark/c/cephes/Makefile b/lib/node_modules/@stdlib/math/base/special/atan2f/benchmark/c/cephes/Makefile new file mode 100644 index 000000000000..c103e646f7a5 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/benchmark/c/cephes/Makefile @@ -0,0 +1,134 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2025 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 := @ +else + QUIET := +endif + +# Specify the path to Cephes: +CEPHES ?= + +# Specify a list of Cephes source files: +CEPHES_SRC ?= + +# Determine the OS ([1][1], [2][2]). +# +# [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 +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +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], [2][2]). +# +# [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 := benchmark.out + + +# RULES # + +#/ +# Compiles C source files. +# +# @param {string} CEPHES_SRC - list of Cephes source files +# @param {string} [C_COMPILER] - C compiler +# @param {string} [CFLAGS] - C compiler flags +# @param {(string|void)} [fPIC] - compiler 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 - compiler flag indicating whether to generate position independent code +# @param {string} CEPHES_SRC - list of Cephes source files +#/ +$(c_targets): %.out: %.c + $(QUIET) $(CC) $(CFLAGS) $(fPIC) -o $@ $(CEPHES_SRC) $< -lm + +#/ +# Runs compiled benchmarks. +# +# @example +# make run +#/ +run: $(c_targets) + $(QUIET) ./$< + +.PHONY: run + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/benchmark/c/cephes/benchmark.c b/lib/node_modules/@stdlib/math/base/special/atan2f/benchmark/c/cephes/benchmark.c new file mode 100644 index 000000000000..d99dd2e4cf0c --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/benchmark/c/cephes/benchmark.c @@ -0,0 +1,142 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 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. +*/ + +#include +#include +#include +#include +#include + +#define NAME "atan2f" +#define ITERATIONS 1000000 +#define REPEATS 3 + +/** +* Define prototypes for external functions. +*/ +extern float atan2f( float x, float y ); + +/** +* Prints the TAP version. +*/ +static void print_version( void ) { + printf( "TAP version 13\n" ); +} + +/** +* Prints the TAP summary. +* +* @param total total number of tests +* @param passing total number of passing tests +*/ +static void print_summary( int total, int passing ) { + printf( "#\n" ); + printf( "1..%d\n", total ); // TAP plan + printf( "# total %d\n", total ); + printf( "# pass %d\n", passing ); + printf( "#\n" ); + printf( "# ok\n" ); +} + +/** +* Prints benchmarks results. +* +* @param elapsed elapsed time in seconds +*/ +static void print_results( double elapsed ) { + double rate = (double)ITERATIONS / elapsed; + printf( " ---\n" ); + printf( " iterations: %d\n", ITERATIONS ); + printf( " elapsed: %0.9f\n", elapsed ); + printf( " rate: %0.9f\n", rate ); + printf( " ...\n" ); +} + +/** +* Returns a clock time. +* +* @return clock time +*/ +static double tic( void ) { + struct timeval now; + gettimeofday( &now, NULL ); + return (double)now.tv_sec + (double)now.tv_usec/1.0e6; +} + +/** +* Generates a random number on the interval [0,1). +* +* @return random number +*/ +static float rand_float( void ) { + int r = rand(); + return (float)r / ( (float)RAND_MAX + 1.0f ); +} + +/** +* Runs a benchmark. +* +* @return elapsed time in seconds +*/ +static double benchmark( void ) { + double elapsed; + float x[ 100 ]; + float y[ 100 ]; + double t; + float z; + int i; + + for( i = 0; i < 100; i++ ) { + x[ i ] = 100.0f * rand_float(); + y[ i ] = 100.0f * rand_float(); + } + + t = tic(); + for ( i = 0; i < ITERATIONS; i++ ) { + z = atan2f( x[ i%100 ], y[ i%100 ] ); + if ( z != z ) { + printf( "should not return NaN\n" ); + break; + } + } + elapsed = tic() - t; + if ( z != z ) { + printf( "should not return NaN\n" ); + } + return elapsed; +} + +/** +* Main execution sequence. +*/ +int main( void ) { + double elapsed; + int i; + + // Use the current time to seed the random number generator: + srand( time( NULL ) ); + + print_version(); + for ( i = 0; i < REPEATS; i++ ) { + printf( "# c::cephes::%s\n", NAME ); + elapsed = benchmark(); + print_results( elapsed ); + printf( "ok %d benchmark finished\n", i+1 ); + } + print_summary( REPEATS, REPEATS ); +} diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/benchmark/c/native/Makefile b/lib/node_modules/@stdlib/math/base/special/atan2f/benchmark/c/native/Makefile new file mode 100755 index 000000000000..5d7e79f50788 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/benchmark/c/native/Makefile @@ -0,0 +1,146 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2025 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 := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [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 +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +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], [2][2]). +# +# [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 includes (e.g., `-I /foo/bar -I /beep/boop/include`): +INCLUDE ?= + +# List of source files: +SOURCE_FILES ?= + +# List of libraries (e.g., `-lopenblas -lpthread`): +LIBRARIES ?= + +# List of library paths (e.g., `-L /foo/bar -L /beep/boop`): +LIBPATH ?= + +# List of C targets: +c_targets := benchmark.out + + +# RULES # + +#/ +# Compiles C source files. +# +# @param {string} SOURCE_FILES - list of C source files +# @param {string} [INCLUDE] - list of includes (e.g., `-I /foo/bar -I /beep/boop`) +# @param {string} [LIBRARIES] - list of libraries (e.g., `-lpthread -lblas`) +# @param {string} [LIBPATH] - list of library paths (e.g., `-L /foo/bar -L /beep/boop`) +# @param {string} [C_COMPILER] - C compiler +# @param {string} [CFLAGS] - C compiler flags +# @param {(string|void)} [fPIC] - compiler 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} SOURCE_FILES - list of C source files +# @param {(string|void)} INCLUDE - list of includes (e.g., `-I /foo/bar -I /beep/boop`) +# @param {(string|void)} LIBRARIES - list of libraries (e.g., `-lpthread -lblas`) +# @param {(string|void)} LIBPATH - list of library paths (e.g., `-L /foo/bar -L /beep/boop`) +# @param {string} CC - C compiler +# @param {string} CFLAGS - C compiler flags +# @param {(string|void)} fPIC - compiler flag indicating whether to generate position independent code +#/ +$(c_targets): %.out: %.c + $(QUIET) $(CC) $(CFLAGS) $(fPIC) $(INCLUDE) -o $@ $(SOURCE_FILES) $< $(LIBPATH) -lm $(LIBRARIES) + +#/ +# Runs compiled benchmarks. +# +# @example +# make run +#/ +run: $(c_targets) + $(QUIET) ./$< + +.PHONY: run + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/benchmark/c/native/benchmark.c b/lib/node_modules/@stdlib/math/base/special/atan2f/benchmark/c/native/benchmark.c new file mode 100755 index 000000000000..26ac78bfd872 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/benchmark/c/native/benchmark.c @@ -0,0 +1,138 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 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. +*/ + +#include "stdlib/math/base/special/atan2f.h" +#include +#include +#include +#include +#include + +#define NAME "atan2f" +#define ITERATIONS 1000000 +#define REPEATS 3 + +/** +* Prints the TAP version. +*/ +static void print_version( void ) { + printf( "TAP version 13\n" ); +} + +/** +* Prints the TAP summary. +* +* @param total total number of tests +* @param passing total number of passing tests +*/ +static void print_summary( int total, int passing ) { + printf( "#\n" ); + printf( "1..%d\n", total ); // TAP plan + printf( "# total %d\n", total ); + printf( "# pass %d\n", passing ); + printf( "#\n" ); + printf( "# ok\n" ); +} + +/** +* Prints benchmarks results. +* +* @param elapsed elapsed time in seconds +*/ +static void print_results( double elapsed ) { + double rate = (double)ITERATIONS / elapsed; + printf( " ---\n" ); + printf( " iterations: %d\n", ITERATIONS ); + printf( " elapsed: %0.9f\n", elapsed ); + printf( " rate: %0.9f\n", rate ); + printf( " ...\n" ); +} + +/** +* Returns a clock time. +* +* @return clock time +*/ +static double tic( void ) { + struct timeval now; + gettimeofday( &now, NULL ); + return (double)now.tv_sec + (double)now.tv_usec/1.0e6; +} + +/** +* Generates a random number on the interval [0,1). +* +* @return random number +*/ +static float rand_float( void ) { + int r = rand(); + return (float)r / ( (float)RAND_MAX + 1.0f ); +} + +/** +* Runs a benchmark. +* +* @return elapsed time in seconds +*/ +static double benchmark( void ) { + double elapsed; + float x[ 100 ]; + float y[ 100 ]; + double t; + float z; + int i; + + for( i = 0; i < 100; i++ ) { + x[ i ] = 100.0f * rand_float(); + y[ i ] = 100.0f * rand_float(); + } + + t = tic(); + for ( i = 0; i < ITERATIONS; i++ ) { + z = stdlib_base_atan2f( y[ i%100 ], x[ i%100 ] ); + if ( z != z ) { + printf( "should not return NaN\n" ); + break; + } + } + elapsed = tic() - t; + if ( z != z ) { + printf( "should not return NaN\n" ); + } + return elapsed; +} + +/** +* Main execution sequence. +*/ +int main( void ) { + double elapsed; + int i; + + // Use the current time to seed the random number generator: + srand( time( NULL ) ); + + print_version(); + for ( i = 0; i < REPEATS; i++ ) { + printf( "# c::native::%s\n", NAME ); + elapsed = benchmark(); + print_results( elapsed ); + printf( "ok %d benchmark finished\n", i+1 ); + } + print_summary( REPEATS, REPEATS ); +} diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/binding.gyp b/lib/node_modules/@stdlib/math/base/special/atan2f/binding.gyp new file mode 100755 index 000000000000..68a1ca11d160 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/binding.gyp @@ -0,0 +1,170 @@ +# @license Apache-2.0 +# +# Copyright (c) 2025 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. + +# A `.gyp` file for building a Node.js native add-on. +# +# [1]: https://gyp.gsrc.io/docs/InputFormatReference.md +# [2]: https://gyp.gsrc.io/docs/UserDocumentation.md +{ + # List of files to include in this file: + 'includes': [ + './include.gypi', + ], + + # Define variables to be used throughout the configuration for all targets: + 'variables': { + # Target name should match the add-on export name: + 'addon_target_name%': 'addon', + + # Set variables based on the host OS: + 'conditions': [ + [ + 'OS=="win"', + { + # Define the object file suffix: + 'obj': 'obj', + }, + { + # Define the object file suffix: + 'obj': 'o', + } + ], # end condition (OS=="win") + ], # end conditions + }, # end variables + + # Define compile targets: + 'targets': [ + + # Target to generate an add-on: + { + # The target name should match the add-on export name: + 'target_name': '<(addon_target_name)', + + # Define dependencies: + 'dependencies': [], + + # Define directories which contain relevant include headers: + 'include_dirs': [ + # Local include directory: + '<@(include_dirs)', + ], + + # List of source files: + 'sources': [ + '<@(src_files)', + ], + + # Settings which should be applied when a target's object files are used as linker input: + 'link_settings': { + # Define libraries: + 'libraries': [ + '<@(libraries)', + ], + + # Define library directories: + 'library_dirs': [ + '<@(library_dirs)', + ], + }, + + # C/C++ compiler flags: + 'cflags': [ + # Enable commonly used warning options: + '-Wall', + + # Aggressive optimization: + '-O3', + ], + + # C specific compiler flags: + 'cflags_c': [ + # Specify the C standard to which a program is expected to conform: + '-std=c99', + ], + + # C++ specific compiler flags: + 'cflags_cpp': [ + # Specify the C++ standard to which a program is expected to conform: + '-std=c++11', + ], + + # Linker flags: + 'ldflags': [], + + # Apply conditions based on the host OS: + 'conditions': [ + [ + 'OS=="mac"', + { + # Linker flags: + 'ldflags': [ + '-undefined dynamic_lookup', + '-Wl,-no-pie', + '-Wl,-search_paths_first', + ], + }, + ], # end condition (OS=="mac") + [ + 'OS!="win"', + { + # C/C++ flags: + 'cflags': [ + # Generate platform-independent code: + '-fPIC', + ], + }, + ], # end condition (OS!="win") + ], # end conditions + }, # end target <(addon_target_name) + + # Target to copy a generated add-on to a standard location: + { + 'target_name': 'copy_addon', + + # Declare that the output of this target is not linked: + 'type': 'none', + + # Define dependencies: + 'dependencies': [ + # Require that the add-on be generated before building this target: + '<(addon_target_name)', + ], + + # Define a list of actions: + 'actions': [ + { + 'action_name': 'copy_addon', + 'message': 'Copying addon...', + + # Explicitly list the inputs in the command-line invocation below: + 'inputs': [], + + # Declare the expected outputs: + 'outputs': [ + '<(addon_output_dir)/<(addon_target_name).node', + ], + + # Define the command-line invocation: + 'action': [ + 'cp', + '<(PRODUCT_DIR)/<(addon_target_name).node', + '<(addon_output_dir)/<(addon_target_name).node', + ], + }, + ], # end actions + }, # end target copy_addon + ], # end targets +} diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/docs/repl.txt b/lib/node_modules/@stdlib/math/base/special/atan2f/docs/repl.txt new file mode 100644 index 000000000000..59b7e4bc6fe0 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/docs/repl.txt @@ -0,0 +1,41 @@ + +{{alias}}( y, x ) + Computes the angle in the plane (in radians) between the positive x-axis and + the ray from (0,0) to the point (x,y) as a single-precision floating-point + number. + + Parameters + ---------- + y: number + Coordinate along y-axis. + + x: number + Coordinate along x-axis. + + Returns + ------- + out: number + Angle (in radians). + + Examples + -------- + > var v = {{alias}}( 2.0, 2.0 ) + ~0.785 + > v = {{alias}}( 6.0, 2.0 ) + ~1.249 + > v = {{alias}}( -1.0, -1.0 ) + ~-2.356 + > v = {{alias}}( 3.0, 0.0 ) + ~1.571 + > v = {{alias}}( -2.0, 0.0 ) + ~-1.571 + > v = {{alias}}( 0.0, 0.0 ) + 0.0 + > v = {{alias}}( 3.0, NaN ) + NaN + > v = {{alias}}( NaN, 2.0 ) + NaN + + See Also + -------- + diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/docs/types/index.d.ts b/lib/node_modules/@stdlib/math/base/special/atan2f/docs/types/index.d.ts new file mode 100644 index 000000000000..ac48a0bedac5 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/docs/types/index.d.ts @@ -0,0 +1,65 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2025 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 + +/** +* Computes the angle in the plane (in radians) between the positive x-axis and the ray from `(0,0)` to the point `(x,y)` as a single-precision floating-point number. +* +* @param y - `y` coordinate +* @param x - `x` coordinate +* @returns angle (in radians) +* +* @example +* var v = atan2f( 2.0, 2.0 ); // => atanf( 1.0 ) +* // returns ~0.785 +* +* @example +* var v = atan2f( 6.0, 2.0 ); // => atanf( 3.0 ) +* // returns ~1.249 +* +* @example +* var v = atan2f( -1.0, -1.0 ); // => atanf( 1.0 ) - π +* // returns ~-2.356 +* +* @example +* var v = atan2f( 3.0, 0.0 ); // => π/2 +* // returns ~1.571 +* +* @example +* var v = atan2f( -2.0, 0.0 ); // => -π/2 +* // returns ~-1.571 +* +* @example +* var v = atan2f( 0.0, 0.0 ); +* // returns 0.0 +* +* @example +* var v = atan2f( 3.0, NaN ); +* // returns NaN +* +* @example +* var v = atan2f( NaN, 2.0 ); +* // returns NaN +*/ +declare function atan2f( y: number, x: number ): number; + + +// EXPORTS // + +export = atan2f; diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/docs/types/test.ts b/lib/node_modules/@stdlib/math/base/special/atan2f/docs/types/test.ts new file mode 100644 index 000000000000..2f55343e9a1f --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/docs/types/test.ts @@ -0,0 +1,56 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2025 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 atan2f = require( './index' ); + + +// TESTS // + +// The function returns a number... +{ + atan2f( 8, 2 ); // $ExpectType number +} + +// The compiler throws an error if the function is provided values other than two numbers... +{ + atan2f( true, 3 ); // $ExpectError + atan2f( false, 2 ); // $ExpectError + atan2f( '5', 1 ); // $ExpectError + atan2f( [], 1 ); // $ExpectError + atan2f( {}, 2 ); // $ExpectError + atan2f( ( x: number ): number => x, 2 ); // $ExpectError + + atan2f( 9, true ); // $ExpectError + atan2f( 9, false ); // $ExpectError + atan2f( 5, '5' ); // $ExpectError + atan2f( 8, [] ); // $ExpectError + atan2f( 9, {} ); // $ExpectError + atan2f( 8, ( x: number ): number => x ); // $ExpectError + + atan2f( [], true ); // $ExpectError + atan2f( {}, false ); // $ExpectError + atan2f( false, '5' ); // $ExpectError + atan2f( {}, [] ); // $ExpectError + atan2f( '5', ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function is provided insufficient arguments... +{ + atan2f(); // $ExpectError + atan2f( 3 ); // $ExpectError +} diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/examples/c/Makefile b/lib/node_modules/@stdlib/math/base/special/atan2f/examples/c/Makefile new file mode 100755 index 000000000000..25ced822f96a --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/examples/c/Makefile @@ -0,0 +1,146 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2025 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 := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [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 +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +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], [2][2]). +# +# [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 includes (e.g., `-I /foo/bar -I /beep/boop/include`): +INCLUDE ?= + +# List of source files: +SOURCE_FILES ?= + +# List of libraries (e.g., `-lopenblas -lpthread`): +LIBRARIES ?= + +# List of library paths (e.g., `-L /foo/bar -L /beep/boop`): +LIBPATH ?= + +# List of C targets: +c_targets := example.out + + +# RULES # + +#/ +# Compiles source files. +# +# @param {string} [C_COMPILER] - C compiler (e.g., `gcc`) +# @param {string} [CFLAGS] - C compiler options +# @param {(string|void)} [fPIC] - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} [INCLUDE] - list of includes (e.g., `-I /foo/bar -I /beep/boop/include`) +# @param {string} [SOURCE_FILES] - list of source files +# @param {string} [LIBPATH] - list of library paths (e.g., `-L /foo/bar -L /beep/boop`) +# @param {string} [LIBRARIES] - list of libraries (e.g., `-lopenblas -lpthread`) +# +# @example +# make +# +# @example +# make all +#/ +all: $(c_targets) + +.PHONY: all + +#/ +# Compiles C source files. +# +# @private +# @param {string} CC - C compiler (e.g., `gcc`) +# @param {string} CFLAGS - C compiler options +# @param {(string|void)} fPIC - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} INCLUDE - list of includes (e.g., `-I /foo/bar`) +# @param {string} SOURCE_FILES - list of source files +# @param {string} LIBPATH - list of library paths (e.g., `-L /foo/bar`) +# @param {string} LIBRARIES - list of libraries (e.g., `-lopenblas`) +#/ +$(c_targets): %.out: %.c + $(QUIET) $(CC) $(CFLAGS) $(fPIC) $(INCLUDE) -o $@ $(SOURCE_FILES) $< $(LIBPATH) -lm $(LIBRARIES) + +#/ +# Runs compiled examples. +# +# @example +# make run +#/ +run: $(c_targets) + $(QUIET) ./$< + +.PHONY: run + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/examples/c/example.c b/lib/node_modules/@stdlib/math/base/special/atan2f/examples/c/example.c new file mode 100755 index 000000000000..8165ad61cc9c --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/examples/c/example.c @@ -0,0 +1,36 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 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. +*/ + +#include "stdlib/math/base/special/atan2f.h" +#include +#include + +int main( void ) { + float y; + float x; + float v; + int i; + + for ( i = 0; i < 100; i++ ) { + y = ( ( (float)rand() / (float)RAND_MAX ) * 100.0f ); + x = ( ( (float)rand() / (float)RAND_MAX ) * 100.0f ); + v = stdlib_base_atan2f( y, x ); + printf( "atan2f(%f, %f) = %f\n", y, x, v ); + } + return 0; +} diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/examples/index.js b/lib/node_modules/@stdlib/math/base/special/atan2f/examples/index.js new file mode 100644 index 000000000000..2d9463c0125b --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/examples/index.js @@ -0,0 +1,31 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 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 uniform = require( '@stdlib/random/array/uniform' ); +var logEachMap = require( '@stdlib/console/log-each-map' ); +var atan2f = require( './../lib' ); + +var opts = { + 'dtype': 'float32' +}; +var x = uniform( 100, 0.0, 100.0, opts ); +var y = uniform( 100, 0.0, 100.0, opts ); + +logEachMap( 'atan2f(%0.4f,%0.4f) = %0.4f', y, x, atan2f ); diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/include.gypi b/lib/node_modules/@stdlib/math/base/special/atan2f/include.gypi new file mode 100755 index 000000000000..ecfaf82a3279 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/include.gypi @@ -0,0 +1,53 @@ +# @license Apache-2.0 +# +# Copyright (c) 2025 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. + +# A GYP include file for building a Node.js native add-on. +# +# Main documentation: +# +# [1]: https://gyp.gsrc.io/docs/InputFormatReference.md +# [2]: https://gyp.gsrc.io/docs/UserDocumentation.md +{ + # Define variables to be used throughout the configuration for all targets: + 'variables': { + # Source directory: + 'src_dir': './src', + + # Include directories: + 'include_dirs': [ + ' atanf( 1.0 ) +* // returns ~0.785 +* +* v = atan2f( 6.0, 2.0 ); // => atanf( 3.0 ) +* // returns ~1.249 +* +* v = atan2f( -1.0, -1.0 ); // => atanf( 1.0 ) - π +* // returns ~-2.356 +* +* v = atan2f( 3.0, 0.0 ); // => π/2 +* // returns ~1.571 +* +* v = atan2f( -2.0, 0.0 ); // => -π/2 +* // returns ~-1.571 +* +* v = atan2f( 0.0, 0.0 ); +* // returns 0.0 +* +* v = atan2f( 3.0, NaN ); +* // returns NaN +* +* v = atan2f( NaN, 2.0 ); +* // returns NaN +*/ + +// MODULES // + +var atan2f = require( './main.js' ); + + +// EXPORTS // + +module.exports = atan2f; diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/lib/main.js b/lib/node_modules/@stdlib/math/base/special/atan2f/lib/main.js new file mode 100644 index 000000000000..fcab4e28790f --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/lib/main.js @@ -0,0 +1,185 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 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 code, copyright and license are from [Go]{@link https://golang.org/src/math/atan2.go}. The implementation follows the original, but has been modified for JavaScript. +* +* ```text +* Copyright (c) 2009 The Go Authors. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are +* met: +* +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above +* copyright notice, this list of conditions and the following disclaimer +* in the documentation and/or other materials provided with the +* distribution. +* * Neither the name of Google Inc. nor the names of its +* contributors may be used to endorse or promote products derived from +* this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* ``` +*/ + +'use strict'; + +// MODULES // + +var isinfinitef = require( '@stdlib/math/base/assert/is-infinitef' ); +var copysignf = require( '@stdlib/math/base/special/copysignf' ); +var signbitf = require( '@stdlib/number/float32/base/signbit' ); +var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var atanf = require( '@stdlib/math/base/special/atanf' ); +var f32 = require( '@stdlib/number/float64/base/to-float32' ); +var PINF = require( '@stdlib/constants/float32/pinf' ); +var PI = require( '@stdlib/constants/float32/pi' ); + + +// VARIABLES // + +var ZERO = f32( 0.0 ); +var TWO = f32( 2.0 ); +var THREE = f32( 3.0 ); +var FOUR = f32( 4.0 ); + + +// MAIN // + +/** +* Computes the angle in the plane (in radians) between the positive x-axis and the ray from `(0,0)` to the point `(x,y)` as a single-precision floating-point number. +* +* ## Special Cases +* +* ```tex +* \begin{align*} +* \operatorname{atan2f}(y,\mathrm{NaN}) &= \mathrm{NaN}\\ +* \operatorname{atan2f}(\mathrm{NaN},x) &= \mathrm{NaN}\\ +* \operatorname{atan2f}( +0,x \ge 0 ) &= +0 \\ +* \operatorname{atan2f}( -0, x \ge 0 ) &= -0 \\ +* \operatorname{atan2f}( +0,x \le -0 ) &= +\Pi \\ +* \operatorname{atan2f}( -0, x \le -0 ) &= -\Pi \\ +* \operatorname{atan2f}(+\infty, +\infty) &= +\tfrac{\Pi}{4} \\ +* \operatorname{atan2f}(-\infty, +\infty) &= -\tfrac{\Pi}{4} \\ +* \operatorname{atan2f}(+\infty, -\infty) &= +\tfrac{3\Pi}{4} \\ +* \operatorname{atan2f}(-\infty, -\infty) &= -\tfrac{3\Pi}{4} \\ +* \operatorname{atan2f}(y, +\infty) &= 0.0 \\ +* \operatorname{atan2f}(y>0, -\infty) &= +\Pi \\ +* \operatorname{atan2f}(y<0, -\infty) &= -\Pi \\ +* \operatorname{atan2f}(+\infty, x ) &= +\tfrac{\Pi}{2} \\ +* \operatorname{atan2f}(-\infty, x ) &= -\tfrac{\Pi}{2} \\ +* \end{align*} +* ``` +* +* @param {number} y - `y` coordinate +* @param {number} x - `x` coordinate +* @returns {number} angle (in radians) +* +* @example +* var v = atan2f( 2.0, 2.0 ); // => atanf( 1.0 ) +* // returns ~0.785 +* +* @example +* var v = atan2f( 6.0, 2.0 ); // => atanf( 3.0 ) +* // returns ~1.249 +* +* @example +* var v = atan2f( -1.0, -1.0 ); // => atanf( 1.0 ) - π +* // returns ~-2.356 +* +* @example +* var v = atan2f( 3.0, 0.0 ); // => π/2 +* // returns ~1.571 +* +* @example +* var v = atan2f( -2.0, 0.0 ); // => -π/2 +* // returns ~-1.571 +* +* @example +* var v = atan2f( 0.0, 0.0 ); +* // returns 0.0 +* +* @example +* var v = atan2f( 3.0, NaN ); +* // returns NaN +* +* @example +* var v = atan2f( NaN, 2.0 ); +* // returns NaN +*/ +function atan2f( y, x ) { + var q; + + x = f32( x ); + y = f32( y ); + if ( isnanf( x ) || isnanf( y ) ) { + return NaN; + } + if ( isinfinitef( x ) ) { + if ( x === PINF ) { + if ( isinfinitef( y ) ) { + return copysignf( f32( PI / FOUR ), y ); + } + return copysignf( ZERO, y ); + } + // Case: x is -Infinity + if ( isinfinitef( y ) ) { + return copysignf( f32( f32( THREE * PI ) / FOUR ), y ); + } + return copysignf( PI, y ); + } + if ( isinfinitef( y ) ) { + return copysignf( f32( PI / TWO ), y ); + } + if ( y === 0.0 ) { + if ( x >= 0.0 && !signbitf( x ) ) { + return copysignf( ZERO, y ); + } + return copysignf( PI, y ); + } + if ( x === 0.0 ) { + return copysignf( f32( PI / TWO ), y ); + } + q = atanf( f32( y / x ) ); + if ( x < 0.0 ) { + if ( q <= 0.0 ) { + return f32( q + PI ); + } + return f32( q - PI ); + } + return q; +} + + +// EXPORTS // + +module.exports = atan2f; diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/lib/native.js b/lib/node_modules/@stdlib/math/base/special/atan2f/lib/native.js new file mode 100755 index 000000000000..0c6c3fe6f741 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/lib/native.js @@ -0,0 +1,72 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 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 addon = require( './../src/addon.node' ); + +/** +* Computes the angle in the plane (in radians) between the positive x-axis and the ray from `(0,0)` to the point `(x,y)` as a single-precision floating-point number. +* +* @private +* @param {number} y - `y` coordinate +* @param {number} x - `x` coordinate +* @returns {number} angle (in radians) +* +* @example +* var v = atan2f( 2.0, 2.0 ); // => atanf( 1.0 ) +* // returns ~0.785 +* +* @example +* var v = atan2f( 6.0, 2.0 ); // => atanf( 3.0 ) +* // returns ~1.249 +* +* @example +* var v = atan2f( -1.0, -1.0 ); // => atanf( 1.0 ) - π +* // returns ~-2.356 +* +* @example +* var v = atan2f( 3.0, 0.0 ); // => π/2 +* // returns ~1.571 +* +* @example +* var v = atan2f( -2.0, 0.0 ); // => -π/2 +* // returns ~-1.571 +* +* @example +* var v = atan2f( 0.0, 0.0 ); +* // returns 0.0 +* +* @example +* var v = atan2f( 3.0, NaN ); +* // returns NaN +* +* @example +* var v = atan2f( NaN, 2.0 ); +* // returns NaN +*/ +function atan2f( y, x ) { + return addon( y, x ); +} + + +// EXPORTS // + +module.exports = atan2f; diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/manifest.json b/lib/node_modules/@stdlib/math/base/special/atan2f/manifest.json new file mode 100755 index 000000000000..7bd18dabcee9 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/manifest.json @@ -0,0 +1,90 @@ +{ + "options": { + "task": "build" + }, + "fields": [ + { + "field": "src", + "resolve": true, + "relative": true + }, + { + "field": "include", + "resolve": true, + "relative": true + }, + { + "field": "libraries", + "resolve": false, + "relative": false + }, + { + "field": "libpath", + "resolve": true, + "relative": false + } + ], + "confs": [ + { + "task": "build", + "src": [ + "./src/main.c" + ], + "include": [ + "./include" + ], + "libraries": [], + "libpath": [], + "dependencies": [ + "@stdlib/math/base/napi/binary", + "@stdlib/math/base/assert/is-infinitef", + "@stdlib/math/base/special/copysignf", + "@stdlib/number/float32/base/signbit", + "@stdlib/math/base/assert/is-nanf", + "@stdlib/math/base/special/atanf", + "@stdlib/constants/float32/pinf", + "@stdlib/constants/float32/pi" + ] + }, + { + "task": "benchmark", + "src": [ + "./src/main.c" + ], + "include": [ + "./include" + ], + "libraries": [], + "libpath": [], + "dependencies": [ + "@stdlib/math/base/assert/is-infinitef", + "@stdlib/math/base/special/copysignf", + "@stdlib/number/float32/base/signbit", + "@stdlib/math/base/assert/is-nanf", + "@stdlib/math/base/special/atanf", + "@stdlib/constants/float32/pinf", + "@stdlib/constants/float32/pi" + ] + }, + { + "task": "examples", + "src": [ + "./src/main.c" + ], + "include": [ + "./include" + ], + "libraries": [], + "libpath": [], + "dependencies": [ + "@stdlib/math/base/assert/is-infinitef", + "@stdlib/math/base/special/copysignf", + "@stdlib/number/float32/base/signbit", + "@stdlib/math/base/assert/is-nanf", + "@stdlib/math/base/special/atanf", + "@stdlib/constants/float32/pinf", + "@stdlib/constants/float32/pi" + ] + } + ] +} diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/package.json b/lib/node_modules/@stdlib/math/base/special/atan2f/package.json new file mode 100644 index 000000000000..f8ac7aad23bc --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/package.json @@ -0,0 +1,70 @@ +{ + "name": "@stdlib/math/base/special/atan2f", + "version": "0.0.0", + "description": "Compute the angle in the plane (in radians) between the positive x-axis and the ray from (0,0) to the point (x,y) as a single-precision floating-point number.", + "license": "Apache-2.0 AND BSD-3-Clause", + "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", + "gypfile": true, + "directories": { + "benchmark": "./benchmark", + "doc": "./docs", + "example": "./examples", + "include": "./include", + "lib": "./lib", + "src": "./src", + "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", + "stdmath", + "mathematics", + "math", + "math.atan2", + "atan2", + "atan", + "arctangent", + "quotient", + "inverse", + "trig", + "trigonometry", + "value", + "number" + ] +} diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/src/Makefile b/lib/node_modules/@stdlib/math/base/special/atan2f/src/Makefile new file mode 100755 index 000000000000..7733b6180cb4 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/src/Makefile @@ -0,0 +1,70 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2025 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 := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [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 +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + + +# RULES # + +#/ +# Removes generated files for building an add-on. +# +# @example +# make clean-addon +#/ +clean-addon: + $(QUIET) -rm -f *.o *.node + +.PHONY: clean-addon + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: clean-addon + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/src/addon.c b/lib/node_modules/@stdlib/math/base/special/atan2f/src/addon.c new file mode 100755 index 000000000000..a0ae7a727364 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/src/addon.c @@ -0,0 +1,22 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 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. +*/ + +#include "stdlib/math/base/special/atan2f.h" +#include "stdlib/math/base/napi/binary.h" + +STDLIB_MATH_BASE_NAPI_MODULE_FF_F( stdlib_base_atan2f ) diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/src/main.c b/lib/node_modules/@stdlib/math/base/special/atan2f/src/main.c new file mode 100755 index 000000000000..1598e7b64fe2 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/src/main.c @@ -0,0 +1,114 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 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 code, copyright and license are from [Go]{@link https://golang.org/src/math/atan2.go}. The implementation follows the original, but has been modified according to project conventions. +* +* ```text +* Copyright (c) 2009 The Go Authors. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are +* met: +* +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above +* copyright notice, this list of conditions and the following disclaimer +* in the documentation and/or other materials provided with the +* distribution. +* * Neither the name of Google Inc. nor the names of its +* contributors may be used to endorse or promote products derived from +* this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* ``` +*/ + +#include "stdlib/math/base/assert/is_infinitef.h" +#include "stdlib/math/base/special/copysignf.h" +#include "stdlib/number/float32/base/signbit.h" +#include "stdlib/math/base/assert/is_nanf.h" +#include "stdlib/math/base/special/atanf.h" +#include "stdlib/constants/float32/pinf.h" +#include "stdlib/constants/float32/pi.h" + +// MAIN // + +/** +* Computes the angle in the plane (in radians) between the positive x-axis and the ray from `(0,0)` to the point `(x,y)` as a single-precision floating-point number. +* +* @param y `y` coordinate +* @param x `x` coordinate +* @return angle (in radians) +* +* @example +* float v = stdlib_base_atan2f( 2.0f, 2.0f ); // => stdlib_base_atanf( 1.0f ) +* // returns ~0.785f +*/ +float stdlib_base_atan2f( const float y, const float x ) { + float q; + + if ( stdlib_base_is_nanf( x ) || stdlib_base_is_nanf( y ) ) { + return 0.0f / 0.0f; // NaN + } + if ( stdlib_base_is_infinitef( x ) ) { + if ( x == STDLIB_CONSTANT_FLOAT32_PINF ) { + if ( stdlib_base_is_infinitef( y ) ) { + return stdlib_base_copysignf( STDLIB_CONSTANT_FLOAT32_PI / 4.0f, y ); + } + return stdlib_base_copysignf( 0.0f, y ); + } + // Case: x is -Infinity + if ( stdlib_base_is_infinitef( y ) ) { + return stdlib_base_copysignf( 3.0f * STDLIB_CONSTANT_FLOAT32_PI / 4.0f, y ); + } + return stdlib_base_copysignf( STDLIB_CONSTANT_FLOAT32_PI, y ); + } + if ( stdlib_base_is_infinitef( y ) ) { + return stdlib_base_copysignf( STDLIB_CONSTANT_FLOAT32_PI / 2.0f, y ); + } + if ( y == 0.0f ) { + if ( x >= 0.0f && !stdlib_base_float32_signbit( x ) ) { + return stdlib_base_copysignf( 0.0f, y ); + } + return stdlib_base_copysignf( STDLIB_CONSTANT_FLOAT32_PI, y ); + } + if ( x == 0.0f ) { + return stdlib_base_copysignf( STDLIB_CONSTANT_FLOAT32_PI / 2.0f, y ); + } + q = stdlib_base_atanf( y / x ); + if ( x < 0.0f ) { + if ( q <= 0.0f ) { + return q + STDLIB_CONSTANT_FLOAT32_PI; + } + return q - STDLIB_CONSTANT_FLOAT32_PI; + } + return q; +} diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/test/fixtures/julia/REQUIRE b/lib/node_modules/@stdlib/math/base/special/atan2f/test/fixtures/julia/REQUIRE new file mode 100644 index 000000000000..308c3be89c85 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/test/fixtures/julia/REQUIRE @@ -0,0 +1,2 @@ +julia 1.5 +JSON 0.21 diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/test/fixtures/julia/negative_negative.json b/lib/node_modules/@stdlib/math/base/special/atan2f/test/fixtures/julia/negative_negative.json new file mode 100644 index 000000000000..df343d124133 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/test/fixtures/julia/negative_negative.json @@ -0,0 +1 @@ +{"expected":[-2.533678,-2.7569902,-2.4170928,-1.8870858,-1.837317,-2.724954,-1.8299757,-2.4846694,-2.8660471,-1.8192369,-1.6872466,-2.5313828,-1.6614947,-2.3004465,-2.3842998,-2.4618692,-2.5909553,-2.3774662,-2.5682473,-2.6168914,-2.732285,-2.6243997,-1.7941251,-3.013896,-2.05994,-1.6931335,-2.0661335,-1.765209,-1.939228,-2.4601758,-2.4304376,-1.7917031,-1.970399,-2.6299317,-2.8090012,-2.7620094,-1.5792944,-2.1350603,-2.495216,-2.7215662,-2.260328,-2.689619,-2.4196227,-2.4046414,-2.8395548,-2.8433452,-3.0916097,-1.6045433,-1.8811287,-3.0930696,-2.4893596,-2.909397,-2.392541,-2.6407232,-2.4955108,-1.8932627,-2.630629,-2.5289903,-2.3200493,-2.967876,-2.7840645,-2.2219107,-2.8326797,-3.0236177,-2.3129148,-2.8832512,-1.929543,-1.6169446,-2.3656254,-2.1722298,-3.0593448,-2.1515732,-2.8265717,-2.7837696,-2.0796049,-2.5470886,-2.870467,-2.0875773,-2.5056567,-2.8820057,-1.9422821,-2.440639,-2.4944663,-1.8493185,-1.6639731,-2.4817088,-1.8373646,-2.1733727,-2.8820553,-2.3279548,-2.3302524,-2.1338894,-2.287999,-2.436635,-2.4171286,-2.653558,-3.026582,-2.2712104,-3.1229405,-1.9896661,-2.7468824,-2.2781978,-2.9561076,-2.4406273,-1.77645,-2.3377736,-2.3208523,-1.66188,-2.207265,-2.3751712,-1.762046,-3.116069,-2.0387754,-2.5801067,-2.8858123,-1.9668283,-3.0048187,-3.078104,-2.4403808,-2.2147076,-2.7095237,-2.5019774,-2.74069,-2.3801177,-2.4539366,-2.2787416,-2.0196595,-2.4066863,-2.6077712,-3.01003,-2.9208508,-2.036098,-1.7718767,-2.2546048,-2.546921,-2.3700438,-3.0257256,-2.3896136,-2.8822842,-1.8519948,-2.0550017,-2.1052592,-2.9731748,-2.282836,-2.7789588,-2.2769465,-2.0985,-2.916433,-1.5871477,-3.083934,-2.9287655,-1.6721201,-2.228027,-2.2686994,-2.3019102,-2.1658378,-2.035005,-1.9671654,-1.7610981,-2.0764728,-2.545371,-2.2072563,-2.8463616,-2.5129738,-3.123488,-2.4294448,-2.6042976,-1.8412896,-2.954176,-2.1870866,-2.948028,-1.9202703,-3.0160084,-1.9362885,-2.1332355,-2.6002407,-2.4130285,-2.7799816,-2.1254747,-3.0310917,-2.0350747,-1.957333,-2.2004519,-2.6326137,-2.6921601,-2.975166,-2.4256525,-2.8343258,-2.48452,-1.6272438,-2.6158624,-1.7416271,-2.7362213,-2.5232449,-2.190927,-2.8034813,-2.3641565,-2.8514545,-1.6217988,-2.5189416,-2.7252955,-2.880656,-3.005157,-1.6721145,-1.8876528,-2.5350456,-2.038374,-2.0864718,-2.2560449,-1.9996196,-2.5920925,-3.1336493,-2.5298104,-2.5071678,-2.9750972,-2.7182465,-1.7164154,-3.022959,-1.6491992,-2.2266383,-2.5855217,-2.2998755,-2.5834477,-3.137242,-1.7500118,-3.0738106,-2.8494754,-2.030666,-2.9202387,-2.1158566,-1.932155,-2.663963,-2.2389839,-2.3607059,-2.0975852,-2.1397097,-2.6126485,-1.8826483,-2.8184438,-1.7966919,-2.1432655,-2.1159937,-2.606114,-2.3253918,-3.0058582,-3.0191042,-2.3286884,-1.9116079,-2.6191478,-2.1565087,-2.7675803,-2.4401085,-1.9084461,-1.8650233,-2.401831,-2.910476,-2.392873,-3.032835,-2.9738033,-2.4715924,-2.6873908,-2.1161404,-2.6041079,-1.805998,-2.840695,-2.314496,-3.006448,-2.5830271,-2.6846585,-2.0451894,-1.7157161,-1.599798,-2.472785,-1.7715617,-2.1677985,-1.7696052,-2.1167078,-3.026628,-2.169786,-2.1667747,-2.2705789,-3.1010478,-2.3122566,-1.6885273,-2.8898718,-2.7601397,-1.7981602,-2.6018384,-2.265451,-2.3649654,-2.1415129,-1.751771,-2.8351464,-2.874558,-2.130845,-2.744031,-2.7713566,-1.8840885,-1.8548104,-2.413896,-2.6654243,-2.8384783,-2.0166245,-2.9641545,-2.1438322,-1.9748547,-1.816894,-2.8165207,-3.1403666,-1.8967297,-2.39742,-2.8747656,-2.6290379,-2.5148168,-2.1471589,-3.0690086,-2.2654395,-1.8715258,-2.2508333,-2.7843928,-2.9023325,-2.7757652,-2.6022277,-2.3367639,-1.9797491,-2.3966167,-2.3596559,-2.5942423,-1.58488,-1.6516175,-2.950837,-2.2842073,-2.0017452,-2.6071658,-2.5019195,-1.8377433,-2.19192,-2.2246187,-2.5269709,-1.916512,-2.0263996,-2.1404572,-2.8241425,-1.8921727,-2.548883,-2.3783643,-2.406838,-2.5385282,-2.28422,-2.3339615,-2.665013,-2.076199,-2.0612245,-2.425722,-2.786712,-2.4442377,-2.4301395,-1.7864002,-2.7805924,-1.6064557,-1.79733,-1.710568,-1.8311363,-2.2430282,-2.6811,-1.6708732,-2.4216685,-2.9928765,-2.066032,-3.0301478,-1.6872393,-2.1588068,-2.382452,-2.8437228,-3.0515058,-2.3913887,-2.2728887,-1.8137393,-2.3461895,-3.1238167,-2.3453531,-2.041957,-2.0294127,-1.949351,-2.1406922,-2.6754909,-2.61838,-2.2250633,-2.231791,-2.716901,-2.6248384,-1.7901053,-2.3002965,-3.1295555,-3.026452,-2.4898963,-2.1924832,-2.442707,-2.7214258,-2.617588,-2.0188289,-2.6843069,-3.0717738,-1.598243,-3.0517955,-2.4655354,-2.1961193,-2.8507118,-2.840883,-2.0952873,-2.7200499,-3.0491948,-2.4195368,-3.0760174,-2.311168,-1.8326356,-2.7755632,-2.022728,-2.9109812,-2.7362368,-2.8922405,-2.0348873,-2.165308,-1.6672206,-2.6169944,-1.6438824,-2.2928069,-2.435964,-1.8027462,-2.612266,-1.6088629,-2.8680503,-2.0329208,-1.9858563,-2.0903125,-2.747312,-2.463829,-2.0318573,-1.9727253,-2.8516126,-2.021082,-2.318178,-3.0697546,-2.7800715,-2.7037373,-2.8775458,-2.557543,-2.4920514,-3.0213723,-2.1652024,-2.3843212,-1.8271807,-2.752001,-2.1592374,-2.9782457,-2.5571647,-1.7917842,-3.1395118,-2.6875122,-2.3566737,-2.925604,-1.7574263,-1.9134723,-1.919449,-2.8915782,-1.7237424,-2.9830172,-2.3179781,-2.461599,-1.6288654,-3.0903978,-3.0441027,-2.3107848,-2.8542125,-2.0979114,-1.9921526,-3.03579,-2.5317273,-2.3247523,-2.5196168,-1.750894,-2.3522482,-2.1562147,-2.8452127,-2.3230681,-3.0949073,-2.0740094,-3.0822442,-2.4791477,-2.4557035,-1.847377,-2.5698686,-1.8831581,-2.2702239,-2.9541714,-2.0379107,-1.9483253,-2.3660626,-2.330357,-2.0730457,-1.7167193,-2.729343,-2.219338,-1.6584737,-2.3376367,-2.2548814,-2.7043052,-2.7243583,-2.52709,-2.991183,-2.319491,-2.922422,-2.9467735,-2.9655585,-3.1347363,-2.6886866,-2.9790347,-2.3554611,-2.975564,-2.0915446,-1.5893862,-2.4456837,-2.3889399,-1.7176976,-1.7585348,-2.6262105,-2.7599916,-2.5031452,-2.5834877,-2.5519807,-1.5939102,-2.3094523,-2.3879411,-2.815752,-1.795329,-2.4156246,-1.6784588,-2.9923172,-3.0973353,-2.2126923,-1.772475,-2.3077106,-2.2487655,-2.1606684,-2.776013,-2.1475692,-3.0663145,-1.8626786,-1.8440756,-1.5806508,-1.9906443,-2.5136724,-3.1002727,-2.2832868,-1.9511929,-1.7566036,-2.1855073,-2.6770213,-2.3955116,-2.553044,-2.4953647,-2.238907,-3.1363423,-2.5405278,-1.6713382,-2.3464253,-2.090908,-2.8690858,-2.5488317,-1.9165636,-2.0467181,-2.4363642,-2.5702481,-2.9213762,-1.8228266,-2.0934284,-2.1048913,-2.3747582,-2.3319566,-1.9242258,-1.911287,-2.6337614,-2.4068167,-2.5271137,-2.5929158,-2.830712,-3.047666,-2.7552204,-2.7970488,-2.6477668,-1.7841233,-2.8314106,-2.2180724,-2.9109795,-1.8628722,-2.4450645,-2.0924134,-1.9204301,-2.0142732,-1.9279224,-2.2817032,-2.6766384,-2.4790099,-1.785196,-2.021357,-2.0882044,-1.9640125,-2.589982,-2.234057,-1.803305,-1.9370813,-2.4531856,-2.8028984,-2.474355,-2.9575434,-3.09581,-2.5536103,-2.782261,-2.4421587,-1.9397126,-2.740147,-2.6790268,-1.7884926,-2.9825535,-1.6316814,-1.7538677,-2.3349895,-2.2668312,-2.4892645,-1.7800522,-2.6729782,-2.7834582,-2.3769758,-3.074379,-2.1378767,-2.5517685,-2.0394077,-2.1397197,-1.9711467,-2.06769,-2.705337,-2.3861797,-1.7841775,-2.626902,-2.1020002,-2.322903,-3.0646067,-2.1967585,-2.021461,-2.7574096,-2.7410967,-2.3335714,-2.153432,-2.2118306,-2.1421564,-2.1210892,-2.6192021,-2.9992423,-1.9898791,-2.1043148,-2.7391887,-3.1191473,-3.1326997,-3.0026963,-1.9171375,-2.7243793,-2.9190981,-2.231323,-2.0794883,-3.094426,-2.6177285,-2.2125478,-2.4757183,-2.3243775,-2.146369,-3.1082385,-2.3634915,-2.9436717,-2.401747,-1.6588207,-2.6641076,-3.0941772,-1.7037568,-1.7104878,-2.9384518,-2.165014,-2.5070415,-2.0819273,-2.4208574,-2.9203656,-2.7035801,-2.4621944,-1.9806577,-2.1336827,-2.3304915,-2.267395,-1.9361033,-2.4580216,-2.336042,-2.405147,-2.2977967,-2.3650427,-2.1996515,-2.1343498,-1.6050982,-2.0171604,-1.8457826,-2.3382025,-2.5151045,-2.2419276,-2.4439278,-2.8106728,-1.695497,-2.5152643,-1.5790161,-2.5302896,-2.091408,-2.3001003,-1.9310621,-2.9093695,-2.9903197,-2.0798144,-2.9339318,-1.8668202,-2.4936442,-2.6190462,-1.9631591,-2.818735,-2.2956495,-2.78763,-2.457914,-1.7744948,-2.4174707,-2.4043875,-2.6375136,-2.053138,-2.215241,-3.0444896,-2.4317408,-2.4058435,-2.158769,-2.8627703,-1.9407549,-1.6634556,-2.0472467,-2.26339,-2.142282,-2.1473632,-2.9972324,-2.3309007,-2.8222501,-2.3277798,-2.5994654,-2.9902334,-2.0227895,-2.5459442,-2.061719,-2.3542526,-2.2420704,-1.8988407,-2.73727,-2.3344188,-3.1099195,-2.676692,-2.3632894,-2.103447,-2.4737356,-2.2275064,-1.815204,-2.523166,-2.0611258,-2.796116,-2.2780435,-2.860931,-2.5610144,-1.5940331,-2.500747,-1.9648266,-1.8951329,-1.980788,-2.4905539,-2.5053806,-2.6762695,-2.2939186,-2.1477082,-2.4005458,-2.611031,-3.083307,-2.062376,-2.8084526,-2.2797613,-3.091354,-2.4656997,-2.618073,-1.9452182,-1.9470876,-2.8130026,-2.715351,-1.6929824,-2.771204,-2.3758593,-2.4776673,-2.6013215,-2.819237,-2.3905563,-1.9001235,-2.323113,-1.7314323,-1.6314969,-1.6141543,-2.0020566,-2.6497436,-2.1423953,-1.926514,-2.010518,-2.7475576,-2.1000075,-2.1840718,-2.5001764,-1.9095656,-1.8987384,-2.9185364,-2.8410459,-2.8499393,-3.04193,-2.4475935,-2.0108504,-1.961865,-2.6898072,-1.6083643,-2.2269416,-2.3915696,-1.859082,-1.8279724,-1.661397,-2.9833953,-2.4404783,-1.6145416,-1.8960445,-1.923626,-2.2910867,-3.1117327,-2.1115415,-2.1969128,-2.6490443,-1.6753577,-2.4449253,-2.7222621,-2.3466601,-2.3487396,-2.6253803,-2.6567748,-2.3363643,-1.7303313,-2.6523106,-1.9640274,-2.8260183,-2.666232,-1.8708531,-2.5333054,-1.8676053,-2.373339,-2.5948808,-2.6590543,-2.56138,-2.834295,-2.4647007,-3.1070697,-1.8385209,-1.6300478,-2.4389782,-1.7198108,-2.8030229,-2.5566597,-2.095832,-3.1310697,-2.6465936,-1.8588008,-1.5822197,-2.5631247,-2.7378008,-2.20205,-2.6692424,-1.8337901,-1.6055751,-1.6005753,-2.107061,-2.3795302,-1.6754858,-2.8733706,-2.2799482,-3.051845,-2.5288315,-2.2519567,-2.2116585,-2.3807182,-3.026829,-1.6948988,-2.6684961,-1.7849375,-2.7138686,-2.219163,-2.8903878,-2.6715884,-1.9516422,-1.8895196,-1.8131095,-2.4721663,-1.6675295,-2.8829525,-2.2968917,-1.9765091,-1.6545467,-1.9650981,-3.0175102,-2.057994,-2.8395865,-2.825701,-1.6896582,-1.8263904,-1.6741314,-1.7257123,-1.8109846,-2.0114331,-2.4131494,-3.1179972,-2.9403298,-3.0283194,-1.8327818,-2.2271268,-1.6817486,-2.2361255,-2.2911706,-2.2887824,-3.008875,-2.409288,-2.8963785,-2.1863534,-2.301575,-2.510617,-2.381232,-2.2786915,-2.205986,-1.7587252,-2.335508,-2.5042415,-1.868174,-2.6864548,-2.8472233,-2.8586335,-2.2635214,-2.2592597,-2.8982272,-1.8720139,-2.5831516,-2.4232063,-2.5475626,-1.7448446,-2.1278121,-2.5986655,-2.6382446,-2.5594032,-3.130023,-2.806706,-2.007729,-2.0792181,-1.5737633,-2.5547895,-1.6937373,-1.7698964,-2.2081518,-2.290664,-2.4830241,-2.1740894,-2.492105,-2.0538101,-2.069414,-3.0639715,-2.4603615,-1.6746339,-2.5355604,-2.4991498,-2.350727,-2.1675982,-2.4607697,-1.832001,-1.7045215,-3.0826538,-3.0558772,-2.4683797,-2.9757426,-1.8778931,-2.5972838,-1.931718,-2.443265,-2.4455192,-2.2784412,-1.734375,-2.342708,-2.1832497,-2.314151],"x":[-382.58102,-453.985,-370.1873,-156.36864,-33.12468,-478.15656,-108.13722,-473.1318,-110.3122,-50.91874,-56.425117,-317.86877,-45.049873,-211.58984,-325.092,-134.94725,-472.93427,-382.70145,-314.86606,-461.42996,-241.56685,-465.67676,-99.73071,-205.29031,-49.75727,-33.130646,-243.09827,-68.48799,-183.66559,-485.5938,-416.40036,-70.26348,-181.75482,-481.15173,-417.48618,-82.134926,-2.0840752,-102.749,-159.65102,-479.27686,-179.43497,-183.67986,-387.69415,-451.334,-90.02397,-377.8709,-165.26167,-2.856612,-43.971603,-443.03503,-385.5154,-364.75064,-427.06277,-266.64636,-419.05634,-133.34276,-178.17067,-406.48474,-265.2466,-477.33997,-112.7009,-98.96994,-424.70688,-155.21036,-455.90332,-350.31982,-184.78854,-19.71973,-311.37054,-261.67126,-477.7776,-188.95454,-267.04706,-429.12906,-165.68811,-361.36465,-141.05704,-163.60599,-290.17462,-329.71594,-45.739708,-400.84305,-478.70425,-142.49403,-13.526996,-196.83618,-94.67609,-174.44157,-232.38947,-467.5839,-412.13107,-163.28616,-387.07343,-377.9045,-255.2096,-338.70578,-160.85413,-187.51581,-463.99838,-149.8779,-418.6272,-399.25504,-360.41953,-373.63483,-32.1527,-369.01727,-124.45961,-39.02431,-335.4739,-317.98648,-34.549328,-318.8208,-124.404915,-436.25598,-478.68707,-185.90366,-324.96936,-325.24966,-449.88953,-373.53302,-493.82278,-115.74157,-148.2316,-266.42212,-391.96872,-129.50673,-235.13426,-124.4138,-321.00616,-436.6454,-324.55933,-248.31865,-96.9407,-354.462,-443.7362,-357.7827,-450.63596,-230.66779,-152.03615,-38.350105,-226.84534,-122.69913,-295.92502,-371.94373,-404.74408,-344.93555,-206.54695,-417.12198,-5.0939956,-304.33252,-354.3894,-10.158961,-149.3186,-210.45961,-49.72449,-202.74556,-191.83391,-72.09718,-55.798225,-192.22984,-231.8989,-347.70303,-301.0096,-413.00372,-496.21933,-314.67615,-227.33368,-109.30086,-363.64578,-163.94437,-473.36978,-172.0087,-465.92493,-159.84317,-307.52255,-295.49133,-309.04138,-404.10748,-26.805065,-307.3927,-188.46252,-172.3038,-295.33823,-246.7878,-205.10158,-404.71594,-284.00494,-271.36774,-450.1876,-21.137005,-195.992,-72.1629,-378.22565,-136.79637,-236.75262,-244.89027,-406.0489,-132.11536,-18.34068,-310.20398,-472.40863,-452.99725,-352.4216,-32.485706,-147.12286,-443.07162,-76.52269,-220.24915,-271.44623,-147.01373,-323.42752,-138.84035,-442.57095,-386.50662,-113.688576,-390.50275,-24.265461,-431.4133,-31.622812,-303.97415,-379.44403,-285.65952,-354.3366,-186.40817,-71.74281,-243.12743,-330.20145,-219.30319,-243.74602,-270.53235,-165.15387,-466.16714,-383.05118,-422.98605,-246.35301,-79.22657,-407.15585,-108.690636,-315.81284,-68.89196,-311.6356,-129.14421,-404.8305,-368.4573,-180.7236,-483.94257,-282.02902,-59.004692,-385.61942,-190.03183,-292.96808,-384.57104,-52.037537,-94.69034,-479.26724,-442.35828,-255.09984,-186.57071,-208.43517,-369.64743,-472.7468,-205.54065,-456.96893,-111.71061,-436.2732,-250.0077,-161.34846,-375.1031,-119.30599,-87.001854,-36.643707,-13.875613,-394.55423,-65.08665,-113.71975,-29.18858,-139.86209,-249.8994,-28.06648,-63.397778,-170.2158,-470.82193,-440.85724,-23.59057,-180.55632,-350.9938,-93.296875,-358.57953,-376.8152,-315.76895,-282.36072,-62.71216,-496.84814,-117.030136,-122.286415,-109.97425,-487.01834,-80.244064,-113.11218,-393.92053,-480.96915,-490.1572,-32.95862,-395.8148,-249.5634,-14.084322,-102.15097,-289.19055,-417.37772,-65.746124,-192.16542,-493.21167,-365.166,-176.8927,-254.61334,-88.67864,-361.192,-76.369644,-379.1596,-366.28992,-352.72476,-381.58112,-394.88132,-446.12186,-204.1409,-183.64449,-183.28197,-336.4491,-3.1343544,-28.029985,-397.44104,-309.87094,-70.43411,-275.93097,-411.31824,-113.60964,-298.3373,-350.31912,-311.57294,-176.76843,-221.37338,-282.47382,-355.09946,-81.62011,-438.87616,-451.21307,-253.53471,-492.22424,-398.07053,-205.26505,-132.07422,-156.25604,-109.79901,-177.50514,-181.84158,-372.57797,-417.60437,-94.3821,-60.398056,-11.245272,-43.527504,-67.28016,-77.49836,-335.1357,-290.79825,-11.242692,-481.16803,-420.5574,-150.83371,-464.51337,-21.887434,-175.24553,-330.5247,-445.97754,-250.18954,-463.56396,-370.73273,-95.17048,-439.73233,-415.9564,-382.5209,-197.0682,-173.53879,-166.32732,-288.54297,-368.43713,-441.50797,-369.11996,-324.95734,-174.08273,-301.83606,-51.549316,-424.61166,-415.21036,-376.91632,-376.3476,-191.95967,-446.5958,-256.1238,-393.5418,-118.57237,-429.62027,-323.50983,-3.4125307,-285.06732,-245.23393,-347.4598,-356.063,-474.128,-253.57327,-377.10754,-292.2102,-408.6203,-415.15118,-441.49985,-24.627499,-480.8501,-150.26544,-488.29733,-319.6289,-443.23685,-94.06082,-185.2051,-30.52349,-283.6614,-14.786661,-405.75073,-310.8587,-93.04877,-191.23833,-17.34785,-394.06082,-247.49287,-138.9002,-254.85318,-214.89299,-161.44356,-213.64484,-183.60306,-489.53787,-151.20163,-367.29623,-381.49847,-488.72443,-148.94121,-370.58057,-489.43793,-436.94562,-331.11377,-251.40778,-294.8375,-88.115204,-379.4408,-281.4933,-473.97183,-481.34222,-79.77745,-214.06055,-408.70862,-434.2352,-484.92578,-50.85957,-131.2841,-74.246925,-164.16968,-21.1294,-484.55215,-266.1155,-496.97205,-14.937048,-499.02292,-499.4263,-137.62892,-194.18341,-239.21075,-150.25731,-243.65326,-313.95798,-209.61487,-116.2285,-64.383575,-323.46585,-254.54166,-435.62814,-175.38008,-430.35873,-234.28902,-309.66705,-437.55066,-337.62662,-69.49465,-117.64513,-111.63077,-350.60706,-494.3099,-147.2794,-107.36015,-330.79138,-342.6873,-226.55183,-61.725494,-78.15504,-136.01395,-34.83269,-381.0242,-237.73589,-251.7592,-420.58932,-443.55435,-128.93257,-147.10757,-311.68982,-489.69202,-156.1894,-393.9786,-403.90247,-400.84753,-304.2896,-387.24118,-98.20555,-6.396104,-370.45328,-493.85333,-36.169075,-67.65252,-387.5734,-316.40637,-433.32837,-363.98505,-440.90903,-11.173455,-307.64133,-81.4089,-164.04099,-90.54546,-352.30817,-9.944379,-333.7404,-120.092545,-69.287315,-56.418007,-406.43137,-356.17294,-158.74475,-129.73277,-118.520355,-176.35246,-99.08152,-96.3821,-4.9153256,-172.75356,-348.41525,-429.68298,-300.45728,-34.439518,-51.578346,-313.06873,-254.94562,-406.95035,-422.86765,-165.50464,-392.2562,-422.20935,-400.0083,-38.79129,-186.52219,-199.94437,-367.56705,-373.53104,-141.64474,-222.95886,-418.72153,-271.1503,-478.30774,-72.143906,-49.92815,-136.72583,-447.8129,-334.09082,-148.88313,-141.82314,-389.79657,-141.2696,-68.0404,-291.27313,-441.0963,-374.4191,-226.253,-270.9015,-156.44191,-77.44269,-299.517,-155.7594,-257.2886,-119.55141,-104.8184,-186.2878,-180.62138,-175.65132,-43.640697,-418.42905,-157.8486,-439.16577,-88.32668,-211.09404,-97.80134,-179.72917,-374.53906,-216.66528,-114.02015,-153.32983,-112.23493,-240.71059,-111.53429,-261.95575,-382.92004,-383.6233,-360.36783,-432.45956,-99.31808,-192.83301,-474.24252,-64.535904,-268.533,-17.896107,-73.179344,-214.00386,-364.4416,-291.77875,-66.587524,-377.7293,-382.72943,-241.74054,-126.86272,-308.8105,-295.7907,-248.9352,-109.1279,-164.88496,-136.1191,-308.88535,-467.27893,-57.03988,-330.18866,-203.06422,-398.59354,-377.04855,-145.14798,-227.6278,-485.98688,-276.09775,-316.49188,-281.87476,-330.638,-207.07635,-249.23323,-170.86005,-343.22482,-143.00159,-294.23767,-179.50803,-167.39374,-449.08505,-274.34155,-176.60292,-78.24866,-215.16193,-356.87262,-113.88727,-420.30035,-116.57022,-306.5324,-396.1087,-85.99847,-310.7269,-133.14613,-390.82385,-486.6599,-428.50085,-34.442535,-433.07404,-346.78387,-50.368134,-33.085747,-480.30127,-242.93777,-252.04764,-202.83514,-437.26523,-455.9097,-291.11542,-223.53232,-159.1829,-310.71097,-372.47562,-83.95112,-36.43643,-425.3651,-463.78827,-300.41882,-318.82254,-374.79184,-216.46274,-187.0097,-10.869782,-81.728775,-92.6888,-474.678,-405.29175,-352.1541,-438.97958,-314.80997,-41.82379,-456.20947,-3.9133866,-372.259,-250.88295,-163.21904,-157.72014,-65.659904,-439.78073,-250.07857,-482.74478,-74.9899,-159.1179,-212.59679,-185.19493,-299.80328,-363.65088,-353.453,-360.2148,-79.359474,-196.58937,-369.44516,-135.30751,-227.23183,-200.14964,-450.85275,-450.64816,-167.00868,-329.1778,-410.7969,-56.632954,-31.179823,-216.59305,-89.06491,-296.3779,-174.19986,-427.5304,-190.15053,-475.95428,-267.1129,-303.1928,-404.3672,-236.30121,-194.09386,-140.72934,-245.13132,-380.369,-123.9835,-269.18518,-443.04852,-424.545,-348.30215,-498.9776,-174.70154,-370.40817,-190.99461,-100.864944,-485.17365,-167.26418,-478.47043,-396.3386,-484.62402,-371.98563,-6.9984574,-318.61087,-157.28175,-34.231483,-191.15268,-198.26791,-447.3949,-412.23474,-325.00882,-254.95685,-263.71594,-434.92343,-144.17694,-262.68478,-491.54187,-283.4122,-407.79056,-161.69356,-244.53043,-184.10886,-168.89478,-332.09805,-254.07172,-44.881897,-154.20741,-10.579673,-287.01718,-434.72122,-428.0522,-478.40143,-85.84328,-321.67972,-77.38029,-27.440899,-21.172134,-88.94206,-405.35233,-76.03729,-153.14178,-188.17487,-76.580666,-218.24959,-295.89563,-271.37747,-119.11567,-163.17946,-341.70676,-399.78268,-202.39983,-216.80244,-180.94823,-123.22878,-119.46105,-200.24109,-2.5312085,-316.88718,-494.571,-109.21455,-99.68035,-38.46594,-496.09158,-286.66537,-2.4083304,-13.050253,-163.06436,-378.91837,-469.75537,-295.61063,-306.64954,-95.57354,-42.585953,-389.58762,-434.71606,-319.56473,-226.75864,-144.97726,-491.27243,-322.35886,-36.40577,-407.79294,-110.78282,-150.88301,-386.08502,-138.25098,-312.4387,-77.73495,-261.17578,-43.375656,-333.91,-413.9065,-206.13054,-332.45868,-249.94328,-101.43338,-16.273811,-463.01114,-34.499405,-357.06122,-302.12857,-235.87099,-19.446777,-355.8381,-122.4495,-5.5473747,-202.84967,-475.49356,-300.4643,-432.82043,-93.59453,-6.60282,-6.942622,-191.01419,-439.59058,-19.888248,-412.8073,-148.84984,-404.38928,-154.79604,-134.40796,-12.725236,-129.68362,-499.34677,-48.543316,-483.98364,-61.397633,-314.95047,-309.2152,-82.96729,-450.76205,-194.602,-128.26138,-28.209042,-467.84512,-46.7587,-298.18777,-302.2065,-206.66316,-37.66016,-156.53677,-450.6768,-107.59596,-124.69198,-458.02267,-58.834587,-121.33443,-26.56536,-46.035046,-79.074486,-75.19592,-477.9166,-473.54575,-347.03436,-39.374466,-63.68421,-332.46738,-38.076435,-259.8383,-319.04254,-64.7558,-184.62593,-424.84537,-497.58997,-167.74406,-421.48846,-350.02805,-411.97757,-294.24298,-309.2456,-79.688286,-342.28506,-104.98156,-95.0372,-429.7668,-420.8928,-356.95413,-254.19705,-311.98172,-315.74298,-134.92123,-382.83734,-158.73952,-166.09137,-85.89273,-74.951385,-399.88614,-497.68164,-121.777824,-230.45271,-423.67587,-162.0388,-164.86809,-1.2043967,-400.77518,-52.7974,-45.16697,-131.24756,-235.31734,-230.0708,-284.165,-248.37251,-112.3435,-253.72838,-310.11823,-427.81378,-51.58813,-145.57954,-483.02625,-252.84464,-144.42986,-355.749,-5.1950507,-55.36181,-364.61752,-490.83575,-151.40356,-290.8878,-115.592186,-471.79526,-94.14759,-477.9854,-279.71704,-427.68787,-51.219242,-211.88823,-91.21756,-317.33234],"y":[-266.20724,-183.75467,-327.63834,-477.7875,-121.32875,-211.6068,-407.84482,-364.87292,-31.189417,-200.7192,-482.3504,-222.26378,-495.33676,-236.6016,-307.31335,-109.06491,-290.37338,-366.7567,-203.30852,-267.08542,-104.793686,-264.8958,-439.11548,-26.358318,-93.47796,-269.46194,-449.96265,-347.8321,-475.7435,-393.82025,-358.7452,-312.8777,-430.36713,-270.18668,-144.20929,-32.766045,-245.23283,-162.34486,-120.45714,-214.04707,-217.61589,-89.17504,-341.3877,-409.5922,-28.048815,-116.16392,-8.267159,-84.61579,-137.11386,-21.514349,-294.43118,-86.249214,-397.0943,-145.97076,-315.98538,-399.07565,-99.88682,-285.6773,-285.14948,-83.76623,-42.103184,-129.88791,-135.53645,-18.396353,-497.17813,-92.57076,-492.80533,-427.00897,-305.55225,-381.30984,-39.38505,-287.91797,-87.02335,-160.45973,-297.04092,-244.31819,-39.209675,-287.88895,-214.22018,-87.56575,-117.40973,-338.27942,-361.7471,-498.3092,-144.75522,-152.72891,-346.71378,-253.57616,-61.705513,-494.7676,-434.08868,-258.6642,-443.82504,-321.52066,-225.85977,-179.80751,-18.581957,-222.4396,-8.6555805,-336.6396,-174.38826,-466.9538,-67.62979,-315.3254,-154.13348,-382.86923,-133.5832,-427.2592,-453.91403,-306.1411,-178.44244,-8.13923,-246.13857,-274.4144,-125.180664,-444.61395,-44.726627,-20.677427,-379.86972,-497.61874,-227.71533,-86.10546,-62.82911,-253.9703,-321.9644,-151.29959,-488.181,-112.444244,-189.73451,-57.77997,-72.83062,-494.59058,-475.58398,-434.93338,-300.1179,-348.00742,-52.44879,-215.74359,-40.33233,-132.76717,-431.29135,-207.28735,-50.315693,-430.94864,-153.56505,-404.44736,-354.38223,-95.539024,-311.5053,-17.566843,-76.58344,-99.919014,-193.4988,-250.93251,-55.43883,-299.5287,-383.1301,-172.26707,-289.66104,-347.1756,-157.36757,-470.46918,-91.54261,-300.2544,-8.984881,-271.65063,-135.43597,-394.1761,-68.9626,-231.45413,-92.78938,-471.99048,-58.822445,-417.68732,-487.85785,-177.66977,-275.76852,-152.85094,-43.26462,-34.1061,-376.33124,-423.3383,-405.35733,-137.71228,-98.931816,-67.98433,-247.05884,-86.10945,-347.28595,-374.05707,-113.71372,-418.30597,-162.31143,-97.31937,-331.53696,-86.10666,-399.63397,-39.444798,-359.292,-222.70131,-208.86998,-120.96144,-48.38349,-319.53253,-448.67633,-307.39938,-151.55336,-388.5604,-332.09332,-321.55405,-198.0728,-1.1028817,-310.49664,-284.43558,-19.105495,-175.95744,-165.45697,-51.421608,-402.51044,-395.04672,-235.82048,-319.79416,-221.23662,-0.8109993,-396.02087,-16.504946,-99.29818,-442.7804,-54.852947,-446.18054,-436.96722,-241.2889,-485.29987,-419.18683,-423.56958,-123.90058,-237.98251,-337.16034,-105.76187,-299.76743,-483.56262,-212.9277,-240.18608,-391.88547,-24.682182,-59.575577,-297.98703,-166.37428,-222.04453,-286.4671,-114.985985,-324.8967,-148.21509,-312.48672,-437.40457,-104.09647,-237.04074,-20.371393,-35.305145,-292.85483,-230.81773,-338.7751,-272.36072,-466.16602,-135.38432,-271.77798,-21.939123,-234.42181,-58.655144,-169.42744,-251.08247,-478.30762,-311.8222,-319.82504,-167.29767,-144.87784,-230.22797,-28.856865,-41.113747,-93.47268,-202.1766,-19.099937,-481.40576,-199.45015,-46.434715,-140.78305,-403.2465,-214.82347,-452.25528,-310.27783,-439.828,-342.73312,-157.2094,-32.015736,-195.02872,-46.180607,-189.0287,-247.69641,-387.4961,-350.89578,-248.0599,-153.29753,-68.96264,-70.97909,-386.764,-32.9392,-406.66925,-97.46532,-0.51172787,-194.52235,-176.94025,-134.81696,-205.48535,-128.10365,-391.7237,-6.447992,-433.51413,-246.24588,-468.83777,-136.70285,-86.04108,-146.1725,-236.36288,-463.80453,-471.0363,-169.3672,-182.01749,-205.05411,-222.53651,-346.05893,-76.74735,-358.03473,-153.19415,-163.31775,-306.03552,-415.4312,-416.90128,-457.18457,-219.9147,-490.77676,-451.79657,-441.0274,-116.67219,-245.16605,-295.57758,-431.63733,-229.07294,-338.9678,-459.9317,-214.60152,-68.186104,-282.3878,-205.63994,-154.39197,-67.38494,-312.13727,-359.99936,-430.95285,-22.803,-315.219,-188.84766,-478.21896,-290.9253,-421.0812,-144.25417,-111.96523,-421.95255,-63.00889,-279.2532,-51.982975,-187.11661,-262.86377,-313.60748,-136.91678,-22.599983,-432.0313,-438.28497,-384.00238,-448.62054,-7.3947873,-390.9062,-386.84293,-351.4875,-418.18344,-450.27026,-185.3502,-254.67738,-481.27722,-417.84415,-78.72223,-171.52138,-231.27277,-474.94757,-4.99816,-43.59116,-287.10986,-267.92853,-375.3126,-114.42914,-227.42447,-246.70166,-211.40442,-22.623844,-124.30164,-25.667297,-196.7171,-481.26254,-106.59535,-147.03369,-438.29822,-169.10419,-27.076706,-359.87677,-27.26276,-483.16245,-91.8964,-184.3109,-309.54498,-114.646614,-137.1594,-112.871155,-187.91327,-273.92755,-315.5722,-164.15027,-201.95795,-460.7499,-264.838,-393.93887,-111.87686,-455.50427,-110.563835,-496.87637,-315.20923,-445.61023,-89.409996,-129.95709,-430.06714,-431.93723,-146.07375,-312.7831,-396.3411,-27.453323,-184.80647,-69.728806,-100.18993,-323.50467,-331.8519,-39.999496,-371.92932,-278.7015,-336.12027,-155.78992,-421.8391,-78.11782,-318.41537,-355.10803,-0.44544563,-199.48975,-433.81912,-106.398056,-269.34415,-367.9997,-204.25426,-41.921936,-137.07043,-77.48866,-287.27435,-401.87686,-256.9396,-25.569782,-48.843952,-150.73232,-57.393208,-410.9809,-335.24588,-25.875814,-219.36821,-223.22893,-83.323746,-353.61902,-326.02896,-383.95877,-133.0296,-187.40213,-20.106115,-425.6073,-18.399876,-341.3027,-276.32993,-244.82368,-75.69329,-345.67715,-416.73938,-93.74437,-292.02347,-270.73523,-324.32648,-360.8694,-412.4923,-419.9938,-34.17787,-179.4603,-396.26385,-395.4353,-291.54297,-117.690125,-186.43019,-312.99063,-19.540272,-158.32303,-69.42851,-96.62689,-27.782244,-2.7012928,-196.55687,-65.74102,-304.7363,-64.89045,-171.22235,-344.02222,-309.4467,-462.52518,-244.4397,-356.11142,-219.53952,-126.96448,-321.58743,-227.24046,-294.96536,-483.32288,-337.8343,-76.3974,-55.42684,-396.46216,-312.7378,-92.009026,-50.192577,-5.318441,-92.69268,-275.93896,-447.88443,-442.28168,-237.1554,-49.659958,-182.18039,-13.300632,-329.76175,-343.8635,-498.77594,-387.00107,-252.92657,-17.764658,-347.8045,-86.12621,-274.38858,-443.46884,-127.767334,-376.14536,-282.2454,-124.835106,-497.04034,-2.216799,-274.28613,-384.52124,-190.20259,-349.11963,-102.71989,-251.59628,-393.1964,-432.56158,-356.4434,-174.31358,-107.0676,-280.16425,-86.671486,-231.17793,-431.488,-350.6918,-403.5649,-400.3035,-216.92763,-127.644936,-48.00977,-178.05128,-141.72365,-35.271675,-92.04439,-97.215034,-84.214615,-357.4997,-96.00362,-206.05403,-60.40885,-397.61005,-87.667015,-324.1416,-495.37756,-369.76508,-116.959915,-485.9201,-79.182274,-342.65988,-405.6404,-436.37286,-171.84502,-433.27078,-230.46265,-277.29865,-481.52182,-399.7175,-92.33138,-84.794716,-87.86314,-48.7646,-17.543406,-255.7377,-135.36865,-363.83752,-256.89005,-81.85726,-236.48029,-291.75143,-43.07105,-293.56876,-395.25543,-223.27785,-436.17877,-222.88524,-313.55283,-191.21565,-143.2459,-231.89632,-8.53979,-484.89755,-197.97299,-491.7526,-170.65883,-389.60892,-251.01457,-144.00676,-440.06396,-263.24496,-186.73265,-345.62045,-426.05765,-29.08492,-200.77222,-470.42694,-196.4705,-116.89367,-331.14597,-427.76883,-443.12375,-322.1028,-406.24265,-98.37102,-49.190876,-321.01074,-498.1565,-76.403984,-3.757851,-3.9938202,-38.352,-489.35706,-34.68249,-48.678238,-459.32553,-204.22974,-19.838943,-67.34311,-410.20325,-311.16754,-91.65271,-478.88214,-4.442645,-385.16144,-97.597916,-391.13843,-390.27267,-224.08046,-16.455263,-376.58536,-235.30591,-98.93346,-359.5448,-185.53452,-361.6602,-384.08038,-102.53782,-136.34532,-180.5396,-366.38715,-492.42767,-392.13278,-100.361115,-95.26512,-346.49585,-482.86847,-272.3576,-358.41684,-368.21735,-297.59946,-295.94318,-316.76147,-170.77403,-328.52777,-492.0738,-293.3297,-443.46478,-367.99866,-108.15393,-333.65308,-330.07037,-476.08405,-260.90143,-437.55527,-182.64012,-418.68192,-15.527884,-67.03903,-448.11295,-101.7134,-245.88065,-120.447845,-122.44467,-447.52576,-100.30336,-410.58438,-130.6099,-293.48993,-384.18948,-173.86115,-335.448,-74.63709,-433.9874,-266.3423,-43.91727,-387.22903,-151.1971,-493.79892,-117.6028,-146.03064,-335.53616,-419.6666,-107.34514,-460.8822,-267.88748,-62.150738,-200.02162,-157.37904,-282.74103,-182.62059,-61.67643,-486.70154,-131.55049,-263.25522,-246.08528,-478.8551,-364.29175,-115.18377,-462.77655,-13.451155,-174.69693,-491.94702,-296.36395,-292.1677,-247.77252,-404.44095,-345.2188,-313.33954,-172.20667,-463.68774,-139.70294,-244.02077,-301.1251,-237.63881,-378.2866,-101.816,-439.8143,-151.04941,-330.47824,-206.98149,-368.2372,-391.78107,-241.30295,-255.1573,-8.412969,-490.61536,-170.09174,-330.42105,-20.504135,-129.66063,-141.15388,-468.5192,-427.4533,-113.228874,-115.368866,-365.49402,-59.880344,-10.17155,-224.56618,-260.7451,-142.97195,-446.60406,-251.17027,-343.69946,-477.56143,-451.5139,-488.0031,-193.29044,-217.17387,-118.212265,-412.20145,-399.99695,-31.840687,-373.16696,-420.42245,-202.6504,-338.05795,-479.6192,-77.509605,-123.90686,-60.763313,-21.678926,-150.56375,-261.71732,-289.73975,-97.168816,-67.344925,-411.57028,-460.762,-368.2878,-379.0127,-423.4034,-79.14163,-242.00154,-55.018337,-38.699047,-442.82263,-431.77567,-14.031023,-492.32086,-424.02737,-51.291077,-405.79657,-325.93185,-193.78334,-325.71722,-230.16498,-82.2809,-258.7777,-335.40424,-226.26,-217.13594,-267.0514,-49.261,-198.72882,-446.83804,-217.57375,-254.16592,-252.37045,-26.397997,-174.91586,-271.30438,-65.4156,-267.14172,-8.632212,-369.7765,-274.33487,-392.0629,-229.80086,-125.73147,-200.08223,-407.1881,-0.20464689,-192.09097,-413.34445,-485.59476,-132.45697,-203.16415,-411.01138,-221.13925,-347.63815,-189.77516,-233.06914,-321.3761,-419.53864,-189.27896,-113.45798,-173.47357,-36.39074,-108.8273,-165.81653,-17.06059,-123.473976,-57.55978,-389.14453,-247.73557,-282.31967,-143.57622,-408.13464,-21.291546,-228.97417,-486.02646,-388.70258,-114.12818,-370.21564,-481.86942,-78.89034,-340.35703,-481.12265,-448.61935,-376.2066,-56.209858,-203.09027,-38.845993,-149.6983,-492.64944,-464.33255,-256.16394,-294.7804,-322.8633,-159.46246,-426.358,-11.1756315,-70.80375,-4.479252,-237.49593,-431.64035,-341.76886,-331.13943,-363.48587,-74.132774,-24.64802,-381.96854,-124.52203,-237.18703,-470.243,-255.73407,-391.84756,-343.7918,-419.54736,-419.03058,-356.74765,-77.732,-310.10757,-210.33116,-127.60516,-103.788315,-306.2881,-379.19104,-78.394745,-434.28998,-239.1891,-138.77275,-112.17951,-488.5061,-120.34581,-241.29758,-274.0522,-80.166626,-2.666361,-147.43665,-346.9492,-295.83966,-405.9355,-266.48962,-427.28732,-223.85004,-177.25584,-268.3717,-178.03195,-412.4418,-188.61319,-214.213,-465.97662,-24.12019,-346.82855,-495.02884,-100.89091,-361.47165,-255.62468,-212.56818,-288.16513,-19.43442,-411.52582,-21.515108,-42.175537,-120.743904,-48.691044,-364.49536,-285.5786,-249.42694,-401.2371,-233.7311,-499.96146,-310.31894,-217.68196,-129.83284,-345.2041]} diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/test/fixtures/julia/negative_positive.json b/lib/node_modules/@stdlib/math/base/special/atan2f/test/fixtures/julia/negative_positive.json new file mode 100644 index 000000000000..df0e0c58cc62 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/test/fixtures/julia/negative_positive.json @@ -0,0 +1 @@ +{"expected":[2.3228722,2.369054,3.0190566,2.5383291,2.8455958,1.8888662,2.3397408,2.921883,2.1918023,1.8668288,1.6451277,2.9799228,3.0802696,2.010233,2.2949905,2.479708,2.312599,2.5176897,2.9142785,2.5847926,2.5876062,1.839616,2.1222787,2.893651,1.943566,2.2182374,2.4305646,2.1936846,2.4855616,1.773071,2.7739115,2.170358,1.7954651,2.5155823,2.9931128,2.8987586,2.6994424,1.7178177,2.6156213,2.401157,1.6204104,2.7482119,2.5055904,2.7085361,1.9581985,2.3232782,1.9881654,3.1036153,3.0925245,1.963245,1.6345769,1.787071,2.2368398,2.1746314,2.4513662,3.0206134,2.376423,2.0490766,2.2454913,2.538129,1.7094234,2.7087014,2.4383888,2.3786623,3.0773447,2.293496,2.4570668,3.011393,2.6834555,2.3943386,2.3231852,1.801612,2.304916,2.8623612,1.7016109,1.6330984,2.4322224,3.0440137,2.1300993,2.880877,2.414617,1.669407,2.4492304,3.057306,2.288239,2.623942,2.0457458,2.329395,2.990543,2.2227936,1.970934,1.9748164,2.5391214,3.0589285,2.9694512,2.4178677,2.3456569,2.229268,1.9884032,2.0091991,2.4934173,1.808845,2.9469497,2.339571,1.8981624,2.0444255,1.7555437,2.4102917,1.8855386,2.0541182,2.0248246,1.8311626,2.907506,2.5260103,2.613983,2.4974828,1.7691932,2.5162284,2.510961,3.0954306,2.3546827,2.2197862,1.6717987,3.0073094,3.1027749,1.5891283,1.7368752,2.435482,1.9787021,2.4030542,2.7449458,2.7937608,2.5868902,2.2873425,2.9874218,2.6128507,1.71404,2.7791562,3.0854418,3.1267405,2.7525055,2.4255495,1.5738434,2.7916207,1.7773108,1.6254722,2.9288528,2.2975025,2.4498334,2.9517045,2.6789458,3.0007563,2.2585282,2.0910282,2.0218654,2.2986064,2.8777797,2.5335548,2.2595713,2.65589,2.1095984,2.9062653,2.587311,2.976474,1.7535738,2.7363286,2.7232838,2.676423,1.7511594,2.1141558,3.1158166,2.477668,2.4996433,3.0149474,2.2227273,2.096294,2.6437047,2.6028068,2.5655932,3.0901587,2.931997,2.3861046,1.6447971,2.7836916,2.5178347,2.3806806,2.8353457,2.236443,1.9963033,2.779735,1.6042111,2.5453956,2.5212145,1.8978223,2.5815768,2.7009897,2.3995414,2.2048743,2.0732954,2.638485,1.9239894,2.23457,2.9690168,2.1536107,2.3091114,2.7620032,2.951978,2.600294,2.258277,2.8039615,1.797907,2.2665992,2.061635,2.2056773,1.6004932,2.1901846,2.2762542,1.884685,2.0734417,1.8403095,2.5816817,2.174767,2.6995978,2.1861238,2.9561048,2.1198282,1.7055823,2.4868736,3.0723078,2.96117,3.1296146,2.5233035,1.9047,2.287265,2.8074622,2.2667236,2.3291352,2.177294,2.2257545,2.6362574,2.3000643,2.8215108,1.6589099,2.1643858,2.2924464,2.0924263,2.531791,2.2297626,2.3469417,2.859155,2.3937755,2.270809,2.4840777,2.0937593,2.0127923,2.2970517,3.054672,2.0067391,2.0488324,2.3176534,2.9308589,1.9032574,1.610932,2.209589,1.7465484,1.6059805,2.7842553,2.1986933,2.8523858,2.260881,2.8149898,1.6789974,1.981288,2.7343528,2.3703394,2.9340942,2.2231581,2.439372,2.5610619,2.6717224,2.9135911,2.5235271,3.0941129,2.5355637,2.4372766,2.4741008,1.6689698,2.6735327,2.4748147,2.6687405,1.607233,1.6459488,2.1961484,1.7874227,2.250551,2.60752,2.0516949,2.2721977,3.0352051,2.9001424,1.7732832,2.3661954,1.7431227,1.9812967,2.564433,2.1866083,1.8706073,2.6469133,2.3421843,2.0487094,1.9060005,2.2096274,2.038495,2.8681726,2.7801604,2.9852276,2.3402877,1.6056929,2.234376,1.6519935,3.114088,1.9039226,2.6425662,1.830036,1.9028348,1.5718496,2.06652,2.3518836,2.4994352,2.4361143,2.2091208,2.256844,1.9633656,2.12749,1.9980546,3.0047038,2.2546535,2.1828449,2.5271766,2.8876948,2.3154376,2.8333025,1.9497252,2.0284166,2.1866167,3.1171496,2.551149,2.2789812,3.0708656,1.8805088,1.8388358,1.5723966,2.8211312,3.0404797,2.3429475,2.8341532,2.3885565,2.4229975,2.2629552,2.2765212,3.0332239,1.6985635,2.6517045,2.2934406,3.055665,1.5921028,2.35029,2.3822155,2.9912698,2.8790784,1.928089,2.6733623,2.4696703,3.005757,2.4018855,3.135747,2.7061079,2.333544,2.3244462,2.7265182,2.864578,1.6309186,2.0882287,1.872866,2.4966848,2.9901009,2.3581016,2.3886957,2.5893273,1.9078089,1.5907559,1.76314,2.274867,1.7158569,1.622313,2.4604347,2.2372737,2.1341105,2.3032625,2.4732344,3.0823781,2.4019666,2.0698028,1.8797349,2.2824721,1.8299519,2.500356,2.1672113,2.4607482,1.9997344,2.9547324,1.8239055,2.2002673,2.0045357,2.579217,2.464105,2.7156816,2.7613242,2.5858126,2.2567198,2.6246743,2.456222,1.8461504,2.4222176,2.5371928,1.6904718,2.6668174,2.5265484,3.0349426,2.831927,2.1083503,2.8453848,3.1047978,2.776633,2.458242,2.2277517,1.8484318,1.8453728,1.6927695,2.342179,2.2032835,2.250658,2.1532915,2.1179147,3.0215113,2.463865,2.068576,2.0441716,2.9653594,2.5532053,2.7969046,3.0795932,2.7014291,2.615016,2.9763741,2.7207167,2.0317702,2.789343,1.7049265,2.0311205,1.854539,3.0770783,2.6656487,2.1564403,1.7528296,2.4038286,3.0610833,2.3784463,2.2809494,2.1959267,1.9129205,1.8354683,2.2317295,1.9964696,1.8075281,2.7272718,2.2197926,3.1043699,2.783998,2.512097,1.7458404,2.8377132,2.78706,1.6922832,2.4920626,3.1003866,2.0646522,3.0636156,2.1641634,2.12473,2.2725668,2.3150666,2.4034083,2.8739753,2.4979835,2.172553,2.4157233,1.8237273,2.9508111,1.8772511,2.6069965,2.2111528,2.698441,2.8977675,2.7007756,2.4174094,2.8769033,2.321781,2.5800254,2.1837978,2.5796447,3.001382,1.7118188,2.4666061,2.201288,2.9534323,2.1641808,2.6589084,2.1492782,2.3969872,1.579549,1.9035035,2.6966083,2.44929,2.4373174,2.0490274,2.135076,1.782455,2.8850124,2.8913598,1.9218056,2.2957768,2.3854852,2.6747031,2.1481757,3.1168244,2.195623,2.1593282,2.9700212,2.9340522,2.491482,2.3533719,2.198925,2.536839,2.4119961,1.9267899,2.5297384,2.3022366,2.448709,2.2894247,2.4284146,1.7748237,2.8825693,2.239019,2.6258748,2.637007,1.6267496,3.0769587,2.426633,2.4003854,2.3908322,1.9562674,2.5171058,2.2499492,2.4443164,2.7236269,1.588093,1.6158998,2.1917837,2.5689564,2.3298478,1.8020176,2.7797692,1.7623367,2.5572662,2.3354068,1.8167025,2.5374553,2.2638886,2.0555909,1.5948981,2.6192584,2.5595305,2.1194534,2.2015817,1.7123975,2.8695462,2.2119699,2.4619346,1.6537356,3.079229,1.8171488,2.594427,2.334949,2.3348064,2.0127482,2.9931843,2.6596699,3.0226786,2.3841512,2.5845423,1.6004269,2.577525,2.803461,2.868357,2.603548,2.3901415,3.0991926,2.2867405,2.0510526,2.2131915,3.087172,2.636197,2.869376,2.539276,2.2925313,2.4727786,2.078516,2.3933322,1.691248,2.8121831,2.1651075,2.868386,2.1272454,2.8012598,3.019485,2.6606245,2.3793411,1.8046124,2.1226506,2.4446106,2.6692142,2.1052547,1.6214817,1.8693174,2.270153,1.6741062,1.7576753,2.2596116,1.9405084,2.3919058,2.3444884,2.1728053,2.33596,3.0594501,2.720496,2.373483,2.3559923,3.1285279,2.5660872,2.0860631,3.0521946,2.1005182,2.1842673,2.6134233,2.3189569,2.8079357,1.9904436,1.86087,2.7735574,1.9588464,2.7306526,2.8232791,2.376339,2.2943306,1.9017195,2.4729824,2.870963,1.9543946,1.7812468,1.7708728,2.1414554,1.8650557,2.446923,2.3642786,1.9178575,1.8088887,3.043286,2.2673798,2.3722196,2.3693376,2.1483757,3.1083977,2.1851897,2.5131505,1.8820014,2.0076914,2.1877527,2.7824948,2.9883375,2.3542693,1.8487247,2.4066577,1.8459454,2.7611532,3.0502205,1.9338809,2.9874203,3.0840244,2.7542815,2.1467795,2.8410664,2.4740267,3.0550096,1.9473687,2.1888292,2.1918745,2.3331614,2.4352763,2.8250093,2.4318466,2.3982906,2.702082,1.9526757,1.7490746,2.6560214,2.556994,2.3161886,2.592982,2.228525,2.7094426,1.9160726,1.6719197,1.7312433,1.8478268,2.018529,2.2250645,3.123806,2.5205314,2.0272222,1.9754939,2.832847,2.4990406,2.3984594,1.8286189,2.2427857,3.0586624,2.626635,2.8605218,2.2954988,1.7160343,2.5923567,2.3391688,2.7711608,2.2242475,3.063057,1.8386319,2.2671154,2.9352257,3.0242462,2.2598722,2.6239705,2.74205,2.148391,2.5727115,2.4640164,2.8428364,1.9773808,2.3722117,2.903619,2.440356,2.1385288,1.6777931,1.7735887,2.6354313,2.0262017,2.3861742,2.0565147,2.5182192,2.0571032,2.1747797,2.5339184,2.9376476,2.7643862,2.7205207,2.9497035,3.0899897,2.5101938,2.2775116,1.9536113,1.7009774,2.1734176,1.9861826,2.3221018,3.0608466,2.814473,3.116411,2.1188767,2.4768639,2.133974,2.3027015,2.2874477,2.5233135,1.9940643,1.7637118,2.554044,2.4911382,1.9262625,1.6532509,2.6350772,1.6470436,2.6817112,2.1819906,1.8277863,1.8717159,2.942852,2.4164872,2.5101314,1.6251445,2.0707488,1.9310083,3.0125027,2.376248,2.3808362,2.357248,2.9142942,1.7523913,2.8371596,2.3841891,1.6207597,2.1278558,2.4578285,3.1373932,2.3058841,2.3459985,1.6078851,1.8106658,1.5902528,2.1117833,2.0389404,1.9955679,2.5317986,2.4077399,2.771876,2.4564984,2.7228801,2.6136992,3.1151605,1.9823704,1.8308074,1.8943601,2.302917,3.106721,2.6942606,1.918455,2.8037465,2.1535494,2.4583335,2.3979008,2.4652867,2.7602205,2.2228193,1.9106994,2.331359,2.1867986,2.9499016,1.9110273,1.8657632,3.0969882,1.5824487,2.021563,2.8947222,2.0578542,3.1333413,2.8523326,1.9372998,1.607427,2.4327712,2.220796,1.9522486,1.8827153,3.1269488,1.7857841,1.6808527,2.3351068,2.6841972,2.3143618,1.7376356,1.5735233,3.030943,2.27541,2.0477443,2.2761662,2.5879126,2.407215,2.612226,1.9977915,2.7877145,2.6419077,2.205635,2.2826555,1.6984787,2.9471602,1.8622048,1.7375611,1.5911028,2.311202,2.4496,3.109132,2.9537745,2.6460114,2.732323,2.630642,2.9324925,1.8790082,2.942624,1.9576019,3.1195772,1.8112494,2.4411383,2.5883834,2.3626065,1.663156,2.2553847,2.878954,2.7661228,2.8463428,2.2558463,2.7272718,2.5877461,3.057996,2.9360847,2.2162259,2.4844656,2.8955784,2.9187467,1.7804794,2.5779817,2.8733659,2.223026,2.6357791,2.7155662,2.3215852,2.5180874,3.1151679,2.5375402,1.9891201,2.0569773,2.4399645,1.9255928,2.2108219,2.546415,2.7712812,1.8065597,1.9391187,1.7652678,3.0315342,2.6952796,3.112248,2.9200356,2.0335221,2.333564,1.9128698,2.758548,2.0260482,2.450921,2.2210963,2.298396,1.7792374,2.5728526,1.9325972,2.6226366,2.0373597,1.7953914,2.4972005,2.671516,1.8305873,1.9384812,2.236518,1.6725643,2.01578,2.138967,1.8103163,2.7533011,2.203608,2.0197334,2.4008656,2.5501509,2.0154285,2.5565717,2.6576974,2.235053,2.4680808,3.01099,2.4402356,2.2176483,2.4438965,1.7496929,1.8339111,2.4816308,2.6813245,2.3594344,2.4356594,2.1952586,1.8991467,2.7288196,2.3133173,1.7105871,2.236936,2.2636266,2.1281402],"x":[-340.49817,-423.62994,-307.42484,-180.59093,-291.85052,-104.27287,-123.64824,-443.40262,-351.14072,-125.27498,-13.141507,-170.01038,-252.76515,-83.12976,-53.162216,-450.38446,-267.60022,-495.98892,-453.81097,-346.68646,-474.37762,-131.37152,-85.038345,-315.40643,-58.941498,-245.61687,-442.25778,-42.74915,-302.65323,-88.21944,-170.90927,-263.14447,-109.745316,-484.48126,-55.16521,-282.36157,-196.15147,-53.185265,-294.23297,-392.12393,-21.841614,-345.6736,-270.4697,-388.7222,-186.59912,-218.12285,-211.41003,-187.73701,-466.71204,-117.65488,-29.37636,-77.41194,-322.23654,-97.51942,-463.87213,-364.70056,-207.61658,-173.87819,-294.95004,-173.62933,-53.695602,-436.81866,-120.28103,-196.73207,-473.90152,-435.51685,-439.22934,-269.47458,-251.8159,-393.56375,-249.91112,-87.303566,-413.27072,-247.30687,-20.665977,-13.928885,-407.68634,-339.31842,-216.46056,-342.07654,-397.98254,-37.087357,-401.9822,-391.6456,-353.50504,-417.4443,-99.718185,-84.98379,-181.86801,-298.66034,-185.41371,-169.21255,-371.97397,-483.18652,-457.79358,-412.76443,-382.334,-165.91528,-105.11946,-139.83339,-453.58838,-102.4766,-169.97107,-252.9606,-134.39801,-239.89578,-70.867325,-197.75981,-159.97346,-74.92641,-151.20764,-130.51572,-473.9947,-444.66306,-494.56915,-167.46745,-19.47929,-157.17052,-408.3457,-414.46265,-410.40436,-297.03534,-23.872375,-384.25726,-63.09684,-1.4506973,-59.535374,-293.34378,-176.9902,-423.27496,-246.76743,-431.2376,-484.94067,-242.98946,-434.70853,-443.20068,-21.015581,-256.0669,-479.34915,-203.16937,-209.35448,-330.73483,-0.71379733,-471.97873,-57.475872,-24.818005,-221.90683,-142.69778,-289.63766,-235.58385,-382.08328,-491.5903,-378.36237,-211.65479,-50.807163,-57.30011,-446.57855,-391.03925,-324.8274,-172.76926,-226.48172,-429.17377,-291.47482,-301.67398,-70.65888,-349.45792,-483.3295,-229.2209,-56.667435,-161.35406,-459.45312,-498.13022,-413.00317,-361.61588,-301.61093,-127.10257,-106.465904,-491.86646,-266.88177,-411.9778,-407.65506,-461.41098,-15.201076,-299.6226,-228.61864,-430.3788,-415.5678,-347.5475,-56.764004,-492.9403,-15.749766,-329.24948,-451.85263,-100.995636,-202.71246,-252.73022,-257.44168,-366.2071,-178.76108,-299.3014,-150.85823,-289.3326,-446.9264,-277.9815,-384.00922,-286.3769,-237.23828,-180.2538,-379.9209,-403.8624,-41.27314,-237.01695,-177.84146,-284.86975,-7.3847094,-244.4932,-369.41806,-95.22008,-213.25038,-97.32304,-278.4155,-315.04266,-380.09326,-190.85066,-290.66922,-261.35995,-57.5829,-469.293,-239.75673,-451.1272,-462.11893,-97.50977,-78.5053,-349.1913,-498.45618,-377.812,-43.421635,-78.48365,-104.83914,-452.2043,-359.5285,-331.90573,-27.921381,-204.58597,-235.73833,-270.08783,-287.64072,-285.64752,-304.01535,-445.02,-183.62607,-374.1673,-119.63113,-279.2062,-229.40048,-331.76285,-440.271,-123.18834,-258.24695,-277.40842,-385.13913,-50.395615,-18.038277,-84.791504,-52.67203,-0.6115206,-448.85367,-252.46048,-455.2012,-265.3535,-272.70154,-43.858406,-198.48363,-323.89584,-338.0626,-351.98718,-193.37508,-445.0628,-297.19772,-465.85202,-24.656925,-476.80573,-372.38135,-345.27765,-113.39579,-259.4103,-47.113125,-262.2279,-416.50546,-460.22964,-9.947977,-4.942309,-356.85196,-73.536224,-342.82947,-422.94147,-250.11151,-360.589,-374.08517,-335.98648,-79.44246,-268.64545,-82.25679,-173.76555,-303.33212,-20.55596,-110.34108,-308.2967,-418.44504,-253.41478,-40.725216,-312.09665,-109.450226,-440.46887,-334.08008,-150.72191,-287.73227,-16.003424,-111.034294,-39.034817,-339.80624,-70.637245,-428.9551,-87.95275,-38.56244,-0.48226172,-238.75648,-310.69186,-488.72922,-343.4529,-273.03104,-159.96616,-157.47363,-136.07425,-109.42765,-238.33186,-310.2278,-213.43794,-321.81042,-483.85068,-435.34247,-489.1327,-120.832825,-165.13092,-28.586973,-271.60022,-405.33414,-272.8306,-499.58304,-126.130325,-58.287407,-0.7972223,-363.4632,-90.250984,-350.94455,-383.77682,-250.58842,-241.40016,-212.77002,-393.12552,-288.01688,-61.633133,-370.74646,-394.6397,-231.0815,-9.8130045,-169.28287,-426.07892,-349.38235,-336.4051,-59.681557,-149.51445,-490.16898,-477.06235,-430.64157,-344.982,-406.41983,-206.20697,-292.97763,-303.38144,-375.28757,-24.556692,-120.51755,-90.3979,-201.86513,-467.58063,-361.29593,-337.04523,-396.62585,-71.86712,-9.106849,-29.098642,-269.76627,-29.46085,-18.749477,-222.91672,-183.59627,-173.43422,-154.44681,-475.52573,-490.34018,-374.01624,-227.69424,-96.79688,-318.32504,-55.229404,-23.874702,-293.8425,-331.61554,-115.92683,-420.79,-101.41845,-157.57588,-204.45113,-445.68903,-365.9027,-131.11926,-192.40515,-376.68768,-193.70203,-365.67932,-277.24786,-127.28901,-198.05266,-471.92462,-20.707186,-482.39737,-292.96185,-415.32425,-468.79337,-107.51017,-332.35416,-57.987766,-465.87704,-433.6807,-382.08838,-63.096138,-126.66906,-53.406124,-392.26898,-344.32483,-116.7531,-291.98755,-239.07144,-158.1242,-103.64775,-267.60532,-115.470665,-271.55667,-202.01343,-394.28036,-224.00352,-171.69673,-395.66675,-499.35815,-302.3416,-239.7044,-302.20004,-29.26499,-184.2549,-100.53393,-490.4789,-441.83478,-315.73145,-78.38015,-427.36307,-496.18594,-441.44946,-313.2788,-245.88474,-40.489227,-62.44969,-355.9589,-189.26755,-74.0634,-414.78403,-371.45227,-481.97214,-477.58698,-470.9062,-61.90639,-486.71973,-271.1709,-41.293144,-327.98996,-210.46773,-198.88759,-457.90057,-296.77582,-139.74927,-411.52005,-456.34653,-222.92061,-465.5381,-262.7968,-322.63214,-326.59445,-28.86796,-384.65616,-60.98898,-401.96674,-267.35608,-426.93054,-397.9213,-273.23395,-377.28214,-386.00705,-169.86806,-437.39673,-326.41135,-201.62958,-472.0223,-45.551624,-373.72723,-248.40929,-474.15216,-306.48236,-210.38527,-271.97913,-441.6745,-3.0979986,-164.59885,-475.76172,-335.26877,-157.26923,-172.93954,-247.91739,-60.09442,-333.1969,-454.57913,-136.63219,-312.62042,-349.8914,-263.50174,-325.0106,-475.147,-178.83295,-287.58023,-478.78836,-232.49066,-347.297,-346.8231,-230.93448,-359.54352,-352.3241,-69.05974,-407.73044,-443.12323,-440.0403,-332.95544,-414.00385,-93.87635,-187.6986,-367.22238,-481.99063,-107.45916,-11.130514,-165.76299,-425.7088,-450.90118,-207.22043,-180.90932,-472.72745,-230.15697,-263.72116,-380.12466,-4.184926,-10.759877,-355.9791,-357.56982,-409.04578,-24.299652,-441.7558,-57.67149,-471.48706,-180.91617,-117.46503,-437.03912,-172.28355,-45.331554,-4.6058583,-243.00273,-248.42668,-286.5506,-350.47598,-49.793346,-422.12338,-245.47404,-499.8131,-21.811611,-334.8518,-59.793056,-160.23425,-290.25415,-333.1811,-104.26499,-341.01083,-154.78954,-461.41833,-302.47812,-289.3032,-13.834596,-252.8495,-263.1037,-472.15048,-409.3555,-483.20892,-429.53333,-246.82732,-84.78414,-204.68791,-161.048,-227.76431,-415.6748,-197.60004,-372.35098,-324.30286,-192.46834,-450.31726,-23.330278,-145.07076,-221.53767,-405.80484,-57.08049,-350.09937,-411.98148,-303.9355,-320.78156,-27.181824,-116.79882,-414.226,-365.79276,-295.1857,-22.665596,-123.79485,-161.15416,-25.803331,-91.887985,-105.13411,-87.25422,-284.50812,-404.999,-305.456,-231.70311,-496.3504,-471.46124,-227.69514,-199.96698,-481.74146,-354.48685,-171.33482,-484.5538,-118.957405,-229.33951,-442.36905,-264.47803,-305.5278,-115.91223,-102.06327,-191.53082,-76.37411,-98.9403,-487.5853,-177.81372,-294.56293,-157.77956,-486.1814,-498.76077,-192.68878,-54.21119,-14.439922,-317.10248,-149.23653,-351.2933,-162.16534,-174.91502,-49.483803,-392.09552,-346.26364,-263.19702,-483.55463,-158.50922,-303.82278,-345.09006,-492.5921,-156.18634,-124.81737,-222.0852,-439.3817,-335.0629,-365.3706,-109.6017,-274.85767,-72.93541,-466.87274,-347.75687,-145.9482,-343.78952,-410.34955,-167.20679,-117.77978,-479.6222,-494.60114,-459.41534,-92.40702,-75.48252,-280.98773,-194.00981,-352.91074,-298.0297,-245.35733,-411.09036,-422.2973,-144.72803,-41.23897,-234.95511,-357.0903,-381.24536,-320.96802,-347.59705,-279.95477,-159.78818,-15.200247,-73.07692,-46.056595,-95.00744,-347.69534,-478.5981,-485.0146,-145.12218,-166.62596,-349.7335,-253.96405,-416.88947,-92.26945,-279.26022,-28.017864,-287.01633,-445.73376,-231.47589,-60.57109,-279.75357,-350.73602,-241.52937,-199.52206,-368.85306,-125.294495,-391.5967,-329.849,-204.80243,-241.268,-378.24783,-136.19058,-185.25357,-274.70377,-199.60277,-307.70242,-58.52041,-496.81766,-443.6842,-184.22752,-316.4224,-22.606268,-90.04429,-439.81372,-110.552895,-454.2076,-46.499847,-435.38736,-228.47609,-67.81351,-240.38506,-477.72745,-304.61047,-201.63698,-346.7161,-452.6277,-33.804203,-407.18878,-72.07314,-61.89763,-203.98373,-147.69148,-422.72952,-435.94263,-379.36783,-469.93423,-212.13837,-183.26183,-263.84653,-374.41254,-383.55963,-490.39676,-88.69417,-85.04926,-126.56488,-466.3984,-178.11151,-31.202803,-318.91135,-24.69664,-158.17259,-102.22595,-128.95943,-30.61561,-46.84391,-85.912926,-350.6235,-18.708832,-261.65988,-151.611,-421.2311,-361.90372,-379.169,-443.00558,-480.65695,-89.47715,-358.2009,-260.38293,-12.896293,-164.73756,-250.8559,-385.13214,-448.6926,-412.26624,-16.009491,-106.63105,-7.707878,-130.59253,-181.91711,-195.99055,-450.97803,-350.46872,-209.33553,-458.75925,-495.44388,-243.77934,-10.635101,-184.76823,-50.78629,-137.75882,-209.51743,-220.92899,-492.3133,-131.03886,-303.991,-56.344604,-417.82455,-262.61667,-285.2622,-277.85904,-209.95842,-51.884773,-456.6257,-197.82483,-308.18985,-86.563126,-27.569824,-433.25058,-3.4130318,-235.4141,-494.53992,-96.47716,-300.75232,-233.4808,-95.41255,-17.430094,-296.46802,-166.81535,-198.14435,-111.57623,-147.11324,-108.512505,-19.73236,-446.3476,-235.92575,-459.12634,-66.938225,-0.5568163,-350.71524,-201.68724,-109.105896,-398.4799,-198.76237,-297.43817,-198.46796,-220.2317,-273.34552,-462.17365,-309.90652,-295.94366,-51.94929,-450.7346,-108.55264,-83.931755,-5.4371457,-268.75754,-232.60423,-412.79498,-306.1174,-76.70635,-492.3751,-464.01813,-450.6446,-110.878944,-358.04312,-150.57573,-429.36902,-79.7067,-389.02927,-203.07716,-189.01054,-25.401926,-249.15701,-383.65598,-484.0037,-146.07327,-335.00247,-266.91653,-399.65015,-401.34918,-462.55554,-313.77917,-378.72183,-341.13605,-315.65314,-102.97806,-459.58347,-459.614,-249.56497,-336.24164,-106.2965,-448.3039,-411.9363,-396.54932,-413.71417,-181.1876,-230.92229,-143.3848,-66.67081,-279.37952,-378.8141,-191.79298,-36.160484,-123.72765,-56.348217,-342.77417,-446.18497,-349.57504,-444.84644,-218.58694,-352.8321,-93.094246,-172.30412,-64.83804,-385.93253,-189.3983,-119.81262,-37.52871,-445.87244,-149.86508,-382.51483,-177.8988,-34.045322,-452.16135,-300.14517,-71.76194,-142.79811,-319.56052,-23.332712,-88.17305,-167.17297,-102.9468,-499.21225,-297.51126,-238.0258,-252.09993,-497.4191,-124.32315,-158.48387,-434.40958,-278.87778,-472.0995,-297.66916,-203.70322,-32.567318,-296.14053,-59.911526,-43.052895,-331.6177,-294.65793,-396.52313,-497.20752,-240.96695,-114.199646,-332.41528,-332.7379,-31.06733,-288.0747,-274.8268,-256.2227],"y":[363.98184,412.87234,37.860336,124.41607,89.001396,316.6994,127.78567,99.01819,490.81165,410.74503,176.4706,27.727571,15.519782,176.83705,60.10317,350.90768,292.01227,357.02164,104.97192,215.81258,293.4517,476.8687,138.2407,79.84534,150.7251,324.81516,380.9245,59.51615,232.9718,430.1721,65.83389,384.99927,480.22937,350.2906,8.251654,69.94733,92.86005,359.14175,170.80754,358.35776,439.86844,143.4589,199.70079,179.71623,457.32678,232.97676,476.77084,7.1331763,22.91904,284.24524,459.9598,352.33514,410.05652,141.37726,383.0271,44.337692,199.38254,335.39584,368.72235,119.67116,384.85413,201.86491,101.97183,188.08464,30.489239,493.86432,358.48773,35.2851,124.1782,364.62918,266.9795,371.49832,457.98672,70.908424,157.07693,223.28078,349.97192,33.21581,345.79523,91.26189,353.9997,374.87885,333.37003,33.088875,405.13858,237.71227,193.92557,89.6654,27.681973,391.24402,438.3763,395.7818,255.83289,40.033466,79.59305,364.75162,390.47797,214.45534,236.91284,298.2597,343.51584,422.3234,33.50789,261.51382,395.77188,468.05286,379.21628,177.44263,491.37268,142.7604,309.8306,489.89865,113.02789,314.4928,288.19077,125.759964,96.89182,113.48317,298.12604,19.146013,411.64725,391.55133,235.55034,51.91166,2.4505086,79.126114,355.1744,250.16011,409.5634,385.35495,103.35765,156.35526,300.46634,278.98526,67.55546,258.93042,145.70718,97.09721,26.944185,3.0177479,85.83284,287.7696,234.25488,172.27063,274.34607,453.45886,47.93373,160.51436,239.9063,45.28014,190.56387,69.69525,460.55817,369.46405,104.89234,64.31122,120.62468,272.1642,394.55344,91.201546,378.85715,102.90292,180.42639,50.269688,382.2696,149.92172,214.86206,115.04686,310.77094,267.1401,11.84549,389.74347,308.75214,46.043346,395.1636,219.18593,57.87097,294.0282,173.33055,21.208319,86.71627,434.60303,205.04248,112.06138,164.51343,409.80203,131.40019,442.62704,125.25317,186.5903,471.16623,223.4183,322.83972,297.742,127.09498,119.16669,236.03749,497.98413,325.2852,164.71886,409.2165,369.9105,77.90363,421.69647,421.98618,114.24627,45.530838,108.36786,462.69217,141.7855,178.59601,283.80545,332.74622,386.72708,248.59631,342.9145,433.76154,293.3272,387.90958,352.3208,174.51794,456.59573,179.86768,269.99084,54.54256,427.21646,424.62717,360.26578,16.638117,82.28838,5.535559,69.36157,226.31021,400.98248,173.03726,452.28,45.837513,113.134735,136.49905,250.18225,402.33713,110.02016,316.05893,303.195,267.88705,469.94022,200.95267,368.83923,309.6941,129.14279,170.31824,444.21573,92.37087,484.31015,484.76373,373.5243,38.36536,264.44714,498.43323,299.66025,82.38498,145.95705,449.1904,114.17132,296.60297,17.373377,167.58676,347.79034,135.44475,321.45428,92.373146,403.75858,456.0579,139.71358,328.6317,74.10338,253.12935,376.56387,194.94019,236.56094,5.7213035,339.00543,17.693855,239.28583,96.35167,204.46199,478.35422,132.56346,327.7995,235.43468,272.89993,65.6399,494.2413,334.13443,424.1597,250.12799,479.3671,426.89066,39.948837,82.73811,386.95697,263.32507,472.59683,399.25345,197.50455,29.050035,356.9417,166.2995,430.3375,489.25455,116.90885,420.20285,216.70119,123.52663,126.295296,23.761608,297.0349,458.4091,142.01361,479.6841,9.348582,204.1411,233.7973,331.63727,111.838684,457.88702,441.51797,313.3822,365.52194,292.51776,367.99484,195.38736,380.31467,218.64478,240.33826,32.83031,380.6192,304.05463,227.04132,125.558304,472.35812,155.76097,303.46948,335.29895,40.39889,6.640054,271.65436,318.58685,35.393036,394.14426,212.22531,498.1489,120.63399,9.156779,360.36783,121.8517,234.87242,211.12506,256.66727,461.34885,31.334824,479.75864,197.69852,447.56058,19.905325,460.49417,171.2938,404.46255,52.91933,90.39724,159.86913,75.61571,389.8745,65.20356,392.98312,2.0166993,189.09746,215.76654,312.1973,133.69344,106.70357,407.95346,211.74734,290.10376,151.84305,71.38152,359.92056,315.8189,244.41127,205.11241,456.20273,149.41437,317.64444,201.66678,363.62747,180.69147,233.42375,274.60556,171.72807,375.46823,29.069191,341.254,417.77756,303.28867,369.0954,208.32043,17.8217,432.83,268.62823,253.48257,79.55702,392.0972,216.35976,441.4314,280.90186,294.3741,59.486343,76.90899,233.9556,236.65321,207.88033,226.6731,450.5312,173.48676,325.91852,172.20097,247.94643,206.96402,44.463005,149.99452,180.35298,101.42984,2.1346111,178.00035,353.11072,495.42218,221.39299,449.67294,435.67755,403.42163,469.7916,144.41905,443.25137,392.46884,19.079561,83.4271,492.4437,225.43204,48.358974,134.78793,141.55467,13.905925,80.86579,230.0121,83.26216,135.3352,482.63052,111.08263,216.8735,371.59204,344.75366,31.686863,227.7509,476.02606,425.81488,388.47214,40.034172,422.22784,364.36465,340.71033,113.6927,230.41582,457.76544,417.44553,306.99142,182.41292,489.64087,17.948677,178.45471,342.98108,350.04214,152.63136,100.380295,338.22406,249.09634,8.677428,369.43832,35.778282,440.03098,225.93735,486.8219,495.5168,202.8055,127.648026,197.14198,469.8168,289.85458,111.689445,74.28876,192.74509,238.00755,358.82004,202.63681,98.9928,128.90602,333.70474,104.62689,181.98123,275.18155,464.05066,126.9594,66.619606,320.86554,299.1324,340.34827,90.284615,454.40585,110.24764,416.5065,407.03418,353.94226,476.3352,226.88313,278.00974,133.6196,333.6253,391.69946,279.66882,87.418564,116.18592,373.13593,352.87717,329.97208,132.82042,498.91922,11.770969,247.95865,430.876,82.96202,48.95615,264.07733,348.7866,317.98093,248.49423,315.04517,185.7265,286.09723,493.72275,365.3196,380.67548,358.14227,453.7141,49.73561,465.21216,273.23557,59.346657,198.7175,10.72887,369.59598,412.71255,193.3404,445.8415,340.6968,285.10837,220.90417,168.82661,241.92395,238.39783,497.59402,230.52318,431.18817,103.21309,167.19846,297.4019,311.82724,188.59863,468.01486,301.65662,207.43358,86.06382,191.06302,139.88826,163.49454,468.78735,479.89487,349.29156,117.756615,328.89075,403.89694,262.3794,20.909697,237.7834,97.61664,302.8569,347.74713,220.35545,50.983704,80.96377,55.12918,286.02133,180.19191,466.76614,159.96039,92.51674,132.31772,244.29306,451.46732,18.223127,283.73645,162.75322,273.54697,8.772983,126.02864,116.03404,135.85861,423.05786,256.30487,345.93677,418.05307,192.75206,49.594635,327.80698,113.711945,91.76725,123.9742,50.557606,158.60632,306.265,114.1267,189.71327,346.7663,186.90605,498.69052,446.7991,402.3015,191.579,248.87688,485.96027,127.69126,225.1536,264.8804,414.59372,444.5648,241.27498,40.86336,211.16208,219.95518,200.04787,6.2941933,229.97813,302.55453,43.433975,203.1572,325.7211,258.10483,284.9468,105.900826,259.80576,341.92853,73.85516,186.8354,43.11317,160.66855,170.79036,333.4649,459.25345,384.08078,138.37428,477.43564,253.78178,71.20638,494.0069,492.43646,292.70355,159.56444,483.5892,203.89229,38.67024,413.96088,254.8939,471.00815,243.2189,10.089047,489.1574,357.98227,485.56827,267.27878,313.0942,164.93216,51.755985,366.78015,384.14566,248.42857,258.35257,186.7129,31.864061,384.14642,53.426773,23.6492,68.20621,181.35522,148.64122,389.8941,39.877228,233.67932,106.17234,392.6944,203.15944,301.0836,97.63504,210.7834,377.85898,198.55695,360.38437,228.86214,123.98883,236.30844,413.03845,196.17415,449.98032,129.12238,444.24527,149.80115,451.5433,161.976,197.82426,453.34152,8.513602,347.0339,295.56155,389.00247,111.54571,190.09673,383.05948,349.91458,351.05112,2.3288674,162.4184,128.68962,261.43,414.11044,171.22441,362.88715,93.80033,260.5868,29.027874,456.5638,468.40848,69.05297,24.143745,292.87793,215.3776,57.507046,284.24637,175.64314,160.6125,94.76434,135.91176,481.15192,107.62452,155.56259,496.13553,210.47275,437.91858,243.80191,225.73817,427.7587,88.084404,313.0496,432.18494,98.28037,167.17885,98.8038,120.67972,90.30488,67.35991,23.377682,24.719648,476.89493,178.98347,472.78412,296.49152,334.8633,452.58273,35.27741,128.72325,11.836192,347.5017,143.62415,417.88528,416.776,440.28574,348.82623,196.88022,435.38,84.29362,354.8927,479.78043,377.5658,176.92975,323.27417,78.34308,145.89162,490.71106,98.65054,9.434331,76.13099,256.43036,343.9009,479.01917,402.5302,54.680813,347.67245,360.92807,442.07306,111.173706,487.301,112.54673,246.19777,257.9,264.4854,204.42398,1.6173052,496.27435,420.76004,431.4546,435.97885,396.11108,217.3745,359.7807,433.31213,315.05878,316.08075,81.125275,374.8622,220.48701,142.14552,0.28117403,423.29108,190.90187,410.7921,233.12247,7.7073126,236.19653,361.60876,106.79675,85.485825,340.13687,241.57643,228.94284,111.42273,275.0301,146.7214,479.8894,279.45663,59.811657,244.53076,90.74094,19.337711,292.8905,486.39178,124.62952,182.1647,2.4816718,69.48556,248.5698,475.62006,254.2158,219.43504,494.00528,346.0321,2.1544642,496.9374,178.5687,465.58078,116.12478,499.2409,397.48407,204.19003,38.965683,237.22168,211.1436,467.96872,122.87093,268.53665,116.11694,484.0372,100.981926,252.29752,420.75302,343.01712,404.65,88.758675,361.90564,498.61987,267.717,294.09888,192.75723,13.404251,58.180176,41.465824,213.57422,260.13202,95.62764,348.28485,72.1945,369.6692,9.454318,325.07205,327.9772,125.40613,186.60208,274.24985,305.23532,103.14555,190.77945,44.426617,410.01572,117.383995,247.14778,33.629837,96.42004,416.69577,292.18842,85.659454,71.530014,483.89398,290.4528,126.32487,326.77173,186.23592,48.239517,480.46072,296.27045,10.481135,285.50516,407.5628,436.94507,121.17097,179.96097,375.21582,256.4876,74.45817,150.52377,320.59235,286.08853,37.87828,213.50664,10.261107,100.2038,438.1833,369.17416,261.44818,69.4295,132.44441,318.96008,248.98622,134.52956,177.42955,284.99832,395.98633,218.48347,353.21906,149.02786,339.75098,152.49248,269.98706,370.70947,406.92093,228.48157,184.89444,261.86627,421.55362,204.20738,405.6438,494.09094,230.52614,334.08948,260.93546,104.97472,228.31345,356.18927,376.7289,39.098946,172.04997,43.121307,248.27173,331.31442,159.83435,257.3499,146.08633,393.9621,423.86063,334.36652,335.20825,145.57529,362.56897,220.79208,366.5118,331.07462,411.10376]} diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/test/fixtures/julia/positive_positive.json b/lib/node_modules/@stdlib/math/base/special/atan2f/test/fixtures/julia/positive_positive.json new file mode 100644 index 000000000000..7c58db19ee23 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/test/fixtures/julia/positive_positive.json @@ -0,0 +1 @@ +{"expected":[0.4934405,0.53869444,0.0643786,0.02580193,0.858546,0.7224601,1.3013473,1.2167561,0.49727917,0.03576816,0.058498893,0.42919934,0.94400144,0.83076286,0.5274096,0.86769325,0.26421383,0.39935195,0.6565078,0.8097421,1.4925743,0.99439245,0.9910034,0.61931413,0.06488015,0.60651076,0.84170145,0.72914255,0.74786603,0.60534656,0.82597864,0.4826383,0.61553407,0.90888387,0.8646132,0.16522641,0.6576591,0.4331446,0.88110155,0.2981022,0.36763728,0.58315253,1.2163568,0.7491842,0.04823769,1.3472223,0.85962856,0.6454219,1.1352884,0.67526954,0.8385495,0.7383354,0.95325744,1.1173439,0.7597767,0.638832,0.23313528,0.78942937,0.5550631,0.39360702,0.38881338,1.1699717,0.33076167,0.9975572,0.6396461,0.11163276,0.021977458,0.7953112,0.83612114,1.099931,1.1209242,0.6055354,1.2824697,0.22137985,1.4290788,0.07871655,1.1584499,0.8770247,0.13866596,1.01896,0.07659245,1.1532333,1.5021855,0.96222705,0.21672869,0.29656482,0.26735023,0.93587023,1.5374987,0.49394995,1.0562363,1.430656,0.81482303,0.54885834,0.63869524,1.0372185,0.084404066,1.0400296,0.36761838,0.6989498,1.4195248,0.34498602,0.70977515,1.0685331,0.6462004,1.1008894,1.5192559,0.5221043,0.22888906,1.5489397,0.48570067,0.7704736,0.72662926,0.043387074,1.0149692,0.5654814,0.95624727,1.5276995,0.07342657,1.133183,1.0062872,0.26043087,0.71240103,0.84322095,0.88393533,0.29585263,0.24200365,1.0409484,0.59593713,0.6194102,0.9084292,0.9117571,1.0604999,1.17051,0.3127519,0.17080304,0.029388972,0.23974535,1.2032688,1.3657851,0.052688096,1.36781,0.3876256,1.4969237,0.64834785,0.76903176,0.51027846,0.82572466,0.1482477,0.8888253,0.62843335,1.4831779,1.1885922,0.69202095,0.6541333,0.18362446,0.5267883,0.28173965,0.81894094,1.4278756,0.48458892,1.3586991,1.0185435,0.05306834,0.7740395,1.0581163,1.3807536,0.86224806,0.47062922,0.5709146,1.0331824,0.30411586,1.5065438,1.5650921,0.6542261,1.0626643,1.2192867,0.0313918,0.877957,0.088455044,0.7005548,0.37291658,1.1117091,0.19686176,1.086145,1.3621604,0.6222971,0.77522284,1.383766,0.878343,1.1127942,0.0032284474,1.1115732,0.2922213,0.54256165,1.512885,1.1157854,0.7021892,0.9707347,0.6693935,0.87346905,0.7616528,1.3093656,1.4771348,0.9165658,0.43678716,0.72242814,0.7151792,0.7257655,1.4505261,0.80254805,0.2597452,1.3563671,0.5446415,0.9035702,0.0035352274,0.8112915,0.7338327,1.2354729,0.32513222,0.32641727,0.43486416,1.0562303,0.2572016,0.26007602,0.34177876,1.0694077,0.9155491,0.35135284,0.461432,1.4975586,0.7223435,0.76914775,0.90718395,0.79712456,1.1186816,0.6187879,1.2473502,1.039813,0.31152076,0.71077996,0.3631597,0.16916288,0.80836976,1.5464202,0.9553357,0.41243258,0.6253731,0.13297814,1.2392049,1.1351978,0.8818906,1.4537368,0.76220554,0.71684104,0.13002947,0.79342985,0.7974479,0.5087321,1.3145134,0.40446794,0.027101109,0.7857724,0.98388314,0.7972831,0.20718506,0.05563565,0.9582703,1.4143951,0.21207398,0.025236532,0.8206056,1.1616528,1.3656467,1.10441,0.8188406,0.33178523,1.2911501,0.26673335,0.7923544,1.1915184,0.72818863,0.6009952,1.421718,0.22716238,1.0142676,0.7095818,0.9266453,0.78049546,1.1345879,0.13093491,0.99979836,1.0393691,1.0839121,1.51873,1.1324682,0.8899227,0.22166184,0.14688107,0.8315059,1.0039992,1.1462609,1.3287652,1.1070719,0.10572585,0.030142453,0.98200786,0.49425536,0.48844045,0.25755155,0.18647368,0.44508553,1.0312493,0.7860807,0.968005,0.7406941,1.4743401,0.93684375,0.57455945,0.028900638,0.8352899,1.1056032,0.309164,0.47432268,0.416934,0.6310492,0.5664678,0.23304787,0.24345955,0.44389093,0.484989,0.7214433,0.1808783,1.4287086,1.3711147,0.15873478,1.0189923,0.38251233,0.49471527,1.2376174,0.6578672,0.5234798,0.79999334,1.4319154,0.08097673,1.5382159,0.04993551,1.1390208,1.4009054,0.67270255,0.45608085,0.0668708,0.79154557,0.8710906,0.9783521,0.6296047,1.4704788,0.10874023,0.42982915,0.7387646,1.0341277,0.66175276,1.3497782,1.2567456,0.62919414,0.86860216,0.22012049,0.77974105,1.4718921,0.752671,0.04870548,0.70216924,0.5880936,1.4842943,0.1525633,0.79619455,1.377895,1.4213364,1.4277554,1.5495411,0.5637007,0.313099,0.85077226,0.29407233,0.14379096,0.018935129,0.41801327,0.81392974,0.607973,0.5554238,0.6034768,1.5455672,0.10652154,0.63196033,0.57240933,1.0834268,0.3082043,0.76394784,0.83439153,1.0898379,1.5237855,0.623989,0.60223913,1.2010179,0.762096,0.57278025,0.52767545,1.2387435,0.9293809,0.7825465,1.2082188,1.2971094,0.51417446,0.6132,0.85114264,0.854079,1.0962844,0.792431,1.2826889,0.44122195,0.91386724,0.7282916,0.69378996,0.7491814,0.71867657,0.5643416,0.5100713,0.39071018,0.8238002,0.99820185,1.1782069,1.3710356,1.521771,0.7293833,1.5571606,1.0365748,0.62978995,0.601384,1.3102745,0.2629158,0.58658195,0.6990556,0.44921446,0.93824726,0.856121,0.56673604,0.2539547,0.72321135,0.27767345,0.6321023,1.2491593,0.65790665,1.0413141,0.39281186,1.3356959,1.2334293,0.11469537,0.9425841,0.7694565,1.0919558,1.0475445,0.9213606,0.8298226,0.60150015,1.5046846,1.1181662,0.7606847,1.3069904,1.1931117,0.34170398,0.56147695,0.57252485,0.18367928,0.8453413,0.25638372,0.022482028,0.9785127,0.94883716,0.5497788,0.8595106,1.2178988,1.5020454,0.734394,0.96226346,1.0990876,0.17899564,0.6782826,1.2192583,1.084861,0.20097543,1.1587373,1.5513452,1.1121536,0.122787625,1.2528231,0.5520826,0.67705566,0.26724258,1.0107988,1.2581276,1.2675049,0.92691296,0.76940423,0.69036883,1.234945,0.83642375,1.475627,0.9002061,1.3574629,1.5272145,0.8970038,0.20360032,0.84058607,0.84463954,1.4289474,0.84801924,1.5179464,0.8997811,0.84576255,1.2167697,0.596673,1.1762533,0.49657297,1.285326,1.0594739,1.3329351,0.1880216,0.59942675,1.1052351,0.49123734,0.13503806,0.6283919,0.35537404,0.9567247,0.8951471,0.7521324,1.2964625,0.6906885,1.3447362,0.3953649,0.6505206,1.0500333,1.1988174,0.478308,1.121455,0.7137781,1.5341191,0.34170756,1.008981,0.0135629745,0.36835054,0.7244246,1.2722893,1.319393,1.1964626,0.82951933,0.4408238,0.84362936,1.1473757,1.371671,0.9192281,0.5166897,1.215208,1.1224407,0.9211089,0.45874518,0.29154503,0.4578563,0.3403895,1.2154841,0.9961012,0.124555685,1.4583417,0.19260971,1.4190365,0.24307835,0.29404062,1.3293582,0.5725848,0.094540015,1.429481,0.56434315,0.34020975,0.4101359,1.2984859,1.1905124,1.0404423,0.9675071,0.66034657,1.5353514,0.49484646,0.54806966,1.3139355,0.24464965,1.1954962,0.9618856,0.8163688,0.96334714,0.34515294,1.1905613,0.6590637,1.4349229,1.3028497,0.57561916,1.2629387,0.8260613,0.81503963,0.3259025,1.0161157,0.753681,0.39994216,1.1947315,1.24153,0.7659741,1.0896884,0.11122883,0.18392508,0.8710645,1.4351224,0.7119751,0.537635,0.62659293,0.75280654,1.4672663,0.3607564,1.0332265,0.6409266,0.36301252,0.18842952,0.4841336,0.87650174,1.4393992,1.0397512,1.2561063,1.5462432,1.5211216,0.7463261,1.4097224,1.4432136,0.6730426,0.85958034,0.087381944,1.360554,0.0833031,0.99700344,1.0256144,1.5122592,0.9797676,0.7648608,0.4156335,0.9521783,1.0281745,0.11969169,1.4122689,0.045712654,0.41657153,0.35582572,0.49723643,0.37179685,0.51008797,0.68835104,0.6314213,0.68054634,0.46076682,0.26045948,0.832827,0.93276817,0.89209133,0.08292857,0.33989906,0.03438265,0.39917916,1.4693573,0.7389579,0.53055686,0.59384406,0.7939699,0.43872386,0.7118064,0.68790084,0.73188907,0.71250284,0.2248146,1.2411954,0.3978416,0.04861894,0.6109514,0.7047625,1.1750369,0.22819518,0.5438465,0.25609514,0.77453834,0.0201226,0.8199619,1.3159637,0.42695588,0.80258876,0.2062552,1.0262997,1.1125528,0.8792119,0.6721343,1.0157305,1.2022927,1.3186693,0.34291005,0.93416554,0.50221467,0.69177496,0.6988738,1.054026,0.8353326,1.2157626,0.7026899,0.073454805,1.507078,1.5165603,0.183834,0.36835927,0.97349274,0.93874305,0.3987768,0.02952303,0.66397697,0.030499898,0.91872394,1.4445415,0.4565002,0.32715976,0.6518787,1.0796914,0.7858996,1.5482336,0.9566778,1.0158398,0.74221474,0.10548875,0.042493124,0.99352163,0.72697407,1.5279518,0.932583,1.4297295,0.88240063,0.9122312,0.5687577,1.075274,0.79307956,1.4686689,0.8488586,1.318495,1.4130871,0.24375364,1.0495143,0.043064438,0.990612,0.11638611,0.73296905,0.69823354,0.44298717,0.026741905,1.3359071,0.8857621,1.5669895,0.55099654,1.3260677,0.112448774,0.8827514,0.38289645,0.9635502,1.0183462,0.63431346,0.45365134,1.1710787,0.5190151,0.3338744,0.58807576,0.6242682,0.61615634,1.3164719,0.7346202,1.0681726,1.458733,0.49647626,0.16721624,0.83644485,0.95831186,0.071880825,1.4086242,1.2327144,0.96858615,0.62151456,0.16676672,0.028676748,0.8107192,0.09914293,0.7789925,0.4266553,0.096487395,0.33332023,0.7835308,0.8883039,0.4147323,0.98544246,0.97176003,0.97233164,0.34334192,0.9729683,0.15879096,0.10349604,0.017876733,1.0085428,0.4833462,0.022094378,0.85604614,0.79647857,1.5328408,0.038925294,0.3777157,0.77228177,0.7429674,1.0427184,1.2018678,1.5556037,0.8473993,1.0915431,0.665566,1.029907,1.2897137,0.6280985,0.66437364,1.0517406,1.1955599,0.7329471,0.6932292,0.84130275,0.600142,0.9883466,0.10759159,0.4817386,0.08502663,0.7787898,0.813949,0.45986968,0.84454095,0.6084784,1.4480289,0.38930044,0.32137382,0.9703692,0.65859115,0.28196356,0.37248987,0.99822605,1.2114638,0.55286175,0.9457802,0.8990151,1.0120987,0.6883004,0.076048605,1.1580553,1.5311311,0.2862594,0.8026164,0.70286584,0.13961393,0.79371953,0.6296118,0.60558534,0.2690851,0.7095914,0.48704672,1.0258546,0.49376908,1.2627547,0.99687296,1.2819059,0.71745044,1.3674803,0.89204526,0.82165724,1.5604342,0.13677111,0.8939114,0.57486683,0.85824573,0.93266565,1.0134971,0.804543,0.3147093,0.8248085,0.99144936,1.2581894,0.2088568,0.16090181,0.34905466,0.10292679,1.0467012,0.011868459,0.9442995,0.4918059,0.4344644,0.33261785,1.3815575,0.54609376,1.4748759,0.71044075,0.49963963,0.5467262,0.19939262,1.0009259,0.892025,1.1624761,0.13927121,0.61395526,0.79210955,0.015959546,0.2388228,1.4697971,1.1714264,1.1969589,0.18088774,1.3053036,0.8212339,0.4410708,0.8696446,0.31195593,1.0746278,0.3151748,0.60307264,1.4611087,1.286788,0.9815881,0.5207199,0.52252,0.37919697,1.4692588,0.69142914,0.7106379,1.5704575,0.54729474,0.41513538,0.4108216,1.3281602,0.9836238,0.54646,0.94959086,0.95614564,0.6645435,0.8644297,0.947551,1.485825,0.15886341,0.62393767,1.0688902,0.6166264,1.1287324,0.78165215,1.2395055,0.79047704,1.0387814,0.74960047,0.33028725,0.4534233,1.08795,0.35817847,0.024820182,0.748091,1.526261,1.4855858,0.7019523,0.4782326,0.6904079,0.6578359,0.9376479,1.4398942,0.960866,1.2520398,0.39089063,0.8865683,0.9680095,0.58395994,0.7953846,0.68662715,0.05187681,0.9813462,1.1214969,0.7860923,0.97643435,1.3857857,0.39209253,1.2034229,0.31125385,0.4677817,0.22076905,1.4003357,0.1314929,0.2034344,0.39703184,0.5821652,0.3723828,1.5330253,0.49240068,0.6644433,1.256167,0.13320468,0.7055272,1.509463,1.1981452,1.1809466,0.4956137,1.110725,0.10159717,0.72683877,1.1422778,0.56840646,1.4022084,1.1569647,0.7769537,0.40337378,1.3628124,0.5977579,0.1866647,0.7784364,0.50975174,0.6020494,1.3884786,0.5563346,0.8509718,0.9770734,1.5445232,1.2138597,1.1160575,0.68344635,0.882966,0.15330334,0.91066945,0.53951716,0.39623928,1.453966,0.49359828,0.9072175,1.0251006,0.42224133,0.06604316,1.1160922,1.1011387,0.28819987,1.0871594,1.1446671,0.9380323,1.1526375,1.3300031,1.120595,0.9786925,0.27542874,0.67023224,0.65467536,0.27611017,1.4111284,0.8918048,0.75871456,0.096569456,0.8984059,0.25928932,1.0707713,1.3977352,0.06461639,0.18404356,0.8937711,1.4829367,0.6315775,0.79233325,1.5700074,0.03885212,1.2243874,0.9824242,0.672887,0.16314377,0.30670083,1.3217691,1.272926,0.12340008,1.4076834,0.86054283,1.0202308,1.5352751,1.4532428,0.27839527,1.5030526,1.027615,0.9888362,1.0448774,0.3320224,0.22763519,0.2152929,0.33578405,1.1670713,1.3723966,1.0555923,1.3639195,0.34524634,1.394417,0.9806833,1.0589048,1.2817464,0.02227247,1.1444323,0.3191688,0.62378716,0.18365397,1.2365692,0.72606593,0.6013003,1.2373691,0.91560763,0.55471504,0.806729,0.5739946,0.5596518,1.2542859,0.65204465,1.230788,0.7056114,0.16211614,1.0477337,1.3831105,1.229826,0.098995395,0.22726023,0.55127084,0.19937894,1.5050136,0.9538452,0.15117985,0.8689233,0.8365054,1.5215615,0.24593264,0.66020745,0.7203953,1.2188857,0.58054256,1.5558821,0.82792884,0.7931433,0.26427123,1.3825432,0.15477952,0.36267,1.0793095,0.92857313,0.4276039,1.3092741,1.4869859,1.0545061,1.5213811,0.9188756,1.3460026,1.5487506,0.30191797,1.3543017,0.7961149,1.2942917,1.5662001,0.4521342,0.8147897,1.4410342,0.47935435,0.7657543,0.83381796,0.5210758,0.8184124,0.43599567,0.05833476,1.2777042,0.7218002,0.9345955,0.82877684,0.8372804,0.6984604,1.4196044,0.079772696,0.09027087,1.032984,0.68928224,0.8713962,1.2731177,1.0856129,1.3994507,0.31511775,1.1825713,0.46393526,0.16209944,0.68361616,0.16453739,1.4905409,0.114033885,0.23399924,0.005554874,0.1424034,0.67686623,0.2240462,0.30136922,0.9648722,0.55080366,1.100743,0.79147166,0.21794517,0.8198293,0.81631947,0.06103526,0.6715496,0.98198706,0.12230746,0.91930866,1.2144269,0.43935776,0.057376068,0.4750779,0.28292376,1.3858242,0.45086202,0.14791419,0.9239272,0.17822704,0.7989829,0.7993582,1.0925581,1.2624904,0.8437636,0.11426024,1.4880488,1.2633917,0.568096,1.443084,1.3505467,0.2888979,1.3738872,0.7865518,0.5470754,0.41756934,0.3740672,0.7664516,1.3050478,1.2184696,1.2002001,0.7010059,0.8738147,0.87876004,1.5051506,1.2196808,0.3741781,0.57626176,0.5745616,0.9296542,0.5784929,0.48805138,0.6508611,1.5196152,0.7818773,0.7408698,0.857879,0.7486572,1.1295221,0.36639512,0.6024143,1.4397544,1.1885531,1.3868572,1.4073966,0.7965132,0.77133554,1.3917401,1.5319276,1.0729822,0.8703789,0.67894953,0.5541173,0.6029596,0.7357147,0.7958413,0.61753386,0.7437345,1.1843268,0.8622581,0.90477407,0.17367892,0.6555568,0.42425683,1.3066976,1.1576807,0.044379693,1.5041469,0.13305092,0.6308417,0.4133519,1.3721746,1.253471,0.35096514,0.2247552,1.2397329,0.86065316,0.31383258,0.6741566,0.88902044,0.5751032,0.25831413,0.45979792,0.8672614,1.0788332,1.3580263,0.9356919,0.8568727,1.0212697,0.43682775,0.41205332,0.7931413,0.42101538,0.88119566,0.6414645,0.56961185,0.25692874,0.46497715,0.822556,1.0877022,1.2579784,1.124421,0.26502192,0.94014686,1.09549,0.038401708,0.4992454,0.91381645,0.8501484,0.20664397,0.76734054,1.1830626,0.68226826,1.0458227,0.25718793,0.02024265,0.6460346,0.99421793,1.255386,1.3075459,0.06350287,0.8572681,0.23073107,0.34176216,0.41268775,0.28310335,0.9216161,0.70074695,0.27985662,0.26230642,1.1096865,0.113069296,1.098153,1.1233503,0.27497002,0.21261227,1.1852643,0.40085834,1.1871452,0.72282135,1.5111662,0.38003865,1.2983843,0.15160817,0.82017434,0.3588726,1.0046946,1.253055,1.4708933,0.8228066,0.65794873,0.8744885,0.36434156,1.3616527,0.8556137,1.3870418,0.88585854,0.8660771,0.0015772558,1.068027,0.8085957,0.991151,1.0923748,1.3584033,0.8433581,0.111994185,0.26136965,0.011881401,1.3011539,1.3198507,1.1606605,0.20728394,1.3498071,1.0910302,1.2839198,0.6148232,0.84862584,1.5693762,0.6652899,0.35392776,0.6461,0.5834106,0.02825522,0.7994517,0.5738457,1.2557746,0.83790725,0.64873606,1.0797296,0.7458442,0.5767103,0.7160926,0.8167042,0.80522424,0.50556016,0.3480051,1.3665398,0.8561509,1.181902,0.32352486,1.1344693,1.0953016,0.20200394,1.0365757,0.48317158,0.10177009,0.34487912,0.8273854,0.65425915,0.35218954,0.0835627,0.782966,1.407202,1.507799,0.09368776,0.9408141,1.2797313,0.83029085,1.2036514,0.41211343,0.77926636,0.4907473,1.2478938,1.4646447,1.4623328,0.86849594,1.3811829,0.38885042,0.1837,0.24604955,1.0367594,0.96347207,1.5368625,0.9179193,0.27451718,0.35869974,0.029361371,0.84779847,0.12059991,0.8048656,0.08281047,0.9135042,0.033710245,1.4620361,0.54232013,0.8780473,1.3397405,0.50662106,1.4202036,0.41737843,0.38026315,1.1814847,0.83724594,1.2684491,0.2597353,1.3921682,0.683907,0.6053309,0.02327852,1.1980417,1.4573869,1.1913521,1.220771,0.836476,1.3747706,0.5171307,0.30612442,0.39188603,0.96597743,1.5323575,0.11215562,0.31474066,1.4363052,1.4377661,0.3692099,0.5707763,1.2553763,0.26964596,0.2521926,0.99446774,1.2917727,0.44724798,0.32234824,0.49501574,1.1536856,0.63092405,0.50604624,1.5613124,0.95779943,0.9904657,0.624975,1.4332904,0.2885304,1.0291936,0.029797865,0.58678854,1.378183,0.7438698,1.0851347,0.7561452,0.7418519,0.60905826,0.39012346,0.6997714,1.4980116,0.81337297,0.17555231,0.9670609,0.7703326,1.2399468,0.65382546,0.68180937,1.0157322,1.4484682,1.1334218,1.1802464,0.4994827,1.2363784,0.90475917,0.98221433,1.3770709,0.10225255,0.36576536,0.8885082,0.8786472,0.27214426,0.69277936,0.66784054,1.0792,1.4304452,0.38379252,0.77163684,0.115091145,0.31538963,1.2319939,1.2255495,1.3906702,1.0485303,0.5747919,1.5497911,1.3098937,1.428131,0.50416327,0.8041087,0.4703903,0.4809662,0.6570213,0.91675085,1.4318016,0.10682993,1.4829174,0.22526562,0.3876047,0.5779569,0.81203616,0.6000284,0.54064465,0.014516,0.42797953,0.97819287,1.2491766,0.903713,1.2438368,0.92365235,1.0662698,1.410099,1.3515966,1.4854016,1.2387614,0.47841927,0.23546681,0.1699879,0.010227571,0.32522222,1.3010496,0.13100299,0.05705913,1.3272634,0.62271893,1.2568989,1.5674752,0.8897853,0.48795474,0.80082357,0.86691755,1.1177123,1.2011863,1.0961376,0.6922833,0.9838274,1.237134,1.2481612,0.9050067,0.9556851,0.72154164,1.2092733,1.5432855,1.5015215,0.24952526,1.3485515,0.12821992,0.25678527,0.2770663,0.23964709,0.363898,1.3391764,0.2531396,0.109706245,0.71742225,0.23803562,0.9674948,0.5327695,0.6725775,1.2258029,0.06306234,1.4925588,1.5502204,0.10993114,1.2243516,0.40487483,1.451036,0.4134934,0.16195421,0.037029155,0.77451575,1.0315025,1.5301433,1.4988962,0.61483085,1.2014564,0.8544326,0.62479097,1.059679,0.64432335,0.41530737,0.41481796,0.24324562,0.2477298,0.63405454,0.46668088,1.0009035,0.16310911,0.28631562,0.06640515,0.71017325,0.59965414,0.9101387,0.59546,0.35613087,0.6405656,0.861438,0.70348954,1.5344697,1.089218,0.4440462,0.18091033,1.2573481,0.0749293,0.7274002,1.4983829,1.0758338,0.40666756,0.39922926,0.16228381,1.2340907,1.4174005,0.83255523,0.19850062,0.96248305,0.21658015,1.0262818,0.5819783,1.1850036,0.46454796,1.4981592,0.3977547,0.98067623,0.2710099,0.8139912,0.26404223,1.0005972,0.6476346,0.7111473,0.13390206,1.5411298,1.0658438,0.43335938,0.8800152,0.08980798,1.1998881,0.59211147,0.9263434,1.2217721,0.8975096,1.4562111,0.73281056,1.5132827,0.092095144,0.5951673,0.9592929,0.058459982,0.1448905,1.0184402,0.3338641,1.3942472,0.45657453,1.4743742,0.506816,0.46336645,0.21688166,1.4637747,0.8030324,0.85100514,1.3806006,0.958699,0.7938702,0.70022035,1.5188397,0.87533593,1.3971143,0.52976406,0.92196965,0.41794384,0.95362395,0.73119354,1.5020826,1.3850799,1.5605305,0.88542145,0.80467844,0.8677452,0.8984603,0.30291882,0.71808064,0.15591614,0.7915374,0.825518,0.58641005,0.8150285,0.77865934,0.5441649,0.02401493,0.016957292,0.6059144,0.51613253,0.9683641,1.3668976,0.756609,0.689401,0.7739518,1.5513972,1.1393601,0.79464924,0.07555911,1.2041436,0.9202393,0.8510341,1.245559,0.39497212,1.1483076,0.981011,0.9137243,0.64705086,0.34389183,1.2098105,0.13959815,1.5452365,0.44170624,0.9401341,0.64368236,0.3008317,0.69618654,0.14469402,1.4895185,0.9395439,1.450532,0.70601,1.4242901,0.3785757,0.5053213,1.1865568,1.1143504,0.6040139,0.05026614,0.8807062,1.4823477,0.62922066,1.3535953,0.54361963,0.79811454,0.3140575,1.4645008,0.71222144,0.65465754,0.23110305,0.05055333,0.76559633,0.16883855,0.58973116,1.4669169,0.47114947,1.1612134,0.24042296,1.0327964,0.19866502,0.9326606,1.0937517,0.765994,0.45477566,0.52742153,0.39459294,0.9456122,0.89233494,0.50265515,1.299757,0.27872854,0.72082996,1.4117755,0.44630417,1.3383802,1.3608464,0.67721933,0.97487533,0.40165955,0.78825164,0.19989587,0.62972987,1.0279005,1.0332906,0.27042967,1.5426446,1.5485343,0.85714895,0.4503321,0.5365697,0.734043,1.4196968,1.3559743,1.4219034,1.5429627,1.2717388,0.6555158,0.4963046,0.29678226,1.4909053,1.3992503,1.4450833,0.5428064,0.15475789,0.68681425,0.04366103,0.95704037,0.9993598,0.24956778,0.8683671,0.64503706,1.0197766,1.1583549,1.4408082,0.581915,0.6091881,0.8716623,1.4549825,1.5605987,0.5587793,0.46711606,0.09791463,0.19141938,1.2925793,1.554438,0.4243283,0.84471834,1.5493206,1.5640155,1.0365679,0.85630983,0.6657865,0.085091576,0.123062976,1.2075104,0.43964204,0.04283771,1.1579533e-5,1.131008,0.065707214,0.6297976,0.5812431,0.2674423,1.0469527,0.77572167,1.3627925,1.2631359,0.65880275,1.4966773,0.84242445,0.9961583,0.27772498,1.058705,0.055070825,1.3102384,1.0486287,1.4999869,0.5553792,1.4042702,0.38798672,1.4040471,0.7350758,1.1968048,0.91129357,0.47491726,0.53636646,1.1964587,0.79642475,0.12227488,1.1838303,0.94406927,1.5533028,0.9333339,0.7423158,1.2269065,0.024796046,0.043947805,0.17430331,1.3493663,0.51053554,0.53630996,0.8144035,0.02567766,0.009381697,1.478139,0.8480733,0.35953346,0.8797024,1.1164169,1.3279287,0.5955297,0.25758204,1.0676488,0.76139927,0.47903487,0.2536206,0.7014041,0.9965032,1.5502336,0.06794741,1.0582783,1.1006147,0.67283803,0.85175765,0.8053393,0.113775566,1.2028569,0.54046315,0.11220576,0.4339928,1.32841,1.5001808,1.0447683,0.95351744,0.55445254,1.0259563,1.3249607,1.2476835,0.44577444,1.3846599,0.76693183,0.55329114,1.4556513,0.9271242,1.5323217,0.68669975,0.9670209,0.40560764,0.23327623,0.75118524,0.26514006,1.1033306,0.7805993,0.36997366,0.35225514,0.6212126,1.5609249,0.9246006,0.51091915,0.9960988,0.36113328,1.1751161,0.5646923,0.12739763,0.19984542,0.40952146,0.42651975,0.2802261,0.75713223,0.92291224,0.7936916,0.30876824,0.7480233,0.7091112,0.57629776,0.09810357,0.6060233,1.4596914,0.5819714,1.249039,0.06523855,0.62851083,0.24309607,0.3237953,1.2328093,0.00048331637,0.71014744,1.2856604,1.3784723,0.5085104,0.49158075,0.76063937,0.8475575,1.3761396,0.05451708,0.34765452,0.5616468,0.87713706,0.09488283,0.32190487,1.4440672,0.32897794,0.7246666,0.06622145,0.16511442,0.7622088,1.3937404,0.07943431,0.84121644,0.5131533,0.93881917,0.38969806,0.9109152,0.9476048,0.3321665,1.2577336,1.2772397,0.23588315,0.17921738,1.0375814,0.50055313,1.3798138,1.2483287,0.8810374,1.0598574,0.18258978,0.35068545,1.5088286,0.6343107,0.6074605,1.5642091,0.8509118,0.8273175,1.1866049,0.412837,1.4473863,0.9207132,0.9883606,1.411258,0.17943658,1.2016686,0.93313587,0.3330675,1.009066,0.6727215,0.43121374,1.0219741,1.1048754,0.38951603,0.78686833,1.5679146,1.5504254,0.38657203,0.7147289,1.1586972,0.8348593,0.36344522,0.5088531,0.7719598,0.90586287,0.6439479,0.017649738,0.9475603,0.52465487,1.0969862,1.4769784,0.55882,0.81382453,0.032421157,1.1375495,1.5187166,1.2741638,1.1593109,0.72071373,0.71284837,0.8541118,0.33683592,0.45550928,0.97664934,0.1411474,1.3386263,1.0191268,1.211346,1.3859521,1.4963427,0.49057665,1.3693063,0.9192036,0.23492154,1.5356576,1.2705902,0.9737852,0.5971046,0.8586317,0.19587997,0.10213742,0.5028451,0.3626984,0.7444549,1.3562944,0.19021273,0.89962125,0.81997395,0.9660064,1.0454648,0.14104237,0.9380556,0.59142977,1.13601,0.23988846,0.45879942,0.5118472,1.0030092,1.5244365,0.17315727,0.5626974,0.011566693,0.8332226,1.2874533,0.78441864,0.32319495,0.93911785,0.3535249,0.6137209,1.1875886,0.15056925,0.66814035,1.0695926,1.2680424,0.75149554,0.43577158,1.0608369,0.6784737,0.94443834,0.3108553,0.017803198,1.4913651,0.7706213,1.4626622,0.583508,0.6568303,0.84971035,0.8106884,0.96979976,0.65815425,1.351486,0.7946125,1.160161,1.2488934,0.086587675,1.0192474,0.6161068,0.96277106,0.14927621,1.1385014,1.1795516,0.95141906,0.37750915,0.69031155,0.45960152,0.79705596,1.0322164,0.70201415,0.7717604,0.70111644,0.18293306,0.8920108,1.4512595,0.6832722,1.1428442,0.025196793,1.5203484,0.8362895,0.7706744,0.40186986,0.150409,0.75854796,0.36623514,1.0610023,0.5703688,1.2384892,0.08597194,0.36770114,1.2506473,0.3633582,0.5060667,0.55351907,1.2786894,0.47784647,0.095573395,0.72231865,1.367007,0.12030468,1.4943017,1.2863078,0.36502144,1.2952454,1.4183319,0.7715281,0.048938353,0.11266014,0.40757114,0.40542266,0.6527552,0.7304318,1.2160107,0.398473,1.1121721,0.7884106,0.8912796,1.3852472,0.9887263,1.3799162,0.13749494,1.279302,0.5562506,0.67322326,1.5434517,0.9640591,0.2646865,0.6714421,1.1625669,0.5700989,1.0119873,0.73464257,0.04595181,1.2797756,1.4733232,1.0490359,1.241528,0.9618837,0.6275363,0.88919836,0.9855417,0.9103163,0.703634,0.50374305,1.4377737,0.23271601,0.1064876,0.7416702,0.5651976,0.9204674,0.7669704,0.43928102,0.3786702,0.9748947,0.6739961,1.5642668,1.2064159,1.0837846,0.8059555,0.94032186,1.1042864,1.0583283,1.2710377,0.69713485,1.1110113,0.51578796,0.36103877,0.8412585,0.30399892,0.42478302,0.9652735,1.1127458,0.46604443,0.6546469,0.8312896,0.7785903,0.20773633,0.40039697,0.30020368,0.80530906,0.93807733,1.0273421,1.3203319,0.18227507,0.65980124,0.28636134,0.15844043,0.68205196,0.3994779,0.6236755,0.48179847,1.5605905,0.7823198,0.46732342,1.1342297,1.1713558,0.7179349,0.013563882,0.0050790366,0.10450253,0.9687143,0.5724087,0.90315473,0.5505319,1.1798196,0.11779042,0.512635,1.0983164,1.4667717,0.5660629,0.5891335,1.3663832,0.85161996,1.3118527,0.8375911,0.7921246,1.3825586,1.1527567,0.7611392,0.10354591,0.9466487,0.97564995,0.7847513,1.4933772,1.174295,1.1438898,0.8191679,1.3916509,0.28230903,0.6118839,0.098186284,0.79045135,0.8391591,0.7151768,0.12953854,1.1321028,0.12321244,0.660452,1.2639723,1.2504683,0.46494523,1.4507892,0.994806,0.05664262,0.33841595,0.7691807,0.40926328,0.30479306,1.545078,1.1473159,1.0264889,0.8058628,1.0570716,1.1396997,0.73774403,0.2417359,1.0474215,0.745023,1.365655,0.61147624,0.734964,0.78610843,0.5809637,0.21987471,0.35559946,1.3825305,1.4126707,0.91161484,1.3736742,0.9301154,1.1165522,1.126458,1.1968079,0.6552545,1.3772682,1.3186991,0.82544386,0.014231143,0.9256898,0.75725716,0.13015416,0.5056187,1.0887825,0.2694002,0.9024894,1.3551213,0.38710818,0.8402389,0.38833952,0.15365839,0.9249288,0.812913,1.3505038,0.8451133,1.4139855,1.3993297,0.089653336,0.89817345,0.54534566,0.70693505,1.19867,0.33151814,1.00276,0.19218539,0.37138495,0.27676648,0.2674678,0.56175417,0.49985045,0.47939658,0.24925584,0.8341128,0.5870659,0.27607268,0.6223564,1.4475583,0.4403156,1.0510817,0.66320443,1.3193815,1.4626335,0.51307476,1.4428838,0.92224497,1.0786998,0.89700365,0.7694833,0.34517622,0.7107191,0.6741488,0.8522442,0.15121743,0.7457561,0.21990569,1.2852718,1.2807088,1.5473211,0.6293063,0.90663725,0.09776148,0.8312464,0.22838257,1.067987,0.29130462,0.19486439,0.012393264,0.31613043,0.03646893,1.4317018,0.8515823,1.2249416,1.1474961,0.8206837,0.8734438,1.1767977,0.30233935,0.4609004,1.1069379,0.6310642,0.6832783,0.72556293,1.4580199,0.8517353,0.04378709,0.4745534,0.3972121,0.13449785,0.41450256,0.85025114,1.0366158,0.3353399,0.2573897,1.2815661,1.0106843,0.780561,0.6162785,1.4375254,0.46991345,0.11879995,1.2619158,0.73293185,0.8000088,0.7845757,1.381659,0.95207584,0.9167305,0.2915856,1.3562822,0.546214,1.2303351,0.12683034,1.244892,1.2841288,0.4427597,1.4442481,0.7624131,0.40412438,0.63129425,1.5204707,0.091397785,0.7390206,0.38610256,0.18762419,1.5483279,1.2961919,0.62747234,1.2962981,0.5677156,0.17056234,1.1446844,1.276394,0.10200952,1.3931077,0.64370525,1.4378155,1.254751,0.8955547,1.1358962,0.7921253,1.073299,1.4355699,0.9854249,0.45819548,1.1247838,1.3066562,0.6091228,0.75533646,0.75106394,0.19441704,0.24570867,1.3535322,0.75623095,1.0586982,0.3678075,1.2219228,0.78114563,0.99447834,0.21511632,0.9258235,1.1102661,0.99668807,1.1947414,0.40388992,0.64199257,1.2820536,0.6334851,0.9377899,0.070840485,0.7320097,1.505192,0.61204565,1.165076,0.48404852,1.2919298,1.4338794,0.74144053,0.24432154,1.0545037,1.491553,0.8369403,0.068791695,1.329765,0.34559336,0.46091348,1.4758648,0.28550994,1.06068,0.31512862,1.1870533,0.49892497,1.4988444,0.17845449,0.64317477,0.9222074,1.1783063,0.89667976,0.9084958,0.4616643,0.048545174,0.77073234,0.7763634,1.1910466,0.60371673,0.110211805,0.950756,0.14807011,0.87020344,0.42529112,0.24892658,0.31066692,0.81049925,1.4073195,0.03140968,0.5098076,0.19324398,1.0456891,1.1810087,1.2986374,0.39058906,1.4456406,0.44867966,0.6377563,1.0852078,0.45639777,1.3105012,0.63066614,0.76271343,1.4263399,0.97959846,0.5013864,0.8041021,0.7208546,0.85484344,0.8635391,1.053856,0.7963561,1.565482,1.4013853,0.17268668,0.97748864,1.3097286,1.2936704,0.57265204,0.74805856,0.24007733,0.9467437,0.12658074,0.35856506,0.2408926,0.623701,0.38891992,0.7448924,0.53889817,0.39967045,0.008861255,0.13151483,0.5572913,0.09396768,0.82175946,0.833833,0.011792681,1.1906278,0.38515544,0.5311653,1.0548931,0.14881624,0.71632975,1.0480367,0.8436377,0.79811466,1.4697353,1.2459495,0.25351948,0.44670552,0.015310074,0.82455075,0.9404731,0.6588712,1.169187,1.0188029,1.1971523,1.2498938,0.24974982,1.1520343,0.3729149,0.9225995,0.9338629,1.1567993,0.7581273,1.4980081,0.5047274,1.0548904,0.7109509,0.4366579,1.4671443,1.1151112,1.5164175,0.9343858,0.07100456,1.2790526,0.14442237,0.12672609,0.882801,0.8680107,1.1659262,0.5795084,0.5785422,0.2978679,0.8938929,1.4357793,0.68642235,0.6932495,0.97488517,0.2718926,0.43826437,1.0033176,0.0640738,0.9363574,0.49882102,1.0231332,0.4545278,0.1193549,0.16746129,0.27578494,0.36024344,0.36265978,0.33674362,1.3945327,0.08315842,0.14546481,1.3001286,0.96166056,0.43973187,0.59769845,1.0310795,1.3535279,0.5940584,0.8115368,0.9382209,1.1831199,1.44535,0.62679136,0.14200853,0.9120156,1.1912338,0.8955174,0.81129396,0.88389647,1.3492004,0.5043934,0.9878065,0.7861281,1.2490009,0.87197757,0.4287304,0.6066837,0.39777854,0.581352,0.6155102,1.5262406,0.6674719,0.5989208,0.83804655,0.7234713,0.81154317,1.2566967,0.13998786,1.042369,0.53775054,0.48319215,0.9137715,1.0021757,0.5960262,0.047644835,0.36039725,1.2720337,0.77156883,0.9238976,0.886859,0.49814725,1.4633281,0.59446037,1.183983,0.8467413,0.12448438,0.9792765,1.0722322,0.96016914,0.8468342,0.45185104,0.82178044,1.0004623,0.73702973,0.9485323,0.26150858,0.7478711,0.48242113,0.8545892,1.22553,0.48606098,0.5256896,0.8794014,0.24546438,0.7023735,1.496549,0.4604929,0.9598048,0.5529049,1.4601988,0.56021047,1.2189575,0.41794512,0.45060033,0.367255,0.40354845,0.85880065,0.6352843,0.82886165,0.43755805,1.2988728,1.0190903,0.3767883,1.3999671,0.7124699,0.25324947,1.0059705,0.6746135,0.4703594,0.45064387,0.91764164,0.41999865,0.3336926,0.83785576,0.8641589,0.03246546,1.0885793,1.1886784,0.7178622,0.7008145,0.99808043,0.9233489,0.9401327,0.51200086,1.4200006,1.1018505,0.28597334,0.87517273,0.7148802,1.2204177,0.3172177,0.6894802,1.4298087,1.4845325,1.4795754,1.2525951,0.4334841,0.36933586,1.136153,0.721506,0.5282682,0.39177096,0.8455819,0.7242378,0.18925846,0.4151622,1.4312943,0.43406484,0.47604752,0.25198266,0.8043495,0.75857836,0.3420481,1.4630958,1.326937,0.6172672,1.0070245,0.887029,0.9328048,0.18975241,0.62691516,1.5051898,0.45767543,0.5098294,0.28261152,0.2046519,0.932658,0.865959,0.15132073,0.041072678,1.0567683,0.24529986,1.3239474,0.83710045,0.93578976,1.5266104,0.67799586,0.9803849,0.35635188,0.77362037,1.409669,1.2911345,0.718958,0.6256163,0.02168091,1.323388,0.55444884,0.786508,0.67931736,1.1038644,1.0180122,0.9016086,1.3569409,0.54216516,0.40936607,1.1403154,0.05874716,0.8957503,1.2083228,1.0680319,0.31892425,0.88763934,0.8029107,1.4375899,0.6544753,1.1426756,1.4659133,1.3421323,1.176666,0.32092583,0.5238736,0.8355084,1.4210224,0.38501287,1.4060556,0.44856322,0.06946072,0.75620073,1.2101932,0.4728564,0.9248982,1.1828947,0.6274185,0.58733827,1.0023441,1.538202,0.18670529,0.7868059,1.5705563,0.806774,0.43937242,1.0177542,1.1283774,0.17052558,1.4807886,0.2660932,1.3494066,1.385284,0.6130492,1.2565993,0.49627173,0.5977709,0.064430125,0.93204826,0.74122024,0.85912114,0.8218241,1.4131817,0.6024054,1.1277444,1.3404398,1.3089513,0.40673473,0.025174525,0.85848033,1.5187119,1.1079283,1.378126,0.07119821,1.0272471,0.52194864,0.68868,0.054212783,0.5653898,0.9309493,0.34528485,1.1564459,1.3851037,0.95381266,0.53929955,0.97825557,0.08500336,0.78301114,0.9678768,1.4847882,1.0618997,1.0885935,1.2984875,1.4207381,0.9843906,0.8245915,1.4415104,0.78776854,0.9559107,0.6677349,1.2445065,0.14030008,0.22489609,0.8629615,0.5075145,0.24672893,1.5247271,0.73023176,0.47560722,1.2753322,0.037698325,0.57031935,1.0755275,1.3923725,0.6237004,0.9444153,0.4507561,0.87501895,0.10859369,1.2305202,1.517653,0.5102992,0.46843815,1.2966177,0.55449194,0.4291772,0.7730186,0.5517275,1.4405774,0.8583395,1.4003379,0.7509755,1.1282507,1.2620575,1.0377058,0.44877902,0.65025187,0.3289592,0.78098077,0.48433608,1.0546714,0.5591998,0.5575944,0.103126176,0.8093731,1.3776944,0.95820206,0.74170357,0.6123225,1.1884685,0.23520347,1.0379401,1.2878238,0.35679388,0.43342662,0.2790624,0.31276986,0.44726443,0.77897197,0.7870434,0.9672876,0.5532829,1.5045063,0.91214585,1.0426009,0.63886774,0.95362955,1.028821,0.22660632,0.8102295,0.48835212,1.5052718,0.6346836,1.1723347,0.67981887,1.3553504,1.0148134,0.64007914,1.3864338,0.9547391,0.8066145,1.5321821,0.06292421,0.6612249,0.58587605,1.4436733,0.85523605,0.26846963,0.3291444,1.0978853,0.12895179,1.0070082,0.41818318,0.6032745,1.5313604,0.68570864,1.4703987,0.81190103,0.679681,0.83575183,1.0478435,1.3426872,1.1481543,0.68741536,0.9211797,0.6833608,0.100819364,1.2865741,0.7546881,0.6947553,0.6524376,1.0312,0.8985708,0.22549462,1.4545416,0.8019615,0.83766145,0.6156416,0.46418983,0.001519496,0.6254606,0.9977398,0.7915463,0.3331846,0.5201578,0.76683694,1.4435005,0.68230796,1.348969,1.5116636,0.82681584,0.43378884,1.2783436,0.30717856,0.615752,0.2798897,0.9205077,1.4487169,0.84206116,0.9295764,1.4353304,0.41852432,1.2476289,0.6592806,0.7930694,0.59259355,0.77961683,1.4059585,1.5606997,0.72164875,1.0819538,0.7121477,1.4879203,1.3085723,0.6327973,0.007998822,1.0114244,0.40139535,0.24640816,1.2625797,0.11551301,0.07316169,0.05205249,1.0890353,0.16766298,0.3655286,0.41505143,0.70965356,0.16314249,0.4161719,0.15286925,1.4424644,0.7913742,1.0305575,0.9019166,0.7197857,1.3577256,0.13289951,0.54340786,0.8411558,1.1085593,1.0402797,1.2774007,0.07285995,0.78858227,0.67326486,0.7101706,1.0815442,0.9783603,0.42239657,1.1036515,1.5615828,0.050811525,0.86087584,0.078342125,0.32241774,0.46336114,1.0730394,0.7658407,0.978319,1.3297396,1.3101342,0.7865657,0.7233254,0.30019757,0.9419436,0.93838054,0.3667115,1.0396256,0.65541446,0.6999918,1.3552904,0.8392857,0.9901422,0.9225461,0.23260361,0.5779996,1.0948086,1.4702033,0.124786615,0.55993927,1.2747028,1.3617415,0.9135319,0.9579131,0.09362642,0.517523,0.72683835,1.0532303,0.8924474,1.3087163,0.6596019,0.27867016,1.1150645,1.4864625,0.5414574,0.8987176,1.460038,1.0574079,0.7548115,0.5909223,0.39466164,0.45492026,0.3530355,0.6685916,0.29704145,0.385161,1.2331159,0.6371514,0.75104105,0.76218486,0.30160236,1.4701916,0.5496515,0.03925446,0.96231955,0.7279945,0.6224368,0.7528005,1.0748351,1.3175699,0.59287703,1.3005847,1.2688398,0.5620897,0.20115875,0.5048519,0.9837227,1.3141696,0.8815886,0.3199578,0.36896452,0.15484123,1.1565454,0.7451706,0.9313414,0.50519514,1.1102887,0.72207737,0.58261114,1.0999097,1.2182611,0.7174197,0.77697957,1.5533211,1.3930676,0.7310733,1.1050909,0.66700435,1.4947861,1.5154595,0.8781482,1.4911349,0.26996782,0.3844124,0.038203884,0.8129036,1.441626,1.5379422,1.0499368,1.0601085,1.2543228,1.554656,0.7873167,1.5254889,0.8179029,0.24020608,0.387541,0.6042393,0.7813146,0.026306972,0.09342867,0.1447014,1.24965,0.52027303,1.3823504,1.3590163,1.1219648,0.017127233,1.5076065,0.7288134,0.9456847,0.39678463,0.40303802,0.27901646,0.8070047,1.2330843,0.8691301,0.5710963,0.70402753,0.0921684,0.8384757,0.71019644,0.16172524,0.14815982,0.7568082,0.18049656,0.79058504,1.0315288,0.843745,0.649582,1.2592865,1.0465822,0.39498636,0.82608277,0.53214025,1.3887341,1.5087271,0.44840425,0.7722794,0.6927452,0.19999337,1.4850283,0.93863505,1.0821278,0.44585717,0.28213975,0.7377003,0.29069877,1.422641,0.48562714,1.5022625,1.295224,1.0952373,0.06232989,0.75842226,0.052437313,1.3884351,0.32711354,0.02592815,0.8844616,0.24881524,0.63747007,0.85030687,1.022369,0.004670435,0.798866,1.078758,0.40913618,0.5580466,0.70572853,0.49312907,0.38213947,0.70950836,0.10977765,0.26234776,0.8280529,0.4041976,0.35299245,0.7407228,0.74280673,1.1242347,1.0396934,1.2588929,0.92650163,0.49888682,0.78462476,0.21923287,1.5455056,0.011058363,0.5970098,0.7040545,0.47718152,1.0074793,1.4369276,0.28553706,0.9707365,1.4217832,0.12451669,0.79742897,0.51592296,1.2513278,0.26786923,0.26795837,0.4535965,1.265732,0.81755626,0.14287077,0.7253452,0.2951443,1.0023392,0.25255865,1.0335929,1.0406437,1.0345926,0.88563293,1.2293586,0.04376792,1.0081891,0.40150666,0.079506725,0.70073634,1.4770719,1.1763517,0.30531666,0.22992605,1.5065742,0.18723376,1.4988052,0.0560283,0.74770147,0.3430044,1.4330833,0.9919194,1.381759,0.019751456,1.2650819,1.2096996,1.3088083,0.51089555,0.2498839,1.2634624,0.9655592,1.0537058,0.83964485,1.0876921,0.5311957,1.4378453,1.5341192,0.3184767,1.303454,0.65696746,1.3574722,1.309155,0.033757202,0.68202204,0.35199878,0.20104784,0.72568554,0.07174654,0.7252677,0.94094557,0.7993489,1.3921144,1.3955258,1.3433676,0.44298875,0.83848983,1.5182176,0.6328236,1.4802716,1.2197669,0.23540585,0.8093957,0.37324587,1.4026499,1.3499315,1.3874805,0.8073638,0.29615963,0.6604726,0.0057767513,1.1317452,1.3996633,1.3437471,0.37888858,0.11572279,1.1463937,0.97538996,0.5692504,0.7353069,0.7902532,0.8579785,0.9360429,0.5776097,1.0048609,0.8551992,0.27584016,0.19691148,1.5556988,0.87561923,1.5368677,0.3871944,0.49902925,0.16838488,0.46112147,0.111459464,0.5673529,0.20328408,0.77501386,0.58394796,0.73364544,1.3197763,0.5839537,0.67555875,0.5005863,1.3150579,0.42985708,0.18187216,1.2161164,0.9330115,0.72786516,0.82415706,1.063412,0.8518799,0.30812111,0.48257598,0.17716786,0.64823234,0.8158614,0.16065174,0.6706979,1.0521762,1.3239058,0.82179105,0.6146823,0.92159736,1.4639649,0.7278204,0.3893618,1.0315995,0.8099631,0.45528585,0.6455952,1.2308629,0.35232332,0.95962614,0.16823319,1.0249153,0.7894541,0.7839818,0.33162552,0.46269208,0.2572899,0.6950427,0.53110677,0.90246767,0.64792633,0.7067964,0.74252677,0.973035,0.4869372,0.5283131,0.7560324,1.4871737,1.0201256,1.0623232,0.8315177,0.71986747,0.12683478,0.61526924,1.1248065,1.2499745,0.6020351,0.45929682,0.8323006,0.36689073,0.24356385,0.8051957,0.039307773,0.5228233,0.78386,0.938858,0.37373453,1.4515771,0.09650888,1.5265965,0.7461478,0.83351034,0.44280645,0.6780725,0.6265318,1.2782042,1.4190575,0.12747397,0.52834797,0.91618854,1.0792129,0.9352754,0.22143249,0.7396983,0.3746283,0.40070713,0.94698656,0.64929914,0.7425783,0.6989029,0.85410434,0.30370277,0.56104845,1.231914,0.7048868,0.7486724,0.7291267,0.5535356,0.29204062,0.6441271,0.49419475,1.144451,0.51490325,0.6022209,0.036135748,1.4397082,0.7017658,0.18098493,1.0600861,0.20367813,0.90083694,0.25503147,1.3815969,0.8969843,0.64788043,1.1998411,0.45788345,0.67787164,1.0743808,1.5407273,0.62849116,0.786927,1.0834175,0.64575255,0.107449286,0.6502999,0.25583136,0.7720855,0.7040315,0.48565614,1.0393722,0.9833272,0.5858207,0.9070219,0.58876634,0.49832222,1.3697283,0.61524945,0.9894867,1.2314398,0.013105248,1.2262684,1.3322353,1.0666224,1.0047933,1.4483032,0.97023934,0.96108127,1.1911057,1.1555086,0.58849007,0.7122067,1.1115779,0.3430908,0.91087323,0.71105236,0.9114722,0.6485319,0.7817114,0.62599415,1.0292755,0.7305735,0.7255833,0.8234917,0.8122473,0.107982785,0.024260228,0.25257725,0.92903835,0.90237445,0.046004962,0.32539803,0.31427586,0.72831726,0.660027,0.5726066,0.047889706,0.685852,1.3116908,0.24466044,0.7108938,0.41715354,0.40648407,1.1015304,0.89527416,1.3979911,0.798255,0.5625242,0.092094764,0.10800022,0.4685278,0.849219,0.5042156,1.1982147,1.1743832,0.95657873,1.4741925,1.1461926,0.8951266,1.0094801,0.8037154,0.21817604,1.228512,1.2827406,0.28352174,0.11092223,0.7925613,1.0707895,0.3386921,0.37976024,0.70622885,0.02924572,1.5294242,0.7107958,0.83654976,0.22902653,0.15544994,0.74611837,0.3696416,0.46050194,0.7070362,0.7744447,0.21440929,0.12249225,0.9574203,1.4879498,0.77644366,0.84064126,0.48505527,0.3189887,1.126096,0.3425991,0.93614006,0.5911975,1.0705715,1.3958676,0.9139965,1.0855889,1.1912233,0.1134527,0.99447745,0.7878002,0.15685914,0.84501547,0.65023065,0.50999284,1.1468812,0.9601612,0.8080493,0.6350665,0.74378604,0.6196818,0.70918316,0.9300773,0.19669627,0.71961516,0.12095586,0.46279842,1.5172391,1.3786365,1.3352643,0.59252745,1.3839092,1.4233007,0.8225464,0.61893153,0.32843325,1.059638,0.72868466,1.5434265,0.7852412,0.4287123,0.79047483,0.9361369,0.07173534,0.38535863,0.29735985,0.39600745,0.6872345,0.52543366,0.39536875,0.62408155,0.4687976,1.4430511,0.8249929,0.32911137,0.5952109,1.003064,0.71886694,0.9879343,0.26444367,0.67733586,0.8182112,0.73508286,0.10586034,0.6178428,0.39789277,0.53452367,1.2050697,1.0855426,1.0248291,1.3040891,0.53050244,0.57674664,1.2676814,0.7736969,0.7896302,1.5565753,1.0714998,1.0867336,0.5488402,0.5699912,0.9124189,0.14014813,0.16708288,0.70169294,0.04029161,1.3022927,0.6566944,0.54979813,0.6388061,0.04025822,0.09080914,1.5223695,1.3764155,0.29252622,0.44929525,0.46078363,0.8345038,0.7938427,1.5594409,0.42652726,0.30054903,0.67651105,1.0643585,0.51837635,0.541979,0.60978127,1.4522086,0.14578858,0.4580397,1.1213629,0.97872037,0.83840716,0.113378726,1.1292844,1.1902059,0.32446,1.212327,0.61697775,0.8346457,0.77997494,1.407084,0.9737236,0.21667378,0.84736425,0.40505275,0.116534926,0.38214457,0.14668955,0.88334215,0.96197957,1.4647713,0.59040886,1.557795,0.635449,0.08227128,0.77347195,0.66995734,1.058061,0.65213436,1.4857656,0.55864656,1.5212435,0.72472167,0.8381291,0.4689401,0.5504367,1.2232513,0.68120885,0.6080753,1.3939462,0.838453,0.014087402,0.49828294,1.223109,0.09584558,1.3525014,0.7745016,1.5379236,1.2874653,0.718523,0.0053929435,0.72512555,1.2639892,0.3898703,0.92397684,0.06875508,0.35245648,0.5784322,0.08921013,0.6142554,0.29736912,1.1437414,0.22577348,0.42366454,0.030789798,1.3552687,1.0140952,1.0184352,0.9050634,0.8348907,0.7942986,0.8554056,1.1990514,0.3516741,1.4188565,0.121968925,1.4087186,0.13150153,1.5371981,0.56991535,0.57101464,1.5501218,0.1631006,0.015560762,1.1684712,1.313828,1.3252093,1.3679965,1.0638025,0.72217196,0.017404938,0.94713044,0.5307719,1.2761327,0.26030353,0.5315213,0.93321407,1.4529247,0.29984406,0.94593453,1.1271261,0.8587293,0.33144218,0.6955414,0.22223914,0.62588775,0.861531,1.3557906,0.49635217,0.96357363,0.2557849,1.3137854,0.6143875,1.1440048,0.94686687,0.9496758,0.7734978,0.35250735,0.7711801,0.9737574,0.13458528,0.44402584,0.30957714,0.86830074,1.2257981,1.4736179,0.57146335,0.22692168,0.58348686,0.5674668,1.5700973,1.201028,0.13605732,0.85580903,0.16560388,0.815411,0.84646916,1.0832838,1.5244945,0.91116303,0.7239812,0.91551626,1.106901,1.3658868,0.28197986,0.6889964,0.82476723,0.009299007,0.4238563,0.66059315,0.712391,1.1743765,0.20161198,1.4249688,0.06841369,1.1462653,1.2184129,0.7479699,0.50384706,0.17337395,1.3110342,0.7085504,0.9186095,0.3965583,1.0751586,1.0734632,0.52637374,0.043214343,0.9716375,1.2222816,0.2666991,0.8735288,0.93921953,0.7488664,0.5947619,1.0938078,1.0978805,1.5592293,0.76915276,1.0712498,1.4135582,0.23828748,1.1512018,0.08066759,1.1304536,1.0610135,1.1834204,1.0334679,0.20147605,1.2757081,1.0779508,1.174776,0.62402385,0.07292639,0.9475598,0.5190443,0.5913247,0.10972692,0.8985554,0.8662059,1.1424603,1.2987487,1.2179694,0.9033992,1.0516806,0.9970873,0.60743004,1.261808,0.01792112,0.8165329,0.6523055,0.66888595,1.0579265,0.72391236,0.4560318,1.3669865,0.17800483,0.310701,1.0698236,0.6721964,1.1090643,0.7154645,1.302126,0.9201709,0.8702379,1.3054357,0.9026086,0.76818526,0.8489015,0.8931875,1.0994558,1.0391893,0.48301005,0.92313707,0.58548313,1.2646506,0.8223866,0.5635702,1.4357436,0.61811596,1.4528811,0.7408603,0.5894358,0.4917783,0.048141986,0.62213516,1.5640553,0.6829114,0.58126223,0.6270858,1.4405708,1.3305457,0.2867698,0.6153935,1.1204635,1.4697503,1.2599934,1.5162452,0.7674766,0.78619486,1.4387879,1.1333346,0.85646015,1.0994285,1.312173,1.0436064,0.65887636,0.7786622,1.0150802,0.5187515,0.79475945,1.0184978,0.8288462,1.088107,0.61796916,1.3359306,1.0337522,0.84390473,1.1259334,0.6595594,0.025053706,0.077613756,1.071368,0.16239497,1.0019488,1.1212361,1.3380123,0.3512402,0.68220204,0.9663622,0.74560446,0.9552181,0.6195558,0.27932173,0.6748134,1.1643124,0.24451533,0.00030269095,1.5622097,0.24335513,0.7174718,0.8081264,1.32193,0.79723865,1.4894385,0.70361394,0.046107993,1.4989115,1.4223961,1.4277735,1.1660337,0.6932233,1.5016547,0.35870638,0.59489757,0.51231337,0.7813735,0.20942877,0.20793039,0.92671347,0.5524543,0.23154135,0.89777964,0.529589,0.16511546,0.20819023,0.73365325,0.80052,0.83466077,1.268862,0.9891375,0.2883669,0.7731012,1.5180905,1.0340291,0.38588202,0.7855616,0.12858136,0.8625839,0.4879739,0.8400212,1.0561304,1.0283775,0.011599943,1.1081902,1.166229,0.5609034,0.60243833,1.3590027,0.106588416,0.8603683,0.59990525,1.116504,1.5345856,1.1166353,1.312477,0.35719988,0.549072,0.0021046798,0.3110345,0.9899993,0.14470635,0.93492585,0.7748119,0.6579999,0.7737368,1.1053474,1.4815011,0.42074862,0.39756337,0.80868995,1.3407599,1.5308983,0.60193634,0.17412534,0.35889506,0.2285371,1.1125994,0.47066906,0.4971372,1.1383877,1.1878166,0.75018096,0.441414,0.09011853,1.1396918,0.96183157,0.9069124,0.46345007,0.7971056,1.3243165,1.2863134,0.97354275,1.4186524,0.8390619,1.1522481,0.2962582,0.09712162,0.7061653,1.037932,1.2612752,1.0866889,1.5552816,0.5917202,0.7645542,0.9877358,1.541674,0.16880853,0.75122136,0.48750815,1.3055794,0.4378633,0.8180249,0.21244273,0.6299714,0.8448621,0.8761395,0.7227218,0.6653228,1.1007982,1.1625865,1.129875,1.5185672,0.67115086,1.1639597,0.6269457,1.1020837,0.6353505,0.091108166,0.8295721,1.4973885,0.6986718,0.95116514,0.809313,0.73075545,0.8368552,1.3042327,0.84907013,0.49108028,0.71424586,0.94589865,0.41970232,0.48962057,0.80443066,0.9320775,0.15334734,1.4273475,0.70088196,0.1009587,1.518568,0.99513733,0.38103086,0.71706426,0.89788306,0.69587445,1.421914,0.49094605,0.099564105,0.4007373,0.17195553,0.9412268,0.12214153,0.68317765,0.7315641,1.3109486,1.1777301,0.5417125,0.80152804,0.85893613,1.4099894,0.52694356,1.0940154,0.7701427,0.87764996,0.8724692,0.7957811,0.0036934267,0.97376853,1.5370586,0.02472057,0.076250345,0.3422873,0.15483493,0.8547569,0.3954743,1.1902624,0.85768676,0.5495328,0.87558484,0.57007146,0.087680675,1.1017725,1.3265319,1.5310539,0.81954056,0.7187819,0.16256003,0.4789584,0.88330895,0.62567365,0.23678964,0.7782711,1.5124272,0.9777125,1.2882283,1.5086498,0.009008778,0.1694702,1.5380671,0.47042933,0.9644917,0.5357436,0.11890121,0.52189493,0.76519537,0.7595017,0.58371496,0.06953498,0.40188327,1.3574692,0.979598,1.0031214,0.45200354,0.25340647,1.2759271,1.2330084,0.15026608,0.94834673,0.20280848,1.2692817,0.35014513,1.0378097,0.66039824,0.5288937,0.67908704,0.8567143,0.5947824,1.4879389,0.39089024,1.1775502,1.0008078,0.82508945,0.20921057,0.9460992,1.4193883,0.69359976,1.101209,1.1262544,0.6989975,1.1488079,0.7891669,0.7184577,0.5754741,1.1627302,0.08402148,1.3176389,0.59429765,0.33228946,1.1833773,0.30377328,0.6429045,0.82965916,0.46476588,1.2208499,0.69903475,0.5991872,0.982327,0.4348762,1.170949,0.20146912,0.1431771,1.456679,0.7397089,0.8237277,0.90236014,1.0768719,0.9983037,0.5759341,0.56936085,0.31291032,0.242165,0.5503905,0.22126809,0.5617517,0.9431459,0.5687536,0.9538423,1.540638,1.4626894,0.64726716,1.3020651,0.2635073,0.6572924,0.19333969,0.7414384,0.65140676,0.664832,0.2090186,0.3855845,0.45714232,1.1397059,1.0344294,1.083883,0.26241663,1.261008,1.301033,0.9039729,0.45709527,0.2443488,0.07429322,0.86255616,0.5355348,0.98555106,1.1021304,0.88874,0.6627961,1.4297906,1.3155919,0.14288196,1.1861883,0.111457504,1.3965904,0.38432726,0.4972648,0.7452012,1.2035037,1.461983,0.22438817,1.1208797,0.52428037,0.16634814,1.199175,0.84770954,1.3424617,0.978725,0.8010673,0.7673082,0.7748976,0.58055794,0.77985996,1.5030547,1.4137411,0.967996,0.43731248,1.2915174,0.48644495,0.66471374,0.2615993,0.81280565,0.6619426,1.0464656,0.5543385,0.005750721,0.6296036,0.866912,1.2302679,1.5370013,0.5561351,0.5571912,0.8034927,1.1867616,0.97464365,1.3234369,0.7146204,0.19512796,1.2720017,0.6535398,0.5829647,0.7411297,0.77018625,1.049561,0.2298988,0.43614298,1.4723934,0.22581503,1.4257605,1.2779549,0.42443907,0.13204318,0.91798943,1.127583,0.84957045,1.2797482,0.64287734,0.4059932,1.1540321,0.28412384,1.2596126,1.3483694,0.8406638,1.0410104,0.85503817,0.5996339,0.9040724,0.03553688,1.1333089,0.8561099,0.7774543,0.7120824,1.2635735,0.606597,0.9973442,0.7526135,1.3271164,0.47586834,1.3986583,1.027405,1.0047094,0.4214439,0.07152837,1.190516,0.24761826,0.8564506,1.2368534,1.3644716,0.9206163,0.5346902,1.3529873,0.5510198,0.6103451,0.50727594,1.376849,0.20869431,1.0381762,1.2466192,1.3891443,0.61040634,1.3682672,1.3388863,1.2562822,1.4729724,0.34078977,1.3114052,1.2454642,0.5226182,1.0616689,0.50793964,1.4646218,0.75527334,0.25975788,0.5886062,0.852286,0.74041516,0.89689815,0.33931747,0.6399569,0.098797776,0.2636429,0.894082,0.63010037,1.3513871,0.42570913,1.5701557,1.013807,1.4818128,0.8030918,0.7277209,1.439008,0.42227927,0.7856708,0.8763513,0.8421141,0.030410748,0.6791212,1.477877,0.685647,0.41958556,0.026484566,1.335772,0.9438306,0.708408,1.0856224,0.35626087,0.51015687,0.31520942,1.2041508,0.003386381,1.3862859,1.0079216,1.055396,0.8434018,0.61583054,0.3882252,1.1106552,0.66825646,0.81482327,0.9010157,0.51795715,0.9285341,1.273766,0.9541259,0.5934572,0.4930543,0.9578648,0.30327243,1.2674892,1.2533635,0.4637732,1.2201507,1.4444262,1.3668088,0.67063653,0.14806168,0.747254,0.75711066,1.4529554,0.68661106,1.3290738,0.63835514,1.4158432,0.59408987,1.0325133,1.0172193,1.5263635,0.9201929,0.7096846,0.70481634,1.1839457,1.3926744,1.0427744,0.9348656,0.92894727,0.17267768,1.0362753,0.79522187,0.7284187,0.4881433,1.4171726,1.4486458,1.066076,0.87931836,1.112855,0.28246024,0.07845114,1.0705432,0.4252873,1.0190868,0.7610596,0.0209831,0.96231985,1.0334046,1.1896226,1.2968491,0.8807403,0.51641977,1.4338257,0.9280714,0.33384988,0.4941918,0.35965428,1.5092735,0.5863948,0.7515006,1.049022,1.3917056,1.444002,1.18381,0.619385,1.2646965,0.16337235,0.5664728,0.36400434,1.3902135,0.65630144,1.3420933,0.802455,0.3738328,1.0960422,1.2177309,1.5452493,0.32647195,0.09242941,0.5476412,1.0374706,0.84962046,0.5899364,0.991065,0.93743956,0.09282483,0.8697033,1.0683815,0.703289,0.44927016,1.558438,0.24598852,0.74467564,0.8565987,1.3158652,0.99317086,0.95337516,0.63792884,1.0176675,1.2758635,0.17111684,0.89391494,0.968316,1.5024098,0.98304087,0.77703357,0.9858439,1.2379539,0.077285126,0.50982326,1.5357311,0.54986435,0.42980376,0.91898143,1.5172796,0.64299464,0.95833457,1.1621004,0.33466423,0.16211094,1.0999956,1.2360219,1.3351997,0.69971275,0.63132584,0.75515133,1.2832817,0.12220974,0.2320402,0.37689164,0.41506588,1.031869,0.7929821,0.7178956,0.8788022,0.24603012,0.10218375,0.76248986,0.8706286,0.98237056,0.39523506,1.10539,1.4784619,1.3320787,0.9919789,0.7031921,1.1194172,0.7858684,0.53064823,0.7051836,0.71843964,1.4921749,0.46975204,1.5662341,0.9240361,0.58346367,0.49699965,0.8264156,0.75156957,1.1955283,0.092367016,0.1597157,1.3708566,0.06787819,1.5350764,1.2221304,0.9784444,1.424862,0.44923955,0.5941955,0.46707845,1.3943526,0.48890346,0.42806026,0.52605265,0.6938546,0.15631174,0.047703013,0.81566805,1.0333143,0.7104831,1.3792713,0.21838166,0.9318707,1.2841934,0.08163539,0.41488966,0.65387875,0.20433643,1.0760598,1.0123419,0.8384143,0.84064746,1.0119517,0.7671236,0.4192321,0.6649758,0.25463146,0.93641925,1.1349537,0.50733376,0.3136029,0.4036556,0.10755729,0.07901248,1.0182958,0.19778006,0.5027887,0.75903356,1.2973877,1.074672,1.3015543,1.2374434,1.5616239,0.66196156,0.438736,1.3792702,0.61435825,1.5143696,1.0658019,1.5500641,0.8409113,0.87442994,0.17212518,1.2313744,0.69636804,1.2236587,0.24635062,0.87838036,0.20600356,0.20993079,0.50891757,0.2430963,0.87442845,0.6998232,0.67070705,0.17514896,0.4682858,1.1878059,0.6201308,0.66794014,0.80671203,0.32993898,0.08936444,1.4032061,1.1724453,0.9599705,0.14463322,0.69303,0.3702393,0.3340829,0.36415327,0.48997447,1.4229921,1.3216302,0.41531715,0.20417239,1.42066,0.1515516,0.5011437,0.72468823,0.7797289,0.35737497,0.40649,0.66358423,0.7051853,1.1181421,0.81361496,0.9499543,0.8642722,1.2226624,1.0858316,0.806759,0.8149244,0.9379237,1.043919,1.2643011,0.6502058,0.8791741,0.5616201,1.2438169,1.3136098,1.1799438,0.6567032,1.0869455,1.0419809,0.84032345,1.4702443,0.3493508,0.7529805,1.2866131,0.70848083,1.4578449,0.60462844,0.64577365,1.0203236,0.4436218,0.5725831,1.3685665,1.273156,0.7534299,1.3577013,0.31306583,0.8213056,0.9949205,0.3613884,1.4801372,0.51145184,0.7811057],"x":[323.38623,428.1189,392.36963,252.24364,46.32101,364.94803,92.38209,63.31073,480.70444,399.84088,261.73123,300.98746,317.921,71.57971,458.23843,167.00507,170.94675,499.48438,439.95618,101.53671,24.241436,219.95355,306.18762,150.59862,346.926,400.93448,48.30311,411.2414,435.10825,96.6192,223.52643,338.7947,49.1591,362.89117,397.11752,333.55234,100.916595,106.30537,402.7314,258.9954,220.46513,249.72633,146.7062,390.4346,458.6739,83.572685,160.22015,356.9905,66.06789,428.25476,421.75537,469.57303,283.7208,134.11197,477.32196,158.5024,245.03491,416.68814,289.82617,334.5539,439.48438,189.14459,481.64844,223.79301,473.03177,446.3599,413.07855,231.67223,109.819435,208.27728,115.53318,153.90694,124.931854,363.99127,23.024761,460.4953,39.736122,296.36502,474.66196,189.34412,453.90768,118.17092,31.052143,316.06885,146.50662,401.56256,448.45392,234.45703,13.979352,363.7682,240.30135,50.972134,460.44565,266.53964,157.08646,217.11472,184.92851,273.11746,291.47095,122.60057,29.21793,457.58203,284.50806,227.57564,494.7805,141.87798,21.307693,223.84982,412.89886,6.353139,499.20996,227.14485,408.4055,419.30835,256.17896,233.39647,349.58557,18.6723,466.64658,113.19839,296.1787,449.22018,424.88742,338.66785,238.32085,410.02094,398.43124,221.91827,338.53122,228.08405,237.75108,264.83258,81.39733,148.85654,460.29355,346.5871,137.4293,367.14575,177.96541,44.44582,496.219,74.24052,166.00647,36.50926,382.16956,163.1746,347.10947,78.23974,329.9807,306.87234,449.8307,37.74661,46.869278,372.3826,479.30902,227.17395,206.44328,482.92996,298.5155,57.861958,404.04373,84.44029,183.55006,76.82448,420.65527,277.03812,73.23731,344.1088,292.76587,421.14172,288.75757,217.30222,27.073647,1.997279,484.62018,101.89205,181.73535,475.24835,190.99733,235.26682,427.10977,236.94244,153.71762,475.75412,241.81003,17.03541,182.81432,202.48978,44.753387,314.7497,132.62918,407.76044,50.68211,463.28488,364.46747,24.801033,240.74867,324.07126,86.842125,452.30252,394.77567,249.29419,82.85363,41.971123,291.53317,472.02383,171.28445,486.15747,458.2921,42.81251,460.38333,136.0527,80.75991,365.8445,229.00743,441.21558,195.86473,363.00128,35.910885,363.27908,83.95283,246.91866,148.85344,417.94165,413.799,432.59497,139.02429,53.826622,332.29837,253.21724,17.900461,314.91263,386.43918,138.47128,395.05664,77.95586,354.02618,74.23665,159.49326,165.42412,384.33603,161.90515,422.9077,206.94421,5.5575304,197.75267,355.20822,293.41855,210.09283,110.275566,231.38622,369.06653,48.358604,372.62894,367.8589,308.53754,281.8534,358.595,439.4272,106.65504,496.7914,460.8302,438.63315,228.74336,374.4291,287.30963,327.99622,286.6253,51.513283,457.34018,129.23538,457.43958,104.55791,89.66209,35.39503,209.51317,89.38941,103.08638,469.19867,425.92062,157.72801,442.29495,123.33885,28.448828,222.23544,290.1838,457.0843,185.51703,483.10907,213.91612,464.45993,246.3762,285.40817,249.56378,10.939361,193.87662,374.7498,118.44532,166.0455,449.20053,6.2113986,211.7295,109.14082,171.10693,472.25864,164.77304,327.9708,359.25745,352.12048,299.3882,20.796158,446.31876,95.89428,408.7377,243.85587,449.79062,36.172813,319.861,396.58694,485.28992,326.36246,225.28226,95.53969,450.77866,367.46643,380.15024,465.37927,433.50732,429.11908,385.67447,475.27823,425.07062,443.25262,60.140095,82.98009,463.56226,228.09676,462.34308,206.58452,92.28074,238.18631,256.51996,431.37598,28.633972,341.43823,2.4833772,479.83585,85.43955,41.09866,471.1372,423.69318,400.31567,169.49197,230.92537,308.68286,492.8448,9.225546,330.7051,373.32266,485.2246,226.08727,317.38812,79.371475,123.233475,38.922997,71.1994,482.576,404.93027,14.377395,496.74878,282.46,305.9146,385.67474,36.193462,391.02667,397.4777,69.342804,54.364017,56.032967,9.6467495,317.46323,244.84848,209.29187,340.4454,366.93213,485.30655,93.35379,260.55746,485.2879,312.8835,411.613,11.188835,190.44495,490.08243,405.35236,135.91037,428.2721,392.84494,83.70885,239.12115,21.315638,421.10126,193.5651,182.17302,465.50217,171.85362,280.8268,121.31234,356.34604,187.3061,162.313,28.41825,423.66183,266.51562,430.23734,81.77508,242.70496,469.6558,144.53874,305.12665,70.0609,213.29984,279.88043,463.39105,478.74872,170.58727,322.8208,498.95633,285.9478,247.95581,122.69639,51.878246,18.989948,434.18378,5.3541155,49.22354,329.32217,322.34525,87.98624,235.55669,96.50369,129.56093,362.30664,64.71779,307.3558,462.661,482.60767,351.27725,373.51828,486.1121,156.0962,317.5192,200.90187,468.4621,60.104935,170.73027,265.7895,184.84766,157.4385,116.21872,233.24973,172.06668,384.5046,235.83318,3.314102,227.8472,61.025856,52.831852,195.59126,477.16818,215.81691,393.33383,453.54132,405.68683,235.71512,410.7039,215.27457,345.27097,449.66885,359.61676,100.30309,22.921394,489.1129,250.53073,230.55252,491.47388,334.8869,37.772423,235.33353,463.0301,163.18922,4.1036015,115.07262,473.88495,80.65921,263.25427,335.0048,431.87662,93.34517,118.43829,119.1792,148.21803,190.02155,175.0362,155.57193,397.2246,42.809776,66.436424,85.4919,8.647873,390.4943,451.3349,406.49316,278.32547,66.84234,412.43646,21.884394,77.379395,387.8877,105.40328,362.09653,27.521551,494.94983,127.39125,157.3469,114.447174,479.06036,299.74637,91.13801,450.716,217.54369,244.53235,485.4686,180.94662,79.720116,470.94415,96.991325,313.9455,114.07658,205.31047,497.47903,26.417343,56.40877,202.33539,171.19717,271.53815,7.438467,89.81764,170.88177,141.19513,416.8861,335.85287,26.053589,115.110275,141.09608,395.70993,375.13962,398.03217,222.57285,79.9927,351.04355,411.06427,135.57278,127.33827,195.31207,478.7495,395.77823,237.28401,359.46738,104.69086,202.79204,120.635185,45.395092,489.15125,43.118946,334.9098,327.3279,87.73348,424.58167,462.84586,10.8757715,441.74927,305.01855,388.0922,61.28826,133.4579,253.57104,225.48212,424.0982,13.400962,208.74673,325.87833,58.258286,57.34247,188.47179,266.38116,437.19913,226.00728,412.30283,86.58565,393.85733,26.123758,87.66943,495.4092,138.20744,264.7728,431.62518,380.01624,304.92255,219.71886,463.0874,185.41086,149.64967,462.50052,258.33084,424.08252,238.266,265.6804,59.136215,347.9553,385.91867,387.54498,279.36447,30.585583,497.09393,297.12827,479.92303,287.59457,474.19504,462.3991,323.41812,46.295757,217.29494,58.030888,6.637665,15.479855,64.89887,37.617023,63.616955,126.75588,112.11898,287.7215,21.561878,199.30396,190.642,257.78625,25.334223,333.5243,261.71848,159.10048,202.45189,195.56581,231.01733,45.270817,251.30609,477.2709,257.03214,262.2181,325.23184,219.10358,385.47916,181.26202,349.3732,132.72871,493.26727,167.35184,326.94717,287.0624,382.10522,284.3836,326.41138,226.21013,42.592083,185.03137,482.8555,354.4373,140.017,381.06863,167.91307,211.40747,124.48967,363.9303,461.3805,132.45856,343.91577,431.4776,235.04019,436.5186,168.3084,335.59378,417.88074,387.7731,456.56476,433.50653,299.29352,103.30625,360.41727,350.25647,389.4628,302.50574,205.83916,262.81073,157.00764,39.16076,124.76408,69.921,481.77905,235.61049,343.05423,417.63727,452.14487,61.282787,326.814,108.88077,440.6735,175.82162,21.141111,26.261337,177.7865,104.597084,314.5659,118.421,365.1095,305.51627,257.92712,354.2688,327.76175,48.60763,453.41864,412.1231,335.63663,114.90239,429.52032,11.205247,287.64868,262.68887,225.083,404.9586,418.14526,136.04858,345.12067,21.13221,298.11948,62.07985,155.01854,360.94272,139.7009,56.25123,323.21924,38.03151,351.21094,87.99124,39.1724,253.8174,276.33124,228.19675,151.71695,364.91068,163.20895,483.3149,246.62613,354.72882,70.36158,220.90465,1.4363567,445.61368,108.37462,35.01429,231.31189,355.17682,295.1616,279.2363,204.57875,205.60175,31.710451,98.73609,259.2907,409.8944,448.5014,87.70672,84.158,247.78423,155.35078,53.314514,206.548,403.44095,248.92094,221.25764,498.88547,36.75007,146.69443,116.73073,267.5133,154.5658,393.97406,311.50238,294.68115,417.18848,423.39078,289.5837,215.21965,305.7775,139.19576,468.68628,25.904425,209.29407,324.0407,260.6351,228.14749,220.82637,499.6694,376.3248,242.49606,395.2161,227.50961,367.78964,328.15906,16.861124,354.46115,314.00308,227.6426,451.96262,112.424355,187.36827,2.3535528,346.6659,118.04539,395.02658,210.76892,94.67288,370.12433,101.35576,105.62922,94.03203,256.17468,162.63197,294.32828,489.46732,285.34555,382.53934,475.28262,412.45554,354.444,181.43993,492.9144,408.72195,161.53069,54.599804,262.82043,423.04623,168.9773,322.92798,160.58745,351.4868,241.13405,79.98316,313.33203,269.04535,241.206,310.41672,478.84714,436.852,57.526363,11.352224,226.42653,393.14203,308.995,495.3498,227.87447,68.57585,121.14515,379.74255,470.38388,316.92734,84.366646,421.6639,93.207184,113.25066,129.0567,367.70602,24.674873,388.96808,356.78622,4.6284323,396.157,284.64178,427.0846,301.7052,66.1408,291.70026,118.00664,264.45682,330.05624,129.06117,121.02219,263.93088,314.5675,348.78452,478.1404,226.95854,180.65352,307.08054,281.43524,384.04065,178.36475,44.095524,208.98251,19.980993,445.4138,167.048,352.54913,228.93686,188.9753,69.92561,194.18538,469.38074,303.64395,244.91147,23.728596,471.59106,19.9463,72.265366,134.23347,397.67874,55.30053,211.3113,456.12335,226.34097,462.137,78.225044,364.90155,282.725,33.19919,101.096115,84.12672,347.88586,258.14316,97.52029,11.039792,262.81696,384.19632,0.14582278,61.021362,479.90704,326.99307,96.994545,214.81705,358.70752,357.5911,209.30339,499.03668,399.47394,326.65543,31.66117,440.6794,311.04465,107.46771,462.31274,87.3275,471.5768,39.50628,306.05408,185.15013,409.83087,484.6031,321.73447,201.73244,493.43365,210.10323,218.02013,18.936607,8.070346,237.66275,368.27682,325.11414,432.56323,203.06714,59.309128,80.55413,157.1931,348.27298,353.56818,180.04901,379.55685,212.36546,189.476,465.95926,109.17146,40.079536,310.7004,284.11105,22.82352,420.6368,64.26813,469.1733,425.93912,468.362,58.732723,350.44592,243.99924,450.43,241.02884,409.00403,4.563776,488.17175,385.93698,129.75996,477.8627,328.68103,25.553286,124.92769,155.04109,445.6685,147.01485,396.43857,433.03082,214.15918,495.9541,41.72163,133.89816,373.51892,143.3408,64.09054,450.67178,408.15762,473.63342,460.55124,465.68362,81.16738,356.5217,218.69151,278.4974,1.6909333,131.76508,131.14809,125.53604,74.49355,239.40617,63.471474,248.42307,470.56863,45.526253,211.20796,307.6965,162.8029,496.61014,153.09969,225.66124,235.1563,439.47528,194.55916,181.48883,173.5221,124.23885,89.09271,238.08646,267.35358,489.81372,391.1381,139.66838,480.42966,79.37384,184.14958,95.078514,373.31586,341.3939,214.6017,193.29239,53.57447,259.22705,475.01498,119.052826,6.0749693,357.75433,451.43454,0.2643819,435.56357,122.865135,268.51544,464.73312,246.4751,403.26758,72.27786,25.358269,427.63605,8.424995,377.9182,231.18623,4.187758,33.155277,483.3696,20.608648,114.711525,244.19035,267.89774,341.4079,273.95148,370.94742,170.7441,209.89519,42.841324,269.7147,67.867516,497.18835,58.735268,292.2291,209.25685,66.42136,262.00217,97.93495,469.18994,151.19902,436.4548,119.171906,383.76605,387.87723,111.59202,317.3539,157.62189,406.25647,240.39975,401.9132,146.65843,398.12296,145.29082,441.08105,390.39072,254.58942,63.818142,104.964806,214.44601,245.27747,280.97382,213.5478,20.799908,193.34662,363.35657,243.40498,289.01138,23.794157,237.987,187.74113,490.57324,161.55467,352.08133,6.022707,356.26382,216.24585,272.15347,85.416985,480.80377,258.90015,189.94434,298.61642,302.6926,99.90406,38.510864,130.23108,6.0699596,350.14404,85.86162,7.890553,408.96054,63.72174,166.07811,78.84632,1.8486333,444.26633,261.19568,43.919018,423.91806,441.95728,402.2287,478.8179,289.58163,313.1688,284.0663,86.248184,491.16385,363.78088,59.99617,376.9507,63.507885,40.807705,472.62073,352.04605,159.79128,381.54184,267.49466,112.11191,22.219849,76.44795,318.5754,50.806072,474.89328,462.09897,445.01144,256.26666,30.175936,384.7406,411.61835,321.3927,248.98085,297.88342,441.73547,268.3489,217.10753,344.52313,135.6061,222.88402,299.43765,419.87738,267.36984,276.10025,292.32172,290.6523,271.64465,371.33804,55.160656,390.1751,315.15515,257.2499,253.66986,70.182724,326.43692,494.60727,212.55423,457.24304,385.68677,455.73785,237.1659,131.19312,232.24442,494.65253,34.660328,126.9134,153.23274,49.791607,102.76615,341.69662,30.33374,426.71182,422.09195,394.55502,353.42065,492.46564,32.131626,152.68968,105.927734,350.46545,413.12247,234.48087,14.297899,84.31934,244.53818,350.13074,423.59076,210.42854,488.99945,352.6855,490.92798,6.5574956,226.62112,190.27704,356.72208,133.90236,153.71147,409.42392,238.82498,33.972557,135.9491,39.147736,72.03641,417.5356,350.45282,72.883286,16.72305,235.51117,421.2952,168.5549,468.50577,443.04166,473.5869,429.96616,332.31668,110.50853,195.9576,423.35226,271.86304,268.50623,485.68356,405.4323,48.023167,110.01758,184.6666,20.367374,344.85086,324.76074,330.68488,44.111366,63.26769,239.1362,492.5634,57.330166,423.03342,205.81322,192.31337,269.79926,290.42462,372.5559,428.67044,326.36133,166.286,91.201546,358.1186,419.57855,105.26693,331.99405,425.2841,448.72546,465.75577,386.86688,430.37674,419.68127,299.04813,322.62607,449.7496,152.03874,138.37961,171.68825,474.3724,183.92152,203.75473,478.7774,485.68622,320.18234,359.964,419.2518,487.70782,167.38406,466.1872,133.96956,253.86992,221.6233,227.15326,40.447502,149.05914,132.53795,271.80844,148.44104,414.69244,367.98178,411.15637,230.94579,319.53998,482.17105,492.42844,230.39487,115.4627,231.27759,229.73798,191.01833,465.82806,197.04463,85.65594,354.9646,159.41585,389.52316,25.0838,355.23477,79.32984,85.08919,462.12253,93.662766,308.90372,70.3141,43.285175,324.70248,429.6728,86.41867,186.95499,35.504654,156.55998,32.85547,102.97309,224.08513,350.5268,70.28767,289.40332,87.21216,257.752,81.67696,170.1826,237.29187,383.01773,334.00443,101.16543,109.41972,124.26091,253.74174,89.05629,223.51863,123.19104,198.27982,353.64667,0.6491556,76.47451,454.44116,334.61154,479.42276,337.1799,304.86145,311.15082,107.227585,435.33847,178.45198,255.09087,338.16528,438.96182,105.90344,184.26863,214.15462,402.91016,224.30621,59.32814,226.2478,188.9378,350.43707,198.47574,188.968,340.10004,250.94077,471.02066,392.07306,264.34747,344.14337,456.44095,479.09628,307.54968,348.27386,62.655724,28.836445,365.86148,356.87036,96.77718,340.09305,129.10768,158.71246,239.53218,249.98958,24.70711,48.65076,20.077625,316.24384,31.462698,360.4562,275.01517,392.6873,115.38216,107.80276,9.578106,276.92136,428.60538,383.731,152.73654,54.556522,297.02722,415.9024,418.10638,69.394485,478.73413,44.293095,229.64778,410.2214,35.49191,278.78165,55.497913,447.81076,350.8688,194.16626,216.86327,49.475674,400.1899,56.848953,436.0852,199.68158,298.7668,74.344055,43.570778,121.87443,163.50067,174.76343,81.821526,421.88416,169.27959,429.84866,184.69539,14.182648,367.63416,113.92661,22.412699,54.638126,295.84387,154.0945,145.83798,495.88974,102.7029,244.67633,102.889854,327.99463,254.52777,460.1468,156.62302,358.516,447.00357,4.664215,264.63083,205.52425,306.28754,57.489174,495.1974,226.49834,457.15604,409.83984,94.659096,425.28802,86.87013,190.0241,430.79678,346.73892,326.13547,459.9353,24.42334,312.67197,235.19656,213.37376,251.15569,112.386765,468.3439,79.48225,243.00316,43.412144,201.5758,181.43558,219.74365,72.79321,279.5419,298.18307,41.90149,408.41376,491.8675,297.98248,216.5513,402.0411,498.20163,95.369675,141.5048,59.849873,189.1767,386.26328,456.8196,440.48938,130.75702,160.8147,24.003283,77.43962,140.64078,7.2518935,86.55415,13.352757,244.6463,345.2316,425.84854,169.58894,348.82938,268.62253,63.868828,401.15845,16.484337,359.1602,431.00137,269.89145,131.35805,351.39532,273.46677,467.03763,488.50507,194.97087,55.60035,356.29312,74.75995,346.6156,187.67046,46.89295,54.620712,41.50609,118.04288,436.44293,130.0565,237.56636,206.19882,478.60245,54.218777,80.837875,489.7505,62.358074,146.30283,125.39981,1.4029005,317.60434,398.89212,254.24896,220.26901,72.76058,188.64322,120.64836,456.98276,159.37111,133.91936,82.486404,379.90863,199.68542,269.87067,132.09956,13.693531,23.799303,471.59753,104.66419,414.17752,444.80746,470.36307,53.91393,321.5729,96.71213,91.400085,135.21384,322.68835,246.88647,195.8699,127.18599,336.1186,85.83614,360.34885,25.83809,7.3123093,312.53613,35.09687,454.94305,6.619378,345.82202,404.67697,472.26904,420.8183,185.24149,9.017539,18.7664,240.1724,114.77113,378.7701,220.00418,213.35446,324.56448,464.72556,226.31136,407.91916,424.78558,112.21416,217.90428,221.24178,383.3979,154.09402,416.94556,334.31006,484.19308,338.27246,245.87473,361.7419,299.52863,361.59927,337.55048,10.925397,157.43997,317.0706,174.00589,146.51126,370.03134,399.30792,35.68857,139.69334,491.04645,442.21472,333.49878,167.29276,46.6683,251.06374,301.24582,151.01299,185.6281,255.55515,420.16476,119.913284,380.86636,32.27083,146.9072,257.43704,420.48856,365.7152,472.2638,102.60556,375.66736,253.45103,439.5113,6.259706,183.39035,362.96075,268.10483,206.91118,85.53962,202.63646,211.28801,157.3584,384.14774,52.424667,267.17178,13.790256,288.99243,334.96997,230.11287,451.13272,77.21074,222.03046,109.439705,53.48613,276.8903,27.866106,105.51654,410.0801,353.21976,44.987965,386.94757,307.7762,39.867702,151.29121,346.15506,499.25766,10.149367,292.86237,58.586136,398.96027,333.0755,414.43848,147.84714,21.008986,33.26947,24.075632,3.852951,291.22897,341.4862,358.82736,285.8841,257.74277,469.58426,426.4628,478.1785,333.57257,394.50198,394.81516,456.2796,461.29248,402.98553,391.21375,18.250544,161.20914,227.42065,88.737,391.364,264.39383,101.54369,6.1722565,112.801956,314.8099,444.78107,155.45462,117.43583,389.61716,102.82143,319.6589,193.35645,141.71107,171.02072,199.80821,461.84268,72.32298,299.21448,9.207161,455.99405,241.909,345.60507,484.87167,348.41733,407.9188,30.217762,347.59134,43.98327,422.817,22.748652,265.08356,406.8574,91.28768,178.65068,326.24686,386.35007,332.4573,17.385563,252.0034,89.267715,447.83307,388.1291,320.93698,44.609016,469.90903,218.52187,355.1663,233.23724,138.36229,481.70322,233.72108,15.105035,474.0698,199.14276,443.09592,149.55211,317.46964,363.99292,99.61311,300.44498,244.88782,245.76578,176.53497,269.45352,233.10803,398.64993,110.184784,369.37827,487.01093,65.91437,433.4387,63.06436,96.440674,296.52106,65.3221,261.92346,323.38156,305.27133,283.24548,254.21541,236.0927,118.27054,8.756495,4.962767,195.87502,401.91678,496.88467,115.617966,59.087242,81.05371,60.886772,8.074549,97.74062,419.96454,288.2887,291.03577,9.005275,12.991927,46.78015,382.53873,387.58994,438.9931,485.82178,128.95837,226.65378,437.2117,137.6216,450.4051,156.51418,217.73337,64.57258,374.01596,116.366394,395.206,45.369656,4.8552933,277.3537,473.37653,470.315,259.9807,123.593956,4.6671453,258.69183,335.13382,8.39887,2.6174126,247.18489,197.87564,473.2049,281.9672,292.03772,135.70776,486.7858,231.20709,146.08298,32.804417,201.61185,109.0742,234.20459,430.79684,15.079482,313.47714,100.8788,24.81609,478.87405,25.011852,299.53293,88.039696,259.70264,189.8875,368.08728,109.45615,256.7431,31.514086,373.27658,19.344772,283.23248,46.064762,480.86563,159.62082,346.28656,128.84377,419.7375,61.04054,209.40985,416.86923,202.10376,75.40606,8.605811,184.35939,365.25443,71.60748,396.1594,49.516083,373.56366,105.649345,456.65244,273.71594,437.7788,345.21143,376.55026,40.609066,269.1255,403.0521,198.48903,174.9809,99.29978,212.10716,281.60938,267.00604,273.7854,458.38712,453.53094,466.35516,256.19385,9.821919,301.8526,150.85573,176.52751,497.8826,316.44626,121.45092,93.47917,88.99631,423.56393,485.68958,456.0225,17.562239,30.622414,284.41342,304.76453,464.90152,296.98718,100.30434,56.690205,192.38806,88.47767,452.88937,363.958,53.543667,369.37857,18.872936,421.75546,180.49274,233.9885,285.143,77.347885,273.2732,229.44846,209.10345,155.08818,123.79447,240.1657,4.541646,161.21132,267.75134,64.11672,358.70016,198.23442,473.8246,339.92902,477.43503,489.47763,430.98608,494.36075,293.193,62.155556,459.59265,471.5915,226.58159,381.0286,101.43435,384.06796,456.2911,32.414352,340.4241,58.236927,488.30896,496.1266,389.25064,408.7511,122.80741,296.93378,496.28027,110.7954,54.913673,326.9423,408.52252,455.38913,377.64346,41.363113,477.74423,409.20187,461.44,230.41211,142.65628,483.37424,51.083324,322.4879,336.96695,236.82541,451.92816,201.60431,47.88122,398.1798,415.3752,462.19064,185.39214,434.8754,335.01132,132.90685,362.641,43.36359,102.705536,7.9918485,115.47675,229.62689,153.8552,58.64031,133.37425,363.08505,129.46866,210.78552,162.9745,21.848526,344.714,417.03726,2.5747294,403.3146,192.47932,73.04542,392.141,51.186485,284.11163,168.38284,43.66912,205.73843,168.60951,283.93103,478.91574,158.92888,207.5627,487.8912,293.44653,26.166159,372.98898,102.418106,1.0205103,6.7351832,245.59601,414.6167,186.84174,148.66411,400.0307,456.04077,475.69196,368.2799,236.40106,442.40097,208.79527,287.789,208.44472,43.765495,260.07068,357.2484,434.78268,206.21333,21.765009,130.20718,217.70384,371.29672,472.10522,369.60004,215.86603,282.6764,253.57304,306.22867,112.04154,69.89244,76.69731,86.22402,10.025375,446.3775,81.301834,267.81097,123.20143,9.621666,65.12871,281.66852,448.15057,416.3294,486.41437,381.06418,165.1801,339.48013,327.8176,88.2669,398.1748,85.99967,245.33037,148.51968,115.96156,124.909645,271.14362,240.66743,106.23053,269.58252,374.55762,59.86935,272.7663,13.006072,253.11894,117.54166,347.2375,291.5088,137.02507,377.65933,333.78018,342.29016,209.36038,307.95587,167.52502,370.66983,172.50565,208.62119,100.53894,301.09454,408.46924,183.2275,314.09018,280.64825,467.39227,274.60394,35.30025,175.87401,49.196842,413.26523,472.7168,399.36823,429.12778,186.76402,260.34125,46.00745,446.36542,169.08705,144.93633,441.8609,175.5502,419.9095,226.61162,291.68942,209.57635,195.49353,355.28366,452.5464,467.1957,449.75848,263.7229,269.4978,251.04189,471.21597,458.1583,221.87228,368.55972,48.504612,333.37897,184.27562,123.321014,18.051,421.4587,240.91383,322.44434,376.10626,429.78915,282.98264,276.22415,376.45352,35.170654,311.63672,492.44116,124.467705,200.49548,284.3437,215.32298,149.28198,489.9455,254.85501,484.89032,101.951935,430.51984,11.407918,133.40015,429.34158,86.1449,69.96856,389.82397,218.73201,444.76248,444.938,486.53796,440.95435,413.7963,152.4658,334.2738,123.97653,297.43567,71.2729,51.373447,94.44149,23.830986,326.2283,120.429504,483.3312,454.10855,5.7224164,222.61774,378.45935,366.17575,153.13623,252.29237,246.62697,401.5818,372.43784,95.8399,30.46148,173.57816,135.54884,42.361774,424.94037,350.3059,303.75302,345.21133,387.44955,441.96637,29.91914,494.2055,156.17389,233.03888,258.08527,303.88968,288.6609,403.3963,168.09775,182.93698,382.3406,0.64772105,185.43367,264.75925,216.49948,247.68854,142.3807,241.00804,106.55089,168.95293,97.86137,497.02408,12.058756,400.48978,322.14545,136.27695,314.78857,31.450611,227.63783,296.87518,417.37943,456.57547,309.18875,356.4454,449.93613,360.20355,243.85558,217.50157,43.301003,197.7304,69.71279,218.9675,481.62558,379.86642,482.22366,240.91084,105.41547,4.314883,312.27264,369.98306,178.35582,150.22293,325.76895,217.24025,435.57205,40.0433,229.75514,88.98971,371.10037,297.21936,143.07417,460.73444,345.20682,201.61542,27.359856,449.69012,221.79547,73.770996,261.98825,123.66932,202.22456,479.07846,61.447216,207.26277,331.63086,198.59462,227.56888,290.0998,163.01497,12.94671,159.03969,186.94035,369.82712,65.92363,384.7987,497.02206,420.78085,211.3065,362.9825,242.99586,468.20724,186.8646,361.41644,336.54706,156.48976,151.6051,406.13486,49.6601,276.324,138.62788,329.767,408.13403,308.54498,348.55457,7.7668056,188.76297,278.63882,292.97513,159.00818,167.3026,230.5116,413.6738,260.01166,390.13312,104.00251,345.6435,433.8651,270.7711,312.90237,338.8325,149.46034,79.60324,57.538418,223.75015,48.5502,359.79736,216.8775,174.36488,86.902054,208.16661,31.264431,90.5893,310.5977,139.80695,341.4214,113.8539,324.35474,349.8013,132.4416,458.1349,223.00395,40.73077,420.1733,345.013,201.44606,426.1165,302.02277,468.5006,80.92647,355.0466,47.504005,73.36576,464.91388,185.38797,451.686,447.07193,187.58669,435.00406,290.50116,231.99596,392.78348,491.42908,377.122,257.92612,488.12244,184.7851,227.97273,405.80536,386.59805,416.61987,371.15253,22.815449,289.18005,275.12607,149.26527,63.087463,48.906693,497.59604,32.699615,332.7602,110.62042,370.3552,438.26462,379.75455,376.41675,362.475,297.19244,173.86385,479.19485,350.3912,27.47767,114.08964,9.307184,331.90247,306.8176,370.72495,410.87405,192.98521,137.86588,320.7184,496.46506,349.0955,488.3789,397.65707,15.156678,397.97372,145.27617,15.312083,307.92722,314.7213,176.54422,249.10635,163.53307,186.23268,498.41666,217.7236,450.90164,42.258064,70.60076,498.2764,419.2498,459.49506,300.3685,153.54753,366.11862,134.95288,242.30165,428.75443,116.744255,242.18974,261.19675,417.84738,44.35824,339.75684,285.387,112.75819,346.0168,317.27512,203.20238,51.522568,273.45087,137.02408,353.85056,104.83309,275.2479,75.45304,392.9351,159.08044,33.573475,300.35336,48.159645,192.83234,314.65143,164.44936,10.87585,489.68436,462.27136,169.6581,388.48688,1.3554596,86.90081,382.2845,65.60118,439.65515,429.7017,83.15632,69.076836,327.5884,65.568,356.97467,63.740494,162.78993,316.80118,200.01086,172.18132,247.42914,23.12112,249.52106,464.2893,129.97374,62.10136,449.06842,134.04118,493.4673,383.47852,12.824924,45.541283,29.621504,275.66296,412.00784,128.3376,355.99753,191.45744,183.44612,199.12906,195.92844,203.14975,97.415794,242.05315,345.4472,123.64292,300.86197,364.19406,318.95084,425.59363,23.161942,345.44037,188.3687,399.27112,90.71364,44.797367,241.29553,433.87494,233.54826,23.29838,241.00865,191.77444,78.50671,303.91788,164.06592,14.975189,494.09262,88.47702,263.9735,77.857956,352.78976,26.956753,474.54022,436.70224,236.34375,78.14393,84.526634,266.97366,411.77133,403.25223,308.30023,103.12718,175.15193,482.01602,245.27951,224.56216,164.96738,58.010166,491.16898,449.0938,434.74072,421.78348,76.60996,322.59167,242.10199,442.463,265.93137,165.2098,33.91401,308.11038,41.499264,450.76187,200.13075,230.20879,343.0619,74.77384,350.80533,311.40997,42.064133,280.6324,485.89487,451.83078,180.82063,206.11996,401.278,250.7741,178.72678,2.5635166,79.94332,374.34576,106.61175,80.80477,58.710857,383.05005,110.864044,212.65189,48.619595,70.486694,193.49019,247.88063,353.33817,499.5901,201.94637,347.78494,384.6783,359.34625,472.83588,456.46106,452.78244,321.8153,310.34195,402.75528,193.68317,334.1103,248.823,144.05658,330.9774,428.8659,215.216,294.31326,293.10706,41.65997,124.257614,209.29196,329.34494,471.18692,385.69952,361.81287,464.72913,199.73172,183.94254,67.153206,113.05487,245.33144,191.66014,434.4192,335.1572,94.02707,168.39343,257.85123,18.756216,46.9129,214.65137,47.187263,434.0373,40.64095,98.64723,8.566911,355.5836,377.09216,90.616684,348.0305,379.6611,118.02528,369.2245,172.68365,90.96676,185.7154,400.4874,295.76358,58.34358,366.3824,477.84344,88.80569,396.04602,450.7673,116.05704,141.57317,349.04733,235.77078,162.14503,213.9056,445.0193,461.0172,130.89227,317.40582,424.09595,406.70956,8.563555,378.9267,50.68812,44.540787,341.73285,109.99044,410.22513,267.93515,107.42628,430.02258,407.60748,287.27005,27.380928,55.50692,117.26341,282.7428,333.1832,76.60766,297.10492,459.53232,378.33295,95.80089,466.0372,164.416,439.58826,41.299664,303.24872,453.91916,412.42615,334.2175,360.84253,354.09384,10.135772,307.42764,482.3832,363.32657,432.75766,299.4253,89.226204,220.96483,56.67452,332.23276,427.1144,298.65808,302.7664,306.23422,261.01852,83.98175,76.37963,368.02512,269.99442,259.93658,412.48578,26.642244,394.4826,173.52657,237.04678,363.7909,298.1208,170.45494,286.37793,269.21884,454.45154,450.62646,225.81677,338.42715,291.62106,192.62361,67.429665,499.72488,347.25967,169.21458,338.1323,467.7093,389.46872,225.3238,424.72995,27.205427,34.569378,159.6952,228.39482,37.47745,292.48157,156.19342,311.50302,236.63135,484.57147,317.14044,318.39856,345.08398,352.40622,160.47594,123.433846,301.1727,465.5229,75.42953,452.07016,469.15494,140.09892,272.84082,455.13635,191.239,141.82486,400.44498,462.1978,301.4861,291.1322,226.3128,213.18945,116.92981,454.8827,290.95346,319.5147,263.1083,96.34631,384.95178,61.462677,72.08475,280.94983,180.43573,316.7389,112.973724,416.687,360.44733,51.19733,25.139576,35.504723,142.22192,459.51346,420.56503,79.927025,384.0606,276.95163,412.19946,52.352615,196.79254,484.0281,439.09238,53.64919,470.26312,333.47772,278.48975,454.8107,411.1676,313.56418,40.413036,78.69277,314.45685,220.80733,335.54282,350.38022,486.33383,353.05862,29.409353,233.22084,465.88654,326.73984,219.81548,326.45145,188.30505,431.70633,186.91443,282.13397,381.2479,75.39134,245.90036,44.392326,20.583584,283.352,205.00719,470.9153,474.9705,40.018696,47.70357,320.8992,486.65033,311.22617,38.73388,391.65192,349.96863,460.51956,106.880615,103.8758,66.69438,21.33504,312.6327,370.60712,149.68541,382.35257,282.89835,144.07642,61.61559,426.16046,401.56866,417.0671,35.722946,445.39435,146.88585,24.480003,60.34291,202.57191,131.57817,384.27374,211.70819,46.894093,376.50427,59.80644,262.25702,77.470345,451.53464,98.20147,265.03265,322.75296,125.58602,180.3705,130.6907,173.2055,15.252165,462.6494,385.4688,0.05734753,91.8379,158.22565,298.47232,45.23761,442.13995,30.389029,315.0038,76.47304,66.5101,170.83737,151.99915,459.5682,407.3416,474.3325,324.88828,255.51927,196.65436,22.693705,23.91878,296.60678,209.97568,80.20431,118.25046,288.0089,222.39767,247.38023,25.778532,197.62361,77.86184,449.5378,51.47587,236.20314,63.366505,414.15598,430.83035,143.44789,124.864105,84.65875,62.130314,287.6952,315.52783,71.92769,430.89478,187.82967,277.63385,33.676624,124.00196,145.1832,78.39217,68.29787,244.12311,300.3716,36.511898,466.3044,223.30103,404.11304,42.062145,271.6418,321.6522,391.8198,384.68762,369.09167,17.335018,392.99487,244.91692,46.201992,408.423,189.73323,141.40732,73.889496,165.31538,300.85895,403.65262,345.58694,321.60147,175.8061,17.232233,176.55135,165.56662,112.86668,236.34644,256.2441,480.60428,383.55338,27.972843,61.920795,54.20863,412.24933,139.91664,95.685394,243.54991,405.30734,284.01865,199.01477,58.798164,484.00616,249.62181,414.2434,285.31772,493.54282,379.9156,73.567184,350.91,417.0666,493.47055,167.5059,307.71417,137.2912,137.77097,387.272,398.27237,469.88666,272.7714,127.086494,364.69098,293.7969,56.293804,121.347206,29.579872,181.43283,276.979,265.1771,329.73816,279.51266,290.502,79.00362,457.9037,27.447876,115.555824,91.20536,443.241,68.237595,27.233213,492.61868,62.833138,62.459763,289.79977,9.890711,169.54689,428.3832,458.68665,62.273586,255.12154,341.21616,285.34134,174.69034,320.94626,229.45389,213.82368,191.39565,14.061805,480.25757,27.077261,400.14087,287.3691,224.40839,249.45995,53.50873,217.23747,488.09894,247.22728,234.72597,65.44317,136.65111,405.95288,349.15353,368.73602,243.79994,197.23775,317.59518,17.445906,139.72401,289.3328,220.02415,158.59077,463.43442,302.8721,196.91759,172.86853,476.70465,457.64594,233.67024,48.0863,492.6923,37.618656,13.185468,394.2923,343.3699,129.97047,422.79202,283.43994,499.2497,151.85825,21.416258,398.10696,223.45496,22.85331,479.81494,109.33843,381.40417,473.48132,169.08754,435.7013,80.26068,3.9702547,480.621,257.087,275.7224,34.03981,131.63008,309.7514,436.31836,231.93286,476.56372,213.27367,133.57875,468.1266,277.9562,417.63696,184.37529,377.4507,480.34058,328.24258,305.52637,443.36642,184.65729,314.30573,43.602978,288.64325,90.183044,331.72888,169.58301,107.62797,449.91846,484.04663,308.4562,168.7226,211.16261,133.53845,305.4285,490.27097,194.45995,79.12988,212.42998,241.66273,469.1634,242.6678,2.553434,318.38058,305.5698,348.6671,279.6196,449.13254,126.947136,398.10455,322.54126,107.44505,88.4559,398.44196,443.35992,432.4438,247.38715,188.86993,483.33823,230.0302,274.6056,256.32123,76.86575,408.9307,256.3179,132.82036,494.5038,243.94528,195.34764,25.982376,251.37042,496.41724,133.95824,56.96482,171.99484,197.60532,447.185,493.01624,389.66183,88.64706,335.75998,129.68329,443.92606,302.36008,183.15054,38.49109,284.76874,348.53555,3.805195,275.91602,462.25348,372.38705,344.09073,321.11862,423.39847,488.60077,249.89223,262.16965,126.210495,400.77267,265.22717,403.56888,450.52115,41.785793,214.50972,70.216095,334.67145,468.6869,396.78436,211.95781,235.01106,85.03749,96.66193,58.050087,73.909386,289.23163,159.4152,382.6255,321.44196,128.10855,192.0693,413.8558,246.76381,401.6566,202.66924,410.5725,243.08594,303.59018,219.10614,337.98233,266.36444,22.950418,137.23294,270.74194,293.1512,7.2269683,64.38258,491.23874,193.88515,376.58395,15.899814,24.396439,414.77106,34.083794,440.6595,490.69864,457.27847,124.62352,63.675835,14.429067,280.522,154.07234,88.11374,4.2703896,466.72174,15.154297,210.12444,326.61655,358.005,353.49033,426.95883,480.26978,454.39255,405.3717,151.98074,315.76944,82.23666,76.62513,156.11464,235.19067,19.037775,336.09167,192.61723,308.93332,138.20189,389.36353,304.9783,111.38465,368.19824,286.55228,468.21124,492.1857,203.55405,381.93942,193.25945,176.20006,426.8753,171.01035,366.92776,180.3892,155.80946,187.84297,57.256683,238.73605,456.93182,344.78806,271.64688,75.92466,30.628893,426.2891,454.02002,470.0447,220.26285,41.52452,7.6611347,177.9178,477.58453,498.65802,366.69638,188.76381,28.310818,470.26077,24.17612,132.54178,199.27739,444.973,434.55234,131.62874,49.49974,463.04822,144.25632,388.59866,392.78918,208.79063,379.8501,177.49773,148.43373,484.7383,134.43439,436.22714,487.9843,444.9391,418.6112,436.28748,498.96198,210.27742,366.37158,364.91998,312.1798,440.47147,354.18823,297.22864,87.26474,207.79446,50.975098,314.10507,496.3363,141.93738,322.41296,8.96622,465.35287,453.84634,474.21863,127.96724,296.1121,61.57677,499.65012,214.50949,52.10756,179.42827,119.983635,462.61127,136.81624,138.83788,455.73584,432.04807,79.56305,261.41605,337.6329,429.7656,158.82951,29.68975,329.5248,179.39946,196.33298,53.343872,384.37167,173.06845,339.022,193.45851,491.0233,391.6027,341.67636,11.852875,96.87255,449.8679,235.57922,30.680971,153.03308,31.554806,480.89023,342.39072,116.18163,60.542835,146.57744,78.07227,312.2042,98.428375,110.30639,49.3384,313.86935,493.75232,56.368732,332.69543,59.75649,430.95016,66.62458,191.3912,15.592477,16.324902,262.0067,110.83264,491.2404,88.55437,81.95739,326.06595,473.12744,442.05154,339.39542,414.31912,334.0921,334.65475,182.20648,199.714,68.98394,64.31168,64.79478,445.8271,446.28607,3.1495879,251.44043,44.95784,149.48528,385.6615,431.83145,295.2864,76.3226,64.75228,75.285515,357.62933,454.26654,477.11572,403.04874,189.91626,84.99336,75.49234,427.59302,412.3629,117.24108,211.46498,333.54266,431.67114,454.59445,309.1687,168.59265,434.0016,167.24792,319.80408,127.061005,427.07086,5.962063,334.25867,14.991061,408.5534,316.97592,270.643,425.15125,495.0715,435.5194,247.22337,437.29703,229.7877,431.0976,84.917854,451.44714,381.84656,255.87918,125.31179,208.01622,477.6813,133.80933,306.65955,272.4255,240.70633,127.75858,146.67668,480.0388,413.92023,475.23557,188.47572,281.8478,390.58145,446.59805,184.08179,79.191345,409.18387,303.32275,271.39328,37.13193,356.54773,323.4961,217.40192,246.78378,336.01373,241.11455,144.99403,363.45428,36.44579,340.5585,169.10048,304.11533,477.11093,452.5066,119.72691,243.26859,442.86606,453.66525,233.93523,122.31987,439.84937,486.18118,214.24873,484.82327,465.97552,441.10202,36.665504,59.64466,190.47922,242.58188,435.12506,475.9626,478.4887,173.94867,92.901436,301.2873,488.73203,133.7277,327.58832,216.3886,377.4572,497.74506,365.10876,174.52109,133.3406,435.70633,57.986164,424.73926,19.536976,429.51807,415.18433,272.7361,420.77408,211.15224,81.85527,72.7703,456.89325,274.25555,233.41174,150.6442,315.9676,435.6861,444.6372,393.8762,95.18989,315.2315,207.18709,78.53011,262.13693,203.6829,451.3108,397.45654,52.612766,356.95032,259.09387,350.62814,199.41234,383.62836,313.43066,245.82,174.20074,390.91675,218.7344,184.67677,52.17427,214.29161,257.26126,248.86362,344.18103,328.44925,284.71857,94.36805,274.6701,317.32016,47.55923,211.38028,417.80203,138.93814,12.351459,180.30247,295.18893,78.7444,180.62932,412.37167,358.7363,437.63373,379.71158,435.28494,344.59232,221.98068,132.73413,495.835,300.797,334.16803,470.60257,91.264275,267.93118,292.58905,149.02805,343.6368,41.371796,37.789803,63.44111,300.6063,42.27985,323.47086,263.85822,122.86053,118.25466,148.94034,449.8913,67.39301,283.8193,225.98833,411.05524,381.67526,355.00497,375.30078,262.14282,169.70181,128.8155,179.38606,366.35333,235.18822,360.6435,497.0448,13.253307,324.04926,330.02106,321.73596,460.9119,403.82043,439.54858,265.47,373.61957,153.93765,100.651985,45.868813,96.23995,466.2115,381.14664,406.71997,252.07385,354.5788,73.52148,361.05896,315.70123,488.74948,288.9917,446.709,371.12823,348.46313,123.18007,199.38484,255.32228,4.1088386,119.43116,201.63203,252.33138,178.92087,461.4152,121.387314,90.1154,175.98021,442.49152,308.16537,135.84511,378.77225,207.07079,79.203865,415.25055,4.7427692,250.3988,414.71106,309.14575,403.5662,256.34213,276.76895,349.4826,211.25398,245.53053,129.87263,353.3107,90.52387,19.432693,319.3757,176.97638,173.1326,199.50197,206.28934,413.06747,367.44092,237.79753,263.4572,33.544537,233.64278,169.12585,176.4816,242.9369,284.1318,375.37738,157.48575,256.63794,369.46906,318.49817,198.43773,62.873566,211.12547,460.31314,495.5588,445.65628,417.87708,109.10458,420.49023,399.90433,250.73068,128.42773,17.275421,34.36834,108.46462,256.28827,74.56741,38.725803,407.23254,304.81943,392.15262,91.03413,413.73303,9.381396,250.56516,354.08704,77.16331,132.38194,115.16983,491.26166,356.3693,250.47029,359.2657,287.73502,344.09256,195.00645,481.12656,58.834442,421.3141,174.55861,177.34937,98.487335,468.53247,210.22469,357.1632,339.0517,402.5429,396.82928,159.87218,475.5172,441.939,481.62344,172.21678,203.88799,220.96985,92.98411,430.12482,224.12418,154.45277,158.80449,449.59833,6.264084,104.05968,149.60782,118.82891,460.31592,343.67685,469.144,202.21227,399.0467,270.18546,61.469784,360.0357,495.4245,300.67065,416.9789,293.26413,16.099237,59.609222,431.68262,475.00644,307.34125,344.0791,202.88521,2.7703063,343.92087,422.4332,428.26816,86.895325,331.44055,282.06467,379.99893,50.901047,489.3087,304.80164,158.79684,266.7,336.8989,428.93933,189.42932,129.45894,173.00017,153.86693,259.37646,412.38864,355.68552,46.9186,110.94352,381.81607,424.97565,475.05432,171.31085,371.84415,436.98093,386.45044,284.37216,29.006256,395.69254,3.9706752,151.13649,429.677,208.3293,125.47179,220.35092,427.6913,41.977276,249.74205,15.690958,444.28363,193.1202,365.7289,295.17035,121.36129,496.31714,487.29285,84.465225,329.6069,467.63043,286.015,7.1254616,432.50674,80.48431,232.56741,12.8127,138.55685,382.852,313.78952,232.77078,113.54548,294.2527,120.23536,418.03232,371.54776,365.48282,429.79,452.8785,272.9595,213.56157,278.20386,437.84308,420.11444,82.70616,253.69817,274.24728,27.667011,213.54332,198.01065,413.44418,58.02422,259.8049,51.23944,304.45886,45.92013,382.5671,14.962774,285.67346,326.18524,3.91046,399.80634,391.72437,74.2062,36.92013,58.219143,86.515305,254.58104,343.68286,371.0013,294.01862,423.62384,63.567814,334.26804,218.03319,127.96842,54.78192,310.39072,312.67657,205.90222,121.102356,401.73126,290.86108,313.3241,426.20987,110.13255,96.99577,167.1204,326.11984,337.4713,67.90722,424.17096,196.53731,323.70184,232.00835,431.68433,286.72168,294.50394,284.1081,311.71332,252.0351,495.6634,372.51184,104.47654,45.590897,410.1441,152.54144,294.56552,147.1597,0.29086414,145.37611,419.39426,86.961334,118.184105,260.86673,346.63913,84.273384,16.249397,273.88025,133.04305,378.07724,176.24623,86.06777,120.133064,264.7996,152.64896,291.5007,464.3787,430.6569,424.62527,62.177258,151.99727,70.07332,130.80914,157.80194,177.684,488.75085,435.97333,434.2716,102.745544,224.26518,235.64572,387.4174,258.36276,26.92925,333.68277,229.79039,168.50967,94.04607,222.34004,374.94824,330.9205,320.5387,384.52283,252.70802,209.50743,3.269329,397.43924,220.2559,56.654045,183.38882,218.07481,498.23727,234.71152,211.08372,117.23455,63.07206,374.06696,148.93584,207.51447,200.57872,268.24536,328.35156,295.98785,420.25015,377.25186,365.54388,291.5769,114.52824,224.79874,89.06756,38.577965,221.1043,240.27539,196.34886,386.33057,130.90135,470.98578,436.88486,348.88458,276.99234,251.47653,31.828705,230.18904,99.4461,326.32016,266.275,191.34377,231.2361,192.7663,58.41178,30.166603,29.290693,418.5633,96.5128,275.17444,283.41812,195.53293,320.7885,155.57669,218.99886,246.3008,371.867,331.6863,153.18976,398.26727,301.71582,42.453224,439.43387,51.22375,331.89594,461.49045,486.6775,169.83978,491.06946,2.9163558,324.7456,459.01935,327.2398,20.954824,18.027582,239.41992,488.11804,171.63567,46.990925,93.46637,26.978275,435.56415,436.28107,65.453896,95.24852,88.944084,78.57809,110.409996,229.41714,119.22627,218.22038,229.76917,476.6559,429.19855,247.8309,411.4371,203.53445,94.69796,28.38823,258.6661,158.54172,140.50903,365.2281,469.12552,243.11911,152.26646,429.54538,291.91956,94.01505,60.272427,223.04836,286.12827,167.8409,433.8251,303.31558,439.79037,334.59756,373.88022,78.548386,151.7799,264.19632,4.289447,196.16989,210.7002,393.99353,81.9636,448.63254,38.230453,323.47165,303.69815,17.382818,8.201759,65.77001,104.85116,436.66528,24.645702,243.98245,86.08766,204.99393,450.85275,152.07837,110.00936,220.98125,415.49863,451.7241,274.7494,283.6773,187.04062,248.07976,481.74063,480.49728,325.89938,150.00728,47.7947,370.1368,249.13797,20.506128,287.12308,229.1794,340.429,325.0704,370.98657,413.68347,339.2918,185.92398,69.31644,202.99937,113.99239,177.9713,314.0944,497.14575,63.553745,419.46277,263.04456,409.84122,70.15672,15.19311,240.86922,111.46446,470.42905,309.90686,405.34747,479.50275,190.92433,297.0679,204.87561,298.497,413.6572,455.37485,135.19722,38.870174,374.03244,340.34152,315.98074,64.953125,19.915874,272.887,488.78833,419.0595,117.27448,173.2732,335.8473,63.871628,67.47158,182.11908,468.88318,412.24524,393.02652,187.07034,187.77238,161.57925,368.2597,289.33176,46.94864,93.58256,299.22104,72.88352,441.94064,58.787113,368.4668,413.88257,302.80286,244.05817,109.77915,230.82002,4.7782397,461.56473,296.94598,143.31905,6.492261,209.02649,184.90727,414.20767,27.14212,301.85843,364.3352,396.2782,108.90351,206.6488,311.7208,411.88727,353.4424,204.286,195.66483,68.469406,8.083231,412.4399,65.82312,466.62198,229.16081,443.1192,469.68112,398.94397,28.770855,346.2346,74.242584,340.85413,97.048195,148.56528,98.18329,393.11014,264.54956,436.64713,231.27567,334.9542,279.55502,108.419624,317.16168,483.83344,56.664494,370.66022,388.3103,14.119595,206.66434,372.0948,296.1873,376.37823,309.01654,24.947218,184.17104,418.53702,288.21686,474.6021,133.10701,132.39062,197.20334,450.13818,100.98145,131.00543,437.43115,452.27292,422.9841,55.48327,87.90707,171.8777,433.9362,329.15305,129.64197,266.83447,482.80954,279.3628,12.100316,498.62155,97.33947,467.23386,362.0644,298.62027,435.07608,193.6778,168.76485,182.3409,372.20847,492.1076,315.3861,112.91152,31.304708,14.13712,352.96167,437.59232,271.09515,173.3189,402.8024,340.17484,484.4075,332.57953,19.87536,114.28483,118.11043,23.58035,419.55524,324.81876,15.015036,336.81763,329.19983,258.42856,418.45352,375.9571,377.34137,370.1771,475.67786,437.54352,463.16025,105.598946,312.31183,239.91931,408.0049,338.52127,71.267296,99.170685,149.55348,260.98325,407.8659,99.433876,339.88696,224.67825,415.92157,490.69046,363.79498,396.06885,477.84705,40.810417,482.70374,127.131195,305.13818,249.37845,373.5881,336.72266,50.44092,471.78946,252.21883,152.40787,75.08198,213.56937,309.70462,446.34207,319.58008,122.67142,95.39506,91.2548,277.68875,175.56178,178.05835,84.21859,332.8533,441.57608,290.7011,89.1839,219.48584,472.4667,316.91626,347.61066,191.7141,169.08395,478.98077,36.844395,362.6435,384.13516,226.96516,159.14627,152.6545,269.03073,270.7961,445.55807,426.3133,429.98355,460.44983,404.26474,74.78941,320.63623,317.72614,8.1352005,36.99164,268.82373,66.348404,252.72836,360.22485,412.78186,453.91504,258.51913,459.43216,308.2984,364.5405,470.3038,205.15335,185.52266,254.29768,447.82983,121.65102,80.639534,239.30028,456.10474,239.0772,366.32877,299.8714,58.577194,118.34575,88.24516,274.63358,261.41943,39.11608,100.19698,352.03757,168.37384,495.86182,76.305534,225.99342,393.99936,332.77353,76.27036,7.9721885,474.16098,194.84465,483.95242,366.69916,58.12348,429.99298,73.09762,333.83795,479.85754,296.6077,191.10167,433.51724,225.1803,30.649227,60.087154,318.4113,146.98624,115.29639,412.17148,254.66957,440.66196,344.15735,294.23236,176.98671,495.00397,429.25754,210.4319,322.97607,78.05526,6.589855,90.864746,429.08795,376.84464,113.11497,90.482086,117.065865,363.4857,157.23691,106.87776,260.11716,430.01294,316.56607,337.57233,98.74395,486.65994,425.0493,19.476208,439.3159,69.61662,111.13739,262.1479,448.99017,234.02094,177.63673,167.76796,144.54875,275.62222,409.74316,105.12845,257.27075,149.13449,46.933018,136.77916,117.73392,395.73856,492.96893,207.41672,489.28137,174.45393,194.55838,263.08533,236.25165,103.498566,189.12158,85.04425,319.97543,50.50617,61.15413,60.13311,292.73135,264.2349,315.5739,429.16714,180.43442,495.9261,416.9096,82.499214,79.29576,358.24838,407.86905,76.453316,360.85165,470.19296,480.20578,66.460594,413.44412,145.32242,73.66866,53.466976,147.3647,96.70756,30.25444,129.90753,38.687542,243.72122,108.964455,13.954779,403.2612,136.40991,257.34198,21.304892,84.0273,464.75284,326.0371,286.91266,415.039,153.07545,401.8966,493.29724,33.142296,257.36746,302.99243,154.71065,16.28156,308.325,0.14367786,255.26846,6.4490314,414.37845,174.9201,59.40898,437.89923,305.3549,330.39877,285.47006,382.97958,101.17505,42.066708,2.8975236,182.4107,307.22064,118.35781,323.7995,434.8048,87.60471,188.3258,474.83755,65.62325,163.8761,289.1668,26.895288,198.05879,163.72713,443.21646,432.376,452.91068,239.81299,379.94638,395.6202,61.584557,313.91193,327.1405,72.69696,311.5328,55.69134,454.12177,274.29706,294.0346,98.27385,161.02254,178.28683,178.58081,13.133114,66.6535,451.6093,346.15408,455.33765,462.85413,7.9389367,134.8838,28.621893,425.23343,75.40485,399.22333,163.84488,113.94951,21.244465,114.70912,379.58112,56.948574,188.49261,70.54495,275.98273,217.84265,104.70087,496.38132,60.072548,398.0126,327.31894,155.96394,35.569237,43.503075,176.33958,342.01273,125.83237,467.33655,385.24948,119.16293,406.29364,140.02176,310.7212,233.15022,340.08792,60.283577,71.7725,95.92594,353.684,440.92252,54.250996,346.52673,196.66476,454.15,348.4953,27.36314,498.83008,110.673325,223.90422,64.35656,42.208534,127.7247,352.93604,114.94801,369.76404,288.03265,325.45538,33.12757,488.10663,109.79873,387.2312,37.732845,209.98822,173.83514,7.60113,438.54654,272.29285,106.92811,202.05508,156.10257,279.7996,84.20616,184.95442,374.58078,144.51479,132.82483,479.6056,236.76883,3.1409698,394.34708,299.11978,410.0965,126.639626,302.9051,297.27646,180.74107,207.23286,80.59326,460.30072,311.68228,271.87927,28.078016,178.77495,446.87463,150.71442,103.60628,282.06033,149.93266,13.461372,414.62363,356.7557,294.21777,22.207296,167.09207,299.48184,107.74111,408.8272,362.7035,91.82412,90.17807,35.82067,406.9363,235.64035,272.14313,134.88602,157.3203,222.95662,244.5741,491.0616,199.03491,486.143,468.9368,221.63362,340.35718,403.60516,359.8247,265.2732,133.96918,227.30315,168.08519,29.362137,96.83442,268.22162,488.9872,122.500725,386.06308,486.8395,428.0805,442.77136,32.567062,408.11276,1.9462687,258.90335,399.96808,281.96365,212.50002,488.36984,181.63272,337.31604,424.22552,97.17529,181.73288,12.128479,171.35243,145.78307,69.58895,383.16092,55.452488,312.7089,81.61007,477.2989,492.9357,366.81757,112.32332,422.48404,350.49698,455.1104,58.32356,477.84723,88.57229,262.5286,349.24652,111.164925,237.11954,417.48328,289.03702,194.11545,192.61697,175.89183,183.343,154.54214,224.43134,80.33762,401.5179,260.54758,469.3797,331.31085,198.2909,322.99402,439.39255,413.55048,337.1175,431.0128,218.94983,279.53104,486.21445,437.38544,28.552677,110.73012,48.072968,20.388052,3.691928,235.7857,451.17206,83.35029,337.595,26.48744,249.23627,7.516007,361.81927,325.37964,239.32526,112.35921,470.68378,113.704445,163.89323,155.16339,494.3822,268.394,493.64932,472.687,356.06824,348.52887,350.67648,430.47275,463.13058,152.40576,479.3884,413.03226,285.93097,305.5041,497.6784,41.16096,165.75557,343.7696,481.42447,456.57394,210.58002,254.42064,400.22147,200.73914,13.716534,111.92734,488.33636,495.5708,30.516922,223.96156,285.413,271.33548,188.49544,352.23013,303.7991,421.28366,185.22163,162.55319,263.99536,242.02074,319.77652,138.99063,103.45268,478.9883,272.63608,88.4288,256.2392,50.299595,448.46323,375.77087,398.6904,135.03506,74.06529,71.30101,284.7047,224.58568,259.5727,246.6423,40.52354,42.611744,146.37376,89.222694,445.84723,30.426538,454.35825,190.32845,28.100979,396.06342,336.06592,26.02257,98.12029,450.8742,76.56792,310.54282,403.9075,303.46454,162.23924,6.3485527,442.30484,71.09585],"y":[173.92216,255.86798,25.29516,6.5098176,53.64649,321.67606,334.51752,171.28882,260.91428,14.307674,15.328476,137.7476,438.98572,78.3876,266.8976,197.0313,46.247704,210.79716,338.99695,106.60469,309.2735,338.36887,467.553,107.35785,22.540245,278.1434,54.07334,367.39258,403.6144,66.8619,242.44618,177.51787,34.76474,465.73834,465.6011,55.61871,77.94402,49.15906,488.264,79.57842,84.91159,164.74034,396.4307,363.133,22.142546,367.55405,185.9649,268.81586,141.9885,342.97525,469.15298,427.33102,399.49417,275.20294,453.46854,117.72446,58.18427,420.06125,179.71928,138.93277,180.0429,446.34247,165.38658,346.67142,351.93277,50.036407,9.079879,236.31152,121.56607,409.14493,239.25002,106.54884,421.22574,81.92305,161.38036,36.323654,90.84125,356.33783,66.24459,307.55923,34.83405,266.359,451.87292,453.60614,32.258858,122.70802,122.834885,318.25876,419.6754,195.8792,425.04065,361.33765,488.37253,162.99844,116.63948,367.53424,15.64589,465.3185,112.252975,103.045135,191.67339,164.4352,244.43163,414.34274,373.17642,279.37057,413.05112,128.7941,96.1938,290.62762,263.52206,220.46399,363.01755,18.203987,412.42584,148.1162,495.36597,432.9949,34.325966,241.94504,467.71292,119.70952,366.98047,380.28616,290.6095,124.973495,98.34932,378.8858,229.58809,162.62827,304.84628,341.91068,145.41782,351.798,148.84256,59.7806,4.040069,89.74761,462.22205,213.75113,26.169054,360.70428,67.77746,493.3197,289.53195,157.91899,194.28564,84.818886,49.28043,377.9558,326.90002,429.70364,116.59873,308.60812,367.50876,42.18995,120.06965,139.77866,319.24466,402.0932,212.71187,392.1328,297.86972,4.080779,411.20605,492.17746,380.72226,401.52365,148.9469,270.48233,484.33746,68.200676,420.783,350.13373,371.65247,182.96,495.5424,14.923803,230.08379,20.864983,360.15485,92.69717,310.97263,94.886734,459.2459,80.4632,131.1478,198.41034,236.48763,379.4593,269.0449,1.3164377,102.495445,139.37161,219.74367,427.77936,492.07666,274.17648,126.92,357.89224,471.2447,237.72752,309.6706,446.80396,380.1443,220.36977,150.9655,422.264,406.652,354.25137,476.4515,36.155834,370.83725,221.6127,290.71112,1.5598038,206.27992,327.37036,103.04897,122.459564,28.420273,114.69902,263.28558,109.93008,110.11313,153.89111,253.64444,70.039566,121.808075,125.90811,243.97882,277.50815,374.07938,177.09375,404.43222,160.5133,252.0952,221.4576,271.59872,53.267414,330.86942,61.526306,72.23059,216.67719,227.9457,279.6758,155.41296,211.86343,28.103603,320.28543,497.16135,448.16925,411.22238,355.73328,320.58694,40.346615,286.41766,367.34277,245.06647,407.00995,212.66142,12.492067,438.96158,343.92627,383.4367,60.392883,18.267134,407.89984,326.67618,98.47065,3.2621455,490.83984,241.13167,430.9084,70.30802,224.01688,30.796509,358.97174,128.20593,431.88788,395.72916,394.37704,84.56096,189.41556,51.3702,466.44022,392.54477,247.0214,478.39508,458.89307,61.16395,383.53806,485.52368,471.41534,209.91476,413.61258,462.59274,26.693432,24.565857,492.65833,9.759307,468.4037,442.0974,342.1482,50.116817,4.9681683,491.11957,193.59186,187.11209,78.859314,3.9235187,212.89769,160.14032,409.29605,354.3168,411.27197,373.8541,435.0749,256.75836,14.029094,360.66806,448.82907,30.515947,231.43695,162.75093,277.78452,295.97958,102.897575,106.58741,183.40463,250.45671,373.90262,81.06073,420.4079,410.02408,74.20777,370.5335,186.01392,111.44413,266.6452,184.04492,148.06117,444.15543,204.84918,27.709143,76.19609,23.980783,185.42706,239.57997,375.3373,207.85414,26.809402,171.58878,274.32803,458.59784,359.04208,91.65478,36.103363,171.13643,441.9555,380.03595,247.21909,353.25085,379.41367,28.331318,84.155464,107.97442,400.3745,144.89262,465.25394,13.768238,258.80478,257.16718,417.36743,60.123516,406.1544,355.003,361.02386,389.05127,453.78622,200.67386,79.26918,238.61519,103.104965,53.12819,9.19044,41.46698,275.86664,337.71475,194.17325,283.70554,443.39294,20.363567,358.7999,261.19812,256.42792,136.33986,376.34308,92.341034,458.23605,453.08582,303.1711,133.06226,469.99258,444.298,110.82807,163.66551,351.81345,477.19833,186.24088,427.87323,101.22928,239.30627,187.5451,490.8834,93.85661,472.50574,476.3087,487.72507,144.10344,90.84708,190.23051,232.78432,430.98544,418.77545,107.98416,180.60284,205.51279,308.79852,384.64523,296.30725,256.2382,387.03854,388.07672,392.6279,83.203835,240.0077,221.18378,330.05518,63.39917,64.13795,108.91867,174.66318,88.288506,354.22266,294.42508,125.26505,310.0955,106.46656,355.99915,468.46597,245.36488,343.2919,194.10526,250.92867,486.72006,30.619207,254.47786,152.4972,223.86867,404.32425,226.60794,420.28024,161.86206,50.055706,468.5293,58.081703,195.60036,493.00784,169.70735,135.75076,253.518,84.25583,457.49045,61.79344,9.235012,319.93576,481.6362,275.55746,417.30176,272.32928,332.87207,441.6014,359.57706,451.95978,88.9234,269.8602,102.985985,445.55698,94.331154,373.3612,210.94333,233.05402,58.481407,245.05933,162.15787,269.27792,118.244255,148.88867,366.3727,380.8296,197.46675,184.03835,144.57227,445.66806,439.9806,448.46826,83.75585,394.64517,198.30302,489.06805,93.183075,454.03204,313.4225,468.05762,467.61862,413.6998,97.46646,437.78983,285.18326,245.95906,66.097916,268.194,434.06195,280.4276,472.0424,91.15035,204.81535,181.40732,241.1234,29.556555,177.69057,180.17227,256.66306,99.4648,440.60944,344.63806,259.47415,496.00388,85.68432,378.59457,46.057312,144.5854,104.90324,355.0019,235.18445,202.71832,31.944477,271.46442,1.9151434,160.90419,297.20517,84.671715,448.18365,359.15363,432.2649,176.9861,447.31335,493.85822,396.3967,460.27518,233.5563,365.05695,264.72083,257.08725,236.4481,118.77154,116.929214,127.31441,282.1398,313.13785,15.103988,401.97183,95.39792,281.94162,83.05156,99.120964,356.2905,273.69443,43.888287,76.44802,279.63452,107.9683,168.73969,219.47673,333.86017,432.4254,327.27115,329.38028,377.91977,112.64593,198.93321,221.7986,14.315573,478.38733,382.0187,465.15454,325.1301,148.24153,216.63454,305.08414,191.08081,319.32184,321.48346,434.65997,287.2314,458.00278,128.42764,492.1567,206.20523,195.75865,469.56464,437.9494,444.8734,494.8679,47.365696,44.324028,315.59857,433.19232,300.27457,230.09221,280.54745,261.7233,294.3709,187.53697,498.42783,358.01544,109.24168,90.42509,243.16467,388.45206,350.30478,369.9759,178.27864,270.2849,311.3681,60.015717,231.51567,495.92444,101.05213,130.12198,25.20585,101.04175,16.64115,294.9595,425.04233,432.29507,497.0211,251.18333,70.21827,284.41257,324.32187,27.783659,283.17456,11.495876,211.17644,95.52461,142.3109,126.81823,122.5828,317.08267,132.5558,282.84045,65.88709,131.46245,184.02997,440.9366,355.92642,31.760279,100.56467,11.227313,95.42131,418.43756,168.59695,283.27457,239.29387,142.43819,178.80597,144.85432,173.73744,111.832214,314.39572,105.508606,387.21634,144.53105,20.994528,164.60712,371.2427,402.841,77.93843,252.68008,101.536316,446.7545,8.724456,320.73248,396.5751,163.96886,362.51056,81.48754,499.5483,417.30093,317.403,124.93632,63.152637,323.10358,271.4232,172.00208,318.6854,188.3991,345.93918,379.96674,107.838844,361.19803,293.68222,373.20508,12.938221,331.341,483.73047,33.056427,40.372047,462.4706,161.71893,153.83966,9.0223875,201.82722,10.808514,429.29993,382.94818,222.67273,139.85582,256.14883,214.84785,429.9513,496.5434,407.97357,423.72888,206.43689,42.87774,17.779001,208.89406,306.97894,492.92847,401.9026,437.15094,188.43973,466.4498,89.299225,104.07208,328.22333,371.09744,398.87573,341.323,246.32114,63.124084,481.19083,9.833243,231.47629,42.66334,146.93353,405.63324,117.00805,9.488386,294.02277,270.3779,377.31296,273.81946,433.95966,3.9539936,281.38266,143.0564,424.79834,452.95163,150.5172,100.2445,75.06136,56.40346,89.93747,273.30627,323.08798,62.10708,323.74268,223.81671,282.6028,473.76016,111.89446,68.09776,275.72568,314.90216,35.922188,224.62138,417.24316,169.8182,191.5925,26.018076,11.300993,327.69086,29.311655,411.87766,192.46455,28.028212,74.51741,304.6376,171.25629,206.3481,39.080524,306.55783,475.21292,93.17742,335.04147,35.362953,51.899242,6.728175,384.85733,207.43764,5.0275016,423.8076,335.51312,444.02142,13.804478,124.58588,221.74788,415.14838,192.72595,484.61777,154.90218,392.5574,227.15799,310.1205,350.90775,327.89783,268.78665,79.37543,184.88994,238.72073,230.61844,135.11131,329.22406,334.96463,433.2112,41.31757,248.48853,35.15446,349.7901,192.10791,244.13383,460.1707,112.53139,442.50534,107.81876,140.83835,246.7672,249.8978,46.519203,137.33656,374.08276,212.92448,193.34142,372.89264,303.3437,496.55814,393.84348,33.28618,131.37056,286.0509,66.6472,406.91904,261.78033,69.6106,231.69884,49.958897,83.87701,104.7229,403.97433,167.84491,139.18054,226.95609,292.94812,175.17023,434.23495,320.84818,119.685265,482.233,383.64536,446.65134,54.523235,354.2426,276.68948,349.2066,89.18154,468.0734,122.613846,86.08807,357.1534,197.27022,374.44476,55.939518,51.055847,126.942764,49.387985,392.65353,2.1441796,424.28333,150.7677,178.20851,61.616543,230.22704,127.00775,207.6688,383.1874,91.180595,214.56485,46.26305,294.91187,86.688446,448.84283,65.79719,214.01512,248.22113,0.3787298,114.81798,196.81761,171.2244,342.184,72.7302,203.37686,227.0262,215.33095,268.09418,149.03247,144.50316,118.97352,194.70056,301.45526,346.33926,125.861046,199.51884,148.66795,38.860065,108.352234,217.54454,330.6541,430.34668,37.185757,211.51921,142.4409,391.8773,322.80582,218.18205,499.617,296.52087,390.9508,468.18988,454.433,371.71237,70.60278,223.91182,195.8302,327.70032,184.50603,468.05695,114.854614,309.1788,314.54584,381.49124,166.14417,156.77611,384.81372,184.70439,5.2158713,202.33073,424.9232,94.481384,200.97505,190.90236,268.55145,334.21698,276.6778,450.48917,115.27243,476.32834,143.52205,433.46527,261.60947,250.82748,216.64993,155.30995,24.194187,163.2447,83.11957,311.13202,420.34998,121.95254,173.93463,166.99763,150.938,215.1752,105.113106,341.20923,46.348587,50.33413,188.86478,158.66144,159.75983,120.770035,261.89233,302.28488,398.72235,64.03272,279.9643,416.10657,319.5766,377.33972,240.93759,296.67752,40.41619,385.0686,468.79498,316.77713,245.128,304.87228,367.26324,61.174385,303.69522,306.84003,77.08603,467.0843,257.4633,319.99432,440.25378,221.70482,249.43216,412.61255,64.34511,353.3433,268.24417,102.23371,90.658394,36.992016,81.760666,148.74915,196.87051,387.9038,113.6339,393.54657,268.1214,223.10884,10.125914,461.59756,463.33002,130.28395,370.4179,399.80414,236.61351,279.5868,362.81808,492.6231,397.48853,138.42702,310.02866,107.21057,136.12857,492.88663,228.19179,90.13518,36.163395,428.80475,56.9254,353.7983,306.47305,16.773666,88.42407,148.12114,68.966064,261.70932,457.73987,335.1453,16.93109,340.38043,402.4509,370.3756,40.571465,127.71227,284.21616,82.59904,53.039818,51.19239,439.45535,376.59616,117.844925,280.74362,138.1556,303.74915,189.99446,371.1249,461.5362,117.7127,63.460938,81.11956,59.58976,491.33807,213.09372,476.3501,323.3641,178.81415,329.545,436.3456,372.44608,223.3563,5.8364005,215.60768,155.05188,108.80916,81.070175,343.18286,340.7296,266.10217,322.18628,412.99313,97.66434,423.96857,155.44699,251.78438,447.78323,303.94128,410.7205,375.76862,63.848976,441.5083,336.02448,295.81793,21.29879,56.7217,172.75821,43.150223,315.73465,272.5817,55.35455,287.8845,320.1722,482.88812,59.73803,145.76924,430.60928,439.9693,230.94572,403.793,387.93417,219.62175,73.6448,448.3621,75.0186,98.24075,354.8375,399.21704,137.94432,373.26077,458.42355,229.42294,122.736,458.7603,375.50192,357.8601,127.366264,289.7212,169.67644,277.84927,402.20398,215.7757,277.0192,336.55624,220.34856,424.92615,443.196,274.83725,309.36252,145.90468,16.589764,285.795,432.3509,492.4908,65.44088,418.24426,53.325024,267.84695,37.78241,31.866108,267.89954,314.44012,317.96777,365.4298,42.14554,441.7872,103.84912,124.22583,237.61742,75.56904,362.53293,42.55012,375.1907,44.064632,98.115746,1.7853143,35.697342,239.34677,100.659065,83.4128,313.3456,211.61008,266.92386,225.60797,66.31431,449.83435,284.4379,16.872808,232.33131,435.2174,33.39083,486.96597,148.17635,183.38081,18.102232,132.3218,73.74754,375.08597,158.03421,73.697685,281.42593,82.36706,396.31067,468.64307,457.51935,411.96027,261.06964,56.76637,417.91165,399.7674,97.80625,387.7512,459.02014,101.556656,152.05325,427.6975,257.0913,175.0484,138.73515,474.1494,118.050064,415.29282,272.62372,295.7961,493.49173,282.92798,217.49077,230.19629,96.02467,227.52846,274.24246,281.95462,319.32474,187.23639,373.87308,128.01129,225.0309,174.04372,412.57953,124.40754,325.42682,157.10486,164.23683,257.7639,338.16827,210.42413,436.92917,426.92215,340.73233,402.682,430.0273,433.34903,499.75574,136.01125,289.90414,305.02994,428.7202,439.04163,236.00882,101.66354,481.54645,493.999,345.96973,47.108494,373.49542,183.12894,177.59053,250.98665,8.200831,305.13718,46.155403,237.20674,145.0457,219.15916,192.64047,87.55318,112.608734,166.79637,492.02655,66.79844,153.66649,332.4277,188.25095,98.43567,212.27637,384.70163,310.28577,422.15118,485.93906,484.29257,171.87723,155.01166,185.88086,455.7289,208.56123,469.12006,321.41507,268.7727,78.57059,161.84956,484.47952,289.84604,427.84042,358.73587,128.74756,251.90936,395.90192,18.394913,264.8559,415.13278,409.88144,87.89046,470.4047,409.84506,378.7397,231.30711,66.77101,4.486856,171.26587,62.199265,456.81146,491.78284,17.283855,171.47292,97.41733,130.89876,180.01677,67.18612,421.05026,406.74313,141.5235,61.859337,232.39798,26.262407,449.325,398.03024,131.41768,42.53699,211.05762,150.4359,394.9334,343.5875,420.15768,141.90121,283.97336,12.99997,495.4362,35.134426,486.0933,213.79565,431.82935,349.95203,332.06116,103.37206,71.298584,167.2797,180.24808,176.78383,126.05951,263.5093,0.55287087,127.818115,303.1516,133.21715,497.00912,378.7559,191.14883,26.68698,102.452896,3.968627,366.04645,426.83807,285.79343,53.363064,396.40768,429.5845,417.57645,140.00984,401.45364,457.12186,60.00313,167.90967,252.32008,316.4449,9.529629,313.55295,201.13026,329.04672,483.63745,135.30441,477.02005,312.41867,285.53442,92.154884,196.18295,222.81923,223.02856,81.37143,286.4083,260.76276,461.0905,117.50364,425.63846,367.00095,69.65153,424.17255,247.12038,40.039635,94.96314,374.32773,350.06595,176.07353,25.759666,346.58386,379.57172,457.13513,34.37738,489.4753,323.05026,372.0862,335.70898,69.38055,236.61252,133.58154,73.83768,456.5911,184.38307,373.70978,163.9374,147.68314,51.096344,98.61875,195.11565,155.1245,282.15002,362.10507,120.70703,143.86807,4.485843,61.828423,35.99614,432.41913,34.702946,89.91543,16.14436,405.64767,138.38295,494.26157,150.86418,154.70456,365.7398,198.57355,140.24854,473.28717,240.60316,158.62163,106.34572,314.86096,355.47214,138.17796,6.9561057,190.12096,382.54147,305.62704,447.87677,193.59476,412.04208,239.95003,53.502426,177.63983,267.19638,368.78482,41.405994,37.090244,165.64207,408.29385,114.4781,98.93858,446.92517,137.05254,26.464357,376.46353,359.13007,157.32767,85.01165,248.40942,353.46182,261.907,247.72012,491.78857,376.22256,313.47067,220.97006,415.44666,146.98105,376.48682,13.6263075,272.50845,485.3537,391.35468,164.5803,179.21953,394.8215,241.85666,134.10666,387.21848,334.96283,330.67416,41.718754,309.40118,243.69984,327.2058,358.8724,64.51243,391.88074,353.1108,431.10706,440.70068,119.89895,209.49576,355.73083,446.7136,213.58061,41.907505,188.38498,366.76895,261.23392,112.196815,413.51706,75.22238,264.2774,423.6258,76.39275,375.77597,52.80927,143.7231,371.05774,447.14066,131.81384,134.54317,91.10007,345.19138,324.1871,92.95913,134.97641,358.39844,216.52568,88.498215,269.06708,350.4042,456.54242,43.01951,187.09709,82.30333,175.95961,176.03731,138.54955,240.41714,164.1638,6.7799945,222.84518,289.56088,166.87381,452.42554,220.44547,458.66364,339.8629,289.2929,245.17859,484.86798,342.3517,226.34074,31.202808,40.776928,2.1089866,161.38246,196.0999,10.651004,27.975103,250.97383,105.0486,386.28506,422.41785,391.94208,211.71751,262.21628,259.46338,149.4473,486.92862,234.79727,378.92188,239.59291,386.35562,246.73149,483.6989,282.61865,237.43198,349.33792,497.62524,342.99945,120.18016,463.1617,53.398758,116.79854,133.76218,13.173474,122.47416,410.05298,23.644186,14.8936,281.55124,59.90347,284.28366,74.99438,267.70438,238.85495,22.754614,329.57803,355.3318,34.49653,97.219986,194.96646,55.00738,151.74355,66.118225,17.495722,411.7575,309.52502,221.69456,260.55676,169.59389,296.4866,435.04047,158.65967,380.42865,243.84062,204.92343,99.66104,101.22899,107.438934,82.51591,109.7796,345.24933,63.096233,45.366,27.728102,287.4498,331.0085,435.26794,166.57828,134.56508,223.27562,421.24133,286.33435,300.6225,301.25217,150.84093,31.827444,452.0085,27.778193,355.48245,491.9832,258.79703,211.48141,186.56377,54.601627,477.9321,301.84442,275.93384,60.595448,216.84457,40.84399,421.9986,276.46826,295.24738,190.86201,443.4929,61.72292,384.38953,116.83093,387.25064,127.67864,160.00879,284.1844,218.35454,59.205738,210.9404,331.77774,167.93951,324.3268,18.632395,219.94798,136.29692,281.15942,432.3946,481.61877,455.51273,240.45241,239.50911,26.6903,226.79662,328.18927,26.403296,11.266049,360.2334,37.95895,299.79904,136.00565,288.10486,58.581303,204.89595,77.83106,418.75705,400.84106,351.06277,207.08043,215.50064,352.0706,420.70703,195.1675,350.91928,333.9198,233.63118,439.2081,184.05568,208.33844,18.846516,483.41278,128.14264,375.3076,356.2042,354.91467,423.38638,359.12222,80.55422,410.26532,67.03653,484.08615,361.47266,262.0948,418.93384,450.1711,279.13052,9.67953,6.634562,12.644976,91.47616,330.69107,429.15332,369.45465,217.94765,99.24529,318.13144,245.0296,320.68912,33.671364,404.81155,154.30081,444.44003,304.91617,133.25911,430.10065,211.74774,221.69487,150.96736,165.3959,191.56949,42.043247,360.1407,215.62436,331.32343,259.3017,150.43036,291.20383,59.4388,370.96478,475.47858,363.95667,360.4999,154.16174,105.44021,225.0866,225.77132,363.82846,225.12524,19.436699,402.74048,196.04822,183.43877,404.50763,270.65265,398.12796,104.242645,418.08807,405.71884,167.73296,83.57318,11.800974,132.98834,82.1118,156.39828,144.88585,241.49724,458.71115,108.63163,250.62607,63.91317,490.7879,192.72736,289.00574,119.74004,143.14838,73.51518,373.3261,289.17294,219.1598,396.52304,105.708015,427.8573,411.0016,207.40256,266.43906,452.58163,238.42447,96.32179,111.252205,325.23236,61.84847,206.40129,421.3239,396.09933,32.787052,310.96405,222.88849,226.21217,194.31258,295.53525,104.313416,388.06793,371.48434,405.9036,290.0255,317.0269,322.92947,156.11232,89.00284,112.47951,74.98997,370.15594,230.76678,60.466095,359.97186,21.224966,183.0432,352.49576,111.437195,162.58688,338.886,254.69788,497.63425,493.95642,246.06844,81.19012,470.03058,389.99356,476.10257,173.4155,238.74419,46.198452,50.382214,432.71423,285.2813,116.87028,377.4543,391.02682,385.99323,417.81653,228.13554,371.66403,24.051107,36.121563,356.97632,228.95645,9.910445,0.0016915726,69.7192,13.266451,79.4938,153.85991,118.041115,26.103668,307.46838,477.97076,78.09948,370.7387,336.83682,335.8031,135.962,74.03935,337.8134,20.291388,410.5337,446.16553,444.3105,231.6297,115.09078,115.75807,273.68668,434.75067,406.7163,446.64362,66.24728,249.53447,155.37407,214.0797,51.2282,495.94458,104.13564,491.89258,248.93013,335.0644,199.95422,9.8252,2.1775253,65.780914,469.2993,255.75368,162.70354,463.94083,8.866171,3.532784,437.0165,305.16653,151.49532,239.95961,358.22394,400.79312,143.72256,74.185524,485.11588,260.94986,238.07928,117.55619,393.9262,395.94608,477.5878,20.541725,268.10727,347.36215,396.75464,361.50058,126.39388,10.681777,230.8627,254.16348,54.72703,211.34933,71.03105,432.92886,489.8665,429.3613,287.88947,490.0552,399.7611,169.30148,91.933426,469.83533,436.4644,224.79599,462.95374,492.32928,490.28705,345.75635,261.6999,100.47912,67.75051,72.22844,74.20267,454.54977,207.10611,60.148293,45.505142,171.89648,460.06204,213.74606,150.09232,99.00423,135.48006,474.57367,300.17053,43.54197,96.70403,212.46384,195.84674,142.2766,277.0697,82.12172,467.27975,150.4235,210.24754,326.9166,65.92115,37.79978,316.21704,290.544,223.99557,174.70688,31.90184,360.60287,96.534424,137.17966,349.4072,0.14351296,426.69437,377.98233,281.99774,182.23917,218.73128,433.3798,427.77213,209.802,26.071054,148.28362,290.3593,277.10196,13.576398,161.20763,400.93036,110.091995,298.33646,15.705888,75.30545,192.46448,267.59814,31.695833,464.54175,260.44717,253.21698,178.60419,431.76318,184.91692,125.09204,133.95905,339.75793,1.920902,20.919897,389.03745,84.16201,303.30316,399.16833,440.13998,230.94984,38.920776,59.616966,352.12784,253.61916,289.90158,390.86026,459.95135,209.33289,180.6798,171.76102,412.65973,373.66608,255.6464,271.3955,37.318382,435.8412,383.2174,165.68372,252.52351,165.36385,224.47429,479.89096,52.03625,153.10797,102.719696,354.12457,330.58237,99.97068,359.79807,427.4292,164.14883,152.14821,254.40414,463.07568,469.72055,177.46588,7.809072,290.47528,166.56055,406.50848,465.12448,162.62401,378.159,14.1011,445.812,417.53864,426.00046,498.865,326.12158,408.13193,424.23322,75.59215,138.47415,375.3421,43.512726,473.88184,113.57151,204.10411,461.14392,134.4036,238.42322,398.02774,351.1259,29.487123,273.70724,210.38979,414.36594,304.69516,482.2537,96.51641,39.05682,90.849464,128.8282,302.01578,405.1665,76.66475,108.28893,262.9102,214.87477,200.04994,17.735312,369.74756,161.63907,228.73471,65.939476,185.01437,33.63379,427.63333,280.34518,44.27276,74.13512,4.0165687,320.81522,470.58984,376.9202,111.796,467.80847,77.259895,216.94623,415.55356,56.237103,136.14693,380.78836,321.87268,281.34088,190.19356,327.5983,253.2007,387.87607,150.1595,4.8893447,443.47775,170.7516,453.18686,272.83517,364.48285,454.3484,451.40134,272.40927,201.28326,206.40828,454.66815,388.36066,434.58817,38.35561,285.33688,297.316,325.5991,43.868626,454.21683,473.91132,498.31552,179.44704,385.83826,222.60913,269.94455,451.04166,212.31549,458.53543,386.7766,41.04667,456.89905,403.83664,271.39972,403.98495,3.1079516,357.51077,466.69724,233.92197,137.03854,57.000256,407.30753,108.53465,494.06168,241.4908,101.91295,26.858215,189.6986,375.4062,76.23675,157.58498,133.06047,496.4337,253.73135,24.431793,427.27496,493.33618,52.04488,148.84253,456.19315,164.07144,304.67514,455.35556,379.15747,10.712937,50.320076,192.10045,208.82207,337.1365,370.63544,411.55658,140.7274,251.09862,299.2331,88.22405,273.68774,143.49953,123.32793,45.13955,401.37698,300.50565,362.15793,209.21774,320.74097,102.57989,290.96475,354.04944,161.74667,394.4191,362.75412,17.126247,319.9733,311.52142,301.92664,396.68094,60.751015,308.2297,431.77933,458.35358,444.35925,328.75858,243.59975,223.58954,117.1317,16.693731,213.50018,163.68126,399.47452,278.21347,189.55693,66.88132,269.76404,305.40573,99.19661,486.1765,499.96475,225.58893,339.373,282.73532,428.37997,344.74472,141.48157,197.62741,281.8039,4.5532565,447.9323,101.06452,61.64103,454.71585,63.79135,114.50174,227.87033,457.55984,450.4008,65.1699,150.86952,139.28197,374.8409,332.55115,360.02158,169.25253,36.445847,54.082245,64.47594,76.95397,308.47464,203.5842,173.32872,55.121635,422.7721,310.35596,186.69467,382.25137,355.8657,284.5334,2.9468017,2.2123055,4.1999264,334.33633,57.342484,470.6871,182.44434,347.10138,54.522495,194.29042,394.48148,262.06387,285.74564,148.22623,355.85095,299.20593,466.8692,224.51775,485.5672,322.5693,466.57333,315.91888,20.63747,315.98486,428.48566,162.8042,166.89464,379.8641,410.96432,395.68823,364.04456,111.613144,348.77368,41.44819,213.45291,404.2705,211.059,60.992416,398.27454,44.757725,261.43967,493.9246,456.98102,203.72662,411.82138,425.47217,7.8606553,116.06335,395.10638,133.83311,109.6538,301.92834,418.7719,460.33176,305.21866,281.79996,363.74164,209.5261,101.994316,450.5864,359.83652,499.84793,242.33705,392.1694,271.156,205.435,75.72495,55.507645,417.8161,360.8401,288.78656,243.0965,482.55905,444.14777,366.24265,221.42976,159.98206,159.52792,351.6979,336.5261,1.9897469,453.70923,107.61976,42.45613,193.6572,253.15063,126.496765,282.46152,185.91519,171.29562,385.09274,82.41464,65.996605,400.71793,495.01837,361.39728,400.1999,300.45105,423.67032,41.793114,232.74382,274.0467,381.89478,480.60785,149.73798,455.1872,45.1434,152.9724,139.5937,103.3442,162.33765,266.56772,96.05945,58.03032,447.40198,257.20926,118.03135,266.29172,184.19499,136.25185,480.83575,116.61383,245.62024,450.39334,280.34683,254.2448,439.04337,206.34903,463.845,424.53217,136.54892,324.01193,289.62817,339.83902,26.493494,442.63254,78.31958,93.60623,382.1995,396.39478,241.64253,391.9535,36.358524,450.3891,44.85708,250.68535,96.16232,97.98676,4.326654,159.74892,14.508561,108.26312,454.47476,403.1665,33.98631,330.4625,375.6643,424.65384,77.696594,81.20573,372.26913,364.2159,177.24832,399.93103,373.11642,80.64898,21.832027,215.37177,192.76314,40.6443,67.56013,416.97595,228.13573,84.44267,112.86037,392.3193,386.20245,258.68198,295.96365,330.86978,172.5479,34.064365,353.37033,311.48825,326.68442,202.86841,269.15225,384.07147,178.73332,106.20485,481.1812,167.32544,212.9902,50.105045,470.71484,113.890564,142.41443,378.52975,184.16548,134.5649,120.22873,215.92728,44.881107,421.26562,68.96707,73.75706,60.31728,308.46344,277.25198,232.95303,280.39023,74.01001,183.19461,227.81586,33.53353,365.11316,267.84488,476.4924,497.8192,395.5953,430.53348,174.51361,455.62253,169.9373,376.42374,228.98903,271.82822,229.61427,313.27643,126.21507,460.69403,75.50852,3.2161803,206.30394,27.942059,490.40182,158.76433,352.81577,352.98254,294.58682,40.082443,264.69293,394.93,314.09406,246.71873,103.450134,258.2721,416.24442,220.97293,496.36008,22.632505,382.4143,352.5489,242.48813,438.5231,209.92381,316.8178,325.13937,220.96265,108.165855,411.43042,293.39462,267.22745,13.213339,319.3795,109.42341,81.473,157.27303,145.0307,158.13264,86.05318,192.83257,192.23776,374.0025,85.594376,327.30408,311.80728,188.76775,105.79364,342.3627,204.86583,19.591341,299.38736,101.28035,438.84244,332.40164,27.142685,314.5261,24.606834,68.78928,222.4671,114.15911,139.57916,443.50778,464.44678,10.135836,135.3607,86.58378,459.0062,402.15945,121.51906,126.8625,329.84772,217.00923,148.30933,436.22058,168.4332,280.7484,256.1354,297.59253,289.16074,418.04822,266.32095,469.05704,158.86557,236.93777,469.45688,441.11057,182.68729,482.38013,467.36655,65.29487,158.09396,302.4525,206.40486,246.95871,102.87925,52.056896,67.52301,8.970219,72.51344,60.895092,254.23071,204.72847,186.21498,207.95206,162.48997,3.1843421,62.545948,284.45856,42.67259,346.11276,341.96082,4.749785,484.68283,135.44931,146.1794,254.00772,49.621662,373.3686,373.4885,330.7584,300.65808,410.82156,368.9609,54.22635,157.75566,7.2144704,417.14917,495.89908,359.8387,470.29834,298.68008,171.2824,340.12573,62.57803,430.61133,169.95364,442.53177,127.09999,383.24225,244.15761,257.22693,25.917347,378.48157,40.63689,202.56699,390.6848,201.28548,157.38588,481.182,26.820353,301.74106,50.61579,48.37219,143.58804,435.88867,402.95267,59.534657,121.288284,122.95029,368.06992,429.49118,300.19144,396.99896,130.9527,110.41635,211.25749,182.07388,9.083565,474.29062,128.44147,265.8575,104.52532,53.368896,77.932396,37.04202,119.560684,160.92003,142.37976,48.07957,31.58378,7.4257884,160.52055,489.84598,51.74533,279.26624,447.2707,486.63568,290.45853,429.4931,391.8744,67.05402,440.15222,84.923546,40.42399,430.38412,192.04459,370.97186,483.97055,461.30432,425.2228,257.26224,249.32289,440.23044,123.88046,360.8939,207.47977,286.22125,140.43054,237.11052,250.39838,227.3347,242.29831,329.25244,403.74924,382.2238,315.50635,274.66574,31.136045,97.07761,198.13565,224.09624,387.18948,473.7949,207.72444,12.445602,31.649065,248.00119,357.98425,357.4559,318.86456,224.3507,246.9531,266.68405,426.00482,268.07123,45.521667,443.79126,313.08334,409.19736,304.51096,220.56355,484.66965,352.0467,307.17596,406.53543,51.553307,62.549633,261.70197,398.97498,470.46753,178.64848,271.33752,470.5525,56.447254,359.47186,365.74265,17.148582,228.00708,140.94453,337.4806,183.45695,425.46335,138.34164,114.481224,186.4188,135.41335,368.94183,254.4096,384.45285,75.07077,442.6848,489.34964,184.20433,437.24567,390.51285,121.42018,221.08339,218.21562,231.39957,92.53088,185.34491,178.82709,160.22362,334.90005,341.02454,7.3499317,407.29156,290.9638,397.24573,245.4721,495.51993,347.942,131.95746,216.33849,404.49466,142.27989,82.60846,216.13351,274.94525,309.12955,136.80019,297.17532,360.72446,290.7032,388.13684,431.76794,212.68338,162.80043,172.16264,337.87192,161.62706,170.29057,59.06633,174.08142,92.71606,193.5442,382.0784,217.99048,171.94025,71.69856,472.3844,389.68378,111.64231,373.7834,316.27524,223.19878,349.25906,411.75375,472.57574,93.406784,255.75587,447.62506,114.874535,260.49338,94.87999,45.624397,440.1667,221.3813,65.82934,7.681396,499.6537,95.44209,299.18622,272.73914,60.24927,465.5374,228.1981,305.91162,175.2952,463.91202,246.21382,166.10556,280.85934,351.5669,6.748724,153.351,242.52776,350.7463,371.8847,212.01752,168.37192,84.323685,98.23828,188.32262,160.79817,325.9677,22.488005,353.40182,379.9188,112.04925,140.71645,493.39053,431.93686,266.58936,341.74667,321.8722,232.54639,259.2778,487.07886,43.73885,222.0014,234.0647,310.75467,152.57346,359.74353,126.22018,5.389817,425.90826,260.418,135.58131,428.1951,307.35385,130.79898,87.001785,271.1475,467.77426,87.39698,386.55566,238.91153,95.85051,74.36828,483.51364,95.49061,76.13559,336.7146,85.85637,339.76074,354.39893,120.1785,467.74515,248.84302,277.34644,30.60366,437.50122,233.88437,228.01941,24.410269,150.49603,203.96873,442.50656,341.99432,441.23608,124.061165,5.599939,286.46436,494.48996,396.0187,399.10648,32.06048,85.18764,135.85275,52.158195,22.474571,273.35474,192.72702,44.912895,192.4879,330.73227,405.56714,188.83643,106.83784,36.715977,186.9351,403.2847,390.58575,222.26112,277.3774,280.72867,451.721,367.45465,324.89026,280.83685,468.5203,316.19363,318.67303,124.30274,38.363415,73.58309,457.85593,213.92479,92.9596,376.01544,351.86206,126.14205,151.79388,15.404161,121.69854,261.78058,409.71945,118.94609,415.7885,195.363,413.82925,35.06182,496.5608,323.9544,98.8249,83.77714,401.28653,146.37,117.26385,468.84985,236.07118,213.59836,71.68338,314.93063,384.80188,295.2488,300.01297,412.74323,195.17578,216.02512,67.93615,58.280975,254.65242,439.9182,259.2482,177.9251,51.078384,398.58362,376.22873,499.31177,382.12405,346.60458,416.56277,73.74027,232.79156,473.8054,144.35443,184.31046,134.64107,88.209984,60.961567,360.0337,294.76523,81.66805,74.94784,445.5659,234.42606,474.68912,196.96965,464.6553,464.21582,66.98002,83.0279,243.272,418.29517,85.085236,216.6496,358.29913,311.81146,43.827866,366.83682,336.9429,88.22331,302.36523,256.0143,10.682707,333.31192,304.38416,487.2267,293.4984,93.8724,97.4638,341.43643,41.61753,362.92255,95.02221,131.86295,356.38858,392.92126,268.79337,421.9333,232.23273,248.22748,432.72253,230.49236,483.0234,400.72928,325.47052,191.12212,6.6203847,467.77295,381.75473,290.97137,281.73566,407.09244,247.82253,72.85505,149.38943,144.431,321.2742,155.634,79.4029,0.7041873,218.72972,305.16168,175.00735,164.98128,262.1265,225.15295,375.71,400.30548,166.79453,222.72078,428.3852,159.05402,431.67227,134.11781,200.5381,143.50179,199.64014,174.55644,445.98712,299.3602,167.66833,213.42348,326.47263,295.57025,480.80203,113.84976,430.69232,482.48892,393.2148,422.94128,483.335,238.0229,409.79092,490.4171,227.17412,3.4901075,370.4554,202.2722,53.64246,419.58102,54.316517,20.372108,21.7587,352.63425,63.884254,183.83978,144.64014,262.42468,72.98052,81.61646,48.425488,337.89978,292.11392,150.36665,419.68033,148.67152,497.4606,60.14848,292.39874,344.92502,338.63852,359.97037,442.01273,22.292967,493.40308,155.09776,68.03789,398.98352,359.03503,210.86555,481.12183,277.13202,16.19134,355.56573,27.371344,93.41387,224.40546,233.61914,382.82953,479.15247,437.0581,331.62994,399.37344,391.47287,133.86415,340.11694,257.72986,185.64284,391.54694,211.11221,215.89282,351.13693,455.56116,390.66675,175.35265,117.14369,159.12871,378.9319,257.42007,31.5315,311.18658,439.11926,268.50623,222.86894,281.00104,41.9911,280.66302,346.50284,155.70297,416.60968,483.44202,344.25012,86.50977,373.66672,455.33075,171.26346,438.05502,34.215237,489.37262,434.80685,249.83159,143.31885,157.0713,156.0106,385.97717,76.491394,106.286064,359.4417,296.62207,247.60094,385.25436,140.1539,413.94403,131.4142,2.7577116,480.3984,417.7464,284.73016,198.5708,434.34503,328.6072,65.12409,209.57771,237.28362,182.1767,32.50742,211.4462,483.13474,488.19485,233.09238,137.12804,95.41675,62.694855,460.93195,378.80078,326.86154,167.9058,441.67398,297.67792,175.50934,45.081978,373.01273,236.22586,288.25647,413.51297,358.4297,440.56857,385.78357,296.51837,208.7769,440.42227,499.84586,426.9526,121.940834,198.5063,17.478317,131.6749,490.21515,439.02792,488.96664,275.00052,269.06586,264.55716,468.516,334.24777,224.24858,79.99986,146.13167,244.04208,423.486,12.637359,42.577248,59.070717,456.86227,180.91203,431.21597,356.38922,324.1484,4.028559,300.87796,300.0569,266.9107,129.4456,58.926373,111.54866,318.45053,317.1864,435.66498,184.11452,397.60345,45.492863,226.3962,328.41837,31.530304,26.29848,403.1388,31.206408,370.7541,301.43527,175.14133,142.6752,177.81963,412.91605,190.49298,374.04984,159.9445,412.40802,492.8289,205.08278,442.26123,390.11917,44.64797,482.96118,10.459884,334.63382,228.26427,144.54721,333.28348,56.47321,189.68855,248.19621,352.209,468.73215,386.96204,27.77109,411.7179,6.908591,268.42233,157.11362,3.741138,474.36783,99.79999,154.63428,432.66348,290.53058,0.6932552,497.97412,250.80608,189.15009,304.61523,379.14532,224.9676,175.34204,428.44577,23.176939,98.38433,397.45874,133.53491,162.28,323.87534,272.93008,182.24904,353.7532,158.09785,418.11505,270.4328,141.71799,71.83814,354.45078,5.1462507,308.5048,402.7269,66.163376,468.8433,457.22766,146.67673,313.50742,347.09232,22.458,122.90593,262.37497,413.59247,38.10621,125.12746,210.62279,252.66629,278.7942,48.568783,381.0171,48.287956,46.477825,85.0402,301.19055,334.96942,89.76205,470.33063,487.0292,14.847771,306.7909,208.4739,31.200817,288.2204,126.094574,232.72118,141.78545,55.140934,477.0748,28.992546,437.55777,26.97169,317.5031,41.490883,436.84772,224.27386,408.0682,6.1672893,311.8685,292.08206,183.99461,175.93478,126.01461,177.6007,480.87595,105.07467,480.43854,127.00975,112.447,116.588104,444.89856,86.38353,404.6479,378.87268,408.8004,306.06265,11.011258,384.18475,162.36343,69.16918,367.57462,24.011168,296.6484,249.97934,205.36552,381.95358,363.16318,279.97232,211.5168,496.38092,59.847103,184.41855,495.27826,408.21167,92.502014,453.071,115.63476,449.6198,288.3933,406.07687,373.69595,138.61188,370.65326,2.3283381,404.40253,491.79318,326.76007,170.23529,47.933952,259.46118,312.16495,213.43779,390.45532,459.03018,357.65195,228.9353,282.86377,263.2793,367.8835,35.965363,85.19919,394.8735,400.75266,441.67142,166.59952,172.76541,46.00784,211.23482,55.41005,277.5305,50.960487,428.30798,151.84962,388.63623,331.15582,298.3316,305.98972,139.98227,479.27066,95.36463,87.84767,361.3138,413.78616,242.75299,260.12784,229.81065,167.60126,152.77574,216.84842,85.08861,142.75508,299.565,63.29304,354.32675,322.53683,314.21106,440.10562,214.11899,357.59457,346.25174,317.684,132.73338,363.34277,259.21613,164.50932,181.62607,409.97916,133.62892,52.016212,57.839947,278.37665,306.59235,475.7613,155.81708,59.720524,64.00925,369.28357,266.4851,296.29404,92.58849,375.61972,446.18488,314.67584,256.6947,271.9681,415.92746,437.44128,97.13665,341.75513,266.05667,381.53217,60.694427,338.19156,363.81903,279.56958,207.02312,241.7138,146.89948,125.88905,53.77198,392.70654,19.575333,210.41829,173.98503,182.13745,170.8691,484.07617,41.11885,441.72696,397.058,457.18848,129.33516,338.92444,152.8354,271.72958,475.88962,58.559532,160.08296,304.11926,281.35507,428.36966,98.08341,405.74762,154.87108,40.325005,438.0185,157.27553,72.07719,220.30371,233.78719,141.4399,249.76608,149.2646,303.64932,240.72925,313.23227,123.232925,115.33267,235.3797,132.44498,383.52887,221.18611,150.3585,6.6763396,395.72687,181.14313,47.07553,444.16815,71.0879,414.6102,74.228516,492.80994,343.9922,240.16861,122.27203,104.17146,336.39215,256.50555,410.64645,131.04498,296.0929,148.56708,136.10849,44.480354,272.8827,114.46872,369.73386,369.64554,181.88316,377.6263,199.33151,328.99622,384.56693,223.14754,256.06708,447.76422,189.36343,445.31265,422.16028,4.5037036,115.29329,155.39076,114.98485,473.1395,343.4328,472.25137,377.7526,307.87943,268.19232,99.39847,388.42398,136.29184,101.38544,291.22894,354.0666,492.4699,269.0549,372.54364,189.5285,282.13162,115.41235,159.11452,395.3847,248.16907,39.095364,12.060787,3.420533,433.63837,417.91284,14.811902,155.50755,131.26126,392.02972,206.04408,240.85469,7.3776703,82.3722,173.04807,24.02745,401.44727,168.91,175.07565,497.14523,442.51434,421.215,370.46457,199.04063,45.138958,31.333084,226.08623,421.8026,192.27809,315.17056,476.34576,362.0487,42.40049,264.16635,251.5607,401.30014,185.5986,102.29807,340.6798,304.13922,51.27556,49.28444,312.61218,248.65875,133.42859,82.64914,67.56031,12.147764,114.57141,215.57169,459.46564,72.067055,63.24459,236.95554,107.23438,173.36926,180.49294,240.20978,28.2806,43.495583,128.5931,234.02588,313.7066,197.69551,91.25011,65.889,432.89407,147.32625,499.05682,159.63142,481.9977,189.80121,303.04263,320.77115,442.4009,27.680714,437.17978,377.18506,24.907698,289.2191,281.0065,178.15173,439.7252,89.836754,220.91333,339.20633,455.94196,317.944,358.58423,146.31909,83.79228,350.47104,30.476116,64.0776,322.25183,176.64601,451.96173,172.539,394.341,260.64886,438.67084,217.12204,133.6359,162.30576,369.27808,342.6782,250.48651,161.84023,77.95078,179.79945,8.275947,199.27519,109.207886,104.720345,294.84842,166.82858,143.60522,140.42197,243.66856,458.05304,456.07214,59.6174,120.088425,154.42361,409.9965,318.87656,96.71456,272.68726,429.86658,358.77856,16.987627,337.9298,185.75204,285.12582,449.70502,386.65906,363.6944,340.3313,252.30785,145.79916,493.84982,155.13087,453.41995,440.44986,190.79884,284.5414,72.665146,295.0423,444.30923,66.18354,34.104156,337.2689,10.892102,223.40642,277.52335,303.60977,223.30501,16.795904,26.704506,332.18457,302.7899,130.00815,229.04153,152.57193,379.64676,206.34099,243.9529,156.28607,130.92807,343.85953,156.65527,189.0563,169.8376,265.46472,427.2131,71.84535,150.27014,329.2106,396.54077,374.65292,48.842056,400.79935,323.5685,58.188015,410.6882,183.99031,455.14722,351.84836,284.0268,163.18869,84.04896,481.19977,203.68524,20.054564,149.44473,64.56429,470.66968,407.9014,272.55328,265.17255,305.38998,111.46223,35.43005,203.41849,99.39683,391.41806,326.57556,492.4816,156.10518,316.39148,393.39386,214.64183,185.29042,181.14787,335.02182,402.3458,339.18402,472.6195,366.57758,6.588134,155.61363,19.661331,41.581264,362.8201,227.55348,389.6258,475.87186,334.78806,1.6922655,206.27618,358.4019,120.9094,159.21039,28.787222,136.66077,238.63467,38.44366,319.4025,83.65007,469.30283,63.900513,197.45633,12.939328,377.77792,407.6367,444.9476,35.229694,235.80067,201.56714,475.79977,148.82887,95.32939,334.63596,37.319767,280.83643,50.600163,445.17535,183.0736,209.54172,189.11656,65.7931,6.0960217,174.38261,140.4994,232.27586,420.7398,458.35892,302.7564,6.457907,408.66696,248.64787,209.44997,89.03114,128.19531,172.74529,462.60474,95.96207,433.50577,433.2303,140.30617,138.25061,242.7803,70.80238,308.0795,128.32193,444.15814,90.50829,469.37708,88.2532,258.37582,299.2398,432.19388,449.67462,324.21423,421.5303,105.47703,286.24622,417.9298,42.20717,119.89511,158.54355,440.0283,290.721,467.66833,263.737,35.221607,194.4614,93.79965,416.12036,375.07062,57.41638,100.15842,19.752645,277.01492,391.792,158.94722,350.69406,353.15808,117.6282,491.92328,352.27435,414.13306,34.80244,218.10225,165.16757,2.7107453,209.5304,334.64444,366.74658,148.5435,31.066542,477.11108,8.963124,349.10522,483.18903,453.46878,240.35568,76.05495,386.60037,192.19777,308.57382,162.22801,477.8728,49.607647,193.88843,9.936426,246.75505,258.8332,60.744995,447.63092,452.36606,297.9347,260.11987,488.99643,409.48248,282.6281,384.73145,403.6107,357.33298,44.54558,488.8625,40.279007,498.1152,377.55972,287.34604,105.86043,76.40213,489.98077,386.39777,479.7271,193.137,23.988033,411.77686,240.08618,253.31555,40.27176,366.34494,134.71278,492.32263,319.28006,104.76442,280.57986,420.5116,303.845,268.5385,410.07608,8.441496,464.97302,266.49503,218.9465,446.5673,28.13701,112.91145,481.16092,58.707947,85.50107,349.44412,184.02588,387.386,50.76423,109.56643,38.480045,496.373,355.12692,348.62717,273.8254,222.08902,398.6366,305.25974,372.39786,129.17067,491.5511,219.91914,484.6504,428.87598,190.66455,312.43195,312.46762,432.39655,303.57468,308.61658,260.70074,8.182747,352.16425,432.62088,264.17664,301.56378,237.13786,160.00124,73.58724,70.60454,345.0885,355.01117,463.4609,290.97943,494.0604,420.22543,436.9768,492.94763,203.66028,102.576904,154.16905,417.35336,394.08698,92.31763,215.30016,370.00003,272.12534,437.3104,402.1452,448.83795,388.3994,67.31581,118.63936,434.42715,178.26993,294.73196,283.19757,11.755793,18.907368,279.101,70.375755,456.59247,194.84465,254.22614,81.73263,232.42484,243.01305,400.60257,428.86337,313.67548,95.969315,299.1486,182.47661,37.870266,0.07996984,499.54138,48.704212,183.85799,412.3228,322.52042,459.3844,468.86807,274.46088,14.012843,241.39827,54.861523,456.71692,244.74,362.7682,355.88422,91.47553,58.253128,115.28856,447.23825,32.323547,23.20975,294.28485,256.14957,106.5029,344.65335,166.05478,31.167053,52.407143,434.29794,495.25357,359.70123,481.63095,72.68693,109.795586,243.08481,388.70715,482.52432,93.10396,340.5403,42.029877,433.18033,219.5784,378.54108,328.77774,115.00559,2.3548868,228.57962,415.6388,197.31683,341.89822,295.57364,44.879963,305.76865,280.33047,143.65776,419.3917,493.38495,421.85797,175.56853,189.61006,0.85312784,154.14505,290.90652,43.290203,277.5548,292.24304,319.7177,444.8762,269.18115,434.14215,167.36858,142.91756,331.05405,277.36194,498.90494,187.46878,85.98117,157.20677,27.278135,351.32077,170.88176,34.656178,146.18808,452.0521,436.9684,194.78963,35.515167,406.7113,269.25443,206.5314,184.03894,296.18698,186.60364,320.0342,439.95816,475.34146,492.11365,132.15565,112.47123,40.32381,258.25534,413.81845,343.2748,438.95258,307.95807,310.19452,284.81796,217.29774,222.86765,35.62449,172.68129,219.60942,99.92851,141.32193,388.92017,85.47621,79.39838,232.8117,374.12692,363.24133,277.3354,402.16675,452.39938,145.09102,154.62419,327.53052,152.76602,338.04294,452.5762,326.73032,42.91058,435.84378,391.22714,290.84412,104.07561,357.55978,86.982254,164.69917,359.5641,446.6518,141.4749,378.54617,320.62442,149.46176,148.97511,112.62721,427.12253,74.78166,392.3022,312.76205,39.337044,270.0978,318.44406,149.06435,258.2419,472.23956,258.10928,166.32344,98.458565,41.80951,122.1067,82.42445,182.72495,16.25129,160.50981,404.10626,379.83163,315.9469,263.22852,467.1036,490.2638,342.05093,51.14597,332.75702,420.89432,396.26462,154.43997,272.43384,1.7832297,410.95917,358.522,12.32872,7.436586,166.48126,56.512543,343.2082,181.63065,484.1559,195.11514,111.67697,446.22064,315.47513,27.724352,222.82018,125.60003,355.5308,377.92563,382.8561,44.461575,90.002365,490.55203,245.77946,116.895645,327.87234,340.12473,169.5542,406.8049,378.94327,3.7797823,55.580215,458.60138,171.27382,474.7396,153.41832,49.990433,216.20567,362.3946,351.48444,314.18094,30.473711,196.85,487.4776,465.23947,376.23,198.09802,87.66809,234.64542,282.33646,22.643503,363.68213,83.87175,319.72662,124.12434,380.85193,323.06427,286.77515,293.63806,457.01056,323.2656,491.41013,198.92026,306.4476,476.06995,270.00424,79.319214,467.00616,330.5959,392.2486,497.035,319.9554,63.112114,475.69836,312.04788,390.25604,207.31763,283.74225,8.034149,352.73294,187.6615,60.58373,436.3736,26.40046,249.32985,482.50348,145.75714,244.361,184.5085,322.66843,474.89404,161.4777,453.63947,34.533703,69.051575,321.4615,330.93246,414.7719,287.40247,295.5693,236.86061,174.70122,173.3277,144.15562,105.30474,263.8562,103.57879,254.4412,103.08356,204.95436,447.93024,269.66788,340.84216,203.20416,240.92293,68.181206,278.01273,80.81662,415.6639,197.10185,360.13812,65.39523,147.96796,231.33992,446.04233,312.0641,480.32376,120.291954,380.04773,291.6404,304.02908,224.32881,59.60932,27.265926,350.12347,34.758312,178.58357,174.2981,338.19034,204.06268,275.56683,384.05386,50.64493,415.97855,55.497524,433.57898,91.40056,213.84563,307.04105,198.23265,72.9754,108.218506,403.4449,279.85004,61.568676,149.138,487.21985,314.55075,496.36926,495.13608,286.06598,187.12987,284.37265,222.69983,451.75128,379.4354,462.63513,68.716286,402.0465,217.96877,199.58092,117.98053,363.55893,229.27243,306.03247,306.45227,2.4685674,153.30128,380.44165,220.28879,194.92007,56.479576,267.34048,390.73517,279.91916,133.35536,463.5701,315.35825,31.076738,346.98773,199.199,283.55658,289.70963,327.4552,171.96687,113.89624,198.10577,197.28374,100.92547,476.6257,368.60287,118.46659,59.63307,306.05258,374.19897,190.81041,482.54556,206.44815,176.13866,237.47267,75.129364,463.6788,207.5129,152.79921,201.0382,455.08594,336.99332,263.5752,17.394857,372.99213,224.22043,258.93835,203.92203,326.21808,131.22496,131.67807,299.6538,203.14558,31.51704,345.87357,484.61526,415.8156,141.47353,30.750084,451.38187,125.3733,480.80176,237.7935,378.85587,471.0767,241.55423,345.44244,221.74664,328.86835,266.89252,338.36612,87.5583,246.54231,219.23128,291.0927,103.08512,470.95273,128.11041,399.3321,394.21906,86.42981,410.61383,41.369846,232.296,244.36862,143.25117,199.90462,79.11129,123.51379,217.64244,328.1118,379.28387,191.67525,141.8571,367.24835,3.2850807,69.47018,377.21213,112.8256,73.01177,139.80621,224.29816,409.89645,72.28305,429.3079,155.8226,448.1781,196.75212,305.52145,396.71503,319.83752,11.650288,81.6694,451.41913,2.3703022,81.36896,8.138508,494.29147,446.94202,372.52524,166.16824,70.08355,265.7023,21.398504,426.75055,0.9792328,144.10774,313.89996,289.0304,497.8638,305.96362,185.2322,483.86017,299.93735,419.6155,77.76837,178.88348,437.31497,237.50551,439.46295,37.56795,244.0077,390.0191,92.01091,314.01047,490.11136,89.17141,488.24545,103.371925,322.20798,358.25748,51.62999,421.8614,437.38193,67.057816,110.55813,116.092804,315.51907,482.7292,269.67346,274.40192,184.37308,477.81006,150.70364,326.05276,48.43791,462.69687,391.85138,473.1704,295.08463,140.08269,86.57619,101.47281,405.91034,291.99268,82.81772,229.71036,354.37,319.19708,413.1467,255.29634,135.63037,30.28542,217.99507,184.02231,227.50757,295.9527,4.892933,488.17368,101.16565,179.0846,341.3585,428.48438,250.36357,393.59763,462.78357,68.209656,244.68903,131.0371,444.2029,331.39615,103.41353,389.45267,355.50165,331.10388,313.40686,251.63667,363.72217,60.952473,183.18977,123.99246,181.44966,375.93756,471.6934,400.67163,14.801808,408.56815,471.7291,297.4706,148.48643,25.239782,65.211655,342.23813,177.56071,187.31561,128.60133,251.88933,34.87061,171.19388,241.74487,406.67023,114.15933,254.14458,99.009995,275.69876,473.08606,485.95166,464.7352,418.6857,133.98868,335.6441,265.29022,79.54309,387.89786,395.29733,409.93774,268.30606,439.4606,227.57253,299.69662,21.842573,83.83135,383.73785,254.13052,163.53094,385.57007,414.564,125.18687,426.25436,248.77783,142.1675,59.318745,180.41035,259.23056,149.21887,342.55795,172.28783,256.15878,456.14587,19.322363,52.683857,96.80559,216.39484,332.84964,493.57327,409.5467,267.44922,85.469635,41.386036,343.7052,314.83624,200.76962,94.828094,334.69745,317.0935,397.9095,410.45142,414.54373,252.70534,386.42633,285.67163,364.3772,387.11987,413.37234,207.18007,426.59772,342.87073,264.03098,152.94077,230.68869,456.3975,461.07138,31.245785,68.33754,479.52942,12.354679,339.3997,471.37344,216.62724,473.46124,184.72859,37.466423,157.69783,457.7175,253.91368,224.91441,212.9841,93.43469,66.582375,16.732456,483.5317,97.85635,411.12497,456.78955,58.260548,470.12814,377.1921,19.400463,183.88342,221.50145,40.226284,357.0368,281.51764,203.89197,172.637,358.89426,77.453735,178.9372,204.29765,122.17072,450.24838,425.78046,179.54056,142.49707,176.6311,36.399918,34.12644,355.12036,56.017994,267.38342,414.90982,101.817024,204.57059,174.2139,58.878136,402.49127,183.73668,211.70676,429.8559,238.14825,468.91458,450.85715,362.47473,404.3982,389.1655,41.605602,318.2199,393.5381,314.2846,41.2123,187.07776,103.31005,57.186737,275.42593,117.22682,425.86887,293.4565,278.2287,76.17742,234.25667,378.28662,342.33435,325.844,298.3869,104.621925,44.59352,243.30106,393.85822,490.995,70.1196,379.15857,81.73421,88.30767,152.54521,107.06529,92.12526,439.8729,215.34047,102.611694,201.73184,34.204002,156.34595,240.23958,186.37021,131.52585,130.77472,329.3866,157.65904,334.24274,279.33035,338.40485,374.66367,382.98386,196.32816,499.9014,289.23074,120.55343,440.47784,158.9408,341.06937,453.79282,250.85951,398.15332,281.6051,173.03891,219.46057,427.3629,444.22507,275.34128,401.6516,15.523159,137.17844,305.46414,382.0423,268.23065,313.9403,143.42331,45.785282,188.21434,216.63445,126.91924,319.86783,422.93066,353.85828,100.5262,434.00778,467.37915,61.324615,69.834724,248.25084,70.4881]} diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/test/fixtures/julia/runner.jl b/lib/node_modules/@stdlib/math/base/special/atan2f/test/fixtures/julia/runner.jl new file mode 100755 index 000000000000..86213628206c --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/test/fixtures/julia/runner.jl @@ -0,0 +1,80 @@ +#!/usr/bin/env julia +# +# @license Apache-2.0 +# +# Copyright (c) 2025 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 JSON + +""" + gen( x, y, name ) + +Generate fixture data and write to file. + +# Arguments + +* `x`: denominator domain +* `y`: numerator domain +* `name::AbstractString`: output filename + +# Examples + +``` julia +julia> x = range( -1000.0, stop = 1000.0, length = 2001 ); +julia> y = range( 0.0, stop = 1000.0, length = 1001 ); +julia> gen( x, y, \"data.json\" ); +``` +""" +function gen( x, y, name ) + z = Array{Float32}( undef, length(x) ); + z = atan.( y, x ); + + # Store data to be written to file as a collection: + data = Dict([ + ("x", x), + ("y", y), + ("expected", z) + ]); + + # Based on the script directory, create an output filepath: + filepath = joinpath( dir, name ); + + # Write the data to the output filepath as JSON: + outfile = open( filepath, "w" ); + write( outfile, JSON.json(data) ); + write( outfile, "\n" ); + close( outfile ); +end + +# Get the filename: +file = @__FILE__; + +# Extract the directory in which this file resides: +dir = dirname( file ); + +# Random (x positive, y positive): +x = Float32.( rand( 5001 ) .* 500.0 ); +y = Float32.( rand( 5001 ) .* 500.0 ); +gen( x, y, "positive_positive.json" ); + +# Random (x negative, y positive): +x = Float32.( -rand( 1001 ) .* 500.0 ); +y = Float32.( rand( 1001 ) .* 500.0 ); +gen( x, y, "negative_positive.json" ); + +# Random (x negative, y negative): +x = Float32.( -rand( 1001 ) .* 500.0 ); +y = Float32.( -rand( 1001 ) .* 500.0 ); +gen( x, y, "negative_negative.json" ); diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/test/test.js b/lib/node_modules/@stdlib/math/base/special/atan2f/test/test.js new file mode 100644 index 000000000000..210e309cd06b --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/test/test.js @@ -0,0 +1,252 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 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 isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var isNegativeZerof = require( '@stdlib/math/base/assert/is-negative-zerof' ); +var isPositiveZerof = require( '@stdlib/math/base/assert/is-positive-zerof' ); +var absf = require( '@stdlib/math/base/special/absf' ); +var f32 = require( '@stdlib/number/float64/base/to-float32' ); +var EPS = require( '@stdlib/constants/float32/eps' ); +var PINF = require( '@stdlib/constants/float32/pinf' ); +var NINF = require( '@stdlib/constants/float32/ninf' ); +var PI = require( '@stdlib/constants/float32/pi' ); +var atan2f = require( './../lib' ); + + +// FIXTURES // + +var positivePositive = require( './fixtures/julia/positive_positive.json' ); +var negativePositive = require( './fixtures/julia/negative_positive.json' ); +var negativeNegative = require( './fixtures/julia/negative_negative.json' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof atan2f, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function has two parameters: a numerator and a denominator value', function test( t ) { + t.strictEqual( atan2f.length, 2.0, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `NaN` if provided `NaN` as either of the arguments', function test( t ) { + t.strictEqual( isnanf( atan2f( 2.0, NaN ) ), true, 'returns expected value' ); + t.strictEqual( isnanf( atan2f( NaN, 3.0 ) ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `+0` if provided `y = +0.0` and `x >= 0`', function test( t ) { + t.strictEqual( isPositiveZerof( atan2f( +0.0, 0.0 ) ), true, 'returns expected value' ); + t.strictEqual( isPositiveZerof( atan2f( +0.0, 2.0 ) ), true, 'returns expected value' ); + t.strictEqual( isPositiveZerof( atan2f( +0.0, 4.0 ) ), true, 'returns expected value' ); + t.strictEqual( isPositiveZerof( atan2f( +0.0, 5.0 ) ), true, 'returns expected value' ); + t.strictEqual( isPositiveZerof( atan2f( +0.0, 10.0 ) ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-0` if provided `y = -0.0` and `x >= 0`', function test( t ) { + t.strictEqual( isNegativeZerof( atan2f( -0.0, 0.0 ) ), true, 'returns expected value' ); + t.strictEqual( isNegativeZerof( atan2f( -0.0, 2.0 ) ), true, 'returns expected value' ); + t.strictEqual( isNegativeZerof( atan2f( -0.0, 4.0 ) ), true, 'returns expected value' ); + t.strictEqual( isNegativeZerof( atan2f( -0.0, 5.0 ) ), true, 'returns expected value' ); + t.strictEqual( isNegativeZerof( atan2f( -0.0, 10.0 ) ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `PI` if provided `y = +0.0` and `x <= -0.0`', function test( t ) { + t.strictEqual( atan2f( +0.0, -0.0 ), +PI, 'returns expected value' ); + t.strictEqual( atan2f( +0.0, -2.0 ), +PI, 'returns expected value' ); + t.strictEqual( atan2f( +0.0, -4.0 ), +PI, 'returns expected value' ); + t.strictEqual( atan2f( +0.0, -5.0 ), +PI, 'returns expected value' ); + t.strictEqual( atan2f( +0.0, -10.0 ), +PI, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-PI` if provided `y = -0.0` and `x <= -0.0`', function test( t ) { + t.strictEqual( atan2f( -0.0, -0.0 ), -PI, 'returns expected value' ); + t.strictEqual( atan2f( -0.0, -2.0 ), -PI, 'returns expected value' ); + t.strictEqual( atan2f( -0.0, -4.0 ), -PI, 'returns expected value' ); + t.strictEqual( atan2f( -0.0, -5.0 ), -PI, 'returns expected value' ); + t.strictEqual( atan2f( -0.0, -10.0 ), -PI, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `+PI/4` if provided `x = y = +infinity`', function test( t ) { + t.strictEqual( atan2f( PINF, PINF ), f32( +PI/4.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-PI/4` if provided `x = -y = +infinity`', function test( t ) { + t.strictEqual( atan2f( NINF, PINF ), f32( -PI/4.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `*3*PI/4` if provided `-x = y = +infinity`', function test( t ) { + t.strictEqual( atan2f( PINF, NINF ), f32( +3.0*PI/4.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-3*PI/4` if provided `x = y = -infinity`', function test( t ) { + t.strictEqual( atan2f( NINF, NINF ), f32( -3.0*PI/4.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `0.0` when `y > 0` and `x = +infinity`', function test( t ) { + t.strictEqual( isPositiveZerof( atan2f( 1.0, PINF ) ), true, 'returns expected value' ); + t.strictEqual( isPositiveZerof( atan2f( 2.0, PINF ) ), true, 'returns expected value' ); + t.strictEqual( isPositiveZerof( atan2f( 3.0, PINF ) ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-0.0` when `y < 0` and `x = +infinity`', function test( t ) { + t.strictEqual( isNegativeZerof( atan2f( -1.0, PINF ) ), true, 'returns expected value' ); + t.strictEqual( isNegativeZerof( atan2f( -2.0, PINF ) ), true, 'returns expected value' ); + t.strictEqual( isNegativeZerof( atan2f( -3.0, PINF ) ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `+PI` when `y > 0` and `x = -infinity`', function test( t ) { + t.strictEqual( atan2f( 1.0, NINF ), PI, 'returns expected value' ); + t.strictEqual( atan2f( 2.0, NINF ), PI, 'returns expected value' ); + t.strictEqual( atan2f( 3.0, NINF ), PI, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-PI` when `y < 0` and `x = -infinity`', function test( t ) { + t.strictEqual( atan2f( -1.0, NINF ), -PI, 'returns expected value' ); + t.strictEqual( atan2f( -2.0, NINF ), -PI, 'returns expected value' ); + t.strictEqual( atan2f( -3.0, NINF ), -PI, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `+PI/2` when `y = +infinity`', function test( t ) { + t.strictEqual( atan2f( PINF, -1.0 ), f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( atan2f( PINF, 0.0 ), f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( atan2f( PINF, 2.0 ), f32( PI/2.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-PI/2` when `y = -infinity`', function test( t ) { + t.strictEqual( atan2f( NINF, -1.0 ), -f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( atan2f( NINF, 0.0 ), -f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( atan2f( NINF, 2.0 ), -f32( PI/2.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `PI/2` if provided a positive `y` and `x=0`', function test( t ) { + t.strictEqual( atan2f( 2.0, 0.0 ), f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( atan2f( 1.0, 0.0 ), f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( atan2f( 0.5, 0.0 ), f32( PI/2.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `PI/2` if provided a positive `y` and `x=-0`', function test( t ) { + t.strictEqual( atan2f( 2.0, -0.0 ), f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( atan2f( 1.0, -0.0 ), f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( atan2f( 0.5, -0.0 ), f32( PI/2.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-PI/2` if provided a negative `y` and `x=0`', function test( t ) { + t.strictEqual( atan2f( -2.0, 0.0 ), -f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( atan2f( -1.0, 0.0 ), -f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( atan2f( -0.5, 0.0 ), -f32( PI/2.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-PI/2` if provided a negative `y` and `x=-0`', function test( t ) { + t.strictEqual( atan2f( -2.0, -0.0 ), -f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( atan2f( -1.0, -0.0 ), -f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( atan2f( -0.5, -0.0 ), -f32( PI/2.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function evaluates the `atan2f` function (when x and y are positive)', function test( t ) { + var expected; + var actual; + var delta; + var tol; + var x; + var y; + var i; + + y = positivePositive.y; + x = positivePositive.x; + expected = positivePositive.expected; + for ( i = 0; i < x.length; i++ ) { + actual = atan2f( y[i], x[i] ); + expected[ i ] = f32( expected[ i ] ); + delta = absf( actual - expected[i] ); + tol = 1.3 * EPS * absf( expected[i] ); + t.strictEqual( delta <= tol, true, 'within tolerance. y: '+y[i]+'. x: '+x[i]+'. Actual: '+actual+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); + } + t.end(); +}); + +tape( 'the function evaluates the `atan2f` function (when x is negative and y is positive)', function test( t ) { + var expected; + var actual; + var delta; + var tol; + var x; + var y; + var i; + + y = negativePositive.y; + x = negativePositive.x; + expected = negativePositive.expected; + for ( i = 0; i < x.length; i++ ) { + actual = atan2f( y[i], x[i] ); + expected[ i ] = f32( expected[ i ] ); + delta = absf( actual - expected[i] ); + tol = EPS * absf( expected[i] ); + t.strictEqual( delta <= tol, true, 'within tolerance. y: '+y[i]+'. x: '+x[i]+'. Actual: '+actual+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); + } + t.end(); +}); + +tape( 'the function evaluates the `atan2f` function (when x and y are negative)', function test( t ) { + var expected; + var actual; + var delta; + var tol; + var x; + var y; + var i; + + y = negativeNegative.y; + x = negativeNegative.x; + expected = negativeNegative.expected; + for ( i = 0; i < x.length; i++ ) { + actual = atan2f( y[i], x[i] ); + expected[ i ] = f32( expected[ i ] ); + delta = absf( actual - expected[i] ); + tol = EPS * absf( expected[i] ); + t.strictEqual( delta <= tol, true, 'within tolerance. y: '+y[i]+'. x: '+x[i]+'. Actual: '+actual+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); + } + t.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/atan2f/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/atan2f/test/test.native.js new file mode 100755 index 000000000000..794cfb43cfde --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/atan2f/test/test.native.js @@ -0,0 +1,261 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 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 resolve = require( 'path' ).resolve; +var tape = require( 'tape' ); +var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var isNegativeZerof = require( '@stdlib/math/base/assert/is-negative-zerof' ); +var isPositiveZerof = require( '@stdlib/math/base/assert/is-positive-zerof' ); +var absf = require( '@stdlib/math/base/special/absf' ); +var f32 = require( '@stdlib/number/float64/base/to-float32' ); +var EPS = require( '@stdlib/constants/float32/eps' ); +var PINF = require( '@stdlib/constants/float32/pinf' ); +var NINF = require( '@stdlib/constants/float32/ninf' ); +var PI = require( '@stdlib/constants/float32/pi' ); +var tryRequire = require( '@stdlib/utils/try-require' ); + + +// FIXTURES // + +var positivePositive = require( './fixtures/julia/positive_positive.json' ); +var negativePositive = require( './fixtures/julia/negative_positive.json' ); +var negativeNegative = require( './fixtures/julia/negative_negative.json' ); + + +// VARIABLES // + +var atan2f = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( atan2f instanceof Error ) +}; + + +// TESTS // + +tape( 'main export is a function', opts, function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof atan2f, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function has two parameters: a numerator and a denominator value', opts, function test( t ) { + t.strictEqual( atan2f.length, 2.0, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `NaN` if provided `NaN` as either of the arguments', opts, function test( t ) { + t.strictEqual( isnanf( atan2f( 2.0, NaN ) ), true, 'returns expected value' ); + t.strictEqual( isnanf( atan2f( NaN, 3.0 ) ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `+0` if provided `y = +0.0` and `x >= 0`', opts, function test( t ) { + t.strictEqual( isPositiveZerof( atan2f( +0.0, 0.0 ) ), true, 'returns expected value' ); + t.strictEqual( isPositiveZerof( atan2f( +0.0, 2.0 ) ), true, 'returns expected value' ); + t.strictEqual( isPositiveZerof( atan2f( +0.0, 4.0 ) ), true, 'returns expected value' ); + t.strictEqual( isPositiveZerof( atan2f( +0.0, 5.0 ) ), true, 'returns expected value' ); + t.strictEqual( isPositiveZerof( atan2f( +0.0, 10.0 ) ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-0` if provided `y = -0.0` and `x >= 0`', opts, function test( t ) { + t.strictEqual( isNegativeZerof( atan2f( -0.0, 0.0 ) ), true, 'returns expected value' ); + t.strictEqual( isNegativeZerof( atan2f( -0.0, 2.0 ) ), true, 'returns expected value' ); + t.strictEqual( isNegativeZerof( atan2f( -0.0, 4.0 ) ), true, 'returns expected value' ); + t.strictEqual( isNegativeZerof( atan2f( -0.0, 5.0 ) ), true, 'returns expected value' ); + t.strictEqual( isNegativeZerof( atan2f( -0.0, 10.0 ) ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `PI` if provided `y = +0.0` and `x <= -0.0`', opts, function test( t ) { + t.strictEqual( atan2f( +0.0, -0.0 ), +PI, 'returns expected value' ); + t.strictEqual( atan2f( +0.0, -2.0 ), +PI, 'returns expected value' ); + t.strictEqual( atan2f( +0.0, -4.0 ), +PI, 'returns expected value' ); + t.strictEqual( atan2f( +0.0, -5.0 ), +PI, 'returns expected value' ); + t.strictEqual( atan2f( +0.0, -10.0 ), +PI, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-PI` if provided `y = -0.0` and `x <= -0.0`', opts, function test( t ) { + t.strictEqual( atan2f( -0.0, -0.0 ), -PI, 'returns expected value' ); + t.strictEqual( atan2f( -0.0, -2.0 ), -PI, 'returns expected value' ); + t.strictEqual( atan2f( -0.0, -4.0 ), -PI, 'returns expected value' ); + t.strictEqual( atan2f( -0.0, -5.0 ), -PI, 'returns expected value' ); + t.strictEqual( atan2f( -0.0, -10.0 ), -PI, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `+PI/4` if provided `x = y = +infinity`', opts, function test( t ) { + t.strictEqual( atan2f( PINF, PINF ), f32( +PI/4.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-PI/4` if provided `x = -y = +infinity`', opts, function test( t ) { + t.strictEqual( atan2f( NINF, PINF ), f32( -PI/4.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `*3*PI/4` if provided `-x = y = +infinity`', opts, function test( t ) { + t.strictEqual( atan2f( PINF, NINF ), f32( +3.0*PI/4.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-3*PI/4` if provided `x = y = -infinity`', opts, function test( t ) { + t.strictEqual( atan2f( NINF, NINF ), f32( -3.0*PI/4.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `0.0` when `y > 0` and `x = +infinity`', opts, function test( t ) { + t.strictEqual( isPositiveZerof( atan2f( 1.0, PINF ) ), true, 'returns expected value' ); + t.strictEqual( isPositiveZerof( atan2f( 2.0, PINF ) ), true, 'returns expected value' ); + t.strictEqual( isPositiveZerof( atan2f( 3.0, PINF ) ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-0.0` when `y < 0` and `x = +infinity`', opts, function test( t ) { + t.strictEqual( isNegativeZerof( atan2f( -1.0, PINF ) ), true, 'returns expected value' ); + t.strictEqual( isNegativeZerof( atan2f( -2.0, PINF ) ), true, 'returns expected value' ); + t.strictEqual( isNegativeZerof( atan2f( -3.0, PINF ) ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `+PI` when `y > 0` and `x = -infinity`', opts, function test( t ) { + t.strictEqual( atan2f( 1.0, NINF ), PI, 'returns expected value' ); + t.strictEqual( atan2f( 2.0, NINF ), PI, 'returns expected value' ); + t.strictEqual( atan2f( 3.0, NINF ), PI, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-PI` when `y < 0` and `x = -infinity`', opts, function test( t ) { + t.strictEqual( atan2f( -1.0, NINF ), -PI, 'returns expected value' ); + t.strictEqual( atan2f( -2.0, NINF ), -PI, 'returns expected value' ); + t.strictEqual( atan2f( -3.0, NINF ), -PI, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `+PI/2` when `y = +infinity`', opts, function test( t ) { + t.strictEqual( atan2f( PINF, -1.0 ), f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( atan2f( PINF, 0.0 ), f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( atan2f( PINF, 2.0 ), f32( PI/2.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-PI/2` when `y = -infinity`', opts, function test( t ) { + t.strictEqual( atan2f( NINF, -1.0 ), -f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( atan2f( NINF, 0.0 ), -f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( atan2f( NINF, 2.0 ), -f32( PI/2.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `PI/2` if provided a positive `y` and `x=0`', opts, function test( t ) { + t.strictEqual( atan2f( 2.0, 0.0 ), f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( atan2f( 1.0, 0.0 ), f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( atan2f( 0.5, 0.0 ), f32( PI/2.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `PI/2` if provided a positive `y` and `x=-0`', opts, function test( t ) { + t.strictEqual( atan2f( 2.0, -0.0 ), f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( atan2f( 1.0, -0.0 ), f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( atan2f( 0.5, -0.0 ), f32( PI/2.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-PI/2` if provided a negative `y` and `x=0`', opts, function test( t ) { + t.strictEqual( atan2f( -2.0, 0.0 ), -f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( atan2f( -1.0, 0.0 ), -f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( atan2f( -0.5, 0.0 ), -f32( PI/2.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-PI/2` if provided a negative `y` and `x=-0`', opts, function test( t ) { + t.strictEqual( atan2f( -2.0, -0.0 ), -f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( atan2f( -1.0, -0.0 ), -f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( atan2f( -0.5, -0.0 ), -f32( PI/2.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function evaluates the `atan2f` function (when x and y are positive)', opts, function test( t ) { + var expected; + var actual; + var delta; + var tol; + var x; + var y; + var i; + + y = positivePositive.y; + x = positivePositive.x; + expected = positivePositive.expected; + for ( i = 0; i < x.length; i++ ) { + actual = atan2f( y[i], x[i] ); + expected[ i ] = f32( expected[ i ] ); + delta = absf( actual - expected[i] ); + tol = 1.3 * EPS * absf( expected[i] ); + t.strictEqual( delta <= tol, true, 'within tolerance. y: '+y[i]+'. x: '+x[i]+'. Actual: '+actual+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); + } + t.end(); +}); + +tape( 'the function evaluates the `atan2f` function (when x is negative and y is positive)', opts, function test( t ) { + var expected; + var actual; + var delta; + var tol; + var x; + var y; + var i; + + y = negativePositive.y; + x = negativePositive.x; + expected = negativePositive.expected; + for ( i = 0; i < x.length; i++ ) { + actual = atan2f( y[i], x[i] ); + expected[ i ] = f32( expected[ i ] ); + delta = absf( actual - expected[i] ); + tol = EPS * absf( expected[i] ); + t.strictEqual( delta <= tol, true, 'within tolerance. y: '+y[i]+'. x: '+x[i]+'. Actual: '+actual+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); + } + t.end(); +}); + +tape( 'the function evaluates the `atan2f` function (when x and y are negative)', opts, function test( t ) { + var expected; + var actual; + var delta; + var tol; + var x; + var y; + var i; + + y = negativeNegative.y; + x = negativeNegative.x; + expected = negativeNegative.expected; + for ( i = 0; i < x.length; i++ ) { + actual = atan2f( y[i], x[i] ); + expected[ i ] = f32( expected[ i ] ); + delta = absf( actual - expected[i] ); + tol = EPS * absf( expected[i] ); + t.strictEqual( delta <= tol, true, 'within tolerance. y: '+y[i]+'. x: '+x[i]+'. Actual: '+actual+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); + } + t.end(); +});