From 7293c7b7ce655c060aaf61adb76474f40cb9a465 Mon Sep 17 00:00:00 2001 From: Karan Anand Date: Sat, 24 May 2025 00:23:33 -0700 Subject: [PATCH 1/3] feat: add `math/base/special/cphasef` --- .../math/base/special/cphasef/README.md | 202 +++++++++++++++ .../special/cphasef/benchmark/benchmark.js | 56 +++++ .../cphasef/benchmark/benchmark.native.js | 65 +++++ .../base/special/cphasef/benchmark/c/Makefile | 126 ++++++++++ .../special/cphasef/benchmark/c/benchmark.c | 138 ++++++++++ .../cphasef/benchmark/c/native/Makefile | 146 +++++++++++ .../cphasef/benchmark/c/native/benchmark.c | 143 +++++++++++ .../special/cphasef/benchmark/julia/REQUIRE | 2 + .../cphasef/benchmark/julia/benchmark.jl | 144 +++++++++++ .../math/base/special/cphasef/binding.gyp | 170 +++++++++++++ .../math/base/special/cphasef/docs/repl.txt | 27 ++ .../special/cphasef/docs/types/index.d.ts | 46 ++++ .../base/special/cphasef/docs/types/test.ts | 45 ++++ .../base/special/cphasef/examples/c/Makefile | 146 +++++++++++ .../base/special/cphasef/examples/c/example.c | 43 ++++ .../base/special/cphasef/examples/index.js | 31 +++ .../math/base/special/cphasef/include.gypi | 53 ++++ .../stdlib/math/base/special/cphasef.h | 40 +++ .../math/base/special/cphasef/lib/index.js | 41 +++ .../math/base/special/cphasef/lib/main.js | 49 ++++ .../math/base/special/cphasef/lib/native.js | 48 ++++ .../math/base/special/cphasef/manifest.json | 78 ++++++ .../math/base/special/cphasef/package.json | 69 +++++ .../math/base/special/cphasef/src/Makefile | 70 ++++++ .../math/base/special/cphasef/src/addon.c | 22 ++ .../math/base/special/cphasef/src/main.c | 45 ++++ .../cphasef/test/fixtures/julia/REQUIRE | 2 + .../fixtures/julia/negative_negative.json | 1 + .../fixtures/julia/negative_positive.json | 1 + .../fixtures/julia/positive_positive.json | 1 + .../cphasef/test/fixtures/julia/runner.jl | 82 ++++++ .../math/base/special/cphasef/test/test.js | 226 +++++++++++++++++ .../base/special/cphasef/test/test.native.js | 235 ++++++++++++++++++ 33 files changed, 2593 insertions(+) create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/README.md create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/benchmark.js create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/benchmark.native.js create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/c/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/c/benchmark.c create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/c/native/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/c/native/benchmark.c create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/julia/REQUIRE create mode 100755 lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/julia/benchmark.jl create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/binding.gyp create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/docs/repl.txt create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/docs/types/index.d.ts create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/docs/types/test.ts create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/examples/c/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/examples/c/example.c create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/examples/index.js create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/include.gypi create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/include/stdlib/math/base/special/cphasef.h create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/lib/index.js create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/lib/main.js create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/lib/native.js create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/manifest.json create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/package.json create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/src/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/src/addon.c create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/src/main.c create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/test/fixtures/julia/REQUIRE create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/test/fixtures/julia/negative_negative.json create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/test/fixtures/julia/negative_positive.json create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/test/fixtures/julia/positive_positive.json create mode 100755 lib/node_modules/@stdlib/math/base/special/cphasef/test/fixtures/julia/runner.jl create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/test/test.js create mode 100644 lib/node_modules/@stdlib/math/base/special/cphasef/test/test.native.js diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/README.md b/lib/node_modules/@stdlib/math/base/special/cphasef/README.md new file mode 100644 index 000000000000..3f3ef844d1c8 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/README.md @@ -0,0 +1,202 @@ + + +# cphasef + +> Compute the [argument][complex-number-argument] of a single-precision complex floating-point number in radians. + +
+ +The [argument][complex-number-argument] of a complex number, also known as the **phase**, is the angle of the radius extending from the origin to the complex number plotted in the complex plane and the positive real axis. + +
+ + + +
+ +## Usage + +```javascript +var cphasef = require( '@stdlib/math/base/special/cphasef' ); +``` + +#### cphasef( z ) + +Computes the [argument][complex-number-argument] of a single-precision complex floating-point number. + +```javascript +var Complex64 = require( '@stdlib/complex/float32/ctor' ); + +var phi = cphasef( new Complex64( 5.0, 3.0 ) ); +// returns ~0.5404 +``` + +
+ + + +
+ +## Examples + + + +```javascript +var Complex64 = require( '@stdlib/complex/float32/ctor' ); +var uniform = require( '@stdlib/random/base/uniform' ); +var cphasef = require( '@stdlib/math/base/special/cphasef' ); + +var z; +var i; + +for ( i = 0; i < 100; i++ ) { + z = new Complex64( uniform( -500.0, 500.0 ), uniform( -500.0, 500.0 ) ); + console.log( 'arg(%s) = %d', z.toString(), cphasef( z ) ); +} +``` + +
+ + + + + +* * * + +
+ +## C APIs + + + +
+ +
+ + + + + +
+ +### Usage + +```c +#include "stdlib/math/base/special/cphasef.h" +``` + +#### stdlib_base_cphasef( z ) + +Computes the [argument][complex-number-argument] of a single-precision complex floating-point number. + +```c +#include "stdlib/complex/float32/ctor.h" +#include "stdlib/complex/float32/real.h" +#include "stdlib/complex/float32/imag.h" + +stdlib_complex64_t z = stdlib_complex64( 5.0f, 3.0f ); +float out = stdlib_base_cphasef( z ); +// returns ~0.5404f +``` + +The function accepts the following arguments: + +- **z**: `[in] stdlib_complex64_t` input value. + +```c +float stdlib_base_cphasef( const stdlib_complex64_t z ); +``` + +
+ + + + + +
+ +
+ + + + + +
+ +### Examples + +```c +#include "stdlib/math/base/special/cphase.h" +#include "stdlib/complex/float32/ctor.h" +#include "stdlib/complex/float32/reim.h" +#include + +int main( void ) { + const stdlib_complex64_t x[] = { + stdlib_complex64( 3.14f, 1.0f ), + stdlib_complex64( -3.14f, -1.0f ), + stdlib_complex64( 0.0f, 0.0f ), + stdlib_complex64( 0.0f/0.0f, 0.0f/0.0f ) + }; + + stdlib_complex64_t v; + float re; + float im; + float y; + int i; + for ( i = 0; i < 4; i++ ) { + v = x[ i ]; + y = stdlib_base_cphasef( v ); + stdlib_complex64_reim( v, &re, &im ); + printf( "fcphasef(%f + %lfi) = %f\n", re, im, y ); + } +} +``` + +
+ + + +
+ + + + + + + + + + + + + + diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/benchmark.js b/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/benchmark.js new file mode 100644 index 000000000000..a7cbd5cede40 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/benchmark.js @@ -0,0 +1,56 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2018 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/base/uniform' ); +var Complex64 = require( '@stdlib/complex/float64/ctor' ); +var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var pkg = require( './../package.json' ).name; +var cphasef = require( './../lib' ); + + +// MAIN // + +bench( pkg, function benchmark( b ) { + var values; + var y; + var i; + + values = [ + new Complex64( uniform( -500.0, 500.0 ), uniform( -500.0, 500.0 ) ), + new Complex64( uniform( -500.0, 500.0 ), uniform( -500.0, 500.0 ) ) + ]; + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = cphasef( values[ i%values.length ] ); + if ( isnanf( y ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnanf( y ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/benchmark.native.js new file mode 100644 index 000000000000..61c518cbc4a2 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/benchmark.native.js @@ -0,0 +1,65 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2023 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/base/uniform' ); +var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var Complex64 = require( '@stdlib/complex/float32/ctor' ); +var tryRequire = require( '@stdlib/utils/try-require' ); +var pkg = require( './../package.json' ).name; + + +// VARIABLES // + +var cphasef = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( cphasef instanceof Error ) +}; + + +// MAIN // + +bench( pkg+'::native', opts, function benchmark( b ) { + var values; + var y; + var i; + + values = [ + new Complex64( uniform( -500.0, 500.0 ), uniform( -500.0, 500.0 ) ), + new Complex64( uniform( -500.0, 500.0 ), uniform( -500.0, 500.0 ) ) + ]; + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = cphasef( values[ i%values.length ] ); + if ( isnanf( y ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnanf( y ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/c/Makefile b/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/c/Makefile new file mode 100644 index 000000000000..635d877081d5 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/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/cphasef/benchmark/c/benchmark.c b/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/c/benchmark.c new file mode 100644 index 000000000000..4a89cb6c45f9 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/c/benchmark.c @@ -0,0 +1,138 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2018 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 "phasef" +#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 ) { + float re[ 100 ]; + float im[ 100 ]; + double elapsed; + double t; + float y; + int i; + + for ( i = 0; i < 100; i++ ) { + re[ i ] = ( 1000.0f*rand_float() ) - 500.0f; + im[ i ] = ( 1000.0f*rand_float() ) - 500.0f; + } + + t = tic(); + for ( i = 0; i < ITERATIONS; i++ ) { + float complex z = re[ i%100 ] + im[ i%100 ]*I; + y = cargf( z ); + if ( y != y ) { + printf( "should not return NaN\n" ); + break; + } + } + elapsed = tic() - t; + if ( y != y ) { + 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/cphasef/benchmark/c/native/Makefile b/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/c/native/Makefile new file mode 100644 index 000000000000..5d7e79f50788 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/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/cphasef/benchmark/c/native/benchmark.c b/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/c/native/benchmark.c new file mode 100644 index 000000000000..b492126f72a2 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/c/native/benchmark.c @@ -0,0 +1,143 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2023 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/cphasef.h" +#include "stdlib/complex/float32/ctor.h" +#include "stdlib/complex/float32/reim.h" +#include +#include +#include +#include +#include + +#define NAME "cphasef" +#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 ) { + float re[ 100 ]; + float im[ 100 ]; + double elapsed; + double t; + float y; + int i; + + stdlib_complex64_t z; + + for ( i = 0; i < 100; i++ ) { + re[ i ] = ( 1000.0f*rand_float() ) - 500.0f; + im[ i ] = ( 1000.0f*rand_float() ) - 500.0f; + } + + t = tic(); + for ( i = 0; i < ITERATIONS; i++ ) { + z = stdlib_complex64( re[ i%100 ], im[ i%100 ] ); + y = stdlib_base_cphasef( z ); + if ( y != y ) { + printf( "should not return NaN\n" ); + break; + } + } + elapsed = tic() - t; + if ( y != y ) { + 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/cphasef/benchmark/julia/REQUIRE b/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/julia/REQUIRE new file mode 100644 index 000000000000..98645e192e41 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/julia/REQUIRE @@ -0,0 +1,2 @@ +julia 1.5 +BenchmarkTools 0.5.0 diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/julia/benchmark.jl b/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/julia/benchmark.jl new file mode 100755 index 000000000000..9d4fef417bd5 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/julia/benchmark.jl @@ -0,0 +1,144 @@ +#!/usr/bin/env julia +# +# @license Apache-2.0 +# +# Copyright (c) 2018 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 BenchmarkTools +using Printf + +# Benchmark variables: +name = "phasef"; +repeats = 3; + +""" + print_version() + +Prints the TAP version. + +# Examples + +``` julia +julia> print_version() +``` +""" +function print_version() + @printf( "TAP version 13\n" ); +end + +""" + print_summary( total, passing ) + +Print the benchmark summary. + +# Arguments + +* `total`: total number of tests +* `passing`: number of passing tests + +# Examples + +``` julia +julia> print_summary( 3, 3 ) +``` +""" +function print_summary( total, 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" ); +end + +""" + print_results( iterations, elapsed ) + +Print benchmark results. + +# Arguments + +* `iterations`: number of iterations +* `elapsed`: elapsed time (in seconds) + +# Examples + +``` julia +julia> print_results( 1000000, 0.131009101868 ) +``` +""" +function print_results( iterations, elapsed ) + rate = iterations / elapsed + + @printf( " ---\n" ); + @printf( " iterations: %d\n", iterations ); + @printf( " elapsed: %0.9f\n", elapsed ); + @printf( " rate: %0.9f\n", rate ); + @printf( " ...\n" ); +end + +""" + benchmark() + +Run a benchmark. + +# Notes + +* Benchmark results are returned as a two-element array: [ iterations, elapsed ]. +* The number of iterations is not the true number of iterations. Instead, an 'iteration' is defined as a 'sample', which is a computed estimate for a single evaluation. +* The elapsed time is in seconds. + +# Examples + +``` julia +julia> out = benchmark(); +``` +""" +function benchmark() + t = BenchmarkTools.@benchmark angle( ComplexF32( (rand()*1000.0) - 500.0, (rand()*1000.0) - 500.0 ) ) samples=1e6 + + # Compute the total "elapsed" time and convert from nanoseconds to seconds: + s = sum( t.times ) / 1.0e9; + + # Determine the number of "iterations": + iter = length( t.times ); + + # Return the results: + [ iter, s ]; +end + +""" + main() + +Run benchmarks. + +# Examples + +``` julia +julia> main(); +``` +""" +function main() + print_version(); + for i in 1:repeats + @printf( "# julia::%s\n", name ); + results = benchmark(); + print_results( results[ 1 ], results[ 2 ] ); + @printf( "ok %d benchmark finished\n", i ); + end + print_summary( repeats, repeats ); +end + +main(); diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/binding.gyp b/lib/node_modules/@stdlib/math/base/special/cphasef/binding.gyp new file mode 100644 index 000000000000..f2b466aef5c4 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/binding.gyp @@ -0,0 +1,170 @@ +# @license Apache-2.0 +# +# Copyright (c) 2023 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/cphasef/docs/repl.txt b/lib/node_modules/@stdlib/math/base/special/cphasef/docs/repl.txt new file mode 100644 index 000000000000..cfbb5068143f --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/docs/repl.txt @@ -0,0 +1,27 @@ + +{{alias}}( z ) + Computes the argument of a single-precision complex floating-point number + in radians. + + The argument of a complex number, also known as the phase, is the angle of + the radius extending from the origin to the complex number plotted in the + complex plane and the positive real axis. + + Parameters + ---------- + z: Complex64 + Complex number. + + Returns + ------- + phi: number + Argument. + + Examples + -------- + > var phi = {{alias}}( new {{alias:@stdlib/complex/float32/ctor}}( 5.0, 3.0 ) ) + ~0.5404 + + See Also + -------- + diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/docs/types/index.d.ts b/lib/node_modules/@stdlib/math/base/special/cphasef/docs/types/index.d.ts new file mode 100644 index 000000000000..eb36dffadce8 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/docs/types/index.d.ts @@ -0,0 +1,46 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2019 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +// TypeScript Version: 4.1 + +/// + +import { Complex64 } from '@stdlib/types/complex'; + +/** +* Computes the argument of a single-precision complex floating-point number in radians. +* +* ## Notes +* +* - The argument of a complex number, also known as the phase, is the angle of the radius extending from the origin to the complex number plotted in the complex plane and the positive real axis. +* +* @param z - complex number +* @returns argument +* +* @example +* var Complex64 = require( '@stdlib/complex/float32/ctor' ); +* +* var phi = cphasef( new Complex64( 5.0, 3.0 ) ); +* // returns ~0.5404 +*/ +declare function cphasef( z: Complex64 ): number; + + +// EXPORTS // + +export = cphasef; diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/docs/types/test.ts b/lib/node_modules/@stdlib/math/base/special/cphasef/docs/types/test.ts new file mode 100644 index 000000000000..bfbb3942cecb --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/docs/types/test.ts @@ -0,0 +1,45 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2019 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 Complex64 = require( '@stdlib/complex/float32/ctor' ); +import cphasef = require( './index' ); + + +// TESTS // + +// The function returns a number... +{ + cphasef( new Complex64( 5.0, 3.0 ) ); // $ExpectType number +} + +// The compiler throws an error if the function is not provided a complex number... +{ + cphasef( true ); // $ExpectError + cphasef( false ); // $ExpectError + cphasef( null ); // $ExpectError + cphasef( undefined ); // $ExpectError + cphasef( '5' ); // $ExpectError + cphasef( [] ); // $ExpectError + cphasef( {} ); // $ExpectError + cphasef( ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function is provided insufficient arguments... +{ + cphasef(); // $ExpectError +} diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/examples/c/Makefile b/lib/node_modules/@stdlib/math/base/special/cphasef/examples/c/Makefile new file mode 100644 index 000000000000..25ced822f96a --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/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/cphasef/examples/c/example.c b/lib/node_modules/@stdlib/math/base/special/cphasef/examples/c/example.c new file mode 100644 index 000000000000..e74e9b063e2e --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/examples/c/example.c @@ -0,0 +1,43 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2023 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/cphase.h" +#include "stdlib/complex/float32/ctor.h" +#include "stdlib/complex/float32/reim.h" +#include + +int main( void ) { + const stdlib_complex64_t x[] = { + stdlib_complex64( 3.14f, 1.0f ), + stdlib_complex64( -3.14f, -1.0f ), + stdlib_complex64( 0.0f, 0.0f ), + stdlib_complex64( 0.0f/0.0f, 0.0f/0.0f ) + }; + + stdlib_complex64_t v; + float re; + float im; + float y; + int i; + for ( i = 0; i < 4; i++ ) { + v = x[ i ]; + y = stdlib_base_cphasef( v ); + stdlib_complex64_reim( v, &re, &im ); + printf( "fcphasef(%f + %lfi) = %f\n", re, im, y ); + } +} diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/examples/index.js b/lib/node_modules/@stdlib/math/base/special/cphasef/examples/index.js new file mode 100644 index 000000000000..fe3432ac0161 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/examples/index.js @@ -0,0 +1,31 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2018 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 Complex64 = require( '@stdlib/complex/float32/ctor' ); +var uniform = require( '@stdlib/random/base/uniform' ); +var cphasef = require( './../lib' ); + +var z; +var i; + +for ( i = 0; i < 100; i++ ) { + z = new Complex64( uniform( -500.0, 500.0 ), uniform( -500.0, 500.0 ) ); + console.log( 'arg(%s) = %d', z.toString(), cphasef( z ) ); +} diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/include.gypi b/lib/node_modules/@stdlib/math/base/special/cphasef/include.gypi new file mode 100644 index 000000000000..78db9faf8c74 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/include.gypi @@ -0,0 +1,53 @@ +# @license Apache-2.0 +# +# Copyright (c) 2023 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': [ + '=0.10.0", + "npm": ">2.7.0" + }, + "os": [ + "aix", + "darwin", + "freebsd", + "linux", + "macos", + "openbsd", + "sunos", + "win32", + "windows" + ], + "keywords": [ + "stdlib", + "stdmath", + "mathematics", + "math", + "cphase", + "phase", + "argument", + "arg", + "carg", + "angle", + "complex", + "cmplx", + "number" + ] +} diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/src/Makefile b/lib/node_modules/@stdlib/math/base/special/cphasef/src/Makefile new file mode 100644 index 000000000000..904c7dc4bd7a --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/src/Makefile @@ -0,0 +1,70 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2023 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/cphasef/src/addon.c b/lib/node_modules/@stdlib/math/base/special/cphasef/src/addon.c new file mode 100644 index 000000000000..5411201cdadb --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/src/addon.c @@ -0,0 +1,22 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2023 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/cphasef.h" +#include "stdlib/math/base/napi/unary.h" + +STDLIB_MATH_BASE_NAPI_MODULE_C_F( stdlib_base_cphasef ) diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/src/main.c b/lib/node_modules/@stdlib/math/base/special/cphasef/src/main.c new file mode 100644 index 000000000000..c3252fd825ef --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/src/main.c @@ -0,0 +1,45 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2023 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/cphasef.h" +#include "stdlib/complex/float32/ctor.h" +#include "stdlib/complex/float32/reim.h" +#include "stdlib/math/base/special/atan2f.h" + +/** +* Computes the argument of a complex single-precision complex floating-point number in radians. +* +* @param z input value +* @return argument +* +* @example +* #include "stdlib/complex/float32/ctor.h" +* #include "stdlib/complex/float32/real.h" +* #include "stdlib/complex/float32/imag.h" +* +* stdlib_complex64_t z = stdlib_complex64( 5.0f, 3.0f ); +* float out = stdlib_base_cphasef( z ); +* // returns ~0.5404f +*/ +float stdlib_base_cphasef( const stdlib_complex64_t z ) { + float re; + float im; + + stdlib_complex64_reim( z, &re, &im ); + return stdlib_base_atan2f( im, re ); +} diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/test/fixtures/julia/REQUIRE b/lib/node_modules/@stdlib/math/base/special/cphasef/test/fixtures/julia/REQUIRE new file mode 100644 index 000000000000..308c3be89c85 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/test/fixtures/julia/REQUIRE @@ -0,0 +1,2 @@ +julia 1.5 +JSON 0.21 diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/test/fixtures/julia/negative_negative.json b/lib/node_modules/@stdlib/math/base/special/cphasef/test/fixtures/julia/negative_negative.json new file mode 100644 index 000000000000..8fadae5b6c0c --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/test/fixtures/julia/negative_negative.json @@ -0,0 +1 @@ +{"expected":[-2.856667,-2.0057688,-2.5316658,-2.2035928,-2.2454116,-2.273586,-1.7695472,-2.0854049,-1.7695099,-1.8470066,-1.7919244,-2.2507124,-2.4176393,-1.6711036,-2.8244896,-1.5888654,-2.7802355,-1.8128834,-1.8852683,-2.0900824,-2.7188973,-3.0249534,-2.2549844,-1.9152704,-2.0098906,-2.5671172,-2.03123,-1.9465022,-2.4645514,-2.755914,-2.598653,-2.2091842,-1.6506096,-1.7730138,-2.7988524,-2.1743374,-3.0267847,-2.5390854,-2.223934,-2.2192667,-2.1227262,-2.219851,-2.262125,-2.185234,-3.009338,-2.1024501,-1.6429793,-1.9270045,-2.3570838,-1.74265,-1.8069617,-2.7941165,-1.7064441,-1.8569446,-1.9952782,-2.1617563,-2.8782816,-1.814132,-1.9241604,-2.3561428,-2.2561224,-2.221774,-2.355718,-2.2148373,-3.0447316,-1.6228267,-1.9681602,-1.647311,-2.0988607,-2.3486402,-2.5082736,-2.4833984,-2.8733523,-2.13277,-2.3358593,-1.817111,-2.2503915,-2.3586826,-3.1126862,-2.109797,-3.1225212,-1.7933129,-1.9582762,-2.215457,-1.6211798,-1.805041,-2.3691993,-2.1006722,-2.3516052,-2.5708942,-2.6401865,-1.6926609,-2.4112008,-2.1778529,-1.7784141,-2.6056201,-2.753255,-2.3942266,-2.2463973,-1.8435041,-2.9370399,-2.076669,-3.1051095,-2.5722783,-1.9331367,-1.8089992,-1.6576775,-2.8705738,-2.1249995,-2.5873678,-2.1470416,-2.059239,-2.5103865,-1.7231504,-2.8264685,-2.9845037,-2.111332,-2.3599563,-1.7640617,-2.3977559,-2.4347003,-1.5796034,-2.934165,-2.513739,-2.8422914,-1.6743071,-3.012076,-2.792124,-1.5963497,-1.8992299,-2.1234674,-2.7088313,-2.7884128,-2.1047359,-2.42157,-2.2826617,-2.5274925,-2.329238,-2.9910972,-2.9633274,-2.7414997,-2.629491,-1.9090732,-2.154542,-1.9533678,-2.9749422,-2.9527857,-2.726719,-2.5196152,-2.998478,-1.6762985,-2.3830922,-1.7520969,-2.3741586,-2.8885674,-2.7042305,-1.8282828,-2.3619797,-2.375858,-2.6773298,-1.6321077,-2.2794847,-2.2937555,-2.5552602,-2.370174,-2.9936278,-2.4257872,-2.5962315,-2.4951658,-2.5579994,-1.7944807,-2.1098485,-2.3160703,-2.8521905,-2.1981754,-1.5947467,-2.3679028,-2.467967,-1.6336101,-2.094317,-2.3646686,-2.5369542,-1.7980589,-3.0353267,-1.8381886,-2.1134968,-2.9844503,-2.424982,-1.9689133,-2.6801076,-2.4148536,-2.3713012,-2.0536342,-2.9697576,-1.8119769,-3.10476,-2.9227207,-1.6398782,-2.3724737,-1.9760154,-2.1506438,-2.8161328,-2.207398,-3.033657,-2.469593,-2.3842106,-2.21703,-2.1414611,-2.971947,-2.4174113,-2.1543312,-1.957336,-2.0762267,-1.739392,-2.4845033,-1.7528282,-2.6284852,-2.3350303,-2.3447907,-2.9770126,-2.1712153,-2.3074923,-2.5026457,-2.0291314,-2.3642485,-2.7527974,-2.3597322,-1.7438307,-2.7057207,-2.0647712,-2.6956356,-2.901669,-2.623522,-2.4723501,-2.442772,-2.0327191,-2.6647937,-2.2431111,-2.5104997,-1.9084976,-2.3006015,-2.1498215,-2.120679,-2.2865782,-2.4299212,-2.2418995,-1.9928902,-2.0867028,-2.881247,-1.9274178,-2.523066,-2.868584,-2.6758292,-3.02014,-2.6530704,-2.6610847,-2.444048,-2.2328162,-1.7409182,-2.683424,-2.2576766,-2.6661782,-2.461734,-1.69623,-2.2340639,-2.040811,-2.0725203,-2.0283642,-2.8494067,-1.8051369,-1.7566658,-1.8773658,-1.7743287,-2.8600712,-2.8933268,-2.003863,-1.6070538,-1.9302578,-2.3315966,-3.0618467,-2.0184453,-2.1132536,-1.9581621,-1.9682738,-2.7261834,-1.6800408,-2.5830748,-2.5172462,-2.7795134,-1.7231349,-2.4260964,-3.0981476,-3.1306472,-1.9890026,-1.6768696,-2.5079672,-1.6610047,-2.165067,-1.7405868,-2.293748,-2.48754,-2.5287147,-2.0742483,-2.1877625,-1.6587657,-2.4607854,-1.9394416,-2.151667,-3.0654824,-1.7645108,-2.2401443,-2.415307,-2.6944928,-2.9176714,-2.83077,-2.1331878,-2.1479247,-2.5360794,-2.648121,-2.5606148,-2.419185,-2.9441175,-1.6855109,-2.4287868,-1.9010361,-2.6815836,-2.628684,-1.9550029,-2.6054552,-2.131196,-2.03556,-2.1374788,-2.5203342,-1.945814,-2.928126,-1.5825295,-1.5891907,-2.9157279,-1.8526407,-1.8192508,-2.9075565,-2.5681996,-1.9281266,-2.7632475,-2.0509887,-1.9191297,-1.6899861,-2.558852,-1.748777,-2.9945052,-1.5920193,-2.259964,-2.0531678,-2.749573,-2.7767231,-2.002492,-2.823649,-2.8667502,-2.0807376,-1.6648206,-2.1252859,-2.114583,-3.0320442,-2.2200544,-1.7880415,-2.912905,-2.7100878,-2.1517792,-2.094102,-2.4954627,-2.1764903,-2.2594867,-2.322868,-1.6307169,-2.4076622,-1.8839375,-1.852712,-2.9038281,-1.6962994,-2.4921284,-2.4142084,-2.9425292,-1.829061,-2.623024,-1.8814431,-2.9223819,-2.7208428,-2.7932444,-2.99129,-1.8059016,-2.6980314,-2.6517744,-2.8866944,-2.6171029,-2.759092,-2.4162598,-2.7752097,-2.8872144,-3.096276,-2.0023713,-2.8456347,-2.072475,-3.0352862,-2.021336,-2.7028277,-2.6487951,-3.0559845,-3.0704527,-2.559995,-1.9736636,-2.6379776,-1.6475167,-2.1844535,-2.6427228,-3.0010028,-2.5844233,-2.281807,-2.7222023,-2.2538104,-2.2591653,-2.389368,-2.0157747,-2.2962632,-1.8316476,-3.0727422,-2.4165258,-2.6450663,-1.687326,-1.6501908,-2.969312,-2.8395114,-2.1437259,-1.9467981,-2.5646892,-2.1425765,-2.5914636,-2.1105607,-1.9911071,-2.1821,-2.3232427,-2.5781832,-1.8897972,-1.6750382,-1.6166646,-2.4545255,-2.0515285,-2.821454,-1.7732964,-2.5541472,-2.5195057,-2.5265665,-1.8634255,-2.3385136,-1.7265378,-1.8710908,-2.2322044,-2.784257,-2.5239408,-2.5625477,-2.0198398,-1.8376611,-1.8134284,-2.849473,-2.3036907,-2.5539484,-2.7756257,-1.621799,-2.0839667,-2.7179742,-2.4999506,-2.68222,-2.7542865,-2.7849658,-2.1095343,-2.363253,-3.1360135,-1.8524333,-2.4667342,-1.5853845,-2.8570654,-1.7014195,-2.3089488,-1.7287225,-2.274547,-2.331589,-2.1101856,-1.7127848,-3.056394,-3.0932524,-2.104617,-1.7828827,-3.0575328,-1.881533,-3.1265714,-1.9294596,-2.7466004,-2.2436333,-3.0373523,-1.8737091,-2.6469214,-1.7103202,-2.3452392,-3.0288014,-2.61071,-2.9706903,-2.3624468,-2.436104,-2.5439968,-1.9296703,-2.4600632,-1.9496886,-2.4123752,-2.6159887,-2.2803955,-2.0290709,-1.9394706,-2.46108,-2.5459797,-2.2767944,-2.5789995,-1.654597,-3.129561,-1.8350419,-2.1951013,-1.9025477,-1.7418562,-2.258134,-2.4945416,-2.438497,-2.381896,-2.1276965,-2.6453495,-1.6299484,-1.8096827,-2.9937031,-2.1667943,-2.0769835,-2.9705257,-2.0963001,-2.2783546,-2.4455824,-2.1471028,-2.3985913,-1.5884088,-1.7331961,-2.5517569,-2.779098,-1.8127786,-1.9282595,-1.9191388,-2.9273822,-2.0037804,-1.8616968,-1.7422214,-3.0854506,-2.1494603,-2.6338832,-2.2586045,-1.8491803,-2.19761,-1.5935477,-2.410934,-2.4062176,-2.2953012,-1.6895282,-2.197111,-2.9274871,-2.4667757,-2.4777403,-2.3126714,-2.6637821,-2.852157,-1.6672896,-2.3280153,-2.639453,-1.8892572,-2.0920734,-2.4380803,-2.6149812,-2.5260415,-2.5304523,-2.631147,-2.1476736,-2.0340114,-2.47798,-2.1795394,-2.2165809,-2.060966,-2.8001723,-2.245239,-2.9114335,-2.0249777,-2.846356,-1.9099437,-2.1609986,-2.9837937,-2.7634346,-2.298648,-2.0942912,-2.8980153,-1.7089216,-2.5060742,-2.9240577,-2.0912638,-2.3424838,-2.2540781,-1.6448616,-2.1206741,-2.2086651,-2.303828,-2.3062606,-2.5200956,-2.4399939,-2.401181,-2.81528,-2.8630424,-3.0954437,-2.09144,-1.6801065,-2.1977096,-2.957785,-1.6490377,-2.1585083,-2.4228451,-2.7006373,-1.9035865,-2.8803458,-2.1185749,-1.8913634,-2.545334,-1.7089331,-2.3200018,-2.712532,-2.2022765,-2.5732603,-1.7048345,-2.0480576,-2.001237,-2.2746236,-1.9141928,-3.0748143,-1.8329087,-2.2920768,-1.903739,-2.3761234,-2.055234,-2.2513156,-2.4389176,-2.0527904,-2.5183148,-1.8827745,-2.4147573,-2.3525443,-2.032568,-2.7633538,-2.3766117,-2.3020036,-1.8187099,-2.2437367,-2.1176147,-1.7074276,-2.9156418,-1.6594634,-2.1060648,-2.228298,-1.7347847,-2.8286743,-2.9575226,-2.8485289,-2.290554,-3.1168966,-3.029825,-1.8393054,-2.5011084,-2.856883,-3.0790074,-2.4837382,-2.2354872,-2.1853347,-2.741222,-2.8097925,-1.7938014,-2.6723013,-2.5692513,-3.0026283,-2.5743525,-2.5057733,-2.2712636,-2.8422892,-2.102641,-2.2894065,-2.2073126,-2.7709756,-2.322284,-1.8469847,-2.3686662,-2.4434884,-2.9417791,-3.0285382,-2.3535767,-1.6288971,-2.8721542,-2.8032975,-1.646737,-2.259342,-2.494044,-2.3244338,-2.5629022,-2.360555,-1.9076523,-2.0352616,-2.4718282,-2.4409072,-1.9342484,-3.0852706,-3.0437546,-2.1020722,-1.9974077,-2.767628,-2.7350438,-2.423733,-1.7497678,-1.8215895,-2.1828303,-2.2210078,-2.258823,-2.3472426,-1.6105278,-1.7877508,-2.056832,-2.2577791,-2.5433073,-2.3861122,-2.6051574,-2.2467349,-2.5189695,-2.0908022,-2.5076046,-2.9688654,-1.7484277,-1.640629,-2.4122007,-1.964621,-2.2005572,-1.6187513,-2.2265978,-2.5490103,-2.3205042,-2.5442762,-1.7651376,-2.361156,-2.4889247,-2.8457181,-2.9232128,-2.8214326,-2.4645376,-2.4977188,-1.8552711,-1.9666867,-1.9466099,-2.6006258,-2.5539503,-1.8707138,-2.166291,-2.4161816,-1.7241278,-2.3199372,-2.8881633,-2.170073,-2.3704588,-2.7611046,-2.036789,-2.6783197,-2.3894124,-2.6620305,-2.2592971,-1.7962044,-2.795412,-2.9822145,-2.9361436,-1.7568434,-2.36117,-1.7752091,-2.9231715,-2.5593257,-2.9711087,-2.998561,-2.2072387,-2.005121,-2.1712072,-3.1087182,-1.6755865,-1.7633063,-2.4809651,-2.6883814,-2.9181168,-2.0249052,-2.4521255,-1.8087333,-2.4353275,-2.0254745,-1.8742262,-3.0111513,-3.0036395,-2.4018607,-2.797721,-2.402457,-2.1705956,-2.4541714,-2.4150305,-1.876008,-2.8789983,-1.990863,-2.2787352,-2.3012471,-2.3825836,-1.6092154,-1.7264518,-2.259265,-2.358705,-2.4264517,-2.4702716,-2.5543103,-2.0950935,-2.3024445,-2.8931751,-1.9635732,-1.9416101,-2.0755162,-1.5937241,-3.1273801,-2.6321492,-2.4920807,-2.42751,-2.216054,-2.4913173,-2.144331,-2.1781666,-2.4608479,-2.9923058,-3.0364711,-2.7033312,-2.7800305,-2.2514272,-1.8803649,-1.8436581,-2.1893964,-2.057808,-2.5072672,-2.3444262,-2.4032526,-2.213519,-2.3324044,-2.4798634,-2.058601,-2.5428705,-2.6865761,-2.843424,-1.7215096,-1.873091,-2.0725784,-3.0498896,-2.9491346,-2.7739792,-2.3913414,-1.8967272,-1.5973614,-1.6676384,-2.848188,-2.7138379,-1.9739281,-2.3054957,-2.436485,-2.2697291,-1.6741803,-3.0627506,-2.2968383,-2.819968,-2.5485384,-1.781119,-2.858547,-2.6501415,-2.5280445,-1.8491086,-1.6522472,-2.1549203,-2.2630043,-2.1084938,-1.6847717,-1.8821142,-3.0703957,-1.7351241,-2.337722,-2.767262,-2.225901,-1.8959869,-2.1622012,-1.7400632,-2.6296024,-2.59301,-3.076585,-2.323329,-2.0585074,-3.1374304,-2.8832064,-1.7838451,-2.3234472,-2.418922,-2.770838,-2.8621483,-2.060111,-2.1302853,-1.6851416,-1.8872694,-2.147684,-1.746497,-3.131363,-2.698807,-2.1903136,-2.2547073,-2.2692175,-1.7751942,-2.4776177,-3.1155698,-2.0134664,-2.732829,-2.038645,-1.9991655,-3.0832903,-3.1057103,-2.5154135,-2.6425674,-2.903759,-1.8674523,-1.8531479,-2.953048,-2.3461685,-2.2728662,-2.310552,-2.9884582,-1.8365772,-1.8671466,-2.373207,-2.2688699,-2.170667,-1.7733623,-2.3208177,-2.0007057,-2.4618695,-2.6299276,-3.0166466,-2.9258158,-2.1029277,-2.3346221,-2.325372,-2.173461,-1.6648482,-2.3929513,-2.0314064,-2.8257267,-2.4163022,-2.8913774,-2.9864905,-1.9856113,-2.1582499,-2.4098525,-1.8898908,-2.7417433,-2.4903827,-2.701497,-1.7811638,-2.2638483,-2.3452253,-1.6776446,-2.4867492,-1.9454453,-1.8718953,-2.1351738,-2.740555,-2.4601102,-2.3174067,-2.5808992,-2.7094927,-2.7457423,-2.5741432,-2.5390353,-2.484265,-2.5423734,-2.0531356,-2.7262197,-2.9103777,-2.7834897,-2.3624125,-1.7883832,-2.0095525,-2.3497472,-2.1017537,-2.1028333,-2.2789507,-2.782158,-2.108758],"re":[-264.6683,-207.04189,-498.85602,-282.87064,-107.31025,-348.54324,-88.89624,-178.82924,-64.44398,-72.70322,-90.95587,-303.79648,-464.52228,-49.737816,-497.07123,-8.651211,-421.1222,-102.14118,-131.61122,-214.63255,-445.95224,-308.23825,-126.1714,-144.46242,-166.4226,-288.91193,-186.85533,-190.02162,-356.77853,-262.7219,-333.5161,-355.36072,-28.187605,-62.688015,-473.75098,-188.67635,-428.5304,-338.27072,-312.86627,-333.88446,-292.21628,-267.82498,-236.64165,-345.79364,-467.05063,-250.95784,-20.33214,-181.45995,-364.12393,-20.269005,-85.449165,-451.09756,-65.8383,-113.186615,-195.4376,-94.68715,-367.4401,-71.43022,-155.27614,-424.62674,-144.32408,-230.71498,-463.61813,-375.1655,-260.26315,-14.08233,-131.15007,-14.195216,-280.15994,-487.9832,-361.81332,-456.58218,-283.83298,-282.47516,-217.02129,-119.22494,-381.87012,-403.39514,-267.99847,-240.63869,-244.06721,-68.77978,-170.76,-67.432106,-13.438014,-85.660065,-289.57562,-237.25278,-482.99762,-463.1331,-373.46573,-52.192486,-291.37857,-117.54338,-105.325714,-305.495,-242.2049,-275.39572,-290.8074,-92.68728,-79.27516,-238.64897,-442.01355,-379.05667,-102.71593,-86.63071,-35.505783,-279.1551,-259.43085,-117.9014,-300.21774,-186.6956,-309.90274,-12.828918,-98.00526,-204.3942,-139.71945,-308.449,-59.651897,-374.10886,-427.29086,-2.5125966,-403.34512,-464.8777,-477.69485,-27.537796,-443.338,-387.64548,-12.568767,-76.093094,-227.64326,-397.40482,-215.28174,-295.584,-437.6281,-307.57043,-185.03117,-347.7216,-154.62761,-349.02667,-481.70096,-241.94359,-88.0793,-312.88013,-153.55627,-471.47992,-184.92755,-380.55093,-184.24269,-332.1473,-28.499846,-357.82416,-44.37207,-472.2817,-324.55002,-479.16693,-38.175423,-392.7687,-110.21732,-347.9146,-8.303049,-405.64227,-70.38069,-442.2062,-359.7941,-325.4436,-475.21707,-498.80838,-28.651527,-370.80063,-65.692276,-145.74834,-377.76437,-254.43176,-250.50409,-1.5306287,-279.47504,-438.1689,-25.831503,-281.7329,-376.1661,-277.29782,-105.44507,-198.35132,-115.31661,-163.34169,-400.73773,-465.8319,-130.0359,-327.33844,-487.62686,-355.9101,-155.02943,-222.00963,-84.18117,-189.54921,-465.28806,-26.351767,-372.5529,-146.44691,-91.859375,-346.8918,-250.60928,-355.26974,-390.15262,-490.59183,-82.24589,-225.69083,-473.87408,-443.43866,-295.00388,-138.50249,-96.03323,-58.12312,-437.66412,-65.53665,-251.74376,-368.65164,-328.9632,-301.39917,-167.18709,-446.76624,-473.35666,-240.42175,-329.55505,-196.34067,-319.24976,-61.60376,-406.27734,-112.007065,-141.38028,-168.39424,-389.7019,-283.95508,-77.52607,-112.1709,-168.69435,-315.0397,-324.74164,-67.77261,-399.33182,-231.03253,-196.42064,-241.52536,-482.9428,-387.72876,-217.40924,-258.24582,-138.7911,-109.42376,-280.98138,-81.40007,-277.56238,-435.84836,-84.38735,-338.16187,-464.77716,-164.21657,-63.7718,-164.81944,-328.90973,-316.7853,-359.69083,-46.319046,-310.25186,-158.67145,-270.30557,-235.78247,-376.67142,-112.10123,-45.105602,-101.65607,-99.662735,-478.3501,-458.13068,-132.05501,-12.332395,-92.52968,-187.01231,-301.8914,-238.14348,-187.00186,-163.60368,-36.082355,-495.57913,-43.005505,-487.18774,-306.93393,-194.26642,-61.681274,-455.56262,-367.13974,-294.12024,-99.0419,-8.312512,-117.86697,-28.603498,-219.9839,-48.74972,-147.68724,-423.4924,-301.87622,-212.79639,-209.60458,-10.968866,-268.00494,-42.793808,-295.33615,-464.3268,-19.54471,-127.22869,-330.0905,-384.99905,-442.2632,-166.50247,-153.9827,-243.51303,-274.0944,-419.52722,-270.54047,-69.62532,-200.42815,-32.016804,-399.78214,-119.089096,-463.6768,-365.50833,-121.13449,-345.4758,-284.5331,-85.71683,-270.23975,-74.71968,-90.568596,-464.23416,-2.2631693,-2.1436665,-317.51498,-57.07291,-92.30805,-410.2199,-293.9325,-167.51617,-468.6825,-194.71385,-114.34992,-28.666735,-422.13477,-56.476456,-376.1729,-10.207792,-215.36514,-232.1989,-497.50806,-357.84244,-107.258575,-492.5835,-400.12036,-214.16864,-20.228512,-308.43845,-174.48788,-426.05783,-250.27043,-50.215443,-415.31897,-374.83365,-320.19037,-169.10855,-395.26755,-251.2261,-109.34563,-424.89127,-24.153452,-426.81146,-159.35954,-125.46742,-125.62983,-24.643616,-481.35718,-310.05606,-368.16437,-58.766487,-290.37213,-87.90989,-136.12201,-421.58148,-281.50745,-415.27658,-19.11826,-416.735,-320.22214,-222.53157,-341.3543,-211.87106,-345.58038,-499.8734,-483.75708,-84.79267,-107.138626,-406.9185,-152.6033,-335.0008,-203.98341,-400.7133,-269.45465,-373.82825,-172.64319,-154.6034,-197.41289,-203.26219,-22.869272,-206.85309,-455.2894,-422.29822,-274.77145,-403.30777,-174.21228,-337.99792,-281.51352,-307.21103,-30.08694,-83.939,-45.309,-196.91887,-327.08792,-246.73079,-51.406574,-26.7526,-226.84044,-345.26282,-266.1833,-197.25572,-233.81693,-208.57668,-155.80882,-236.55096,-132.51773,-131.65094,-433.40442,-495.38052,-110.42256,-38.905582,-13.3391905,-487.52032,-57.0834,-384.98172,-90.18478,-485.34946,-463.83905,-240.83678,-139.95041,-422.81418,-68.780754,-113.97155,-374.2689,-187.81934,-240.56203,-341.21887,-213.32324,-131.04419,-65.87013,-442.02704,-385.5985,-416.39008,-226.72227,-9.731273,-119.8415,-243.15,-198.84943,-428.58884,-249.11992,-431.4073,-296.96762,-461.03952,-482.78372,-89.29087,-447.59888,-5.1736608,-310.5798,-47.37291,-199.36324,-59.645573,-171.4494,-392.51886,-189.17809,-48.340767,-293.2993,-308.33786,-118.60261,-91.22854,-127.39524,-115.72405,-359.38544,-74.07545,-463.401,-199.57277,-258.49344,-58.69296,-193.42213,-21.342037,-305.57947,-278.61346,-279.23373,-467.96686,-263.78445,-383.66956,-103.549995,-107.035286,-461.84546,-161.98267,-494.22568,-270.4243,-307.80264,-154.17548,-124.750984,-245.30785,-472.00534,-282.95996,-196.05385,-39.493866,-128.5204,-130.54248,-304.70187,-151.96352,-50.645157,-143.25314,-22.702938,-374.43314,-193.49854,-154.53635,-341.88904,-27.055387,-96.15235,-307.9139,-302.3308,-138.93037,-472.5021,-285.38406,-405.7183,-366.43378,-316.05875,-426.92587,-7.96391,-58.455814,-493.2884,-367.10733,-94.0567,-90.149376,-95.64643,-421.3605,-176.97617,-41.447365,-30.298622,-139.31276,-214.42302,-343.84247,-81.75836,-27.7247,-185.2046,-8.198871,-476.73495,-80.025055,-376.13428,-25.87204,-140.08313,-446.9475,-357.8603,-245.67099,-310.2723,-474.37332,-489.4572,-33.88024,-266.2951,-332.97968,-64.58953,-54.056458,-299.50858,-311.4903,-458.4038,-433.0368,-426.7262,-317.67728,-155.27727,-270.1265,-83.17163,-223.3657,-251.26073,-433.54675,-377.91138,-300.96155,-204.88736,-431.034,-163.56262,-279.29272,-404.53455,-384.45267,-228.19614,-196.00182,-303.964,-54.748478,-105.8736,-417.32092,-146.23268,-415.1709,-330.1332,-16.706406,-129.831,-226.35558,-389.47253,-52.358597,-341.81827,-429.79678,-197.2068,-359.14896,-77.71463,-491.97443,-188.89137,-42.360695,-330.36423,-155.63962,-18.083033,-329.53528,-46.49413,-137.34108,-143.11856,-110.19292,-288.49524,-67.951515,-270.5601,-63.473988,-250.9605,-122.653534,-108.456345,-491.46777,-59.798107,-214.31758,-222.98604,-81.2879,-94.8718,-452.02597,-70.05396,-393.9351,-86.2594,-246.5506,-225.48918,-374.4576,-318.93958,-108.58266,-465.1174,-139.68819,-181.01074,-238.6946,-99.38745,-327.7086,-163.9654,-438.14847,-79.85801,-259.593,-289.16727,-66.85336,-255.52748,-33.369946,-13.924964,-179.56284,-44.41555,-487.8022,-402.62393,-465.28033,-208.63965,-438.66074,-478.23288,-85.423515,-487.77957,-486.84833,-262.24847,-374.69772,-194.85323,-213.29733,-468.21213,-492.1586,-97.313736,-305.8191,-234.97244,-303.6403,-143.18655,-429.51334,-396.9902,-381.01938,-171.4265,-390.69608,-319.15686,-484.01517,-417.72903,-106.50181,-486.84363,-435.0836,-65.04267,-468.63104,-321.62692,-25.574106,-399.02808,-454.73315,-37.831173,-210.24959,-39.329536,-399.61853,-408.13467,-489.92606,-112.22519,-88.898254,-370.03726,-236.82645,-158.64723,-268.23395,-321.62512,-222.54361,-221.17122,-414.6413,-116.85247,-472.30383,-25.30614,-91.044205,-271.69873,-348.53305,-297.3973,-281.30963,-10.097715,-38.95858,-212.43033,-323.72018,-314.40607,-400.02338,-244.61339,-303.1136,-224.41301,-154.77254,-477.4885,-233.54205,-59.200794,-26.142818,-358.58618,-61.825222,-251.82576,-12.103244,-164.52269,-124.18437,-261.9269,-322.37265,-97.419014,-326.31693,-304.1407,-360.7993,-395.3633,-460.37518,-122.495346,-330.71957,-90.351166,-90.50077,-149.24675,-189.27953,-368.95667,-101.68407,-271.45377,-325.68057,-50.891903,-233.42572,-66.05345,-187.63867,-187.80011,-487.27948,-233.55647,-390.79752,-419.34973,-448.73166,-95.19888,-27.633163,-160.58344,-487.96173,-266.96658,-80.841644,-438.04782,-81.8588,-411.20834,-458.35675,-154.45871,-496.1316,-274.48627,-224.57944,-324.77133,-373.76358,-25.873323,-66.1912,-286.45547,-196.32507,-480.68222,-213.83885,-357.56985,-6.1460547,-244.11113,-177.86208,-142.14468,-468.8825,-393.89206,-288.35712,-395.56778,-274.06116,-332.65356,-346.52396,-239.86809,-62.267544,-203.15736,-65.067474,-365.44232,-184.04088,-286.47137,-16.965263,-31.177843,-288.82968,-455.22986,-392.70212,-413.24557,-233.20009,-184.3727,-397.6396,-424.0071,-153.31017,-182.96468,-233.9976,-3.718317,-454.66086,-453.0648,-220.26552,-159.655,-271.3814,-445.14798,-297.52682,-109.70713,-321.1678,-487.4348,-279.62625,-215.2506,-365.63196,-182.0373,-136.3776,-108.96288,-301.79532,-254.90039,-310.20978,-373.11472,-391.24692,-168.61514,-122.69887,-385.5403,-51.23171,-339.71832,-288.30838,-357.00418,-31.17459,-79.650505,-139.23927,-351.11234,-446.01486,-499.35678,-231.8834,-69.618225,-8.3532505,-20.601225,-273.90836,-411.26566,-199.8659,-330.8531,-294.6214,-336.23428,-41.89734,-453.8356,-410.08887,-440.4213,-388.71307,-74.55683,-443.152,-435.69373,-450.9983,-58.285786,-33.157604,-162.44519,-140.44499,-218.69824,-33.98699,-147.54086,-486.86502,-64.19662,-225.71037,-303.51572,-60.192116,-108.847176,-241.71568,-43.949467,-387.12247,-288.20544,-460.18906,-168.55556,-190.83386,-453.6272,-479.25372,-73.35619,-388.46167,-346.62625,-395.50336,-283.88443,-104.527306,-292.6548,-28.960157,-64.70872,-226.46744,-83.157555,-456.66562,-116.058495,-329.20944,-187.72354,-392.59763,-79.82911,-263.79166,-237.30904,-169.09888,-165.17825,-194.96538,-122.71479,-472.17093,-342.70917,-162.06349,-277.7865,-203.54007,-65.93586,-90.27865,-458.2397,-390.52307,-280.8282,-304.8387,-235.76357,-67.235855,-140.10541,-216.66335,-201.90227,-173.13045,-77.67817,-381.23376,-181.67021,-374.21075,-233.15881,-447.66504,-62.234108,-133.80145,-231.39723,-138.79097,-327.50708,-39.09541,-445.59747,-113.75025,-378.46494,-397.09155,-234.5543,-450.7247,-210.01149,-320.4078,-465.69107,-55.19539,-397.14203,-176.90071,-327.59982,-54.794384,-401.572,-146.9814,-51.452057,-462.95465,-195.82553,-85.72754,-246.41174,-336.30957,-443.97488,-399.28424,-321.56567,-90.31837,-177.02322,-358.21628,-259.9778,-284.7208,-334.07605,-102.941,-490.96875,-269.9504,-193.0325,-224.01909,-103.27631,-142.31836,-223.9112,-219.63658,-164.82346,-280.35263,-348.9357,-76.70812],"im":[-77.519966,-445.5838,-348.6056,-385.69418,-134.17235,-411.47003,-441.3695,-316.27393,-320.02597,-256.48883,-404.60043,-375.7427,-410.678,-494.19034,-163.12749,-478.7341,-159.16438,-413.64447,-404.62708,-375.48495,-200.59346,-36.1166,-154.69548,-402.6502,-354.33603,-187.01294,-376.73267,-481.7478,-286.77127,-106.66833,-201.25443,-478.8965,-352.41895,-305.7658,-169.04529,-273.70267,-49.416058,-232.67067,-408.8862,-440.60095,-474.55914,-352.99863,-285.94675,-490.10855,-62.132313,-426.69687,-281.18558,-487.69083,-363.47684,-116.77994,-355.06738,-163.37439,-482.3813,-384.69696,-432.42316,-141.12466,-99.050804,-287.7292,-420.97882,-424.67072,-176.54138,-302.8756,-464.06033,-499.65848,-25.288483,-270.4117,-312.49326,-185.16048,-480.28516,-495.4123,-265.64716,-353.0365,-78.01565,-448.58508,-226.03215,-474.2063,-472.6161,-401.39282,-7.7490587,-402.35736,-4.6553087,-303.98108,-418.41446,-89.6926,-266.4889,-358.97336,-282.1401,-405.0408,-487.45135,-297.3102,-204.70763,-426.1604,-260.96555,-169.23758,-499.99557,-181.45428,-99.08922,-255.20604,-362.86917,-331.40997,-16.445972,-430.81128,-16.133219,-242.5969,-270.9631,-356.7798,-407.64136,-77.56473,-419.1783,-72.97311,-462.00488,-351.33472,-226.52766,-83.55211,-31.948412,-32.37478,-232.80446,-306.137,-304.80017,-344.23624,-364.966,-285.28384,-84.885925,-337.4232,-147.4027,-265.08713,-57.74293,-141.26828,-491.75464,-223.29378,-369.07944,-183.58807,-79.36066,-499.95502,-383.84714,-356.48883,-130.4543,-366.99255,-23.448055,-62.886883,-203.71268,-136.00162,-250.36803,-473.6769,-381.6034,-79.307884,-35.336494,-167.60905,-132.08333,-47.86238,-269.132,-339.07468,-242.0557,-455.61108,-83.917885,-224.04028,-144.97067,-388.25024,-105.96584,-174.22493,-135.25443,-473.1899,-79.76801,-293.73856,-349.87265,-48.50873,-413.28394,-302.6474,-21.619907,-244.84567,-288.76846,-243.66838,-409.3642,-75.76007,-345.4713,-63.895935,-273.00623,-349.73438,-410.6981,-488.0638,-369.84415,-191.60391,-455.96347,-21.157688,-420.9361,-270.83405,-63.49634,-405.78094,-309.18567,-162.78528,-433.53058,-345.31607,-295.73172,-38.52902,-342.24396,-6.9847918,-103.49652,-380.8498,-360.61642,-341.40076,-140.2539,-117.06208,-338.9934,-38.495876,-310.3719,-463.8452,-109.039185,-351.5943,-81.17086,-392.21832,-446.8181,-340.28787,-173.54105,-341.47574,-337.6367,-356.04303,-141.84392,-384.59592,-336.55295,-50.057034,-244.15717,-492.5491,-351.66064,-487.29843,-324.2889,-80.43045,-316.9989,-352.46008,-189.22258,-207.99638,-67.590866,-41.195244,-222.13118,-224.61467,-65.14319,-225.31255,-87.13886,-395.76413,-237.31801,-193.00044,-446.3969,-353.38174,-320.4546,-277.7327,-416.5089,-488.29184,-484.1144,-455.3482,-36.972813,-293.71524,-199.97078,-22.792025,-139.5161,-53.19682,-44.851162,-176.2691,-389.5298,-210.71065,-371.23615,-81.28401,-401.05832,-163.07991,-290.78394,-367.3323,-397.0696,-312.35486,-492.77002,-478.8209,-113.30083,-469.57983,-239.87236,-321.1383,-482.8849,-138.33994,-116.13405,-285.6243,-339.98517,-246.22829,-196.4465,-24.125738,-495.9683,-310.23502,-401.0101,-85.9466,-218.58882,-392.09543,-304.4372,-221.14311,-73.583954,-401.7588,-395.94357,-15.960475,-3.219424,-222.85513,-78.071594,-86.59477,-316.22192,-325.53622,-284.3525,-167.38824,-324.65735,-212.28276,-386.34515,-295.4929,-124.367744,-217.08327,-110.77711,-449.9239,-35.408455,-99.6292,-160.80608,-293.20306,-184.60056,-100.721214,-53.486393,-244.30605,-374.01877,-189.74493,-225.64511,-177.62793,-61.36335,-40.102222,-277.87433,-345.57953,-347.4083,-229.73334,-205.84825,-299.6163,-205.27872,-453.43457,-170.95642,-424.70627,-53.48513,-230.07567,-100.63162,-192.8764,-116.5259,-72.960365,-197.10742,-363.85254,-97.79842,-189.81158,-448.6744,-186.29907,-373.83484,-314.8913,-239.37326,-278.2259,-313.96005,-55.73287,-480.9045,-261.38525,-443.44168,-205.67871,-136.68594,-232.82916,-162.1136,-112.825386,-382.93512,-214.50691,-498.04413,-288.60593,-46.861553,-329.72217,-227.49849,-96.669395,-172.58978,-487.66827,-293.10294,-298.07748,-362.76642,-132.8402,-454.199,-402.60803,-384.99286,-492.1627,-433.1996,-30.446234,-195.32654,-365.52322,-276.0174,-74.27169,-222.46188,-165.70462,-273.82773,-30.326736,-188.646,-102.231636,-62.891457,-79.81403,-198.00674,-170.72789,-57.98419,-197.48676,-85.23894,-306.3735,-191.80537,-125.78207,-3.8451502,-232.64261,-124.07467,-278.22736,-35.747494,-421.69662,-188.04376,-144.69362,-32.08115,-12.302584,-101.644684,-463.2179,-111.99865,-297.50067,-293.66833,-248.05801,-59.765087,-171.18622,-468.2614,-77.67108,-415.40506,-342.22513,-287.47583,-63.091644,-94.65522,-169.73898,-13.5794325,-289.8236,-133.67891,-439.14725,-336.24936,-39.471542,-107.59018,-412.61734,-499.6547,-152.15677,-324.1371,-95.55489,-394.83765,-296.49643,-187.84169,-462.95178,-312.93658,-334.3292,-371.87088,-290.61047,-399.9702,-109.45128,-127.63813,-439.2526,-323.17587,-332.6024,-170.1335,-464.52188,-438.03647,-438.05765,-368.0552,-480.8408,-70.125,-170.88808,-223.09045,-442.6935,-479.338,-266.13312,-132.92749,-428.3745,-277.37787,-86.886894,-190.63388,-212.66275,-109.64109,-148.56026,-212.00911,-101.61834,-160.72371,-496.8379,-454.57635,-2.693603,-308.61517,-358.1654,-354.62256,-90.8329,-360.60333,-219.151,-374.5349,-202.0093,-412.32657,-316.0344,-338.1646,-25.04928,-14.916766,-200.6605,-423.67908,-10.734111,-360.3539,-5.398829,-197.59908,-193.19319,-250.442,-27.043434,-187.79906,-104.33255,-151.96944,-312.3493,-31.55906,-163.93909,-80.76446,-260.50638,-326.777,-70.4775,-285.3377,-374.64633,-406.86002,-441.59528,-156.85335,-358.39688,-312.538,-322.90564,-198.57907,-319.88535,-331.8812,-123.62526,-470.17926,-1.5463914,-482.46732,-422.94562,-441.1352,-293.1733,-174.51381,-17.153467,-317.36722,-183.79933,-248.19547,-185.11047,-456.85333,-394.8166,-45.872166,-445.73303,-250.61238,-81.62731,-492.13205,-474.3624,-306.15216,-486.31744,-392.17764,-452.1252,-356.7799,-330.16684,-139.22676,-381.07608,-241.35776,-263.37906,-91.6662,-382.86823,-138.4376,-175.01083,-7.829512,-328.235,-191.2986,-99.50413,-97.00545,-255.72075,-360.30573,-427.2043,-72.394196,-424.97696,-216.87799,-193.62265,-97.18346,-286.33286,-192.18755,-338.5279,-245.64531,-145.75943,-350.02435,-281.74243,-182.83386,-195.91458,-94.132515,-254.07622,-181.09247,-324.18964,-303.39328,-238.9429,-488.1976,-310.8905,-211.21468,-119.3195,-296.4085,-470.87296,-154.05464,-472.67813,-70.518684,-419.65985,-131.0882,-463.6419,-416.94907,-64.370255,-152.73473,-256.0962,-339.56665,-75.53861,-393.84436,-78.09247,-92.24151,-255.1241,-426.71448,-405.51746,-225.15076,-211.81786,-305.37567,-432.5589,-57.8672,-244.80052,-363.18912,-180.2164,-121.539665,-22.225248,-22.72028,-329.41373,-385.9824,-456.05362,-28.934368,-230.64665,-494.61423,-40.67559,-64.817856,-414.06174,-29.460855,-472.902,-204.66162,-183.61786,-456.57455,-269.81708,-56.11208,-148.28914,-313.86032,-443.45267,-414.4329,-485.64478,-95.76214,-265.32895,-30.230515,-261.1179,-447.99155,-249.43715,-236.91446,-428.47137,-462.56723,-270.1009,-207.55624,-334.35858,-433.1281,-160.96106,-240.44353,-199.71063,-130.22221,-157.40305,-488.40866,-315.49396,-325.69174,-475.02902,-486.24878,-58.739704,-375.3643,-23.481594,-232.56142,-268.41348,-157.82751,-74.959496,-140.39946,-237.99942,-10.835416,-53.674706,-310.45743,-363.5406,-142.48123,-16.434376,-289.51877,-248.64868,-302.25122,-198.16151,-169.56714,-429.1165,-155.07314,-151.38728,-42.46886,-91.22153,-317.0091,-470.8767,-117.572334,-291.3445,-446.70792,-431.79327,-188.07533,-447.06592,-375.75784,-474.84906,-365.05823,-13.17218,-53.207745,-323.31528,-439.6725,-110.193016,-159.98412,-497.20898,-255.50021,-29.746643,-425.84464,-266.63376,-485.6721,-320.4572,-177.43361,-293.0217,-199.7538,-417.10934,-15.123444,-31.567986,-378.71237,-486.59744,-162.71822,-50.309002,-412.4573,-139.88472,-355.38187,-387.06238,-458.27158,-361.78677,-286.39178,-254.01541,-176.7439,-402.09656,-394.64774,-214.30624,-376.77643,-145.44579,-377.96317,-161.10083,-270.3121,-351.06894,-40.74512,-329.76602,-373.75473,-320.51266,-148.78539,-345.5591,-252.19427,-213.83264,-83.61364,-281.32394,-219.27931,-494.95132,-323.09485,-232.49203,-109.97946,-87.738594,-152.64531,-98.46201,-248.23232,-308.99274,-216.53108,-378.25497,-113.70868,-245.77919,-328.81302,-400.64432,-288.77686,-329.30243,-250.99734,-17.107712,-274.6968,-182.51743,-194.90149,-464.3872,-195.21579,-392.37607,-233.36488,-115.6985,-120.50836,-57.923412,-78.43571,-55.632946,-429.49722,-433.7103,-394.86517,-91.27268,-301.78812,-26.590841,-71.45054,-371.41495,-484.1474,-474.29865,-12.291713,-246.00162,-339.57468,-222.60768,-95.614586,-109.24555,-438.07504,-294.79517,-25.341286,-208.24026,-363.84647,-453.9937,-61.51098,-54.686054,-263.1542,-141.6524,-249.80838,-486.4479,-284.49963,-213.18169,-197.63965,-54.608986,-145.67805,-426.94308,-205.46478,-271.7373,-441.36707,-198.68,-351.04773,-452.94974,-341.0648,-328.285,-155.22427,-318.82846,-442.86017,-107.5524,-370.04193,-470.58856,-423.56592,-162.14604,-6.462281,-253.09488,-167.27725,-138.36543,-360.52094,-338.59692,-460.59167,-157.84935,-260.1119,-73.313065,-29.503466,-100.87901,-138.27739,-224.81927,-426.37735,-389.37357,-423.99042,-481.34766,-228.24016,-382.00156,-356.0544,-225.18521,-128.68036,-300.28943,-96.55946,-231.77707,-141.05695,-109.71833,-205.27855,-255.411,-253.7997,-32.28866,-86.91497,-192.31236,-216.1306,-205.98044,-314.3707,-212.06442,-82.754395,-187.49858,-468.63004,-366.22446,-250.73976,-400.05704,-403.81482,-35.85565,-461.90817,-146.7455,-261.98807,-349.24524,-128.89282,-233.20671,-317.59912,-203.99052,-406.18658,-245.72746,-169.40372,-366.75635,-296.9036,-458.51294,-34.721996,-387.139,-234.20717,-119.23731,-78.34553,-322.8353,-359.91434,-257.1615,-217.55293,-176.13869,-29.957954,-180.01564,-359.7574,-1.8881384,-126.66406,-339.09106,-414.77487,-305.6565,-153.74461,-81.46145,-196.29243,-467.32214,-252.16454,-197.59615,-348.02094,-468.4104,-4.6716785,-55.033554,-461.60757,-230.29309,-467.60464,-385.10333,-206.41539,-6.1768174,-356.71387,-71.548935,-385.86945,-268.72903,-27.559853,-12.302466,-117.21709,-151.40404,-49.342583,-215.705,-311.19614,-87.43725,-398.43344,-332.0137,-334.01816,-36.3884,-246.98987,-458.84763,-209.41396,-240.64612,-253.13435,-378.2116,-409.20868,-396.21732,-302.43854,-130.92958,-56.226826,-13.641042,-227.25056,-241.60258,-147.62172,-475.98904,-414.45245,-413.9877,-229.23859,-123.685234,-352.01044,-59.945343,-70.474365,-476.9001,-481.1841,-418.2168,-167.06393,-167.83842,-134.81873,-154.26584,-256.6161,-483.542,-150.24179,-479.70908,-355.49142,-498.00342,-276.0588,-389.2364,-142.60094,-360.1153,-431.52576,-201.91617,-41.651672,-73.979836,-228.31851,-178.83817,-219.75656,-228.17099,-196.60693,-216.53407,-63.55311,-72.24022,-221.25046,-467.12952,-303.2812,-226.81726,-374.03818,-279.99945,-327.39072,-131.11522,-128.56209]} diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/test/fixtures/julia/negative_positive.json b/lib/node_modules/@stdlib/math/base/special/cphasef/test/fixtures/julia/negative_positive.json new file mode 100644 index 000000000000..70f61fe07792 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/test/fixtures/julia/negative_positive.json @@ -0,0 +1 @@ +{"expected":[2.4418247,2.0157619,3.005661,2.8074486,2.4418695,2.6005394,2.5529327,2.5060546,2.2525597,1.9864509,2.4133449,2.500587,2.1830733,2.6010087,2.1439972,1.6662703,1.7932769,2.4220686,2.7441156,1.9873228,2.468043,3.080003,2.7522984,2.9695988,1.7068868,3.0908291,2.376144,3.091472,2.733251,2.4200463,2.4071646,2.7063725,2.2429607,2.6891284,2.9763272,2.1515784,3.068534,2.5283985,1.9846716,2.316183,2.120768,2.543468,1.6249001,1.6940217,3.049868,3.103837,1.8180206,2.445957,2.7628274,1.7135187,2.7869449,2.3610315,2.503924,2.1569903,2.4635768,2.1257386,2.2907205,2.8669262,1.6949661,1.6192127,1.7604227,2.669002,2.18738,2.2920969,2.2604458,2.034251,2.3096251,2.6953166,2.3170674,1.6312329,2.8294325,1.6372126,2.3780975,1.8411565,2.080727,1.7422324,2.1408918,2.1424053,2.5915518,2.81468,2.3905506,2.8630276,1.9587816,2.6032581,2.3690774,2.7407851,2.830478,2.0722892,3.0014336,2.0500526,3.0715492,2.204758,2.605459,1.8020569,2.087675,1.793263,2.2017763,2.5792048,2.3628519,2.4654193,2.5270135,2.7756288,1.769519,2.355295,2.1644127,2.2217836,2.410567,2.2942405,2.463169,2.4883714,3.099877,2.73772,2.9261549,2.2387524,2.1931689,2.839038,2.6412292,2.0685234,1.9886135,1.7031027,2.556149,1.7266715,2.734572,2.4019086,2.4220283,2.1053514,2.0407577,2.884855,2.1555223,1.6011785,2.2465878,2.1084614,2.2941866,1.6941271,2.61091,2.1306071,2.5669065,2.265126,2.0833545,2.6863112,2.2118244,1.6653694,2.3205357,1.7434797,2.5996642,1.8464849,2.0478778,2.0731797,2.1684012,3.0089216,2.319921,2.4144814,1.8138124,1.9574387,2.425138,2.2178483,2.2578697,2.0258121,1.9138823,3.0481133,2.218538,1.6889182,2.8227391,2.6939409,2.3423412,2.605041,1.7486933,2.1223788,3.108254,2.2963316,1.971092,2.5778983,2.0953074,1.5729872,2.1525555,1.7972597,2.8737202,2.9905474,2.7010674,2.8014548,1.7998004,2.398151,2.7111158,1.755143,2.6168861,2.6725545,2.0499709,1.9757334,2.5568304,3.0646951,2.5353925,1.7115893,2.5882223,2.5952861,2.789237,2.191748,1.6632771,1.8966484,2.340999,2.579252,2.3230062,2.1195288,2.1058412,1.6769615,2.7969127,2.0735795,1.6567788,2.9970422,2.1810787,2.280491,2.0485535,3.0997875,1.8124585,2.8690536,3.1057591,2.7149675,1.7650775,1.8082466,1.5921105,2.7054975,1.7478505,1.7027391,2.2248566,3.0560381,2.6359448,2.603243,2.7683253,2.3322833,1.8807012,2.479941,2.955986,2.1839426,2.0069418,2.8830066,1.898985,2.542906,1.9097443,2.0446682,2.5000267,2.0890641,2.4335113,3.1131053,3.07918,2.6470194,2.6582007,1.8177707,2.0215483,2.521989,2.475596,2.3789792,2.4954977,1.7128227,2.9088871,1.8703159,2.7528272,2.2185614,2.8611774,1.7682898,2.3584378,2.0707207,2.8063064,2.0930245,2.7113266,2.9118905,2.6039748,2.2144108,2.9078493,1.9833132,3.051564,1.6413289,2.9716964,2.2535493,2.8819234,2.4897103,1.8581609,2.5879967,2.916288,2.6861982,1.9582788,1.9816934,2.9898245,1.9360429,1.7969087,2.4997427,2.148463,2.2220016,2.9670541,2.9602766,2.075386,1.9622471,3.0850463,1.7641156,2.9884837,2.7788415,2.3880157,2.0089378,2.7873826,2.1178412,3.1313772,2.8159065,2.2224681,2.3404863,2.0228806,1.5911632,1.8017182,3.0263715,2.5775106,2.9159207,2.264776,2.3091435,2.6760156,3.1345754,2.2012997,2.6921005,2.2821403,2.8197017,1.5811386,2.3404589,2.4851763,3.0595207,1.866192,2.087491,2.8915007,2.1805496,1.8318924,1.7808248,2.0607126,3.056129,2.7889962,2.046389,1.8438584,1.9738306,2.157586,1.9169635,2.893008,2.8373704,2.2262778,2.9564762,2.0987802,2.6787617,2.7093973,2.9974186,2.4378936,2.9134645,1.7113091,1.6328446,2.0060618,2.5432246,1.6645163,2.3800266,2.5302913,2.1461372,2.0520864,2.2403944,2.629304,2.419032,2.7817962,1.6777679,1.5750402,2.1153126,1.5936362,2.4781563,2.145082,2.010563,2.8689764,2.792396,2.2717676,2.3406901,2.5715604,2.6111946,2.034816,2.5082808,1.6812205,2.2584984,1.9941217,1.8068765,2.812968,2.22306,2.686878,1.706963,2.1018224,2.5133796,2.7923927,2.2764826,2.3484092,2.2639,2.7850327,1.8726369,2.2219076,2.182304,3.1201775,2.9845831,2.2475963,2.9367542,2.2958035,2.1818802,2.747705,2.7350354,2.0232635,2.0115905,2.403069,2.170392,2.3251946,2.313274,2.0785193,2.5044014,2.5171866,2.5461671,2.2942362,1.824872,2.9331653,2.2657576,2.400829,2.3783886,2.6023388,1.7944343,2.5997303,2.6080105,2.856595,2.485787,2.34148,1.960518,2.3465939,2.5022852,1.6292573,2.3731487,2.1402454,2.7496662,1.7617049,2.6412098,2.1507263,2.0455694,3.1314528,2.162695,2.6863785,1.937128,2.0953412,2.4537206,2.3595757,1.6117795,2.389584,1.741523,1.8611763,2.2273877,1.5816275,1.8830466,1.954676,2.426649,1.814305,1.6434795,2.333238,3.1243694,2.341114,1.9301263,3.0268714,1.7893146,2.9960616,1.9090254,2.889415,2.5389328,2.612019,2.1628811,1.6244191,1.7201735,2.7335188,2.373807,2.8493297,2.6148908,2.0535154,2.4268003,1.5804927,2.0415435,2.202153,1.6613553,1.6612651,2.0524282,2.3571143,2.6322796,2.532991,2.2256606,1.8373854,2.9519238,1.9878973,2.613443,2.290677,1.5991626,2.9927182,2.400853,2.1420743,2.3956242,2.259097,1.8621958,2.3529227,2.745717,2.277347,2.6993687,2.6387672,2.263672,2.5998912,2.628366,2.1885052,2.0266218,1.9082036,2.8485398,1.6189998,1.8802627,2.1854339,2.428764,1.8821355,2.3375287,2.329352,2.636187,1.747763,2.06036,2.553603,1.8495234,2.090537,3.0588894,2.1541035,2.4320254,2.7264745,1.9924313,2.03447,3.0192327,2.3034205,2.1722536,2.2576728,2.3184648,1.8663137,2.046033,2.95895,2.5333655,2.9325144,2.5069919,2.161944,2.3506005,2.2127974,2.2005944,3.0925124,1.6681563,1.6694661,2.406721,1.8838891,3.0820637,1.6408339,2.2206154,2.070572,1.6278468,1.8196799,2.6256068,2.3715785,2.6002162,2.578804,2.378335,2.1087315,1.7524778,2.6245618,1.6125281,2.289477,2.8717792,1.6327746,1.8636209,2.7424927,1.6698587,1.6064998,2.1543226,2.2011175,1.8411199,2.4911304,1.725403,1.9785291,2.801272,2.3767834,2.345078,2.6910205,2.0368605,1.7438033,1.6935623,2.338447,2.0364919,2.017581,2.59814,2.3314185,2.8040051,2.2164843,2.3376703,2.9139688,2.3278403,1.8303386,2.8820894,1.7507635,1.8279537,3.1274643,2.2411616,2.345892,2.7021499,2.1520584,2.4566975,2.5537043,2.526786,3.0879247,2.2329304,2.1995955,2.494888,2.010888,2.4358196,2.2382393,2.0299773,1.8186072,2.481984,1.6896875,3.0604224,1.9604753,2.3273048,1.9286382,2.403262,1.8021389,2.3280342,2.409504,1.9169668,1.9126208,1.7250732,2.3354263,3.1368425,2.8275518,1.8339655,2.243235,2.4602737,1.7764654,2.7647913,2.569622,2.4017355,2.1008255,2.0617929,2.685132,1.9744684,2.931348,2.373444,2.748949,3.1149487,2.533688,3.0251126,2.2823927,3.1399102,2.9601927,2.3267028,1.846662,2.2737968,2.4959917,2.5497408,1.7337539,3.0452583,1.637825,2.170809,1.6050355,3.0549212,2.382624,2.3155959,2.14731,2.255752,2.5181808,1.6926478,2.4437904,2.2990315,1.916332,1.8449008,2.9349203,3.021868,2.9148514,1.9518,2.0799327,2.4596553,2.0044298,1.6231436,2.6374817,2.7080414,2.3728206,3.0806863,2.398165,2.8828835,2.4021919,3.0886145,2.348778,2.863517,2.983207,1.7550693,2.3221967,3.1397,2.74878,2.940711,2.3722632,2.7430735,1.8901381,2.5794473,2.441979,2.7628887,2.8195481,2.2479563,2.2372954,2.0834818,2.4913456,1.9063313,1.582219,2.8100584,2.4008398,1.906786,1.614735,1.974717,1.78373,2.1749442,2.781385,2.001205,2.9921854,2.2505403,1.7891889,2.03186,2.1594126,1.7308843,2.400798,3.0378675,1.8995908,2.3860164,1.9899948,1.6127279,2.624962,1.6362368,2.6317098,2.3412318,2.6059134,1.955999,2.150238,1.9582626,2.3715317,1.7058125,2.0358453,2.54448,2.0445194,1.8507446,2.9648347,2.8790011,2.3861957,2.1431432,2.0794039,2.4302075,2.1076274,2.4455624,2.3059201,2.8112576,2.6669028,2.0731182,2.4547913,2.2592523,1.9477609,1.7460331,1.7243099,2.2086654,2.1969314,2.6441064,1.9838253,2.5920134,1.9196767,2.2121341,2.4521465,1.6550261,2.3410492,2.435041,1.7283195,2.4981856,2.3960855,1.8101159,2.7405322,3.0983982,3.1241238,2.1760573,1.7550292,2.6338055,2.884855,1.7158965,2.9881377,1.6663806,2.424955,2.0100203,2.1474783,2.8140936,2.9943368,2.0466385,1.8176643,1.7643994,1.9077926,1.9726719,1.6055475,1.7896245,2.3108358,2.1692684,3.0767307,1.8126167,2.290167,2.2835236,2.5056145,3.0825088,2.3222144,2.5324893,2.0286775,1.8621145,2.5647833,3.0673196,2.1987724,2.9388769,2.2639375,3.0676591,2.203987,2.3447194,2.5963917,2.339122,2.881302,1.9345413,2.111372,3.0502305,2.5805202,2.345004,2.006721,2.9838994,2.628832,2.0805297,2.1050076,2.5722208,2.4124155,2.51328,1.9784235,3.100941,2.0068908,2.2717392,2.6274526,2.8282607,3.108123,2.779805,2.2422125,2.8626251,2.7191875,3.0618298,1.8657734,2.9596195,3.0668528,1.7607691,2.0681942,2.464944,1.9329131,3.0437515,2.3902216,1.9506834,2.5606403,2.6439738,2.2811668,2.6677055,2.46607,2.42635,1.7327819,1.7768083,1.8883895,2.1490784,2.5664706,2.7680411,2.385057,2.4528327,2.3573833,2.3170593,2.3524437,2.325006,3.0379384,2.4530025,2.794224,1.8150187,2.4496102,2.2619433,1.7411956,3.0357351,2.0811467,2.7657602,2.8927076,1.9616786,2.6780512,1.981481,2.4977145,2.0503669,1.7289127,2.415061,2.7244067,2.132913,1.9206004,3.1229646,1.8127753,2.8850667,2.988032,2.3034687,3.0236018,2.580018,2.4067278,1.6296636,2.5433083,1.7510487,2.5019875,2.4542885,1.6840965,2.3586624,2.486104,2.1936681,2.5370533,2.7722597,3.1268444,2.5808744,2.1347847,2.021669,2.243654,2.4036462,2.585727,2.2316475,2.4332762,2.1670856,2.7151618,3.0720277,2.0902135,2.2900527,3.0126653,2.3163424,2.180988,2.0540075,2.5796385,2.7962024,2.2117581,2.5800424,2.004601,2.8382475,2.7732694,2.7820332,2.0788302,1.74251,1.8824499,2.3292503,2.2515545,1.961662,2.5539505,2.4574041,2.963979,3.07748,2.4641614,2.115622,2.5825214,2.2787123,2.1258087,3.1123676,3.103402,1.7703103,1.9736972,1.7502588,2.7614703,2.7797506,1.9082361,2.8999844,2.4606867,2.5540996,2.0419946,1.9263169,2.3876805,2.446343,2.4610288,2.405579,2.2784986,2.4625394,2.556209,2.2217827,1.6444409,2.0077047,2.5012178,2.5573425,2.4799445,2.3295028,2.1471992,2.4376256,2.3754256,2.5606306,2.3881307,2.8560872,2.609253,2.2288103,1.6437339,2.8589745,1.8689592,2.7254653,2.1833823,1.8289967,2.4131646,2.151014,2.4610493,2.5164213,2.239018,2.8537786,1.7008114,3.0076153,1.9746706,3.0814826,3.0692315],"re":[-467.1417,-31.099829,-409.5318,-329.30457,-237.78566,-386.161,-49.702217,-259.28665,-128.94582,-143.83768,-349.2523,-275.9297,-268.04053,-391.13797,-204.96367,-17.266468,-112.818825,-401.83478,-394.47092,-73.5193,-414.76312,-358.2085,-403.93552,-382.54596,-15.976134,-459.09195,-391.07382,-464.79977,-259.98495,-338.3572,-484.19656,-363.85577,-311.4065,-266.06445,-271.87402,-213.48587,-336.38742,-409.14246,-167.87305,-404.61563,-242.59253,-152.21506,-12.067097,-56.711376,-436.5582,-150.25232,-25.167112,-315.90942,-406.01886,-70.709366,-355.91672,-447.09402,-218.16698,-114.05353,-418.85327,-274.88168,-357.34543,-468.766,-15.991521,-14.642703,-69.80281,-469.2099,-307.0791,-163.01233,-77.9828,-244.36043,-174.62651,-298.85062,-19.649752,-5.534226,-445.89676,-26.30155,-473.0244,-127.73551,-230.00438,-43.355907,-276.56403,-112.5195,-310.02435,-266.07047,-435.4303,-483.73672,-55.123257,-314.3981,-413.98196,-443.05658,-166.78893,-177.96645,-440.49512,-241.755,-176.13391,-351.84833,-410.84387,-109.93632,-240.15395,-112.0902,-351.48456,-370.9598,-244.26935,-396.78488,-150.2107,-190.65541,-24.965918,-286.86862,-310.10254,-189.46631,-407.8312,-311.20007,-443.88654,-295.3293,-237.6002,-413.59366,-260.78882,-373.83423,-172.05635,-57.635567,-392.0604,-27.98077,-208.36673,-38.274582,-338.65955,-17.799738,-276.21616,-286.50067,-47.47025,-158.16197,-236.23883,-209.4593,-279.7585,-10.940124,-246.0454,-95.88775,-290.8928,-51.36926,-488.70398,-292.31998,-437.4868,-151.9302,-254.77718,-426.87344,-240.58797,-35.595814,-320.9674,-17.330322,-142.68571,-99.654045,-61.71584,-125.266716,-226.35109,-332.82053,-20.133074,-309.13617,-94.50539,-151.0646,-378.47726,-278.5288,-353.8017,-238.3243,-161.95366,-329.53964,-212.51067,-45.05651,-453.54495,-250.67235,-131.84294,-165.13945,-31.865467,-242.26204,-451.1974,-266.58917,-145.76393,-316.21396,-119.015305,-0.562321,-174.32549,-91.03669,-172.78651,-420.82288,-448.41705,-394.2631,-93.20851,-282.58084,-167.69754,-66.94424,-329.54922,-278.5955,-252.01653,-206.01923,-398.68256,-317.02493,-449.90753,-40.08197,-421.8799,-311.43518,-100.28531,-194.19756,-35.35741,-148.19226,-472.71674,-289.5097,-352.74585,-208.83075,-208.0151,-46.572365,-437.3898,-219.67784,-37.043224,-492.07413,-302.72867,-103.59897,-106.17632,-223.114,-83.698456,-345.01312,-374.39084,-211.82983,-23.522423,-95.61364,-5.3983254,-194.73007,-45.42851,-47.40287,-346.25266,-349.993,-136.80801,-149.13153,-283.07855,-374.0233,-121.56017,-420.11615,-191.4316,-165.8605,-221.20685,-184.17892,-97.3495,-466.5168,-143.27113,-76.82683,-471.30222,-268.92197,-461.3578,-279.92,-359.9181,-479.08032,-371.60086,-64.82581,-176.51662,-367.49194,-461.00995,-426.0133,-453.91962,-63.82334,-113.905556,-115.205215,-447.85522,-245.14914,-449.64212,-63.299545,-365.45648,-140.65874,-356.47803,-240.65463,-32.854595,-461.1095,-317.6448,-319.37402,-454.12314,-76.97291,-165.12039,-27.453672,-385.86542,-309.37668,-278.76923,-211.99522,-61.683586,-353.16385,-484.5033,-172.33888,-136.22304,-74.192345,-312.1847,-92.21674,-79.08201,-421.57083,-285.36047,-250.47539,-437.32535,-323.11246,-166.9909,-133.43819,-424.70834,-30.499245,-452.14774,-366.7328,-465.11877,-124.67488,-435.4229,-107.53798,-380.25827,-229.78973,-380.6782,-208.04062,-231.48354,-5.780729,-60.744526,-338.9515,-131.87825,-190.7652,-277.4468,-259.80066,-210.45073,-418.55603,-132.71924,-470.92148,-390.76086,-404.66162,-3.598783,-385.07852,-182.80687,-286.4366,-112.71396,-197.05402,-437.9883,-76.22372,-68.11507,-100.55421,-248.26944,-216.6826,-448.4755,-158.67017,-102.12121,-170.16309,-218.01244,-179.28104,-476.57584,-148.33812,-357.54623,-403.07703,-151.41464,-278.80923,-289.67413,-333.93103,-461.68515,-312.24115,-44.512405,-28.286207,-37.51755,-82.20315,-39.05897,-12.232419,-331.43515,-243.1227,-167.54732,-65.1386,-403.4482,-349.9351,-472.56168,-26.179821,-1.5774404,-148.50485,-11.041801,-86.489265,-174.99348,-172.21921,-234.87267,-466.13705,-218.12064,-431.10785,-321.76056,-380.17502,-233.717,-391.903,-28.410007,-377.97983,-138.17076,-113.743744,-149.22401,-84.70787,-257.93765,-60.168972,-290.07132,-366.4133,-182.82881,-148.37836,-192.05261,-71.35598,-147.49197,-135.6385,-258.9352,-224.80151,-399.7763,-393.84186,-291.30637,-487.38385,-160.28697,-88.17282,-400.9243,-326.3819,-241.91629,-227.82568,-323.33527,-324.0029,-280.218,-364.82864,-269.0778,-355.2114,-327.4086,-279.34253,-259.72693,-93.25468,-416.9733,-329.6828,-454.16028,-320.84506,-415.6939,-68.51004,-89.83875,-480.0064,-315.37732,-79.47507,-271.63174,-112.96394,-240.46397,-387.53006,-28.145216,-407.57663,-262.0468,-370.727,-86.25374,-394.25244,-100.27505,-236.55255,-127.372444,-261.90372,-335.97412,-88.81585,-76.01096,-493.93152,-266.25253,-17.207586,-412.90097,-71.11386,-66.69016,-354.1357,-2.341557,-92.46653,-119.25071,-72.221985,-118.75254,-18.320908,-292.6749,-450.95404,-105.41254,-176.1176,-498.9443,-102.876564,-474.99197,-13.277246,-393.14935,-324.7011,-448.34152,-252.87566,-20.208603,-65.66329,-497.27496,-303.50363,-458.28964,-322.5266,-228.46434,-28.231825,-4.1062427,-200.89688,-330.51672,-39.681725,-43.74136,-168.60153,-373.8429,-231.4639,-355.06662,-375.75436,-27.07002,-434.39194,-201.15689,-209.45195,-386.19202,-6.2556977,-412.7087,-380.04047,-279.81213,-232.62904,-336.54544,-55.071453,-450.1847,-470.37656,-218.0142,-364.4598,-414.727,-369.3704,-420.19504,-235.16377,-39.667557,-92.93762,-58.110832,-390.22778,-19.30116,-158.44739,-240.46158,-389.6418,-64.64859,-283.14005,-208.5278,-411.38654,-82.595146,-162.3535,-395.70642,-114.37594,-131.27284,-323.10846,-286.5358,-446.31793,-443.57965,-218.26355,-226.56273,-497.3863,-280.05386,-36.05206,-205.91652,-404.19205,-93.1299,-63.049305,-199.15517,-143.30354,-352.05215,-235.54134,-134.24855,-209.7987,-247.1924,-194.9312,-309.08508,-30.065598,-48.069447,-313.3445,-95.14078,-213.67468,-27.846806,-170.99402,-183.36548,-24.110628,-123.48065,-385.25687,-395.88882,-216.60736,-225.01117,-385.09695,-178.94763,-71.58995,-285.8544,-13.668031,-364.10678,-174.64409,-6.868543,-45.034718,-243.13129,-46.00223,-14.002864,-71.0406,-252.45929,-62.87251,-498.5998,-57.14508,-215.16519,-488.4215,-277.7152,-435.68417,-132.57967,-208.85506,-68.07664,-32.83613,-61.079556,-199.01901,-48.996494,-154.76746,-176.31769,-455.92572,-335.5407,-465.68094,-395.89407,-349.70267,-48.099342,-192.35449,-45.80071,-121.48874,-152.13899,-338.28146,-374.31628,-138.59973,-197.6991,-150.62772,-294.8343,-200.34537,-253.14377,-289.46622,-99.153244,-342.34656,-145.38672,-401.86713,-378.85788,-133.10529,-76.59759,-181.39427,-56.26607,-488.0159,-165.28879,-451.93585,-55.90322,-431.63464,-87.60413,-412.15225,-498.79398,-66.61406,-117.71865,-60.60198,-294.02005,-277.71768,-230.91336,-116.02688,-294.59604,-442.2044,-79.47744,-235.57767,-195.88635,-382.0472,-226.34892,-263.17642,-491.46445,-45.42566,-307.58325,-231.45396,-445.26352,-254.60681,-325.4496,-437.69873,-152.91273,-194.94005,-401.7832,-338.63293,-84.47714,-349.94925,-453.8741,-166.20184,-61.18417,-426.89944,-25.276485,-298.20627,-15.073016,-442.13443,-289.80972,-177.9738,-189.32492,-110.220795,-320.68402,-19.932262,-314.54108,-301.72214,-154.67316,-90.449356,-142.54205,-438.69357,-447.91254,-140.0912,-259.09418,-387.74075,-202.93808,-23.596363,-416.22342,-381.62036,-255.74274,-406.2864,-472.22952,-419.21072,-198.51196,-391.24533,-346.4695,-299.10104,-332.78497,-56.147224,-286.0697,-160.5051,-71.74908,-372.25406,-360.58408,-121.079285,-93.53183,-365.27808,-204.9167,-421.0825,-181.43236,-210.30588,-301.83252,-134.1873,-484.7387,-169.57051,-0.66304827,-358.71375,-471.65897,-146.82698,-5.116447,-25.67757,-69.04997,-274.02826,-477.65765,-86.380165,-390.43173,-337.084,-68.62547,-204.18477,-285.33685,-62.447346,-286.3643,-239.65935,-162.58725,-368.17545,-211.02638,-19.426058,-374.86746,-30.82954,-232.75673,-292.29208,-433.3179,-145.28528,-136.12032,-164.75323,-362.96466,-50.92629,-45.50599,-441.24225,-143.72986,-120.82399,-241.01247,-52.515415,-451.78348,-152.02057,-270.6079,-138.19069,-58.837395,-394.2441,-355.43887,-380.156,-476.47455,-63.096157,-342.70636,-277.75894,-188.88693,-86.5987,-44.435368,-223.70883,-220.40382,-367.47208,-129.45728,-481.9629,-133.3926,-347.09418,-401.9039,-36.8163,-275.69516,-192.50894,-26.769615,-272.82285,-264.45132,-37.18865,-443.44882,-97.95055,-287.38235,-303.4157,-84.193535,-498.3097,-423.5121,-65.484726,-269.7087,-47.308563,-469.61084,-223.68094,-122.356186,-495.18692,-349.3298,-85.456,-72.68444,-60.517017,-82.722824,-134.1283,-1.9072404,-49.724464,-348.96802,-136.52075,-189.72368,-100.274055,-334.29056,-211.644,-201.9525,-310.24408,-442.44012,-314.4817,-224.19545,-127.08796,-384.9827,-258.7118,-195.46219,-148.57718,-230.6485,-389.12082,-204.56999,-181.75967,-227.7686,-467.64484,-414.08084,-180.14317,-298.93024,-344.66104,-111.34144,-277.84985,-184.72499,-250.58571,-256.56152,-206.06413,-257.8883,-319.56277,-453.62506,-240.74016,-176.28664,-465.1529,-215.09587,-410.40573,-187.51694,-467.4433,-228.21509,-423.62485,-388.72635,-388.78854,-452.70938,-131.6787,-79.08623,-387.83936,-419.58197,-85.14091,-125.19449,-492.5164,-158.72519,-275.21838,-373.3989,-50.39167,-305.991,-311.74948,-312.57654,-374.56107,-297.26697,-249.54007,-77.460175,-68.38463,-80.23522,-152.1162,-470.50583,-432.76474,-496.03064,-440.86215,-196.32607,-229.62495,-420.68518,-64.660416,-83.85632,-376.18048,-311.76114,-117.37431,-284.1819,-224.231,-20.859499,-163.809,-215.11249,-288.72858,-380.4663,-73.57241,-470.0246,-141.58606,-432.1749,-33.85746,-55.00726,-260.8226,-301.96854,-153.19704,-39.38263,-341.6486,-111.28184,-484.31274,-127.813484,-272.1158,-268.4835,-452.40842,-283.06662,-17.727432,-108.23383,-27.25739,-127.36027,-319.89832,-53.732388,-454.49875,-498.30704,-278.8499,-476.44363,-281.1035,-492.7141,-232.64034,-291.82785,-122.68114,-320.30594,-338.1007,-244.08223,-277.02933,-345.61575,-327.12976,-372.7628,-119.79707,-166.26897,-364.59982,-464.187,-365.5415,-110.0669,-240.2357,-441.69238,-436.75046,-287.42923,-401.1947,-25.205439,-346.58704,-218.33846,-212.4513,-34.41241,-35.335693,-124.737114,-209.6972,-363.9325,-156.36469,-204.85378,-304.32593,-367.2452,-446.4086,-356.71518,-95.7131,-415.56897,-339.17715,-69.7352,-447.50653,-363.8017,-65.93218,-146.74773,-38.197353,-460.56018,-496.43607,-141.17154,-15.318345,-469.3651,-461.8834,-98.05244,-35.26428,-461.44095,-358.431,-263.23907,-483.30783,-240.84431,-278.8293,-210.5309,-219.0456,-20.182661,-198.81998,-210.63419,-431.5038,-318.994,-367.4099,-253.67589,-433.1395,-58.993313,-327.2502,-280.59195,-209.96524,-348.66577,-95.44716,-20.638552,-413.0402,-124.07337,-168.92522,-301.26227,-124.56443,-410.94888,-191.21284,-481.2386,-434.17288,-312.268,-279.94763,-21.652908,-216.46373,-183.31361,-460.36203,-285.37582],"im":[393.2828,65.21784,56.013763,114.32194,200.1716,232.02954,33.18203,191.25793,158.88205,325.88867,311.4517,205.87335,381.6537,234.77032,317.5301,180.30017,498.70065,352.0981,165.6077,166.17805,331.00095,22.089886,165.70653,66.45207,116.66785,23.32515,375.77362,23.31567,112.485306,297.68918,437.19266,169.17636,391.32083,129.33337,45.345005,325.29352,24.61988,287.90695,382.1842,438.36246,395.7036,103.71742,222.81824,457.89273,40.155815,5.6755586,99.71622,263.73865,161.58813,492.06424,131.79764,442.78955,161.64575,171.75255,337.33807,443.41028,407.49417,132.09283,128.12492,302.19577,363.68423,239.87378,433.26,185.37366,94.55362,488.95667,191.69836,142.9912,21.25089,91.4594,143.89575,395.42807,452.74408,460.8962,411.25977,250.41591,431.38757,174.92592,190.09497,90.21884,406.49368,138.34937,134.87405,187.74847,403.45053,187.74318,53.63215,324.61264,62.146854,465.2123,12.35726,478.57495,244.11777,466.8734,422.49026,495.51205,481.0793,233.80891,241.03845,318.36115,106.012215,73.0643,123.97383,287.38516,459.54324,248.72073,365.72925,352.36328,357.7981,226.01543,9.917364,176.75568,57.06946,473.84805,239.80083,17.99023,214.36865,51.496304,469.33987,287.59744,224.52345,113.26589,119.07504,261.4348,41.598057,267.14194,465.11288,54.989647,422.63153,359.97247,306.8953,160.81523,329.40567,414.402,286.7883,466.45346,283.31653,182.46777,452.75854,208.99101,322.4421,375.26157,344.71497,99.359344,85.90454,352.2686,119.394516,228.00584,332.5628,44.416508,21.649336,275.0473,381.19946,371.04263,329.58356,368.63745,431.24057,487.11545,453.38144,30.89521,280.8584,379.6649,149.72318,120.36338,135.54741,98.21702,177.22954,393.7397,15.047926,300.58237,344.48004,199.88142,205.70691,256.6671,265.05902,395.0973,47.424534,64.051155,211.39378,139.5266,399.87677,259.8106,77.00642,359.02014,190.75243,141.1801,485.05557,480.65146,263.92636,24.426617,311.91092,282.8035,260.6172,189.36348,36.874935,271.4734,381.23105,438.5724,487.30594,182.45338,376.97287,341.58237,350.9536,437.02887,157.02791,399.471,429.76038,71.62916,432.87823,120.60443,205.06717,9.332784,339.5761,96.428986,13.421514,96.28571,119.546974,395.0715,253.23517,90.747925,253.89291,357.18118,451.6549,30.016775,75.744934,89.05962,110.86115,392.35178,379.6114,327.16757,35.94466,235.72711,474.6109,48.71681,285.8996,318.26263,406.38104,149.8048,352.0537,471.5746,395.0136,7.976347,22.492643,258.35703,195.0643,257.12128,364.7166,262.13596,362.24258,407.02942,342.28296,446.35104,26.995512,373.06186,183.44716,323.97827,129.49866,316.33667,363.82053,257.52045,124.21199,418.14853,15.078389,107.82081,189.3786,425.73148,108.12462,175.88707,14.905872,388.58795,66.19525,380.4319,74.05991,161.79028,208.71133,218.27779,111.046326,84.3988,333.7859,170.28381,47.74681,241.14958,343.7655,315.09183,437.77786,328.6613,77.11479,59.236023,302.368,323.28912,24.041363,155.79591,69.77395,139.1923,436.42108,266.10797,161.02238,176.56776,3.8846126,77.60274,499.02383,214.68134,476.66815,283.79144,258.3598,39.228153,83.432884,43.79636,333.45026,285.47543,105.73339,2.937203,181.83563,227.18614,453.38828,134.95035,347.95374,397.39215,140.83052,23.561342,370.4059,346.81528,111.879654,109.1168,254.92592,471.70413,465.5512,18.56369,165.02715,308.0844,364.6437,399.09305,327.87952,497.04883,120.9715,46.5735,465.0161,75.480354,259.62195,139.12013,133.6211,48.480556,391.8005,72.4929,314.69772,455.2892,80.68127,56.041477,415.5412,11.662836,232.28888,374.88293,320.81708,82.28725,226.88612,308.5058,177.76372,243.80188,371.68973,245.22527,483.36115,67.60224,270.45587,366.03793,65.66495,169.72903,258.45215,444.68753,206.25311,222.9544,466.99948,287.7351,256.23404,460.1205,306.65967,472.81677,50.88373,110.90579,126.10138,439.14288,493.90982,266.15582,66.572014,174.14162,195.0665,85.912346,54.937885,435.64056,339.8282,320.61133,8.562618,62.350155,362.59988,101.25507,180.91774,125.86527,166.62689,140.52185,497.66617,482.93637,294.35986,474.0049,298.15323,397.5714,483.6284,262.9229,235.92458,189.2384,294.08405,359.10284,88.18942,395.44012,415.32532,306.91028,248.7579,301.21915,54.079704,283.55853,92.39705,61.14862,279.7455,275.0324,245.12607,288.11615,480.8868,393.9855,409.32544,153.22462,446.3041,215.57713,153.07565,460.23224,1.29157,389.55853,164.46005,231.50294,131.3677,405.89572,264.45804,419.63434,386.20914,412.4813,223.17343,459.52414,216.17761,286.44214,295.2347,62.70033,477.99527,251.6215,306.43082,7.767712,108.64078,468.84915,57.491974,463.27393,69.61826,37.746723,101.29994,223.41025,262.43417,375.9789,376.50443,436.3062,214.99332,292.99673,137.8897,187.54764,435.941,24.502298,423.4684,394.7619,452.02286,436.9883,482.17642,322.56705,373.15585,129.26266,247.4245,489.32205,99.125114,83.393036,453.97644,122.201454,440.4277,220.47325,61.89972,347.52682,435.3203,214.97113,409.18213,183.60974,453.1403,196.58917,255.42094,172.57184,228.09029,444.9269,252.85027,132.53891,55.833965,189.56787,165.64174,117.74753,400.0993,495.5518,340.67224,336.82928,200.8938,293.91248,220.03426,227.63747,461.84442,304.70157,263.79694,399.66895,229.41075,26.78325,434.20743,383.28735,195.49875,486.61423,453.09567,61.165726,311.29044,52.5327,251.0876,435.90363,305.9142,122.527824,36.784157,99.779884,74.698105,173.402,200.00714,212.15918,330.62192,267.4667,15.18215,307.83212,485.5928,283.17853,293.87927,12.734888,396.9481,225.0161,335.82745,422.16,485.85156,218.5347,383.89172,130.2465,141.94629,368.41122,299.93243,389.6959,162.54427,327.33047,416.24744,48.299114,110.67978,149.37312,102.53644,462.8563,392.0325,107.60141,346.02106,226.88925,379.4017,366.6663,498.13855,172.94905,266.50873,445.47998,64.13687,415.19858,389.55685,266.1243,63.286976,396.00854,102.26872,93.50006,185.27847,160.04128,445.35526,483.2614,91.7042,370.11816,181.1436,51.06816,251.74115,461.96948,2.1496177,426.66577,382.1098,65.155754,300.9239,123.03123,196.5076,141.46341,13.598735,371.3343,136.3349,258.4777,308.74713,342.47336,480.72272,269.20993,302.74362,140.66731,471.02484,39.69961,402.4761,478.8329,149.49744,392.80194,371.8973,436.04404,448.25912,184.68262,330.86465,389.6916,306.49338,1.3191885,74.99806,430.65753,369.98798,358.55936,380.96945,93.22012,126.10233,348.74316,386.28976,492.2233,241.33278,106.35127,65.6377,223.60367,184.4053,6.785319,226.44933,51.215023,177.32953,0.32798555,73.69357,359.2198,298.4178,412.95334,341.89716,111.72774,372.1313,41.252743,376.53452,435.87497,440.05435,38.41672,274.88177,193.04497,291.18085,134.9272,230.59506,162.76788,263.7547,338.3505,429.6744,321.6753,29.886246,52.774815,103.33726,349.7236,464.13876,314.79538,438.28647,450.3542,229.61063,176.66208,247.37704,24.776102,434.16528,110.93977,181.0412,20.746855,351.64713,85.38499,53.153557,301.23923,306.21384,0.3037903,29.728983,75.80137,349.17813,50.98029,282.8648,230.10413,172.46375,167.55322,60.536728,261.58264,383.73187,238.39009,368.68954,486.26395,58.044,123.483635,431.31836,420.4292,116.37026,60.075382,319.36322,397.0024,179.905,188.14464,58.771347,417.06046,309.21823,411.0211,427.4367,386.74323,261.89377,24.948223,476.54587,346.84586,473.56586,463.0079,212.96085,470.43536,130.15874,301.17252,257.20517,358.3238,208.01712,403.71185,351.9983,374.89197,90.69404,300.00333,280.3618,420.2597,43.050175,14.116062,425.45743,235.9526,485.36737,119.11208,98.86478,329.4007,393.1031,130.35521,244.85074,114.86205,281.00983,337.6009,477.1109,489.11227,287.17816,301.8048,304.75693,199.55307,295.40454,295.21503,366.70477,464.88412,331.33167,436.05966,284.17526,164.31616,168.53282,204.57698,244.15187,152.41515,188.04169,4.233546,5.02078,438.5329,451.81302,277.28793,111.18518,448.1354,41.7161,493.432,409.09525,476.0862,188.114,168.23131,51.815945,165.82524,288.42075,308.66757,236.1075,315.5916,54.860527,223.59203,382.15353,200.20757,12.323113,406.54898,381.6298,244.87842,149.10374,18.35178,473.5786,219.37776,454.93048,423.83994,250.47652,19.250708,269.22443,30.538408,277.67874,28.821564,278.7009,185.97974,138.14662,483.89145,110.28325,473.20844,498.0407,31.576921,69.971924,284.13895,396.566,39.846535,144.44122,368.6241,435.9254,204.54655,405.28537,174.9058,408.24756,18.919731,461.56134,486.31943,105.910835,151.4541,7.641124,160.31883,489.23352,111.363365,203.475,10.525387,260.288,71.36584,31.418003,442.76968,230.59113,395.5564,418.9974,27.013958,348.8146,126.20578,200.89243,169.3469,363.38806,192.09946,238.19499,216.77194,474.00204,327.2356,244.08345,233.05125,304.99063,169.62416,468.19315,362.94135,195.85986,248.33978,423.85297,68.82496,8.723328,309.58484,112.872925,471.01096,235.4943,271.05066,121.228355,17.405487,384.25388,113.92891,96.6973,178.53625,234.94994,325.15228,324.38583,65.10237,344.98688,231.79068,133.83292,243.20755,107.95485,6.3649526,450.8712,127.03761,19.78284,302.43774,31.826431,284.63065,255.81213,300.7943,73.77449,149.5766,94.74716,262.57703,472.21707,452.26105,383.1489,388.2333,329.13754,108.81401,7.267187,146.08667,461.3737,253.40434,401.93182,307.44543,151.62514,356.32162,296.05637,481.99246,169.34918,8.347161,290.78763,416.3273,60.180267,395.90286,157.41737,457.85403,278.1228,157.14864,385.2733,252.39607,54.411903,108.483604,84.26455,79.86041,61.806065,203.75606,387.19986,221.31326,449.34592,379.46387,136.46257,248.212,65.92244,28.659714,286.94937,157.94026,260.0034,396.27606,112.47196,13.082082,13.900622,326.06744,344.30295,210.55318,184.01898,187.9047,402.35974,3.7747774,380.26117,307.5824,192.45801,94.97583,433.26102,299.00323,213.11687,437.78308,281.51105,225.04225,139.5589,287.5513,273.55914,425.73007,156.94911,285.33627,248.41632,387.56635,390.24695,367.7755,56.76685,214.85431,263.21884,61.629932,205.38661,123.48782,282.46,119.943245,403.7211,74.654076,428.67532,471.6645,366.6036,291.7144,389.59174,313.36212,395.5945,82.87396,165.60207,29.17603,428.93655,27.705751,20.686253]} diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/test/fixtures/julia/positive_positive.json b/lib/node_modules/@stdlib/math/base/special/cphasef/test/fixtures/julia/positive_positive.json new file mode 100644 index 000000000000..f8a79b0a9a94 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/test/fixtures/julia/positive_positive.json @@ -0,0 +1 @@ +{"expected":[1.1612276,0.6451348,0.72842634,0.8179963,0.73315537,1.3578752,0.2095056,1.2039645,0.4647845,0.8460703,0.8749631,0.16617481,0.405893,1.1166097,0.7589894,0.32850108,1.4938602,0.7249459,0.8062763,0.7990624,0.28185388,1.2526964,0.8063783,0.6449273,1.090369,1.4569563,0.5869736,0.19451258,1.4274219,1.4120204,0.9061977,0.96170026,0.42861983,0.77547807,1.1830863,0.9459245,1.456953,0.86398005,0.07764831,0.54490674,1.1788814,0.22169657,0.21796346,0.9245923,0.8980899,1.1560569,1.0422212,0.086727686,0.29675123,1.1371866,1.517181,0.43902642,0.7646671,1.4659691,0.3024786,0.5118959,1.0302712,0.6252942,0.41978264,0.30931908,0.7900689,1.0498203,0.6814861,1.547996,0.26725897,0.33898205,0.31508553,1.3413134,0.94141704,0.5146341,1.0294088,0.84036285,0.4680955,0.41544902,0.62099576,0.26393443,0.073456466,0.5008939,0.4825889,1.5605316,1.3456554,0.7589362,0.8173363,1.4687141,1.2204019,1.2638533,1.2827485,1.1027709,1.1388701,0.9202802,1.1593797,0.56224173,0.40301833,1.0459678,1.2684555,0.5574517,1.072154,0.12030149,0.8167586,1.1382687,0.97241324,0.35430756,0.94982135,0.5722171,1.1088517,0.32914278,0.7064133,0.94851774,0.44735166,0.3184622,0.11221657,0.9583609,0.17722033,1.0369959,0.13693097,1.1179212,0.89714015,0.91451806,0.4418281,0.9005892,0.30658308,1.5004535,1.1595764,0.55515766,0.8703529,1.4321983,0.29893357,0.28206423,0.7361549,1.1932474,0.98327965,1.3679757,0.22974406,1.2827421,0.06650186,1.3838824,0.64734805,1.5175576,0.66966486,0.64346737,0.1857367,0.41954377,0.6697196,1.3310671,0.5720872,0.4010004,1.5326259,0.18130006,0.40069318,0.3301737,0.81164044,0.9254922,0.29220814,1.5198867,0.4503227,1.2337617,0.2587878,0.6878045,0.058585815,0.93179643,0.47608048,0.8479876,1.2282537,0.6842055,0.7529158,1.2157935,0.50565004,1.5158917,0.97983277,1.320604,0.8921635,0.54510427,0.6611575,0.8977647,1.5399958,0.266913,1.1684211,0.02400983,0.91012627,0.90793866,0.950876,0.9298128,1.4956869,0.61030906,1.0841435,0.68998784,0.8076352,1.5112859,1.5043249,1.0269967,1.4935464,0.67405903,0.23354295,0.40872717,0.1944567,0.96919346,0.54659384,0.9736418,1.2715243,0.5993614,1.3449711,0.8940412,0.09046867,0.39575702,0.57650876,0.328533,0.21958399,1.5655856,1.364865,0.4336689,0.7600605,1.1804142,0.27819428,0.41638374,0.9394791,1.1458218,1.1253996,1.3636595,1.4937929,0.34956053,0.7947187,0.7459583,1.5418482,1.267246,1.3695748,0.4520429,1.0047514,0.96234953,1.3104123,0.5522923,1.3400164,1.1910932,0.5196636,0.36236066,1.2688854,0.024333056,0.72947574,1.3350589,0.55854005,0.9473495,0.90657556,1.546663,0.9471009,0.47959876,1.4143839,0.48737842,0.55563354,0.8543899,0.54588413,0.8270822,1.3646874,0.25996083,0.67892754,0.78792274,0.5428205,0.019016089,0.6715789,0.6731845,0.65529156,0.036256377,0.022471096,1.2972764,0.80231,0.8392371,1.0301248,0.5078328,0.8331503,0.4011432,0.7603797,1.1658458,1.4895791,0.48382837,1.1029345,0.2842562,0.39970586,0.3639588,0.5709474,0.79831177,1.1498787,0.70464003,0.96527046,1.4597228,0.4018977,0.77229244,1.3784926,1.2188647,0.05269713,0.44329166,0.8097811,0.3505732,1.114964,0.6394563,0.49222755,0.70884067,0.015214513,1.2714885,1.3745155,1.3627347,0.97657585,0.2449462,0.9063876,0.60428476,1.208888,0.64105844,0.84878904,0.17339516,0.22407861,0.94343674,1.3660166,0.5253812,0.41340828,0.5694081,1.005282,0.23943079,0.4694203,0.6727464,1.1606802,0.39121965,0.74890304,0.11045576,0.95469177,1.085609,1.4810952,1.4590694,1.501678,0.23611243,0.8780782,0.9309226,1.4388425,1.0696374,1.2557299,0.7698844,0.5557293,0.12979765,0.61956483,1.4535729,0.62860006,0.46150258,1.4573518,0.5102639,0.29113325,1.0868844,0.27531925,0.13381253,0.97601014,1.525631,0.11737397,0.38861006,1.1177847,1.374506,0.2118288,0.2659959,0.21019581,1.1767868,0.10835013,1.5661799,1.2397543,1.2016606,0.70552677,0.40493867,1.044805,0.24739526,0.9663252,0.9617524,1.5691465,0.10771707,0.80782,0.111097045,0.7211525,0.63005525,0.093580335,0.15322572,0.99910206,0.78981656,0.9667694,0.3165711,0.83685446,0.11764483,1.4469876,0.48644656,0.45770982,1.5406691,0.608361,0.694717,0.8418073,0.4059376,1.088297,1.4823501,0.52507687,0.057463296,0.61649454,0.46256763,0.7600105,0.7366525,0.74273235,0.77814865,1.5233283,0.81520313,0.055951495,0.22753245,1.2904775,0.09208399,0.37750667,1.3210247,1.4045924,1.2803514,1.0815151,0.85622406,0.93222475,0.84469986,0.9450493,0.6293307,0.041314982,0.8512731,1.4972204,0.68649524,1.4709532,0.758584,0.94104224,1.509842,0.8862827,0.51765704,0.9799428,1.1052802,0.9991845,0.6651989,1.557898,0.6590794,0.87221056,1.1362617,0.38759223,0.66860616,0.07973347,0.20701079,1.0686405,1.305189,0.8139511,0.3440311,0.7493339,1.3578715,0.5031767,1.4178607,0.5824411,1.1516426,0.03781828,0.699963,0.59945554,1.365044,0.5454563,1.3664149,1.1370262,1.0516857,0.28153497,0.20117188,0.7389254,0.24338144,0.9473771,0.42906782,0.4342992,0.5912442,0.54897785,0.7945343,1.032436,1.5215275,0.47123924,1.5106252,1.2082682,0.66063994,0.83404046,0.100371405,0.043106984,1.2387304,1.2055391,0.043829396,0.2567852,0.7800546,1.0449746,0.36723202,1.0045903,1.1554813,0.108965345,1.0534012,0.7012706,1.2644907,1.3698574,0.65149015,1.1266587,0.2108836,0.93961644,0.8388016,1.4415982,1.4095787,0.929004,0.48302528,0.6093175,1.4733995,0.9655765,0.17770344,0.33527857,0.18841882,0.6767816,0.83986837,1.3734789,1.242049,0.63436985,0.7995162,0.83475566,0.39791083,0.9992105,0.89415795,1.4571947,0.9291732,1.3063574,0.21427828,0.61081237,0.04398009,0.025365144,0.5688295,0.37217042,1.5115695,0.84513676,1.0319428,0.052618142,0.2482489,0.011626128,0.15349321,0.5490579,0.57979715,0.96852267,0.80778223,0.75037855,1.4326183,0.18377584,1.166664,1.515083,0.22441141,0.2844331,0.3916016,0.42430264,0.107442245,0.67468333,0.25590298,1.5600283,0.15939818,0.7377819,0.5781146,1.3869286,0.0921912,1.4042376,0.8314007,0.73634195,0.7862272,0.5795593,1.1285881,0.6404079,0.9454601,1.150208,0.6348448,0.23906584,0.1007627,1.3529476,1.3541512,0.36924464,0.25703314,0.06233277,0.8457679,1.194556,0.96147203,0.042283628,0.5082717,1.1634158,0.44449416,0.9487603,1.1202643,0.51732725,0.64391243,0.38261232,1.4847116,0.6452208,0.8049724,0.47198123,0.7488735,0.41773912,0.71078527,0.53185743,1.507776,0.8032425,1.402602,0.61735344,0.9172226,1.1785824,1.2479696,0.1933851,0.993906,1.1249093,0.7299115,0.22050257,1.1593786,0.7083128,1.5269806,0.04569781,0.9139257,0.98956805,0.5680858,0.63120115,0.039309412,0.8804067,1.4296607,1.392822,0.8563964,0.5930578,1.3726393,0.43426514,0.68148434,1.3517432,1.1631209,0.7274471,0.62067544,0.8479897,0.7877406,0.79506,0.7555266,0.78751147,0.9253991,0.2631734,0.53350204,0.7272898,0.5315302,0.2564655,1.386754,0.39035842,0.970032,0.7793774,0.50361276,1.2749572,1.1562737,0.1831243,0.60272586,0.3448973,0.9178626,1.0829455,0.34752336,0.6757885,0.07771737,0.08840228,0.66464967,0.55392176,1.0085721,1.5271297,0.06977779,0.015464161,0.7305103,0.5803474,0.7427259,0.14130262,1.539056,0.11166167,1.128263,1.0647594,0.99866503,0.090686,1.4123961,1.212122,0.33875215,0.32063493,0.1336903,0.9675435,0.9897121,0.8526721,0.84396964,0.4219847,1.2695073,0.78629357,1.5192181,1.1331009,0.8396398,0.39104053,0.3201596,1.325297,0.5290696,1.0060501,0.7986271,0.6779119,0.10174756,0.5007137,0.90230167,1.3256791,0.7267226,0.19225705,0.26836562,0.084018916,0.7132438,0.2591422,1.2728255,0.9688001,0.403687,0.38040355,0.77133137,1.1377647,0.5946746,0.19907561,0.31695423,0.08398762,0.93749034,0.37052056,0.6464317,0.18772963,1.1200471,0.7620346,0.81306094,0.713598,0.6254906,0.5583599,1.1241678,0.24136259,0.81483,1.0234052,0.8868371,1.5462506,1.3324206,0.7652738,1.0817038,0.7422682,0.885484,1.341052,1.285877,1.0925354,1.127895,0.098767705,0.5865239,0.61740065,0.2852353,0.2931477,0.72866166,0.35777906,1.5565006,0.24797988,0.27699634,0.5130228,1.1514275,0.8011621,1.0349094,0.846508,0.25987753,0.49576715,1.207251,1.0022368,1.0233233,0.71200734,1.3459961,0.25052014,1.1780158,0.53580624,1.4255209,0.5089442,1.1725264,0.63009584,0.2671842,0.48699743,1.4410834,1.018138,0.6232331,0.61622334,0.36569843,0.5776225,0.73967636,0.8310171,0.28924325,0.90565336,0.30759665,0.5345245,1.0798314,1.3809857,0.503666,0.2289572,1.1950536,1.5255954,0.98382866,0.7510898,0.97335815,0.50369036,0.14642552,1.3158875,1.4756507,0.029114604,0.9630413,0.35132644,0.50464666,0.5735989,1.1905922,0.1735698,0.2327491,1.0599568,1.1561027,0.79986167,0.1142548,0.96750313,0.97681284,0.7496268,1.562689,0.6482718,0.7838736,1.4617524,1.3079895,1.2461221,0.022363529,1.5558687,1.3013802,0.42150378,0.9454601,0.8447971,0.103231914,1.2822229,0.842876,1.1588855,1.1670116,0.9535773,1.0935073,0.98101765,0.3381832,1.0588392,1.4541408,0.9851454,1.5611836,0.3991501,0.65496254,1.3887563,1.4339762,0.18256235,0.38627785,0.869471,0.661741,0.95813817,1.3335358,0.6201961,1.0579616,0.8220931,0.8518735,1.1422848,0.53388596,0.77263236,0.74698794,0.12533948,0.9895462,1.1140296,1.0750399,0.88823587,0.45857236,0.59298265,0.6713227,1.0297996,1.0474052,0.6125406,0.35784096,1.3792859,0.9062837,1.5566257,0.87495077,0.78448504,0.75667197,0.9819871,0.8164962,0.7211553,0.47174084,0.7617563,0.93337834,1.4533341,0.6816684,1.2255733,0.7617542,1.149457,1.1023266,0.39688367,1.0789719,0.92442846,0.8915748,0.40940487,1.1489044,0.41013405,0.8825149,0.8931985,0.8974649,0.25679937,1.3945466,0.3085329,0.5163451,0.8725774,0.5611341,0.7545434,0.29239866,0.12243522,1.004666,0.53931344,0.7373078,0.18125334,0.7037784,1.2824674,0.83390146,0.12774295,1.4007018,0.3854213,0.81176674,0.6817367,1.4374967,0.112837404,1.1408244,0.9466555,0.71469676,0.67594016,0.27802825,0.28730604,0.43295538,0.7518368,0.50910366,0.8020434,0.9707518,1.553684,1.3181428,0.20392324,0.513192,0.066997066,1.1717696,0.049666964,0.5508067,0.93587327,1.0715759,0.09405872,0.5623597,1.3236978,0.36642918,0.15392767,0.73365796,0.1583836,0.8731802,1.1358316,0.5590982,0.9834275,0.55912507,0.7844342,0.3969287,0.03970564,0.6333096,1.5235542,0.055888295,1.2840683,0.3416215,1.3446128,0.30805564,0.38401216,0.75093913,0.11326029,0.9871448,1.042861,0.76800346,0.094994426,0.760581,0.63973576,0.36750472,0.38609958,0.3468239,0.61586237,1.0241189,0.27189302,1.3396885,0.62984216,0.69171816,0.16459493,0.8346142,0.70950294,0.5584581,0.7621098,0.7317952,0.1831143,0.92690545,1.0806226,0.2458499,1.3907273,0.77659595,1.0110998,0.42823672,0.46539697,1.0491399,0.39311457,0.5671539,0.69256544,0.6990564,1.5561119,0.84213376,0.918385,0.78470135,0.79107654,1.099512,1.508067,0.117260724,0.7858091,0.7232397,0.74349284,0.025553305,0.91701704,1.4319263,1.0627491,1.3541846,1.514865,0.12685587,1.3443238,0.8267184,0.7585725,1.4606861,0.9955046,0.7280664,0.13731743,0.98103875,1.2585902,0.33131683,0.981875,0.63691676,0.76906776,0.6416882,0.6030976,0.44985807,0.8512181,1.3368464,0.3253682,0.84311813,0.75180286,1.3604043,0.7744619,1.4143796,0.8042501,1.5507272,0.06978821,0.5730221,0.9604292,1.0928938,0.8150285,0.64157426,0.6876717,0.56469405,1.549402,0.64445347,0.67496455,1.0219973,1.2312465,1.2909858,1.1575801,0.6523465,0.36904252,1.0467383,1.5526655,1.0964859,1.4627142,0.78175455,0.98335606,0.76086205,0.3829389,1.3662875,0.5473366,1.2320429,0.87136734,0.57414466,0.19701676,1.2555919,0.36057708,0.62689626,0.57493234,0.38823992,0.9835377,0.74422216,0.35410643,0.98634374,1.0571562,0.79749686,0.59420073,0.4800554,1.4564109,1.0059549,1.2750223,0.3364871,0.64245737,0.43151122,0.18336278,0.8937346,1.4216582,0.6964489,0.23281045,1.2616473,0.96182406,0.76888007,0.7008812,0.2830234,0.78642225,0.70984286,1.4332645,1.2343967,0.93467236,0.23607484,1.010422,1.4277804,0.39974296,0.4972664,0.7616369,0.66295815,1.2089753,0.14840855,1.1422788,1.312793,0.7408212,0.7095363,0.26423052,0.70595163,0.88761634,1.3382707,0.6030615,0.75012004,0.32570294,1.1833777,1.2377479,0.014073347,0.7715784,0.68630075,1.0243845,1.2280527,1.2023017,0.118907966,1.013762,0.8294995,0.83952725,1.3404572,0.89053833,0.9516657,1.1475401,1.061305,0.7870241,0.21092811,0.7670213,0.8176275,1.5367888,0.63333285,0.81128734,0.22899157,0.34591305,0.4783979,0.7641687,0.32105038,1.5641651,1.5573863,1.0089897,0.6106434,1.4922427,0.27638897,1.0339944,0.35406777,0.4791805,1.3545184,1.1952137,0.8445816,0.836296,0.4537952,0.56401116,0.40025127,0.7731676,1.5407574,0.4063466,1.2441255,0.6973378,0.70551157,0.8408461,1.4545202,0.7017521,0.46679863,0.8990116,1.1940485,0.8450062,1.460769,1.2585112,0.28923896,1.4826384,0.48362672,1.3055447,0.49894494,1.1712403,1.3418033,0.09965943,1.2571337,0.8188184,0.66791755,1.1711401,0.29859495,0.91169465,0.8425496,0.8352166,1.3909694,0.93389195,0.7237236,1.4668537,0.35524017,0.76437217,0.5824499,0.13140252,1.5107049,1.2231138,0.9417855,0.9417602,0.82934,1.2055153,0.28465602,0.87355757,0.91500866,0.980191,1.0155168,0.9226696,0.54478514,0.69727486,0.9852473,0.34150428,1.570276,0.8224655,0.4088171,0.66269416,0.3611197,1.5140816,1.0817027,0.34583855,1.1322597,0.9252516,0.8588593,1.1740276,0.66728944,0.8403029,0.489656,1.0914454,0.9661533,1.4978422,0.39891374,0.9104457,0.3007553,0.4427381,0.79192275,1.1909391,0.9815711,1.0231886,1.0970144,1.3035841,1.0712128,0.89810497,0.5641208,1.2301515,1.1873139,0.18794438,1.2110617,0.9459958,0.2610367,0.6945992,1.1489837,0.24079993,0.2283242,0.6906213,0.55305445,0.5945051,1.0540438,0.8277845,0.31075412,1.2965028,0.122581236,1.5593063,0.64680386,0.061795183,0.16378927,0.57957715,0.77103066,0.08779635,1.1855464,0.96060646,1.1521627,0.7037545,1.2490318,0.74056536,1.0931698,1.11838,0.5060461,0.049348496,1.159347,0.6032804,0.19019727,0.98819286,0.10579218,0.7942381,1.3306384,0.3220834,1.068073,1.5366497,0.3554114,1.4606526,0.81646544,0.31679076,1.3557938,0.650445,0.2328466,0.70460683,0.46859497,1.1786482,0.6971335,0.66904896,0.30631652,1.415045,0.8742512,0.62888503,0.73999065,0.9486589,0.45071882,1.0256859,1.450738,1.4551071,0.38746604,1.1058378,0.7990117,0.53459525,0.7922558,1.2165341,0.9393789,1.1999997,0.796673,0.16805325,0.7936524,1.0499921,1.4672244,0.4661443,0.039003935,0.6275999,1.5129927,0.18611264,0.84186125,0.7947264,0.1529,1.1943611,1.2892053,0.2251013,1.1194319,0.8502209,1.0731137,0.86427605,1.2786577,1.4410346,0.39193043,0.7719553,1.130447,0.0746256,0.20015052,0.4002763,1.0898091,0.3701168,1.0007964,1.0279169,0.7496492,0.47556478,0.77191895,0.7715769,0.21122639,1.0914863,0.82235605,0.35687128,0.90388477,1.0084039,0.22026874,0.115507886,1.1598985,1.3547399,0.50263554,0.7910981,0.4059923,0.83773595,1.4932053,1.0659741,0.7581148,0.27256313,0.36130244,0.43529552,1.3811321,0.037044443,0.9134806,0.897814,0.3570936,1.2767258,1.014495,0.45069507,1.0570885,0.5254456,0.9633926,0.391493,0.7528296,0.3926522,0.5259919,0.34447023,0.60499007,0.8576967,0.033636678,0.97835726,0.52219665,0.9311186,0.35836995,0.8570578,0.017885877,1.2775667,0.07551299,0.93753386,1.144223,1.5563847,0.096693784,1.5214223,0.75280815,1.5103328,0.35695714,1.0208498,0.013823247,0.5674699,1.478587,0.47906938,1.423661,0.7241653,0.8434462,0.36810377,0.77185875,1.4522811,0.7429249,0.25864938,0.9307907,0.7911457,0.55800384,0.7737154,1.0773435,0.569746,0.7850233,0.55880886,1.30154,1.0344441,0.48072347,0.21019773,0.446157,1.3773282,1.0504245,1.4575653,0.80028546,0.4513448,0.4676384,1.4699656,1.2026806,0.9427424,1.3486679,0.5143351,0.82461745,0.63913274,0.91613847,1.1412601,1.5131555,0.29601428,0.6575422,0.17750071,1.1934354,0.19387905,0.7318593,0.82763,0.8507491,1.0482166,0.8561843,0.86010385,1.0488178,1.1956261,0.2600154,0.9470521,0.17073601,0.70196366,0.6343463,0.7024198,0.9817576,1.5185812,0.7909814,0.8742493,1.2294633,1.2315652,0.8580194,0.292389,1.5177151,0.9830292,0.9902284,0.09464617,0.91012484,0.5140011,0.8008721,1.3502694,0.98272586,0.663869,0.7505931,1.3807458,1.488424,1.3585733,0.39065456,0.7693998,0.34368974,0.29497853,1.2744198,0.46414015,0.6156448,1.2143629,1.1900692,1.1477358,1.1118209,1.4666474,0.8120415,0.1852566,0.8003978,1.0926619,0.20288599,0.015689507,0.16725759,0.7118077,0.37361035,0.5908531,1.2207488,0.86477065,0.16204268,1.0763103,0.5816735,1.1064075,0.79494005,0.78656936,0.39257318,1.3283508,0.3744657,0.77089554,1.2142012,0.44255498,1.0483179,1.3417802,1.3135568,0.34162197,1.5206687,0.32056868,0.89327234,0.3791575,0.7156997,1.3412075,1.4393389,0.53930223,1.288568,0.27707142,1.2485005,0.45963705,1.2232283,1.1336591,0.7910107,1.1405729,0.66758525,1.3973613,0.047826976,0.465882,0.007494684,0.85333955,1.3588881,0.68433946,1.3164562,0.7302893,0.7534548,1.1366134,0.7472092,0.8260164,1.4489211,1.5405207,1.3393835,0.6246161,0.30930915,0.41283265,0.6043346,0.65687233,0.30943692,1.0804925,0.8592179,1.459139,0.27797532,0.34114558,1.0851126,1.1698827,1.5215942,0.5686175,1.0061212,0.59320796,1.0790553,1.1436605,0.5756641,0.49770668,0.7104235,0.59584296,0.25739318,0.05471967,0.3112637,1.0632001,1.512148,1.4134083,0.36418837,0.5455692,0.8202449,1.1219212,0.14206797,1.0910071,0.3584458,0.1003011,0.87701905,0.02922774,0.08971447,0.49641612,1.1262826,0.84122,0.7886819,1.2331846,1.2906002,0.81062627,0.35195905,0.84514785,1.1453712,0.5470966,0.60429376,0.66966206,1.2223413,0.84647506,0.7741931,0.8229988,1.341697,0.8712178,1.043781,0.4400419,1.303848,1.5043811,1.0380703,0.7387479,0.7361823,0.7939761,0.82584745,0.75598764,1.4328344,0.32549438,0.79921633,0.68260884,0.601717,0.8339888,1.3036643,0.739685,0.09499062,0.8374722,0.11105584,1.0791823,0.85774124,0.589978,0.73459744,0.8693249,0.9120523,0.82813746,0.98448455,0.55896264,0.8851584,0.5392503,0.029913852,0.75361437,1.2266448,1.1378489,1.221393,1.2046967,0.40607592,1.1329389,0.08819897,0.8408493,0.7617887,1.475685,0.6249293,0.34903374,1.2009833,0.5194102,1.5431448,0.8779439,0.9924222,0.07532627,1.3969533,0.82644486,0.7394013,1.4212044,1.2199614,0.965213,1.4490919,0.31989905,0.84615105,1.229104,0.97776777,1.4598304,0.34724566,1.3908572,1.4960966,1.2119902,1.359721,0.634143,1.0473031,0.94890684,0.58439994,1.3496953,0.9738441,0.2162594,0.78602207,1.0435683,0.7514591,0.5964408,1.3437371,0.0359096,0.43998677,0.8904887,1.468451,0.4917923,0.1777947,1.083029,0.7801579,0.47162285,0.23956524,0.11672313,0.9568727,1.3995049,0.61132216,1.0347677,0.2693099,0.6333195,1.3076657,0.71629983,1.3280203,0.79268974,0.19638331,1.4675136,0.48259398,0.8213312,0.04519162,1.2026091,0.97408026,0.81535804,0.24005844,1.4965482,0.26828942,0.5749948,1.2331307,1.5470054,0.37106162,0.4785612,1.1105624,0.77360344,0.49433666,0.13731699,1.2439395,0.935213,0.6857481,0.91809744,0.77084816,1.5451207,0.009996152,0.19024116,0.8944363,0.89676386,1.0241101,1.3065865,0.5305528,1.4018265,1.3959624,0.47803092,1.5608611,0.7295612,0.6471677,1.4266924,0.81938374,0.5341877,0.2502375,0.79749924,1.4425187,0.7536115,0.33426,0.2704026,0.8675979,1.4833745,0.22129424,0.7594487,0.8024447,1.1160985,0.07631869,0.8235331,1.3392498,0.48024824,0.26660097,1.0062884,0.5890751,1.0612386,0.5099095,0.6422133,0.371168,0.583567,1.0129333,0.21166854,0.89664316,0.9602387,0.3659219,0.9695047,0.41763115,1.3106656,0.9363245,1.2615395,0.564344,0.5263321,0.62753344,0.6394402,0.68633926,1.2005897,1.111896,0.7580379,0.025660506,0.5826977,1.5572206,0.09471569,0.400033,0.56250507,0.04652492,1.5387626,1.4423711,0.27237675,0.5594397,0.8935419,1.4983767,0.6954065,0.7444072,1.1692718,0.31670856,1.407341,0.6496633,0.8502621,1.5223137,1.3645855,0.40433905,1.5642166,0.8097615,1.1205828,0.6766125,1.1231071,0.8255524,0.76940745,1.2462072,0.8972947,0.88582724,1.1035736,0.34630537,0.96701133,0.78576064,0.2860713,0.33961603,0.68388706,0.8965159,0.47799867,1.5037478,0.7879688,0.8175293,0.15815587,0.9427906,0.008511598,0.6767185,0.35588688,0.7476606,0.082897,0.20738602,1.5203649,1.2752335,0.26915535,1.4363265,1.4769151,0.5349419,0.3316852,0.05978992,0.44441253,0.99419993,0.1408507,0.017786644,0.050506588,0.77176315,1.0677644,0.56308717,0.60494095,1.0666136,0.9028727,0.52478224,0.8840826,0.11705325,1.0311208,0.2998092,0.3887962,1.0169894,0.6248872,0.76036626,1.1663384,1.0781461,1.2135137,1.4053038,1.2240857,0.7809105,0.35949555,1.0852726,0.70935005,0.8202971,0.16452117,1.5412796,0.28777295,1.057502,0.87420887,1.01944,0.667608,1.0917796,0.64417976,1.2551345,0.6583096,0.64979815,0.1424483,0.6850846,0.42031428,0.6436929,1.0052899,0.95520604,0.5038318,1.5094839,1.3788478,0.9057765,0.33510414,0.80841166,0.42317757,0.054341756,1.0447454,0.53616875,0.18025751,0.89959097,0.86119854,1.2490658,0.18378296,1.4404244,1.3737499,0.47851235,1.2393575,0.784554,0.41108096,1.3979244,0.49730396,1.0368805,0.56647855,0.27860066,1.3174429,1.5504752,0.6223365,0.48441896,1.3530086,0.41384533,0.11251146,1.0207151,1.4035738,0.087558985,0.6055111,0.84666455,0.4859555,0.73930305,0.5196914,0.62704504,1.2574522,1.1886048,1.5552431,0.9561796,0.5944643,0.76279604,0.66160816,0.10390069,0.24022707,0.81574744,0.13674712,0.5733258,1.2204268,1.3504292,0.7054003,0.48307356,0.9323677,1.2777252,1.2938303,1.2571561,1.2959241,0.6902248,0.39103684,0.5703331,0.8248704,1.3604127,0.34642577,0.80870706,1.4164255,1.0211403,1.4610641,1.1676803,0.84494257,0.047759835,1.3481791,0.49564898,0.8559101,1.4370854,1.3374572,0.46125713,0.38143227,0.86940235,0.84588706,0.86570877,0.829518,0.19012834,0.7708978,0.5378497,0.12866573,0.84917915,0.24689269,0.16653675,0.30766022,0.94939834,1.0398762,1.4176555,0.6390161,0.6540899,0.1431766,1.0096381,0.5887948,0.9863876,0.7309008,1.0274146,0.0042874073,1.3619237,1.4653355,1.3568276,0.26677683,0.94860864,0.48369536,0.8128647,0.9745131,0.4148252,0.859952,0.6191425,1.1306336,1.032453,1.1024938,1.5175958,0.06097932,1.3841724,0.4691644,0.50561136,0.7055826,1.1438209,0.20642765,0.8924919,1.0741599,0.9143339,0.47518203,1.2994275,1.4114629,0.14115205,0.57235485,1.0314232,0.425812,0.32376775,1.4040297,0.043210246,1.2761469,0.7466029,0.8807322,0.98666036,1.3389397,0.65579087,0.050046362,0.0852886,1.0008637,1.3736392,1.0373828,1.1939524,1.0539962,0.71138495,1.2702372,1.4833366,0.6569494,0.9266559,0.6265353,1.5046915,0.9112473,0.87471724,0.8124159,0.47296387,0.78574777,1.3335116,0.17768861,1.3305248,0.67274225,0.49609298,0.94401956,1.0326402,0.8247717,0.77497536,0.48847663,0.25434116,0.85039806,0.58079404,1.4371074,0.5598493,0.4010284,1.5231688,0.93542176,1.3477614,0.32381257,1.4861537,1.237495,1.3214145,0.67881674,0.45821175,0.94926625,0.0024419748,0.53863037,1.435483,0.59644496,1.1213653,0.2997288,1.3255799,0.5411649,0.22485995,0.98705333,1.0611242,0.85188335,0.19409437,1.0921965,0.531008,0.9010484,0.44801795,0.922098,0.9642312,0.815797,1.2527469,1.5091624,0.9685393,0.09710339,1.5464867,0.9141251,0.83783907,1.4436355,1.403823,1.2665527,0.4946831,0.6371658,1.3857058,0.12711203,0.88366,1.1428205,0.7948182,0.7292891,0.5274901,0.87149644,0.95863765,1.3783818,0.29161468,0.653198,0.9060336,0.2252654,0.39657804,0.19328964,0.7643891,1.0455673,0.2972472,0.6647926,0.81126785,1.5334162,0.6866197,1.3298793,0.60888374,0.77761114,1.2280328,1.1850173,0.97889525,1.3240631,0.2894603,1.5146356,0.77661026,0.81846625,1.3111155,0.9122749,0.5301097,1.1084745,0.65288895,0.46718785,0.62951785,0.000696606,0.8630711,0.9340493,0.15848704,0.17205966,0.7039953,1.4764235,0.76329786,1.4464736,0.7221179,1.2548883,1.5295347,1.0039167,0.43802232,0.92194474,0.008482269,0.8156488,0.28475296,0.9975629,0.6746062,1.0994594,0.62154776,1.2287194,1.4066296,1.3631636,1.2018623,1.3763889,0.042949613,0.12778851,1.1582643,1.070206,0.6260361,0.9145559,1.0689468,0.9725723,0.42216393,0.43032113,1.0198121,1.1465046,0.54195535,1.3358014,1.392967,1.3606237,1.0158303,0.005979339,0.45051238,1.3294467,0.63757867,0.3290533,0.6823052,0.76854604,0.0475349,1.1593639,0.8340925,0.12006229,1.2505287,1.2803571,0.11901185,0.9391803,0.38574526,1.0503058,0.009034357,0.670812,0.5303147,0.5839421,0.8007586,1.0986305,0.43056133,1.2763011,0.28769997,1.2378899,0.38704833,1.0344284,1.115896,1.4281536,0.6282606,0.008984208,0.4127971,0.6090516,1.0997318,1.4210016,1.1856546,0.37695003,0.10285259,0.57888705,0.045080326,0.6170606,0.8473142,0.80625916,0.7452551,1.2302521,0.7529507,0.9589159,0.5590609,0.6857704,0.13470975,1.556886,0.78360146,0.46433303,1.223621,1.0396839,0.9077112,1.2204983,0.46335495,0.6830718,0.29010624,1.2338127,0.3631243,0.8932702,0.7626781,0.7745611,1.0612476,0.24204417,0.62506676,1.0445665,1.4221027,0.78631043,0.44430166,0.70395255,0.35741717,1.5650033,0.31612784,0.48839888,1.3833067,1.3761942,1.4438604,0.8397899,0.70748246,1.0495622,0.013649818,1.2397435,1.192979,0.35604486,1.0212175,0.6631632,0.18733375,1.1716254,0.86725324,0.51823825,0.5729133,0.17152788,0.8934295,1.0852859,0.21890174,0.5663668,0.6244309,0.7091387,0.8621616,1.10303,0.18562761,0.66917276,0.6417801,0.59411395,0.22196096,0.24826674,1.3189312,1.2562802,0.9263381,1.1913674,0.58507633,0.7138615,0.49688256,1.2615135,0.5942052,0.75440043,0.39465386,0.12976904,0.38162243,0.61019284,1.2728286,0.5933989,0.7844459,0.12351367,1.0340354,0.14266127,1.3039974,0.1627858,0.9566328,1.2328243,1.074026,0.9726078,0.9018822,0.5058949,0.8895169,1.1950576,0.16639037,0.3101233,1.2534539,0.75091106,0.40086693,0.13527618,1.3780447,1.0024635,0.18648088,1.447054,0.5818991,0.5806749,0.39163417,0.27122733,1.0310171,0.6101141,0.8485158,1.1433557,0.6709225,1.5298328,0.15785855,0.4367679,0.8741973,0.7712623,0.8216167,1.369525,1.1217574,0.7091293,0.9139911,0.29923642,0.9263344,0.33209875,0.2912564,0.22111326,0.84025365,0.0037248852,0.05815758,1.3406345,1.022664,0.29343903,1.3260031,0.77263737,0.6439694,0.82492095,1.312614,0.90408075,0.3328354,0.91352767,0.35135344,1.1223981,1.0956459,0.7502662,0.7330781,1.1197022,0.4696331,0.784273,1.0919324,0.8538683,0.04579588,1.084451,0.6537974,1.5128099,0.8481204,0.23455396,0.26070526,0.48262775,0.6287324,1.0814998,0.40848023,0.81024927,0.97656524,0.51601493,0.9042373,1.0398235,0.5741462,1.0580856,0.89475214,1.4258281,0.9134298,0.43259698,1.3121953,1.4995413,0.39913583,0.7011665,0.98331696,1.4809823,1.2909634,0.06623693,0.71314967,0.5991738,0.9591383,0.31432667,1.2221984,0.19184646,0.08005671,1.1502148,0.37293226,1.137635,0.61812437,1.1696049,0.7621703,0.42619428,1.2147751,0.4981567,0.39519686,1.1208487,1.5515543,0.43294498,0.8910563,0.70059454,0.4065722,1.1295071,0.5769533,0.9904479,0.24289061,0.03658152,0.5280583,0.5783899,0.6808289,0.060599755,0.7968482,0.9167247,1.3901579,0.73974764,0.23110919,0.6177776,1.0162015,0.876013,1.3016465,0.62654006,1.3016484,0.8079985,0.29899758,0.6025203,1.1076099,0.92620623,0.4763486,1.5351403,0.54189754,0.8876696,1.255744,0.79166275,1.2600188,1.2727449,0.6849607,1.5034704,0.98218673,0.05207549,0.4890069,0.5370825,0.7608999,0.5280307,0.77234334,1.3884531,0.9550736,1.1321281,1.241564,0.14025721,1.0930544,0.55451244,0.66469127,1.2027473,1.1786362,0.8416168,0.19737543,1.411592,0.08368742,0.73528624,1.4470832,0.6982798,0.30731478,0.3263842,1.0878022,1.1180693,1.4678425,1.0086405,0.38912016,0.6588516,1.0453751,0.7458183,1.2452545,1.1874614,0.015182845,0.79227996,1.1422418,0.7755374,0.35398868,1.2581903,1.4518887,0.14130859,0.4734476,1.0536654,1.3052933,1.2345309,0.43376854,0.66626924,1.0618329,0.70558417,0.08014051,0.86950666,0.49397415,0.1452183,0.797189,0.6318584,0.21642001,0.488702,0.5361288,0.70319307,0.8409359,0.812685,1.0005196,0.38849905,1.213634,0.8139147,0.83539015,1.4576855,1.2052686,0.030348334,1.2764659,0.71680266,0.054252505,0.29951432,0.5124662,1.3947259,1.2623725,0.3982699,1.2534647,0.73321754,1.3862674,0.76335645,0.54559284,0.6363122,1.3055044,0.84037465,0.1898393,0.35542995,0.3064946,0.11467777,0.171222,0.8562423,0.6848208,0.34577984,1.2260779,0.89849263,1.1974645,0.43685958,0.5575502,0.23514612,1.0449159,1.4646242,1.1803459,0.039624926,0.20912817,1.4524136,1.4856747,0.52823067,0.40672874,0.3417447,0.2523666,1.421881,0.47282487,0.04099643,1.5526556,0.54223746,0.49819285,0.027499912,0.92517185,0.2150492,0.5823506,0.072378956,0.72301227,0.4460834,1.1075844,1.4667232,1.518072,1.1746079,0.5410608,0.87619716,0.23293036,0.29773197,0.854496,1.0992473,0.7588803,0.58708423,0.779918,0.06959282,1.2083325,0.5147108,0.653261,1.5476847,0.9688535,1.218933,0.0921187,0.40607196,0.07801018,1.2517363,1.0626409,0.65984344,1.4410661,1.2400318,0.6748683,1.3393967,0.19809528,0.29678255,1.5157195,0.52393097,1.3167908,0.52748704,0.74007404,0.082650974,0.95145744,1.4583124,0.28341296,0.8435778,0.5786046,0.5568489,1.490396,0.7186901,0.8980961,1.3169541,0.73721296,0.6926094,1.2047161,1.3501759,1.3977854,0.3856435,0.8281471,1.5407671,0.10670201,0.556702,0.34651494,0.59782934,0.94125,0.9702753,1.5393596,0.64483917,0.9297271,0.42773655,0.79902303,1.523098,1.2614193,0.12215455,1.4113829,0.7728191,0.69006383,1.525487,0.19727995,0.7229657,0.811385,1.3929703,0.3293935,0.66768396,0.7909658,0.37238002,1.2302444,0.42878264,1.5394707,1.5326704,0.674248,0.4347918,1.1325669,0.5311066,1.4069738,1.3124907,0.45736882,0.31207564,0.21640374,1.224977,0.8627568,0.53783333,1.3477571,0.46619177,0.7137922,0.73703265,1.0285343,1.3173635,1.2303212,0.341337,0.9574126,0.282729,0.18459873,1.2885108,0.64401084,0.5490722,0.0064472337,0.25163734,0.6897507,0.5448042,0.4616891,0.09373219,1.0380396,0.8334365,0.83439595,0.65899026,0.9314818,0.19680788,1.2802987,1.1944654,0.8266248,0.6211548,1.2036897,0.69383967,0.6295395,0.51934355,0.8370333,1.4323483,0.7158712,0.1797805,0.9871018,0.9247261,0.3036381,0.9964984,0.38166994,1.4581436,1.3252062,1.406301,1.3908924,0.9463072,1.1252308,0.6409581,0.80237156,1.3013451,1.4027498,1.5511082,1.2108743,0.85378516,0.34382173,0.4363779,0.50589675,0.14184555,0.21488766,0.65552104,0.52363205,0.94637245,0.19328852,1.0782636,0.83906597,0.20257616,1.3697206,0.325203,0.8768335,0.16266397,1.2757938,1.5150683,0.28766084,1.0012358,1.5534505,1.4428531,0.44222122,0.8073577,1.3871454,1.4146489,0.9244719,0.31929693,1.5489413,0.52518296,1.433642,0.15139882,0.7162354,1.0970234,1.2622907,0.29449666,0.23994943,1.3596027,1.0738659,0.87324226,0.044438727,0.3171021,0.07223206,1.5053726,1.1524779,0.79732084,1.1727036,0.47559926,0.8077749,0.9285728,0.5564502,0.9671097,0.10457706,0.22806059,0.78886247,1.1398243,1.1574799,0.9543997,1.0847911,0.6918666,1.5389901,0.8030601,1.5271068,0.9101081,0.30435288,0.72282696,0.49722064,0.39309096,1.0545017,0.83788085,0.7246484,1.4622052,1.2123852,1.0531558,1.3061962,0.71332735,1.3795371,0.8858997,0.32147565,0.7287182,0.6293529,0.81806004,0.33291656,1.3694686,0.4565069,1.1348765,0.2951289,0.983209,1.4583397,1.3800253,0.11540054,0.6231709,1.4052031,0.47635502,1.5059069,0.6034037,0.1250689,0.85649943,1.4381405,0.8250178,0.5868877,0.5981823,1.5529177,0.5009677,0.83697796,1.4271202,1.297008,0.8860158,0.028826892,1.001306,0.51221913,0.15113254,0.27544573,0.2539247,0.8075886,0.35857424,0.0234486,1.2079028,1.2482324,0.46737465,0.74039537,1.1099057,0.37484434,0.24870105,0.5953931,1.132888,0.8622344,0.70603216,0.40682518,0.67543966,1.4367172,0.10999453,1.3132346,0.40479472,0.49362954,0.35451305,0.52174485,0.30754396,0.6484991,0.29449958,0.87083066,0.40947235,0.270853,1.4935366,1.3501226,1.1876471,0.917355,0.56864345,1.2504615,0.42628223,0.7252894,0.3261906,1.5019627,0.75992787,0.44781917,1.4194613,0.87214977,1.3387057,0.69865364,1.2051414,0.9816944,0.10136412,0.85966074,0.75044656,0.94622546,0.65629876,0.58171,0.9583993,0.7935707,0.77801913,0.6760576,0.36428908,1.258414,0.36690134,0.7136614,1.3591106,0.88753873,0.633435,0.5639555,0.7907554,1.012611,1.1191506,0.70380425,0.45527276,0.04011472,0.9464902,0.20806737,1.2017335,1.2925155,1.1338403,0.4918407,0.37367633,0.3461151,0.3837406,1.2215799,0.9119776,0.9527899,0.6039611,0.6474384,1.437988,1.254163,0.7514917,0.3751565,0.0840479,0.5496013,1.2641373,0.8661233,0.41669816,0.3163085,0.083638154,1.5528985,0.7723862,0.41408238,0.6769319,1.4148041,0.66810346,0.9162096,0.85009354,1.2845013,1.0845731,0.828649,0.652823,0.29424688,1.0971563,1.0719998,1.2985101,0.3274821,0.5196623,1.0642364,1.3107581,1.1176606,0.65544176,0.3608713,1.3743311,1.0960631,1.1044567,1.5502069,1.1255828,0.5954509,0.93729264,0.65334904,0.25774923,1.5606185,1.3836437,1.4202754,0.20231925,1.3279357,0.49381402,0.80423903,0.89447767,0.44166514,0.015720103,0.94972396,1.2079644,1.0511751,0.16224535,1.420537,0.37026134,1.5484834,0.86761695,0.20066418,0.97507787,0.6218908,1.4580566,0.019319631,0.82940805,1.5546439,1.4777313,1.0960348,0.7277803,1.463054,0.86075497,0.52886015,0.78480095,0.43904135,0.73784685,0.034555685,0.22028504,1.0866765,0.85682154,0.9115103,1.43368,0.07744759,0.6753434,0.8218702,0.60351175,0.1622768,0.059168078,0.4151465,0.38049632,0.040495586,0.969115,0.47231612,0.8839799,0.6560533,1.2887506,1.0335066,0.53429866,1.0377651,0.64847314,0.69182473,0.3315682,0.18913959,1.4210827,0.0055235126,0.87002146,1.0326147,0.9532785,0.75169533,1.1697822,1.2304555,0.8283726,0.9789543,0.39458072,0.5077138,0.22573939,0.8382907,0.7326445,1.2961568,1.2605546,1.1984261,0.30752277,1.290438,0.70068085,1.0342455,1.3394268,1.1975453,1.4374586,0.719046,1.3710021,0.4190081,0.32135707,0.31038335,0.67647874,0.32820702,1.249437,0.72125685,1.0277503,0.4542057,0.9169324,0.5338542,1.4264545,0.5341865,0.71619284,1.0588106,1.0367333,0.6215102,0.86950135,0.5993242,1.508784,1.4069138,1.2287022,1.0379713,1.1628574,1.2127687,0.9732658,0.8171695,1.5217195,0.5736373,1.2553489,0.24099931,1.3454192,0.79735357,0.56922495,0.9107761,0.92605704,0.5084792,0.70443267,0.5714467,0.10978745,0.7909996,1.1635034,1.1263907,1.1357826,1.1850052,0.39293325,0.45888308,0.6636886,0.31939796,1.1556368,0.5705467,0.9549261,0.68803823,0.8261611,0.9728838,0.097973675,0.6176735,0.35860515,1.5246887,0.71771276,1.4730316,1.2483178,1.1234723,1.0388793,1.5199728,0.669365,0.7633784,0.7168641,0.79648453,0.06886981,1.3892741,0.5529251,0.24317466,0.716093,0.60698515,0.23938961,0.5395905,0.25412574,0.7925037,0.11804161,0.48656347,1.1439512,0.4458886,0.38548952,0.12365098,0.44863746,1.4360689,1.0302006,0.71334696,0.104922496,1.3223687,0.18780388,1.5423594,0.75496966,0.27061328,0.88847303,0.44398853,1.2130578,0.52215415,1.5493138,0.6975852,0.80450237,0.014349012,1.0652969,0.38149107,0.05712521,0.41050327,1.3427914,0.85332894,0.50269365,1.5380076,0.7316221,1.2020991,1.3204217,1.3509374,0.8618584,1.1572638,0.22949415,0.3488765,0.4122535,1.1290381,1.0905966,0.8591959,1.4713069,0.366113,0.10272501,0.8207517,1.1177208,1.2130634,0.19830492,0.45949143,1.5443903,0.21130604,0.21288747,0.18715408,0.8295901,0.76101613,1.2388164,0.82428086,0.6496606,0.62862617,1.3134725,0.4835423,0.33038306,0.08824844,0.25753674,1.1230553,0.794877,0.6378764,0.5994094,1.2490017,0.104080014,0.7264983,0.46608788,0.7985822,0.7001645,0.73070437,1.2063038,1.5017546,1.306827,0.93278587,0.5488235,1.2405646,1.1516259,0.31197774,1.2686875,0.9910269,0.87501585,0.8282297,0.8103499,0.55430675,0.12010436,0.8141876,0.3827773,1.1021004,0.05829374,0.7569151,0.71663654,0.90462524,0.6212136,0.43280923,1.3975666,0.73270684,0.9625528,1.4332063,0.87370425,1.1608951,1.4589652,1.5428848,1.26203,1.2012403,0.52351815,0.9471603,0.3761933,1.5644417,0.87134165,1.220575,0.70521414,1.4687849,1.473568,1.0289679,0.014820565,1.1610954,1.1551682,1.0133945,1.4710608,0.12657431,0.45820093,1.4505253,0.6701912,0.3285287,0.5520247,0.861087,0.52834773,0.5765052,0.7004981,0.60736775,1.3860298,0.4301019,1.4688622,0.6153336,1.2256842,1.1936815,1.3391764,1.26472,1.1879028,1.5621709,0.6839945,0.96834975,1.5499105,0.31719524,0.16348149,0.8638486,1.0683771,1.0049347,0.5044738,1.1420251,0.1332511,0.7635648,0.7552441,1.1734236,0.8383926,0.03265799,0.7761993,0.84977,1.2668251,0.2789052,0.6075235,1.1547924,0.19514638,0.81243205,0.69919705,0.39716053,0.54045886,0.68893117,0.75091416,0.6337267,0.348863,0.022426773,1.0368516,1.3824911,0.4711606,1.2469501,0.4842024,0.30520564,1.1471913,0.30676508,1.2577739,0.3759255,0.63441277,0.41864678,0.78264195,0.2382033,0.1690016,0.93270504,0.48715052,1.2829345,0.91090834,0.71870637,1.0706649,1.2915988,1.5286058,0.7336737,0.26959944,0.54627925,0.48815548,0.31836122,0.5575979,0.83179784,1.2743596,0.11734512,0.6883303,1.3555005,0.6379397,0.7670445,0.82473946,1.2635639,0.36190504,0.20025797,0.088981554,0.16129921,0.34038582,0.70334125,0.2488629,1.5042139,0.3921194,0.566587,1.1685705,1.4109426,0.6370673,0.7135278,0.029758789,0.082094446,0.70875293,0.9846776,1.4040376,1.0260555,0.8644043,0.18460946,1.2075362,0.167284,1.4057591,0.97531235,0.83708334,0.7342757,0.75402117,1.1524807,1.2305955,0.3919795,0.12475788,0.53713864,0.27230275,0.35542163,1.1189259,0.069259286,0.92768985,1.3608965,0.970767,1.0474923,1.506669,0.3011396,1.0365674,1.01982,1.4137156,1.1063967,0.7701399,0.90237945,0.8198128,0.8576286,0.4472853,0.3681063,0.64032435,0.601521,1.3304014,0.6242111,0.10777533,0.05859631,0.42121542,0.7760722,0.7688771,0.78012025,1.154107,0.33873713,0.28643766,0.26774794,1.187807,0.17010097,0.1484015,0.93060994,1.2506568,1.0903698,0.83116406,0.03080172,0.38261268,1.008516,0.9318572,1.5311509,0.8123455,1.3612757,1.2623007,1.0239131,1.4244177,1.0478667,0.43361363,0.5874812,0.2054753,1.4243648,1.1583545,0.5826318,0.6941973,0.25112176,1.0517062,0.49128434,0.267914,0.041181076,0.56406385,0.9573899,0.84680617,0.24276143,0.8094599,1.0202085,1.4410928,0.28976998,0.8086719,0.44434625,1.2311759,0.38384262,0.34520087,0.77932006,0.86219215,0.97001153,0.8287294,1.0220512,0.0787914,0.7803317,1.438823,0.7530727,0.86357653,0.41674954,0.07414452,1.1617619,0.7476051,0.59340155,0.20836343,1.166892,0.919733,1.1608961,0.410689,0.5231402,0.43793866,0.97545296,0.46906927,0.34409472,0.61438733,1.0609989,0.35143003,0.84149194,0.65021706,1.0457401,1.1544019,1.1459289,1.0987781,0.07313727,0.53677714,1.1614251,0.9442122,0.8275777,0.26066178,0.8175354,0.86572266,1.2522819,0.85698754,0.9742023,1.1382807,0.025160952,0.77534795,1.2696435,0.9125463,1.1401485,1.000093,0.69008666,1.3318853,0.5304039,0.56420976,1.1101925,0.8430683,0.39287537,0.18837875,0.5605667,1.1753583,0.31329265,1.1032858,1.321267,0.18698674,1.4674902,1.1482099,0.028521385,0.7797773,0.1660552,0.17650038,1.4004879,1.1668564,1.1871252,1.5682418,0.4640947,0.60543835,0.8040356,0.95634365,1.5596185,0.0058886157,0.061348923,1.1870286,1.1281675,0.068101406,1.2290206,0.69519764,0.58329487,0.11169394,0.93030393,0.36287174,1.1362414,0.6655403,1.1321509,1.3240076,1.0302972,1.0098376,0.14163885,0.2885298,0.427714,0.580577,0.8864381,0.9706289,0.81047404,0.65680635,0.81411564,0.91360456,0.37524235,0.93011206,0.07489216,0.7882246,0.9705571,0.68713486,1.4968913,0.9933021,1.2704455,0.81435806,0.92692006,0.9180161,0.62317115,0.34464294,1.2258058,0.6894168,0.048610076,0.13370696,0.54778683,1.3440627,0.37843764,1.2973423,0.07942548,1.3902953,0.892058,0.98253703,0.58857393,0.37899435,0.78637934,0.86850727,0.030594165,1.2700832,1.188092,1.0553538,0.31231505,0.86641806,0.7993558,1.5152674,0.8214368,0.06088955,0.20194872,1.3180834,0.67588574,0.27027762,0.3658075,0.9236057,0.61865836,0.0018645352,1.4695462,0.15679792,1.4873134,1.5437022,0.8790909,0.7108586,1.4567784,1.3848481,1.4825029,0.70588255,1.3060229,0.38808164,0.9219969,0.52478117,1.507094,1.2336056,0.1334136,1.0087187,0.14020218,0.21754842,0.31934357,0.2995132,0.6110405,0.231192,1.0237615,0.77163637,1.249831,0.4129805,0.83066034,1.1934654,0.58374697,1.146066,0.16018662,0.386037,1.1215966,0.68464506,0.60682917,1.0645162,0.2635105,0.5369639,0.8439433,0.06743483,0.87976384,0.48233804,0.18959269,1.0207287,1.1515424,0.5375889,0.39635018,0.16493556,1.0706247,0.99132526,1.1630176,1.1680415,1.3647699,1.3673564,0.93468726,0.87562966,1.2112362,0.48894736,0.99063563,0.5451081,0.91135097,0.55008644,0.6494195,0.25257176,0.36889538,0.030739821,0.91595674,1.2373068,0.85273564,0.14494734,1.1635885,0.6912936,1.0646248,0.2595466,1.47437,0.6645591,1.3517808,0.12675166,1.0471139,0.15546264,0.4226629,0.44731465,0.439804,0.41853008,1.4613632,1.3027421,0.23393074,0.10022071,0.65151113,1.2066915,0.16002241,1.3864169,0.4453048,0.28406447,0.82259923,0.028311215,0.48233432,1.566736,1.2211145,0.9241428,1.3756449,0.8639501,0.084697776,0.6833023,0.6472418,0.3179062,0.61196107,0.76527685,0.7301736,0.10051771,1.0499005,1.3156363,0.46725544,1.5524392,0.5465605,1.2940482,1.5663868,1.4431311,0.11509044,1.0061086,0.30138132,0.5216169,0.82774055,0.98840797,0.86989,0.60513353,1.336671,0.2869755,0.69358826,0.66816187,0.86133677,0.44064748,0.006417381,0.78406787,0.6592986,1.3734062,1.5432442,1.4449602,1.0718307,0.7957808,0.6243317,0.7854243,1.4585438,1.1612669,0.14131357,1.2031052,0.15955466,0.30813706,0.9718298,1.0159464,0.764116,0.7097429,0.5136681,0.52359897,1.5667715,1.1357338,1.0478717,1.1279299,0.14273168,0.50488234,1.0153005,0.8489119,1.3643055,0.40953895,0.3323168,0.82072645,1.321949,0.77658844,0.80803674,0.99317485,0.05802144,0.61815304,0.16913323,0.90667456,0.16022788,1.3441243,0.3987763,1.2351055,1.089318,1.4765205,0.68717545,0.3260967,0.23542383,0.045726694,0.09097489,0.3311483,0.14473207,0.5824909,1.4354563,0.12556522,1.1411552,0.22705984,0.844093,0.4016319,0.114675134,0.56681055,0.08042066,1.4382778,1.4646226,1.4931227,1.4032122,1.3985599,1.0684167,0.78836656,0.71504927,0.78998685,0.55833983,0.8263645,0.5146999,0.9057623,1.1902555,1.4261594,0.58132756,0.46285793,0.6173593,0.8500094,1.3080791,1.5618641,0.6348469,0.5445394,0.65123093,1.1637415,0.69077075,0.564303,0.8146945,0.17267145,0.017559847,0.81335306,0.5950833,0.6928074,0.6191333,0.98351157,0.46436575,0.90225655,1.1770444,0.54428333,0.43671665,0.4578647,0.21152663,0.1437574,1.3415921,0.51478255,0.82097536,0.44347876,0.1397812,0.19556369,0.74085355,1.1431216,0.39804932,0.092877634,0.77416885,0.14145504,1.558685,0.56782037,1.264015,0.53471875,0.055239357,0.34454307,0.94998246,0.21560267,0.74170387,0.4950049,1.4967704,0.74011075,0.46414807,0.6765623,1.4365208,0.87504524,0.40714872,0.16050304,0.50432104,0.7245948,0.8373105,0.84706074,0.44902825,0.6652684,0.61494935,0.235551,0.11826606,1.0966012,0.39044335,0.92250466,0.4305185,0.85606897,1.4650873,0.7278582,0.12126475,0.23212606,1.2126721,0.9339608,0.1947687,0.13140613,0.008315794,0.4812119,0.39555144,1.0292368,0.68130624,0.36924925,0.9041559,1.0914371,1.4567107,0.2448881,1.1729293,1.5539948,0.7187476,0.95012945,0.30002367,1.3124747,0.75626487,1.2619126,0.40301687,0.5257009,1.4002073,0.13324168,0.05213984,0.3609447,0.58278173,1.5101615,0.9496742,0.86168814,0.62143415,1.4052038,0.5180049,0.13571067,0.49152428,0.3662691,1.5626129,0.6117739,0.82757705,0.5607261,0.40966338,1.001876,0.7865215,0.8220489,0.77699584,0.4323783,0.3819618,1.0312779,0.47979885,0.8551234,0.6752953,1.2634032,0.90790194,0.39813474,1.4876915,0.24731301,0.62806207,1.1040117,0.41880956,0.117568016,0.9663265,0.9962669,0.51525444,0.8313895,1.5167551,0.8369931,0.27699545,1.1715958,1.3203723,0.27811486,0.7044137,1.5455059,0.87204075,0.054878365,1.0025561,0.054989077,0.5380814,0.16996554,0.7683993,0.042035572,0.5541675,0.72320366,0.08212773,0.98203665,0.18691757,0.3898907,0.23703746,1.3836746,0.83604455,1.1094329,1.0503746,0.844431,0.5565476,0.82080036,0.6630084,1.2740254,0.9009842,0.886253,1.0077314,0.98810923,0.8259902,0.56606734,0.9501406,0.3255051,0.35398546,0.15168534,0.023999557,0.88026017,0.24314308,1.3126311,0.8284482,1.3896184,0.96770144,0.3110067,1.4691169,0.35346177,0.83845603,0.6678048,0.5563755,0.4441054,1.152838,0.46757942,1.2309456,1.0240014,0.9412174,0.4666969,1.3100001,0.81044984,1.5232041,0.70773673,0.041412573,1.2570975,0.45366892,0.78343815,0.7200273,0.2741447,0.86220527,0.4856864,0.5652137,0.15887894,0.98109865,0.40916756,1.5038375,0.17126538,1.0614886,0.7662446,1.003774,1.3979048,0.020972505,0.67123127,0.34791407,0.8364029,0.74957985,1.5135123,0.73757493,0.9388095,0.4699626,0.8376133,0.6896192,0.22849949,1.5164874,0.91245556,0.6342429,1.2323575,0.03913361,0.7599456,0.49887165,0.28091604,0.607972,0.75298923,1.2771837,0.88886505,0.96966773,0.9731906,0.8001911,0.7544102,0.31263807,0.6934359,0.9148168,1.3028017,0.61383665,0.8321149,0.65725887,0.28209075,0.670583,0.79626524,0.10613664,0.052864224,0.12594476,0.64500934,0.103282884,1.2041183,0.08414217,0.1115666,0.3409881,1.484983,0.11595281,0.33625415,1.5326376,0.91102165,0.19037974,1.352994,1.2697614,0.9992753,0.8271595,0.8729909,0.8615009,0.76137507,1.1584048,0.12699284,0.7489774,0.7514483,1.0183957,1.3554891,0.058203608,1.0153888,1.5248516,0.05194904,0.8445147,0.37985498,1.0705299,0.6275656,0.9575091,0.59399855,0.14030606,0.70505637,0.2968658,0.7367737,0.29716966,0.2295358,1.0657378,0.9160253,1.1415269,0.050334103,1.2258605,0.07598034,0.6017512,0.75320107,0.15079522,0.39334008,0.79887235,0.93278956,1.0077653,0.74317104,0.93408805,1.558459,0.016788097,0.8143708,1.1516513,0.7815546,1.0349305,1.0546408,0.60797703,0.87837976,0.30930027,0.68377334,0.53935975,0.9637355,0.6731865,0.25469,0.051508356,0.6726363,0.106855474,1.2175652,0.37197232,0.51999116,1.2528257,1.4174943,1.1466328,1.1232908,1.3820736,0.64526635,1.306481,0.3791556,1.4513799,1.1730664,0.48104993,0.28815892,0.868128,0.3329489,0.37236112,0.95981085,0.015761007,0.1431321,0.24148723,1.2507727,0.5795366,1.0159655,0.8159101,1.0486444,0.29180786,0.31879458,1.5471174,1.3966645,0.032313563,1.211888,1.2903194,1.523016,0.6595042,1.4493818,0.5900982,1.2750223,0.04966694,0.9754556,1.3123511,1.4488572,0.5758469,0.12800795,0.23671222,0.3021959,0.5673069,0.1479313,0.44121265,1.3856771,1.3856895,0.702759,0.7112407,0.092400976,0.95115167,0.5862876,0.4229573,0.9376976,0.21654713,0.8459969,0.051602013,1.3968189,1.3015817,1.183836,0.79583454,1.1549876,0.30399692,1.021861,1.1486483,1.3934691,1.3976517,0.90962255,1.1817374,0.7793916,0.70684797,0.08725869,0.5759053,1.508866,0.5870448,0.27230987,0.24558489,1.1277364,0.22437967,0.36605,1.3389928,0.70518917,0.6988211,0.7778692,1.0428758,0.49942413,0.09883379,1.2344772,0.9574834,0.0075938767,1.1429169,0.20784649,0.72224873,1.1152964,1.0406313,0.1837104,0.10600105,0.0052074376,1.0231857,0.10687115,0.42717963,0.83473134,0.962578,0.29235235,0.13393469,0.17304128,0.045713212,1.2154319,0.3583966,0.681963,1.5673634,0.46858597,0.36838982,0.84580046,1.1119719,0.69168764,0.23737173,0.040364966,1.2829624,1.1823137,0.015834915,0.45286176,0.5445797,1.5331734,1.4535894,1.0931311,1.4801645,0.07742775,0.6287886,0.6428125,1.3358632,0.8815303,0.96644664,0.8601767,0.5322883,1.502534,0.71457684,0.032535248,0.7959307,1.3884678,0.23839998,0.16004753,0.9936409,0.8816191,1.3523229,1.3062134,0.89732,0.18972963,0.5150878,0.88935184,1.3275479,1.0885699,0.4926459,0.531867,1.0637854,0.76676947,0.047721297,0.2804441,1.4915391,0.69172865,0.2043019,0.948902,1.1509223,0.46191177,1.1658732,0.20380427,1.034501,0.76517344,1.4067528,1.3031607,1.1619194,0.6289321,0.7116659,0.3526632,1.5339843,0.28543395,0.98509276,0.42211902,0.6064423,1.5308483,0.06251481,1.080568,0.49345016,1.4457859,0.079440124,0.2707867,1.4162122,0.8467831,1.3470875,0.9831625,0.6165822,0.21292284,1.5570295,0.755079,0.9371834,1.5005406,0.5426943,1.3044728,0.72839713,0.9770413,0.6175784,0.69239867,0.3618989,0.44359154,1.4656725,0.118155755,0.14981882,0.53560275,1.5486611,1.0226741,0.18625045,0.83092177,0.94925165,1.2493492,0.60649925,0.055431742,0.92936987,1.3732483,0.04284542,0.8367196,0.5502612,1.3597516,0.91631216,0.49357888,0.009143768,1.204489,0.9773891,0.7027192,0.02589223,0.9733338,1.103496,0.4166322,0.56814116,1.5583597,0.7571474,0.24085979,0.1470274,1.5194972,0.7217352,0.13130729,0.4898861,0.6984861,0.84585893,0.14095478,1.3770268,0.8730753,1.5556048,0.50424725,1.414439,1.5454557,1.3497379,0.0042137564,1.0986434,0.6129351,0.40361577,0.04732375,1.5168434,0.36734182,1.4666451,1.2328315,0.2739984,1.0488744,0.9244442,0.13997787,1.0069194,0.9881074,0.047651995,0.4099737,0.9823874,0.69101214,1.1122589,1.0762576,0.0110258125,0.78924644,0.06758041,0.35443965,0.8282835,0.7485779,0.49925953,1.4849477,0.7597165,1.5544124,0.17351778,0.65554947,0.5800622,1.1749463,0.33476585,0.39762977,0.43517604,1.4654702,0.7055281,1.1012785,1.3560276,1.5256118,0.5428142,0.42332748,0.31610426,0.08189846,1.2859885,0.23545842,0.7012627,0.30786657,1.1765391,1.4724983,0.38541847,0.21188715,0.6890078,0.34642193,0.27321273,1.224278,1.4678468,0.8713285,0.4103782,0.37850606,1.5679789,1.20509,0.2196746,0.45852372,0.21601985,0.7077436,0.43876818,0.24657314,0.9084943,0.8561459,1.1130657,0.96335113,0.47185338,0.6917368,0.7051091,1.2542176,0.078750774,0.36622703,1.168048,1.4569942,0.17700784,0.7857145,0.17925023,0.63991636,0.13143525,1.4119127,1.0339214,0.65020525,1.1882504,0.09027446,0.94801134,0.7795219,1.055514,0.8970391,0.592768,1.0593888,0.16173495,0.77686393,0.46982545,0.6825947,0.7733955,0.054513026,0.42393515,0.6111712,0.6230004,0.98153454,1.2749673,0.8717131,0.820288,0.7571575,0.40035212,0.3312295,0.22052999,0.658556,1.2485236,0.18829769,0.9155812,0.92998755,0.79065925,0.16588627,0.51370245,1.0042605,1.447885,0.46799564,1.141233,0.56220096,1.5011978,0.015364356,0.18247542,0.4234437,0.2543055,1.388827,0.47918367,1.3375702,1.1948878,0.6880197,0.60640454,0.68839467,0.61254025,1.3796299,0.56589705,0.69355565,0.61347,1.3677659,0.9512811,0.45309645,0.79838526,1.4970677,0.53061956,0.09443577,0.027802272,0.9263211,1.5618376,0.6132415,1.359652,0.043166306,0.68822765,1.2070767,0.40239084,0.5247695,1.2512367,1.0542493,0.5369794,0.102938175,1.1866158,0.28781638,0.6534406,0.3826433,0.18764363,1.0673324,1.4873887,1.0809561,0.6496077,0.6761163,1.3787265,1.2708697,1.1109809,1.5555607,0.6523341,0.80067635,1.0699377,0.7762596,1.106778,0.27408385,1.569463,1.3116529,0.11925373,0.9018392,0.116041,0.026983256,1.39149,0.27167717,1.0584847,1.2035644,1.1916199,0.76742727,0.5909951,1.0876107,0.7346747,0.95891404,1.079856,0.75155926,0.74864686,0.5020106,0.3707885,0.995329,1.0164633,0.3122577,0.46393567,1.0743918,0.35397935,0.99213654,0.33599085,0.50327504,1.0949621,1.4221468,0.96017957,1.5124184,0.6540666,1.1073726,0.99205077,0.94064915,1.446132,1.0535526,0.94870764,0.32310387,1.1428828,0.9297599,0.32950318,1.2664778,0.91063094,0.80842936,1.0752262,1.2644188,1.1555876,1.1732258,0.54992825,0.14236867,0.74787754,1.2857902,0.62624097,1.4753217,0.34341538,1.2739441,1.2163473,0.2036131,0.58645135,1.029458,1.1373299,1.5554577,1.153389,0.6745824,0.81026655,0.35824305,0.11385768,1.1162777,0.66493136,0.42902964,0.59557056,0.42747778,1.3913486,0.35427475,0.92517924,0.9286256,0.7640061,0.8411704,0.14242117,0.67375183,1.0844084,1.0006496,0.95649034,0.44292116,0.51090896,0.33136383,0.30288395,1.178345,0.19006403,1.0118945,1.2015393,0.3220238,1.5033175,1.0662745,1.3694526,0.28676802,0.5729263,0.39270544,0.72942215,1.1057435,0.6153278,0.16088815,1.2578005,1.1763585,0.8125763,0.15987308,0.13973337,0.9531583,0.6390323,0.77291065,1.5237359,1.4826549,0.55804974,0.40770316,0.22655915,0.7927956,1.5315657,1.0701358,1.1183002,0.68827564,0.93162125,0.84412885,0.7478633,0.18415011,1.245465,0.29230648,0.83087903,0.45152724,0.8444851,1.1354029,0.85421675,0.6484544,1.1737,0.92368364,0.8027082,0.740126,0.77872044,0.834347,1.4704727,0.08980905,0.5759154,1.113226,0.45373082,0.18750939,0.8407553,0.22894642,1.3524898,0.3907339,0.0029693497,1.0716376,0.6726868,0.54954755,0.27370852,0.86389315,1.5367419,0.4158191,0.83109665,0.31153575,1.1872143,0.5694415,0.6647,1.220787,0.43482795,1.057853,0.6542258,0.9854663,0.8101028,1.5172156,0.5846776,0.06228962,0.0906863,0.80366623,0.46381083,0.826379,0.7230393,0.7467351,1.2035431,1.3465807,0.71304995,0.8910461,1.3335375,0.94076407,0.78250843,1.2383814,1.2794138,0.63598055,0.59139985,0.18212532,0.10795979,0.6812797,0.051162098,0.9638989,0.31321895,1.1803875,0.38769343,0.89357907,1.4175383,1.2737877,1.4914632,1.2641058,0.8232117,1.4886024,0.1326269,0.9278911,0.82516545,1.2659173,0.8758097,0.5225352,0.76648587,0.57570356,0.14376196,1.2868727,1.1411034,1.0346596,1.4232885,0.58567715,1.2924695,0.09166452,0.6224067,0.94808954,0.81809795,0.72203267,1.4125539,0.31893206,0.93866426,1.065301,1.0070806,1.107542,1.3485893,1.1278223,1.0717114,1.0481039,1.0004058,1.1298556,0.89074945,1.2808342,0.87046504,0.5535713,0.5009108,0.1643509,0.36462843,1.5492288,0.618379,0.062198546,1.0568335,0.3916446,0.48502222,0.085108474,0.79455096,0.040885624,0.45552677,0.90174055,1.1058233,1.5370853,0.6933185,0.7485279,0.6403064,1.4337993,0.13008998,0.5799119,0.69315654,1.4179533,0.26613936,0.42546958,0.781283,0.78827614,1.1989937,0.45018595,0.26931363,1.4949664,0.3017014,0.59042555,0.96620333,1.0268263,0.53668827,0.15586126,0.70955896,1.491001,0.072023004,0.8958677,1.4207841,0.16715235,0.83733326,0.5780057,1.1462322,1.5571713,0.25851557,1.5604005,1.457042,0.86300576,1.5134139,1.4963865,0.11242046,0.08809815,0.790259,0.6684454,0.1386103,0.92060226,0.012359994,0.13445495,0.6645418,0.41388157,1.2539831,1.094522,0.7476381,1.05791],"re":[98.70926,197.17885,53.852173,369.76035,160.44424,60.61437,467.37384,116.60402,27.520866,274.0432,105.82592,158.71371,382.16483,148.51544,450.83716,342.3443,18.748283,316.50958,280.23965,404.21286,401.93228,82.53288,412.50223,221.9105,260.4741,39.962563,497.427,246.49484,59.3872,49.634243,259.1353,258.72925,373.7292,354.22137,144.74936,165.48593,51.861835,199.26039,471.22748,360.26617,141.86865,438.1792,486.32855,275.5737,256.90387,131.23322,68.576,495.1843,358.89322,108.65716,24.177694,467.82565,277.79825,43.977253,449.67026,189.76077,73.19549,337.0273,317.1443,467.5354,479.93448,255.08185,350.52457,7.4979935,438.40048,448.89966,206.77448,65.90232,309.14053,340.37723,272.90466,128.9772,287.97775,301.5251,238.29153,439.53342,329.8832,388.58432,461.84528,3.410183,56.83171,151.98378,438.89258,17.897047,165.396,65.173134,107.43013,190.90453,154.0005,375.3541,73.19691,177.37173,226.08862,199.8136,135.40707,336.41934,149.78311,373.1876,262.82767,222.25584,235.85689,296.66382,132.47324,448.98856,228.07663,480.70193,483.9987,25.204103,409.4358,341.47635,370.8095,290.87,194.18468,282.24796,421.39435,160.77985,361.13477,86.912796,223.16522,153.80287,491.42633,34.02268,120.12028,347.5097,126.71668,69.40761,495.666,235.47542,286.37354,176.80762,295.2854,81.93592,146.52763,139.81317,202.59224,43.611813,137.32239,18.469774,364.19153,220.86923,462.76917,238.00392,382.2637,61.4591,400.3734,474.48764,9.671914,166.8373,451.97943,265.27185,245.32307,107.87519,464.3193,17.054783,177.49731,148.77194,179.48318,435.20123,369.457,223.56523,398.97656,420.84967,174.15486,407.0685,127.12551,167.5499,361.72372,23.157907,291.20862,112.2281,383.44348,258.4017,435.55954,49.981655,11.60163,432.23132,91.84019,423.2542,76.36315,361.08826,355.41516,318.53833,33.18579,318.7913,116.35918,486.44724,355.26337,24.028133,3.7547095,299.24908,37.87794,429.30215,260.40738,165.76358,460.5098,237.26387,231.64713,183.48085,124.53444,243.42584,68.35741,224.25629,444.13257,473.038,259.58408,274.0637,222.35297,1.2680501,86.944466,374.10352,496.6243,106.217026,154.55713,380.31375,238.49951,207.89055,173.90242,82.151726,34.118862,308.94562,141.90825,296.83588,6.783716,116.60527,41.569702,261.3775,301.4894,220.90709,85.866516,449.69128,109.24681,157.33257,340.00027,106.25931,110.62962,494.13867,418.487,103.995926,492.0741,243.55437,284.68103,12.068523,167.36765,389.48062,57.131294,279.06573,408.65503,268.91376,300.74588,439.112,97.39415,362.3471,295.76825,472.32996,416.15723,224.0792,84.706894,263.12445,157.36584,450.78436,236.83484,124.63117,423.467,171.84537,226.07503,125.70194,400.51294,457.80124,284.04428,94.37226,36.939568,404.33823,82.816925,471.39178,348.4976,305.96674,457.72772,118.31399,84.54628,439.2413,267.37662,42.377518,386.28204,165.9908,82.40785,72.64891,183.97449,358.62302,454.4664,389.32025,123.24564,244.71939,499.66403,456.00787,353.0976,149.10118,98.37265,58.84241,274.31998,471.69235,229.62337,443.99185,179.1197,474.80963,310.71033,365.39847,379.32043,324.42422,97.057274,367.0347,322.09012,311.2792,308.28973,213.91106,72.2416,241.12999,215.20624,358.46454,407.05405,288.63034,306.8004,209.88533,28.964714,54.898705,18.12089,432.52167,133.15874,196.74274,63.206646,188.20236,27.719383,433.64514,415.42444,419.1976,404.78766,15.726264,294.5308,79.02787,52.665424,239.45404,329.6269,195.29298,276.90714,456.20547,273.18228,15.680463,167.48969,243.17863,185.4263,44.036903,431.88425,470.0157,290.87097,183.99059,348.9831,2.1788087,104.41537,70.28897,454.77542,248.86201,75.5719,448.54623,333.44672,134.45227,0.6897008,37.73202,191.6101,437.05206,231.36171,229.54575,57.861916,283.64133,277.78888,364.52734,272.27332,469.04544,206.37608,388.264,33.260902,491.11563,283.75198,9.187801,433.17548,439.18323,341.21295,207.99759,168.76662,32.067757,475.77713,282.0982,289.5368,78.362045,97.71815,486.17065,470.9549,466.39725,16.262238,239.8619,276.32544,429.54184,53.518208,479.18597,342.76443,85.19611,47.325012,67.04838,244.60657,353.68628,290.9474,346.22095,223.58089,254.77992,432.2753,207.68001,36.176994,450.46982,46.16695,405.98935,82.472984,18.163948,382.13858,427.2584,236.04732,133.71779,313.18997,121.85704,5.630581,47.6936,89.58111,187.33243,264.2725,332.8551,322.31027,212.46045,237.56349,127.29517,455.3338,424.99728,380.97995,98.11546,360.39526,32.05607,417.9055,145.02953,379.50302,399.2568,493.21167,81.24759,458.46155,50.30917,67.19721,130.83678,342.1884,430.686,483.65323,413.37546,326.7466,198.28809,246.17226,255.21533,38.27382,333.01544,251.23088,4.048086,481.5073,20.719328,157.03479,325.43698,218.35982,472.6605,204.15053,168.48523,138.09311,176.16862,173.84497,454.6953,162.17336,186.93611,230.75325,29.393951,464.80212,88.24534,153.58743,130.46475,66.04452,437.7908,98.89842,219.57825,355.68,229.38968,47.503864,51.806484,351.84442,343.95615,368.02557,31.541496,173.82791,442.58707,361.15335,262.45093,320.17975,412.1459,93.70023,88.246635,357.9998,379.74768,338.24213,120.55397,237.28531,323.26575,33.689087,346.36288,119.76666,143.83023,254.20831,201.42072,406.21487,291.74042,221.52885,28.689272,293.97162,295.89954,151.36832,498.7315,334.90747,306.43808,419.24466,284.04868,46.19209,416.54596,125.40585,61.304214,136.6101,107.68404,26.98077,312.90457,364.94177,493.8515,485.70337,383.7174,100.80779,405.91498,4.473731,154.9657,446.68765,61.436405,56.4648,195.08907,77.61818,294.4329,167.87357,391.65933,497.12003,174.17963,391.43552,317.00385,76.45427,462.65674,22.009066,393.70074,97.34957,73.77961,486.18314,297.8417,417.0389,416.0467,109.66892,135.50769,475.79605,185.7789,141.74182,214.8933,211.06818,216.02213,137.53535,486.62054,359.77533,32.57639,166.61853,264.22464,420.94003,216.95906,109.83491,107.35543,325.99622,10.15438,160.25122,71.69926,358.9984,341.31003,175.70784,92.406715,454.0101,288.02554,95.47509,105.60433,373.39435,144.13174,363.0318,2.1475706,462.04025,264.29782,308.9012,419.36047,482.50275,282.58072,402.95908,65.381805,44.541325,283.4652,107.1142,70.97437,165.75278,205.05577,95.454,194.53593,184.51833,177.77403,306.96292,167.725,426.38574,194.91267,343.82294,248.60005,439.5606,112.18516,399.81216,406.4031,451.85782,71.50981,248.32645,257.51624,491.7755,427.62445,115.51226,176.88936,477.11603,77.94612,490.2813,293.21738,104.832756,466.51294,198.29065,493.971,150.88527,348.15378,458.59402,143.28073,19.998087,278.93304,422.35233,386.61945,375.99966,487.6699,235.7536,5.19684,387.84146,218.45477,211.52739,18.44953,476.08487,65.963036,142.26881,87.405,421.44565,410.77264,182.64432,293.1554,299.61533,424.4856,389.3783,138.37062,149.10408,13.145098,63.2805,284.6845,441.2766,125.65573,38.267292,386.34143,283.90198,174.89708,132.9421,305.46402,336.4446,353.05585,103.84992,405.27127,391.0466,432.3015,328.1362,298.45935,311.8244,144.01294,99.82456,159.12732,293.94827,478.1612,188.79881,371.55435,84.853035,475.082,195.72055,277.50027,157.66833,329.92313,470.14496,211.47641,281.17096,394.67484,314.0498,322.05997,333.88037,218.17451,407.55374,357.0207,147.45616,288.82587,7.2825212,96.72786,496.47998,243.75282,435.47345,177.72168,91.73246,118.51842,130.37613,143.40515,377.28598,476.93027,343.30283,436.93692,483.7988,477.469,499.14215,6.7746377,380.02374,342.84814,135.77386,84.469826,464.07095,230.23302,374.93802,259.19608,406.3887,151.75105,135.5819,176.66364,246.65692,81.77467,439.7989,165.60918,476.12155,72.49702,383.30118,141.43158,358.60327,148.45372,430.8192,48.52096,276.88196,300.0624,324.0036,217.97777,367.95718,220.9595,437.07004,197.67535,386.87018,114.459564,256.81332,258.459,89.34911,321.66052,450.9911,147.64221,15.590358,321.57657,283.3254,149.27972,340.9522,293.91678,93.9236,22.045582,428.692,264.60608,339.77853,349.43802,343.59573,133.4673,320.4159,199.17215,195.02946,159.11543,397.1649,242.60497,258.42166,132.01233,202.41853,3.8143873,451.8644,207.85646,39.713627,71.34449,52.751263,402.58615,5.2787,74.64526,475.4223,189.55878,401.42285,478.45517,131.14905,313.81226,190.26782,118.09848,225.49998,231.6,237.29953,236.71861,113.06494,54.40581,55.37539,4.2244344,252.83357,408.82004,84.97099,38.670757,467.81857,380.79974,100.026054,440.58716,300.0356,79.38413,272.938,262.3489,414.58124,368.51315,148.39513,431.56683,388.97504,287.97485,368.95746,143.26097,240.61687,265.1307,292.19232,387.11102,457.2934,174.26532,252.89827,251.39566,387.43414,81.39858,16.91356,386.15225,4.819173,351.46677,212.49251,488.60526,100.96861,153.74565,193.02617,470.7828,355.72495,302.30365,31.918444,353.99057,133.39392,408.99518,147.9066,247.30496,449.10468,171.57497,290.45486,328.24405,353.42484,204.35985,431.2269,132.75876,292.94595,34.104282,32.542793,86.29883,236.28947,151.19887,394.7819,322.1397,498.09128,279.47784,395.15195,238.23535,432.73593,399.0624,370.00958,308.34946,126.534485,404.69925,439.04013,44.35395,288.07175,416.42365,409.00177,57.693718,329.86517,138.80989,270.128,105.29654,352.29218,333.12015,482.3151,375.94672,438.57935,177.4121,170.9811,139.4152,3.3168902,87.19984,419.85022,307.07083,118.468254,182.96596,362.48145,459.50897,307.6756,68.618866,467.60306,261.28934,45.838955,336.35178,314.1606,284.19223,87.051346,295.27426,133.3529,478.67676,327.84903,495.7435,395.4874,297.4984,143.1707,440.44647,23.222443,485.43872,125.003624,366.6579,111.822495,263.3174,255.82962,472.80627,231.1923,318.01508,156.50049,493.1344,94.0154,418.96628,104.78055,338.57446,369.06192,188.47154,153.02411,100.83511,223.91975,25.615849,452.1028,336.07208,455.6672,277.25238,360.71436,463.714,250.34521,359.6643,350.73315,333.89536,62.56649,438.9429,56.97819,340.5249,84.2726,331.21094,498.64865,244.82182,468.74207,492.5204,13.141527,129.72234,6.0836706,259.73944,365.80637,497.2457,137.1703,117.47022,12.391968,327.03,54.569977,471.2033,273.80298,368.7485,288.52637,32.17261,272.6909,89.822395,16.822226,204.27844,109.56622,331.06622,335.15784,7.3066216,263.34793,188.02066,479.09317,272.78513,157.58194,427.16757,173.82796,178.27376,457.05444,453.75955,340.30322,178.6307,196.6961,53.410404,159.506,270.13828,462.7738,102.446594,404.55405,61.24531,231.44397,8.247274,117.418884,48.340446,307.27365,201.74637,437.1163,210.0026,258.0404,439.3506,8.919166,385.482,416.5429,206.21156,122.328636,138.84862,17.021393,242.28957,459.09995,234.23341,6.8343472,180.12233,24.33868,451.56326,328.44012,113.339035,407.74948,50.764866,254.60805,101.70722,354.68393,499.3732,388.81372,102.09614,327.93304,163.28847,276.77832,374.6728,248.3761,325.05258,323.7615,109.32682,224.04245,304.38388,59.86714,391.02246,37.579838,296.13284,46.8362,484.26895,474.15372,342.45255,335.5599,272.1389,24.523443,326.08643,199.60413,15.346006,222.59393,394.69696,465.72586,496.01733,327.4393,406.95123,48.037918,167.00717,299.94226,386.4655,194.54166,30.008886,372.90558,262.956,491.75433,372.36353,64.78954,355.443,73.01661,120.4164,452.62894,300.12442,215.47198,146.25491,162.40074,43.244663,455.1572,263.04993,486.66403,25.897896,152.09483,474.8982,360.14853,400.06958,260.55273,20.927668,85.158195,175.77336,115.88238,294.88425,208.59073,105.13208,400.35104,58.6305,135.61961,252.26093,226.56369,406.23358,401.4063,183.94952,8.102216,357.43292,468.79587,96.764244,447.69366,489.3331,156.12045,423.66458,2.7796645,6.386895,182.67595,383.25146,24.087496,422.2269,172.59018,495.81577,409.55478,65.59525,8.149916,195.61543,321.93796,497.54236,243.74808,274.6165,483.21347,11.586946,495.23508,70.233246,447.4039,245.74214,176.48863,23.955322,42.26057,442.70898,357.01923,47.44063,209.09528,43.28322,131.92636,46.32249,25.307444,296.16763,73.64061,437.98477,121.31183,42.25586,332.85458,39.90439,418.4566,320.41534,172.63602,223.17378,249.7697,82.493385,394.60324,8.811957,202.40428,202.12027,40.20858,434.224,343.8795,480.18973,443.3272,9.680376,83.98816,126.848526,325.39517,413.78503,171.35611,478.43027,297.78503,384.53223,280.51236,170.16902,261.2005,271.3265,293.665,190.51157,199.42496,0.14242154,376.38992,275.0208,361.9882,378.39877,27.21062,130.72714,355.02615,160.57513,360.32178,168.05782,129.16745,274.0303,284.3595,482.71997,174.76086,120.88096,24.117035,172.24742,259.9733,361.14914,486.59415,459.00787,184.09799,176.05249,289.1147,129.211,108.10238,177.91219,350.57144,127.20358,139.13596,68.183716,461.17767,28.116573,204.82686,358.3804,462.89203,203.77023,410.75546,491.75845,353.5678,93.532776,376.14972,270.9763,340.12793,335.2672,125.04029,363.6781,4.430888,378.87143,211.40341,363.64346,487.86502,368.45483,471.19217,106.520386,225.01646,214.09451,480.3636,84.02489,373.94495,18.325405,97.13056,416.53467,318.62485,67.28571,449.03586,473.5576,228.96935,242.8041,367.2586,110.882484,452.74155,176.5862,13.251752,423.4677,37.92945,450.40274,499.2455,100.68502,306.45197,118.15757,495.10263,494.70615,100.8639,275.4072,495.26846,328.235,73.032425,246.67975,410.07672,300.32742,45.053715,206.89818,68.20121,49.50029,34.730457,460.8217,178.77937,429.52505,498.88388,120.94904,107.13367,246.82819,167.65826,410.1869,493.82147,392.1291,125.09726,24.677517,447.90448,348.98886,452.8516,20.063965,477.9985,405.5184,350.67834,126.406746,115.86212,105.573845,356.4535,179.232,243.90878,169.15186,406.21994,133.11443,31.95449,347.36014,288.1114,229.45663,369.63965,248.37679,423.26532,138.03691,377.56018,236.22887,91.70695,176.3092,320.85736,375.88287,495.91537,410.65393,175.37402,423.95496,282.24963,112.214485,267.70557,271.05597,413.43344,168.9428,80.52707,482.81216,303.49402,404.06766,207.00015,4.6286407,193.40344,149.42549,387.7442,170.6218,459.86996,76.56402,363.8735,356.01724,279.65952,389.2319,93.5577,290.85916,443.8781,280.14197,414.42392,343.57687,316.76346,220.33983,105.30359,267.08237,354.8294,302.01614,129.75818,476.417,307.83383,431.26532,251.4361,318.26822,350.45065,403.09644,63.82055,452.7116,254.23119,91.68647,2.6009152,258.77332,20.444723,486.58618,29.566381,304.22067,263.7648,422.74182,416.25824,21.145838,480.5645,50.626213,103.19108,390.7652,493.14774,312.56744,49.48818,287.73654,84.69181,264.45746,441.92184,316.18256,475.09628,110.020676,346.09164,351.85867,383.72864,45.623398,103.63288,401.51486,272.21732,312.96127,57.8082,209.30591,52.377865,330.97467,418.9553,169.6267,43.199306,142.89288,307.16995,107.333916,411.9103,439.69092,445.74603,376.15134,177.59998,21.18975,313.93314,359.4835,301.35965,97.39237,432.56802,373.05222,427.95612,274.9687,270.28314,210.33261,337.21033,192.40443,118.46689,329.3717,189.72806,46.425392,112.44904,349.74857,262.42493,264.16446,24.459568,475.87827,201.26115,98.01299,102.511986,305.3469,390.6137,25.839983,191.1866,296.69803,338.82657,329.06674,372.90253,282.49133,107.18923,187.52678,353.21045,259.22836,59.802402,22.790464,43.11515,357.85614,367.61517,455.16443,251.68748,89.66154,294.4151,379.34943,40.71093,120.77844,175.92517,232.54912,47.044895,344.24316,396.57114,323.30362,257.44553,404.97855,69.793465,320.19193,437.33127,271.8896,284.96692,142.53217,382.80597,170.9989,258.15988,361.82156,125.002045,200.83102,471.89777,467.17496,38.676495,276.8475,437.81833,120.48871,326.94724,234.2402,92.72786,68.07686,178.90665,17.813541,141.6398,156.89441,343.1773,207.0734,27.419533,25.14935,270.86285,105.514725,177.517,88.78243,366.6182,119.97603,149.00919,408.33368,137.46259,265.80493,60.700096,484.95334,233.39725,472.54343,171.83969,81.81858,442.45215,109.316956,79.96761,331.34082,91.16489,139.3612,358.70218,34.405052,5.2498207,66.62371,455.66162,339.15164,254.89734,102.034515,253.01765,282.67188,206.26039,347.2955,53.05343,259.3036,449.14508,47.921238,156.9994,17.724453,310.17654,244.48164,487.20117,218.29695,223.1053,495.10922,349.523,397.61084,326.06256,332.06686,395.39914,241.66792,273.07343,25.570795,38.933056,471.6844,365.45905,19.334455,155.42136,460.72516,251.72218,473.37527,455.84058,261.36496,373.2466,462.69263,405.0043,221.71266,354.36414,289.40182,148.0619,128.63155,425.10535,450.6867,414.24142,70.81853,456.93588,228.02817,128.79942,158.40152,364.0318,486.86578,356.19006,105.65763,192.64082,202.39513,470.1283,97.434456,8.256149,196.70285,280.72366,228.56915,432.5133,289.26553,418.67056,49.2545,84.10016,241.04605,302.07376,442.02777,337.06018,78.97542,445.02957,378.04315,435.38815,92.0565,235.32268,254.04881,212.48643,461.217,352.54654,366.27698,389.64264,296.8055,495.01624,122.764275,309.44302,462.9771,471.88297,24.01929,219.81175,160.86086,56.422077,413.76413,179.87654,347.01743,415.82916,164.89937,43.194958,327.52353,178.56866,128.47694,376.69852,12.334754,103.57469,310.98825,385.01923,29.737827,361.181,450.5257,61.8645,109.721466,276.6886,49.967148,494.22342,430.2412,120.91528,210.4666,34.470924,254.78957,58.78936,28.428526,177.83473,66.164154,275.08713,288.52942,263.31113,476.68973,98.45328,323.07315,386.4978,194.17734,221.54198,368.71466,322.0848,89.73399,387.68457,306.49527,170.03389,21.621593,251.06935,358.01343,150.97023,118.79611,290.7484,297.32755,162.60564,192.42249,54.69189,183.21536,263.13983,246.6535,372.0315,115.296104,400.76782,62.578342,231.43402,441.267,43.506176,160.00499,406.75906,320.3145,73.92191,136.13489,465.26712,206.00351,11.835968,297.62558,300.60013,79.98132,11.381301,308.52286,465.36057,210.68411,218.65005,271.7609,248.3548,107.41931,107.41461,495.37875,82.35894,474.49692,5.667445,435.65494,446.33453,346.07693,348.31982,143.94447,108.82107,321.98007,65.84216,72.15195,399.63684,4.1421537,244.70535,150.65442,67.27821,441.9345,291.68088,252.57924,371.26593,25.490929,337.73056,376.01755,481.29285,313.73117,33.17781,489.35608,194.01508,478.72897,242.59875,356.30212,426.08044,98.060905,186.5129,400.14026,173.79762,316.7359,240.02487,444.62357,382.57077,419.43848,452.50244,238.03796,227.68857,359.90823,297.67682,381.1767,80.352745,479.70956,63.918747,297.80212,115.342026,258.0606,413.82092,278.52707,462.2409,453.52164,156.42017,210.4888,286.12976,394.94766,202.3481,5.875782,177.86287,97.15815,236.95105,442.2795,11.036042,8.151706,429.439,403.8086,184.80359,30.57303,462.67804,448.15408,150.0206,289.21304,65.39508,338.5327,209.10376,14.4917345,92.84426,254.18129,1.107969,327.48383,136.25801,201.83095,178.96126,371.7055,360.96872,137.5641,365.9078,338.48608,228.36629,451.98178,121.11138,364.09412,381.75504,449.7315,367.72565,245.07933,234.65358,22.92356,452.8637,195.50905,472.34637,338.95486,446.51944,202.23006,414.28714,434.24084,241.83508,415.68216,19.23555,102.52886,331.2609,66.09786,45.42813,454.68616,440.09152,394.45734,77.669,168.41951,361.058,168.27737,403.53873,462.1041,98.2511,322.71344,232.52994,186.66046,289.42148,149.58206,207.88329,480.48907,263.2886,443.42975,234.03415,200.5273,381.7716,171.12154,107.40903,69.16344,167.44754,50.887447,137.94572,457.85297,289.4408,246.10756,433.79465,448.9954,460.80566,11.352554,402.30798,263.04132,231.66063,264.9765,363.5872,238.45854,398.20447,147.59686,272.89554,326.2085,206.54338,441.06512,466.94104,356.98087,97.56073,39.04806,246.24039,17.162762,65.21944,244.16121,485.0978,474.17682,346.79022,280.68365,213.82977,62.09823,355.65048,395.67572,207.6855,141.11388,446.98602,61.74712,48.845623,418.04733,65.76736,458.46957,297.5992,72.96918,337.31415,200.00858,308.74945,435.35486,107.77454,7.8271294,279.4655,493.2638,29.373856,405.95892,453.1235,284.8636,64.32224,430.55356,128.44278,322.46585,342.01932,322.77625,359.80914,365.47025,60.682083,88.14943,5.052085,330.33072,434.37698,214.90959,324.1262,322.91296,367.6615,465.98828,497.01978,86.31129,176.37473,94.627266,134.85393,436.76132,52.65437,134.83139,97.93727,69.262245,113.766266,271.63538,337.2955,347.8335,163.31248,74.889305,130.01985,179.03677,21.072037,245.05493,49.295593,142.9956,288.6764,471.958,54.738842,381.84622,285.29825,66.77702,66.55922,159.0317,439.39218,148.74582,372.47696,316.23895,386.91632,406.07486,416.6104,430.15744,482.28024,292.38644,230.03516,492.36908,67.2074,53.999477,169.85631,64.94993,316.64633,425.61374,441.13092,162.01299,123.29453,304.8637,474.36066,293.59592,132.01198,42.40706,50.154137,49.658943,463.7561,108.43851,392.02936,239.8884,63.88116,387.32043,332.0089,254.18459,220.01515,209.29353,226.60645,26.094538,452.1126,84.5042,184.11111,302.54694,286.89386,100.90567,344.78983,284.79974,126.31097,167.63612,431.2358,105.40814,38.862335,169.3356,315.43774,98.122925,387.5097,197.77824,38.64068,214.17711,146.23354,397.52542,248.86568,122.84323,79.2435,190.25719,481.55255,455.6704,274.8148,94.771645,278.02814,77.76664,159.32219,490.5376,78.45496,32.686504,212.24954,171.36479,472.77753,13.966519,207.97449,149.95667,279.29303,169.75012,436.64093,77.14402,310.5735,100.48394,414.61108,121.67206,273.42908,223.25465,247.89117,415.55124,449.82376,250.28345,374.40762,472.09857,51.465874,312.4705,332.8048,14.157084,208.49118,70.62379,306.6833,41.88726,92.82022,90.61936,100.73234,306.27142,158.28958,406.7656,272.35007,32.294365,201.81743,97.35364,278.60562,102.728264,387.55728,190.9602,325.87708,279.38504,366.62064,438.05063,232.00694,339.9933,371.66577,435.01437,209.81352,310.17484,456.1191,102.474625,24.615995,131.03445,350.41974,4.8490987,28.112988,222.75946,29.370504,69.95011,79.93989,376.61514,448.4628,71.92953,182.99759,359.68088,201.37633,131.70222,462.00595,491.03442,312.37296,236.87158,84.716705,274.1019,289.42477,236.51762,290.80582,484.47775,346.03806,476.96875,225.99261,446.11734,210.19171,240.59712,16.70886,41.885967,120.52563,470.05853,491.6308,133.22478,152.85478,296.9115,95.984695,431.06238,23.473404,288.18613,274.83682,74.45691,156.93408,174.62598,167.97664,283.73254,156.67596,402.02737,278.87952,351.2997,350.13596,475.99088,330.1761,352.55298,36.46305,435.7826,59.110428,403.3935,60.15487,20.380669,293.7885,418.8923,144.44783,378.97983,363.72137,346.21426,101.68838,366.37903,232.52429,79.33344,111.54156,16.401644,95.14792,129.2651,63.546646,85.86558,45.10672,127.529564,210.12741,181.36378,278.85867,266.23886,253.96114,451.18512,400.63202,177.2376,96.40095,434.80017,106.16281,77.65823,78.27729,162.55566,310.9796,99.940636,114.570885,334.59027,481.44348,184.82845,378.79837,382.0667,148.1775,235.5566,417.81512,60.277294,106.1562,384.54016,231.3277,63.652603,238.73131,499.20413,107.18153,256.50537,338.0163,351.7396,150.96664,255.15155,90.39175,320.55682,163.83583,460.14374,269.84045,125.972275,36.297707,418.319,419.073,472.57108,317.318,214.16861,63.938652,185.46954,441.22073,326.99258,477.3407,490.14603,455.4313,146.9677,237.3242,129.42299,169.08711,403.42776,145.76907,364.57025,390.37476,330.3434,6.0755444,465.16986,226.44038,60.685387,228.43126,351.8514,168.77818,324.76184,401.6513,354.5805,111.68762,187.0509,320.12476,486.8599,433.8375,141.8162,438.16437,288.8352,269.31857,52.86713,354.5567,260.6087,444.26044,439.1464,1.428318,202.64113,474.6505,85.48194,91.6204,38.040264,395.54056,235.33163,255.47383,312.138,160.39229,96.358604,450.36295,274.09317,422.97647,328.1247,77.06964,414.58234,352.2744,401.38437,486.3999,207.43892,249.66084,335.04166,497.2325,438.4195,403.0788,235.54872,172.76337,217.443,328.4101,195.05083,354.2265,302.35403,445.90652,73.54573,152.06041,189.67354,146.59303,363.3276,259.19537,206.27562,118.88548,324.1444,458.2246,175.90134,466.56094,330.3944,449.6454,17.40706,335.01147,384.5851,428.78946,150.51613,396.8213,60.53979,372.1658,325.11768,162.46811,212.5555,70.465645,248.49713,122.34766,310.4304,134.2943,263.06604,357.1437,129.1427,346.66418,41.56072,420.97052,38.923264,269.17,326.64417,44.574997,393.90128,257.98254,369.5673,144.30144,86.06694,482.19635,353.678,166.26701,169.98294,8.261592,373.42587,227.73653,220.9923,430.99387,267.22888,50.146152,199.86566,312.6075,347.1311,89.70101,191.01685,259.50247,189.38562,329.76428,331.3951,360.88376,486.78458,113.0195,234.93677,368.55524,69.44486,428.6764,439.27267,129.99557,113.85226,264.065,184.13823,372.8171,344.73178,153.26689,187.93658,423.49774,366.37103,155.09535,318.4925,399.16983,205.85982,327.61908,444.40237,54.93493,217.53482,18.493025,394.86578,174.50266,197.61903,194.80905,410.85703,208.78171,489.94604,366.89294,272.05304,377.80307,300.8031,180.12727,461.6956,199.49193,234.43257,21.533955,110.29674,128.12498,46.22143,29.52924,438.58502,369.4258,252.77896,44.03485,113.733734,340.73633,347.75717,365.29535,238.96794,463.9882,157.26637,418.75104,154.89267,133.36394,280.9175,145.13684,195.24635,188.83704,313.37613,434.62332,105.70043,397.68774,490.35226,126.37726,3.2602026,375.95703,246.74013,264.2661,329.77252,122.80752,444.3643,228.25418,349.8097,201.76244,362.12518,369.4708,258.2865,280.22763,353.31955,312.23834,75.64204,308.91016,367.26935,414.93176,224.61281,257.04425,111.09681,212.92178,61.760628,341.99445,310.20428,270.8589,243.2129,272.13895,300.53183,5.617584,436.61404,352.6849,72.76183,357.09152,65.97213,136.28828,307.176,28.555649,262.4752,346.39255,149.79388,496.47104,472.42996,452.93225,154.02835,76.53009,260.81537,146.82976,160.2525,421.51407,202.96822,308.8221,498.87543,165.5811,148.62973,176.47285,389.29504,69.479004,299.26672,265.30243,45.379444,488.91052,257.59937,295.8127,148.4395,222.34093,34.245842,151.8684,322.3487,385.39163,155.39783,354.56964,128.88162,194.82742,495.00833,490.88828,113.840385,497.12347,278.54898,43.77234,48.430523,304.2462,499.7241,230.30388,61.671402,164.14998,378.12808,383.82413,56.02899,80.00413,196.83218,95.25095,119.68885,362.31467,470.28128,460.89813,151.00554,431.47287,305.3261,289.3421,175.76117,274.55313,261.78555,470.7572,127.97587,461.8228,202.84616,47.267536,160.23563,366.3608,70.00869,399.94623,418.68686,446.59457,347.98785,68.85413,121.645836,341.88336,157.77106,382.08124,70.22823,392.58054,398.09622,276.08984,36.304665,245.54234,325.61722,347.95935,292.77985,474.3487,375.243,410.1383,111.15067,486.4696,123.55692,274.90765,89.75748,389.76392,415.79526,221.00926,241.91437,11.663705,15.880059,437.6663,269.99307,10.026323,23.014103,249.974,383.06537,251.00159,219.6634,47.62616,339.06903,296.43726,8.851367,421.76028,292.70184,157.94675,260.15125,411.38956,456.17743,379.6205,213.72282,213.39697,32.861324,29.496286,24.905703,185.95985,318.89413,109.026344,362.8382,345.55676,55.28208,228.98175,398.516,451.84216,426.66736,468.7665,91.268585,306.1868,431.88104,5.833526,182.98375,29.110683,113.296486,447.38113,358.0859,87.2951,275.68784,361.87424,22.78982,62.68685,475.06073,117.14197,367.5805,223.88443,13.550395,230.69348,62.918514,472.03763,394.34354,490.64328,343.4116,53.31016,449.90994,305.0593,496.05298,82.198006,34.362045,263.30728,321.1282,124.39925,483.23184,119.3823,121.2808,93.26976,44.880898,294.09665,331.2831,10.184058,35.764496,468.19376,448.58447,413.41302,302.80487,176.7083,11.737089,454.36853,328.95944,380.95944,308.406,5.4559627,96.04715,367.69498,80.31706,354.18048,465.3094,20.425459,282.3432,448.71524,436.9143,79.723854,322.96036,320.95438,480.30386,483.53625,164.62746,358.1482,12.650914,18.049002,353.00745,333.00287,136.65451,183.6228,28.860638,101.16224,377.59833,149.2038,170.75497,47.714584,80.266426,419.46365,83.57035,176.54388,352.48886,384.79312,226.25157,32.647156,153.89526,446.095,344.2832,186.77133,490.54666,71.24587,430.4694,378.34903,376.5794,434.83377,441.82327,377.84814,340.4973,123.73941,268.5228,209.23473,279.29068,397.26596,276.58484,487.8515,120.482025,92.61335,313.48032,484.55286,157.91974,279.1546,461.13654,225.47469,428.50024,68.71834,241.81122,445.82404,280.68677,249.41017,467.81668,209.66179,345.3688,56.27277,110.83582,69.30955,41.83556,221.8544,231.10754,121.46246,452.26727,136.8593,42.10021,9.610039,159.15582,282.54715,355.84415,276.25302,275.17505,495.5817,217.59058,479.87003,224.89014,318.7949,492.52893,240.58505,430.98813,189.62273,86.19041,493.29785,240.94756,327.08133,71.615456,25.612787,66.32332,267.14218,2.5331275,40.440105,493.9922,261.28812,89.28799,27.650995,336.62888,427.2446,9.679095,203.16687,32.87959,453.8448,367.81903,199.82368,85.47014,239.08852,383.54416,77.609276,170.69463,200.10524,98.12827,369.64938,232.65622,32.137157,168.10161,342.2506,189.74338,291.9373,476.17853,207.18488,438.80865,332.7067,329.9715,455.96887,415.0853,98.975494,215.21486,181.3158,126.83614,192.07317,9.692746,268.00543,10.38778,355.67377,372.5692,384.1002,317.09973,412.85638,180.75485,92.60358,179.61884,47.58273,77.545746,255.52524,91.23915,403.07483,73.78519,299.59634,368.4592,249.77278,480.25522,179.43538,66.44049,72.15318,69.53361,132.01581,241.13127,222.69391,49.078186,95.48901,138.84138,406.93015,80.26427,329.20218,20.85989,310.39554,177.4497,306.7867,62.69585,428.7925,446.79797,356.08328,6.073797,498.30472,399.4548,38.71253,106.29328,373.2169,296.02933,319.77405,153.05363,225.86633,445.53415,193.33311,269.7038,291.8783,244.47533,141.67545,97.063065,493.3618,258.60275,199.73604,434.33746,485.87238,343.07242,56.123425,210.59366,240.31451,443.14536,249.07513,45.547314,288.87433,102.646065,363.40424,456.03784,191.67496,450.49503,445.30063,221.67328,277.4107,359.0315,132.4372,432.92123,35.191914,93.102295,114.04334,128.16998,291.00296,149.75826,484.7861,212.97855,339.09787,14.044116,241.93884,301.77448,26.04697,264.86285,82.359985,461.30008,75.011116,103.192856,225.95479,296.33408,64.51198,331.86533,482.74704,444.5106,59.101376,469.4066,213.69156,373.36594,475.13373,148.83507,476.6369,156.86493,104.802185,245.27972,381.90216,431.1922,118.57436,291.9121,134.64574,417.80255,354.44473,471.49405,153.78401,444.60843,115.9593,128.30382,228.02545,322.12772,299.7358,403.54114,469.9651,152.3869,275.46527,328.24527,347.29376,86.24869,62.131813,145.98415,227.96086,429.73987,483.23932,277.5286,157.43892,258.30212,124.728485,429.8276,315.34695,4.1243815,410.43427,237.95938,435.20355,78.01867,446.9036,244.13026,145.75652,119.168976,135.62685,130.37111,299.10666,469.92923,212.8453,128.50188,86.911354,369.4517,345.67624,237.21103,65.462006,158.0467,116.0772,112.69244,67.47661,177.04552,188.5945,7.1666718,205.17151,409.56625,249.49603,361.94034,347.95276,4.6133137,53.278816,71.850555,408.98032,116.24146,260.27448,392.90988,388.75302,425.91452,426.13345,279.3721,147.48825,268.46277,471.6818,52.081978,306.09344,7.571176,413.56464,435.15808,240.20624,387.02234,40.349236,440.93335,395.84885,6.0751853,20.15681,237.28627,184.93152,47.65824,344.934,489.95862,212.04802,385.28397,273.1141,360.58163,497.61362,164.5946,429.70898,349.6489,26.852306,462.34766,264.31186,172.50461,470.35837,305.0432,285.74512,345.16196,235.56668,447.33597,238.62497,376.64676,332.49524,261.46768,82.68823,183.19775,475.0947,292.1832,450.58752,371.2225,390.14362,476.79807,36.01633,386.69672,408.6053,192.40425,187.28181,366.95993,165.06161,136.13087,306.10037,199.83804,313.82135,481.22543,344.82156,176.3347,481.0455,125.95412,139.24379,49.03825,488.98682,111.7367,173.6082,51.17969,51.161194,147.1569,58.147926,361.10577,74.844505,418.3268,366.85156,344.19534,313.3234,467.34485,148.56068,201.97188,86.70819,331.95575,321.19513,436.61508,61.759857,479.2831,289.38376,63.152138,253.79909,188.60077,87.43421,460.18256,8.007912,41.730804,105.485794,157.75851,71.27751,146.36928,180.75241,200.14,15.752469,320.49747,145.00708,362.12927,84.61826,276.1432,300.14062,372.33447,203.97531,480.21048,63.31356,376.22018,431.0093,320.47183,38.53755,112.83816,160.56897,123.78454,361.12225,435.53772,410.7456,239.51419,117.15678,132.08368,226.1997,449.32953,370.88693,220.5753,469.85916,488.5374,288.06915,17.950792,483.8688,30.48763,59.143417,14.925062,250.27483,14.343996,137.07639,412.45572,204.1313,371.32776,430.1575,38.905895,462.04904,215.34589,116.3341,96.54458,416.4841,356.22952,23.453678,321.1316,361.67105,245.362,155.03035,452.59827,423.3719,456.68933,205.3183,56.405556,155.60864,122.21033,489.25137,98.99917,339.31097,6.995814,496.09402,404.82776,393.29306,392.36548,143.36908,350.89682,10.338508,438.5667,270.69525,488.1205,259.13885,466.37585,108.506424,309.4919,106.25936,388.08917,390.48984,8.8185005,28.761374,133.66855,41.520943,45.792645,150.46848,127.95988,303.12463,413.36597,478.11057,128.604,172.66965,399.93292,8.104129,417.2684,425.61237,452.4183,145.95956,162.64546,288.61163,334.61172,12.207274,425.86914,425.5138,349.8338,451.41617,178.11336,122.839294,343.5864,333.9234,252.59839,96.33747,307.1548,456.29462,430.4842,296.03015,226.19194,237.65889,209.26584,309.83218,74.001274,81.71305,437.61768,334.72107,264.98468,278.31772,99.04574,178.1085,23.10079,76.70601,358.777,330.34924,19.984327,155.23271,353.98938,70.69247,179.5676,271.65054,217.22379,307.98703,270.7657,399.77582,471.20816,409.92346,243.6398,80.19845,232.46463,412.3372,270.80127,408.97488,188.55566,63.440685,340.7295,286.756,44.53759,119.10884,190.80353,44.109943,7.6582646,65.177124,70.64307,168.78432,184.573,249.84286,2.6190054,50.6599,101.75256,289.99435,15.349017,42.19781,209.84229,473.1126,121.32548,194.49524,131.1022,38.817444,260.98032,226.85622,50.919262,396.20624,379.25815,468.22858,179.96133,119.101944,471.9662,435.3276,361.46884,61.01538,429.68365,21.048912,396.46402,179.0903,172.03842,19.499979,151.46164,175.30434,1.7784462,409.23157,298.5572,7.741041,115.70676,489.37903,378.10977,50.623756,98.22364,406.71808,146.25624,228.86052,360.77222,327.9812,178.64708,140.73933,375.098,447.15125,102.721146,99.84431,427.99426,350.79437,203.41295,421.81467,388.00156,269.28958,424.76825,402.50372,295.08978,477.86478,272.69205,325.0245,443.1616,44.43568,75.09209,309.7854,155.90608,386.34488,306.7522,123.772156,211.44577,155.64874,472.3092,401.4672,182.71248,400.43127,374.20114,365.11966,351.59512,308.1979,138.62086,83.87483,206.7955,215.54938,119.02329,20.956837,320.3766,476.06125,197.14302,428.50705,299.1956,278.61526,254.39551,58.62568,179.72826,468.95404,97.46266,249.22655,372.55322,381.8445,158.3455,216.10957,285.49585,210.08977,308.80402,296.97955,233.24374,219.50826,22.840494,37.417072,469.01852,25.557648,78.204704,416.52264,262.1748,293.97903,414.31052,364.35272,307.07022,83.02213,142.53844,380.48395,465.46207,113.79658,194.715,42.61536,145.8746,378.60526,452.3434,446.80585,142.77293,132.72572,310.58505,480.69263,166.23093,221.45322,231.52348,238.92433,284.78864,26.414581,54.885166,310.92255,135.68445,29.249138,408.8857,105.56294,202.35062,71.72584,186.7235,377.92706,392.05365,284.3073,169.57007,166.8891,457.72156,233.73239,466.48767,121.29426,491.9374,161.98698,410.8127,358.61874,394.47736,330.0634,121.33744,178.45766,452.3238,405.98215,485.35382,119.73502,451.67163,126.09282,110.65787,43.84639,52.413647,401.79886,311.29816,61.78741,235.12923,356.66257,14.300125,140.58543,97.65487,77.99737,254.56702,73.6683,275.08667,285.3903,16.27757,173.41396,22.027487,187.08432,408.04953,373.84473,167.88196,102.26155,33.813026,420.26984,340.70193,405.09375,159.11705,356.59634,477.43796,413.38528,254.84796,54.219112,245.36853,318.56653,393.86865,164.356,446.65463,469.5095,149.82799,392.0118,276.72983,425.71732,110.03355,349.54486,428.97272,44.151066,433.90134,249.13577,412.77765,166.01868,167.18588,89.80232,281.69388,484.22922,87.31929,194.99338,105.53388,418.35486,480.46518,466.95825,19.919144,239.367,438.25955,196.68416,204.75722,259.3922,10.093086,306.89365,162.9798,201.88286,93.42324,164.3887,341.8007,271.66904,176.5669,219.94905,388.98392,194.56215,92.59908,194.54318,133.19826,404.62796,327.52097,125.37087,252.64528,309.96283,135.89696,333.01572,196.60036,199.24602,432.04547,100.57028,342.508,276.10324,199.27528,417.2457,369.2395,340.2785,215.57576,78.4328,299.17416,164.11214,52.891785,268.07495,46.70076,191.15817,412.0474,457.1002,431.45236,406.4854,27.792467,174.67056,102.43647,1.1779966,462.87842,218.01236,417.85373,296.0416,2.9613664,191.81187,272.85413,181.18787,42.226883,314.68744,164.7007,418.2443,303.212,123.46179,161.5662,205.86235,173.71973,480.12216,116.472885,86.68221,143.31929,140.5162,291.0583,341.40985,484.92374,353.97797,323.46317,226.65636,298.71207,225.72513,404.39514,62.087032,432.3764,236.43541,434.8619,479.3222,264.21783,453.47925,17.110382,265.7617,117.76167,199.43512,238.77342,307.98575,454.60522,484.13312,148.06023,481.82486,164.86002,392.8099,169.43504,38.401512,345.15356,94.65514,353.47253,71.59465,345.98965,104.15357,305.6633,397.42136,486.467,122.88681,291.3045,96.305756,192.2591,153.00418,418.12042,147.01212,416.42307,24.729656,335.32297,411.48587,269.76917,93.80954,308.40265,477.69006,473.60864,362.91113,157.87943,376.07657,26.855618,100.47789,24.055399,9.54172,266.0614,365.70892,56.21869,80.73706,27.664047,182.95953,109.51635,84.26423,223.6428,351.68314,20.86007,123.19878,311.16296,213.74692,478.47034,344.42636,301.6623,440.75305,497.72177,490.1454,220.77914,493.507,64.67081,422.3438,358.95496,192.9159,489.07437,75.067566,384.49045,226.73181,202.09717,378.04895,93.05506,196.35544,310.56793,441.64142,442.53696,435.44058,326.51956,397.2765,480.7729,278.58798,165.29729,333.00064,353.8633,335.27722,118.704475,193.64024,158.49617,135.15993,47.938927,64.903015,294.30722,267.5108,157.76839,413.34067,299.84448,142.04813,280.60623,58.268303,382.4798,443.65344,287.75378,409.8167,247.97957,144.03166,244.2182,318.6484,123.300674,371.9283,265.23685,269.97104,45.484962,209.62865,109.438576,442.32034,87.69854,38.1693,424.75122,288.17365,412.2459,440.99207,36.157673,134.61186,326.52042,146.13815,184.69958,37.958145,424.60254,44.637383,374.07858,317.87537,454.05536,383.98685,215.34251,1.8505902,111.38378,322.8329,20.038828,334.59,355.82532,308.698,368.17728,262.5232,113.79453,221.34628,464.9998,463.9672,214.23906,74.4385,328.31256,3.2393584,477.22534,138.27184,1.992703,32.897938,317.19217,308.03775,267.025,488.61462,303.60904,302.88843,77.47787,331.83087,114.02612,444.8161,408.30667,390.5292,134.44853,265.59766,228.09348,387.65564,291.30914,76.620384,10.772668,52.785103,110.32893,369.2067,246.75822,376.5859,35.303673,89.64451,247.56522,54.13348,298.01468,428.69232,147.00725,182.7253,430.1281,189.06297,365.42764,228.09341,1.2370919,224.23386,136.22672,199.25075,329.2833,281.6278,308.79688,334.8807,90.63213,454.98105,259.80908,460.20248,94.9286,395.2907,474.92734,123.35898,333.50143,392.4672,395.0312,391.19016,461.72385,75.82069,429.91132,128.69379,253.38017,40.734398,393.4346,389.7637,392.55585,300.4312,380.78564,492.59525,99.47695,239.79407,25.379692,352.6541,173.86244,392.51505,381.3945,277.08167,467.36398,468.66827,443.83295,42.05223,33.639683,19.633133,81.38672,14.673377,142.34163,236.21599,463.3278,485.02084,461.6086,325.94357,468.0706,331.63898,40.171913,70.45301,431.09042,97.8547,289.18265,325.46643,122.70915,4.3534026,155.36853,284.55438,186.10278,92.8191,149.37962,217.34067,392.84854,461.5523,496.14377,202.81017,258.1658,475.8226,415.36108,218.94807,234.08533,379.48883,96.57319,467.93073,495.90637,365.58414,91.89349,150.11543,61.3043,224.0081,365.25293,408.6059,338.98355,415.08496,463.98428,196.17908,469.8413,172.65851,384.404,74.18639,2.5798194,280.6857,60.1929,465.17352,346.08383,160.10313,180.66504,104.98573,457.00967,398.26868,26.581802,427.62366,339.20227,100.83064,62.841125,235.95534,170.43105,440.1853,150.4139,271.49518,437.1674,430.67642,430.86383,412.0671,460.41882,444.4584,151.3593,172.47702,474.2955,356.5915,217.25159,330.14716,33.97052,382.35016,238.35406,375.2858,66.00093,246.88467,454.08054,406.2956,345.17157,337.29584,458.40103,281.13373,384.80347,357.12952,200.16847,94.02024,19.975765,300.84323,201.39456,6.103236,470.2266,350.3461,428.56012,43.78227,370.9177,93.07803,246.70673,71.79105,44.72334,488.0319,387.77563,495.4259,408.32208,27.281971,223.13385,319.32797,451.701,52.948425,199.96184,458.99445,241.2266,409.29108,2.4073825,446.6288,166.00142,407.4614,391.74478,266.5032,474.82962,413.75183,125.67707,467.27417,153.5599,243.52277,436.9695,269.68655,481.96985,86.47489,165.15712,194.6978,36.928375,364.82388,447.5603,251.71101,141.9284,239.29921,278.1393,240.83664,244.35312,140.5677,18.927738,177.81845,488.87366,182.99852,91.187225,415.44308,483.67267,7.3910303,188.26477,468.08316,278.70337,204.63301,441.88678,427.98843,165.70082,449.75882,214.97389,203.18834,438.25766,284.14368,455.34863,133.14806,436.99313,89.08604,412.6049,219.81796,262.6632,222.5335,355.1256,272.4955,293.16956,111.66208,333.78867,401.2798,73.56674,164.41692,435.53012,438.38934,66.19967,252.65582,493.3263,389.6179,225.53305,231.35834,355.08005,106.26918,145.31503,55.290947,267.2216,255.33086,39.71814,391.89313,223.28415,434.4711,408.8396,124.1215,158.1093,65.335945,78.69585,24.372368,338.97064,325.87622,50.455105,193.27713,7.8970656,256.15237,451.7722,56.319633,395.4352,483.20248,495.9771,255.99887,385.248,369.4585,391.0691,332.7731,316.70773,370.83557,5.740424,351.59378,209.35522,499.67694,218.28253,61.025417,186.69516,179.4127,307.92743,36.55425,393.75647,19.621552,340.47836,328.06897,290.05386,423.64954,428.88367,245.95908,24.535294,265.48154,180.41454,108.763504,227.7347,354.81256,449.008,426.7168,373.20264,484.99472,40.055367,101.08818,253.20747,282.15646,424.1365,390.3681,287.06506,360.66782,331.15366,125.75776,344.3976,145.83801,383.7626,261.88956,361.0446,160.23033,265.64127,240.49709,156.86801,314.7467,481.7407,68.99278,395.9191,70.47998,193.93837,26.656384,336.32703,422.91373,15.580898,217.69182,490.79694,80.79909,128.08588,60.21659,405.07733,375.4247,301.41977,105.84801,94.730225,316.20572,223.05612,488.94012,241.14725,44.418102,377.02505,236.01271,19.692675,203.52959,304.62445,363.64954,120.79763,214.5917,256.6326,178.85028,474.78293,493.83377,483.20612,338.85205,314.02856,389.60828,245.81468,315.80783,93.414696,261.14008,111.22116,212.69574,443.10913,334.71085,373.1486,374.85843,125.26881,316.596,235.44724,275.73932,210.34169,5.78853,461.08408,463.43277,168.847,494.35446,242.17865,244.806,219.94342,266.07523,298.7281,110.95737,490.3163,199.42769,330.54794,387.9272,492.08093,246.48912,442.26407,94.5424,239.67181,320.09113,7.704764,57.409565,75.81634,84.45273,68.3266,390.19937,84.55141,405.99368,31.8759,207.0223,347.65012,452.45883,403.80142,244.4633,313.87256,210.05286,181.0219,484.43097,139.83156,108.255264,388.18558,160.46602,270.3976,189.2068,208.4367,234.2877,10.631474,49.469048,389.52536,100.57853,59.662712,20.588654,236.0616,55.67706,394.5417,19.696507,494.84213,144.83565,25.051512,49.231766,382.16122,298.07684,203.2796,181.37558,468.82126,494.3269,458.55014,71.26362,24.770107,309.91574,402.21533,187.52193,257.82248,366.94064,436.14694,239.7658,489.39734,332.2475,379.75726,56.63026,95.01373,127.28544,472.9551,87.01449,326.4764,245.17043,145.04462,72.28795,47.9468,300.97568,169.87003,492.16867,496.69662,418.33325,168.35442,30.784603,311.13644,431.89484,99.48115,231.93956,489.9523,305.6645,81.81947,489.89838,368.41296,313.11267,135.05678,301.99622,294.7895,129.19618,220.58673,346.8972,56.674175,339.86972,420.73343,176.5869,239.5383,66.849785,225.62193,388.01318,210.98016,346.9911,289.48645,321.49905,339.67496,426.25827,408.66003,375.1289,399.79285,171.99881,394.91916,136.97751,0.33502093,227.62402,468.4572,326.07272,147.85019,190.305,449.1878,398.71286,143.51518,168.64769,128.65889,288.55554,401.3342,12.473569,35.9209,112.03542,31.95491,474.42776,417.32175,262.5109,46.024643,123.836,339.59747,426.20532,210.63469,31.863247,142.27504,284.14307,310.78033,57.611237,158.82701,170.64453,292.65375,328.37903,64.858406,121.564224,321.26447,312.63107,107.64711,323.16336,114.361465,206.7623,490.50137,405.24527,180.1605,449.81454,446.01913,174.54218,17.52969,454.00803,371.6665,227.09851,217.505,293.7555,193.56589,443.11334,58.846413,469.83484,46.253777,54.938324,130.889,123.42138,221.69357,226.54971,14.610393,465.5719,315.83545,446.48517,438.94586,4.513826,368.35794,101.56844,445.4055,25.471157,426.44373,403.88623,71.40572,379.6289,66.3796,329.22098,281.79288,209.14713,6.0991836,336.58408,157.60902,33.277695,410.6119,105.722946,482.47525,293.8216,431.9485,409.54678,303.80563,426.83276,47.558994,358.68716,456.11447,374.51254,9.704412,250.49547,417.95694,451.78165,287.3444,155.6647,326.47208,307.3016,97.69886,60.824146,314.58304,323.49026,492.8115,63.495464,98.93683,456.7097,499.53308,177.92285,317.2976,407.04166,346.79373,74.126144,215.87633,359.33087,311.3028,5.3490033,446.24368,400.29938,485.5433,15.915696,162.12793,419.6437,367.5912,382.4648,412.2825,421.77185,53.525246,141.48169,4.4979305,249.22806,76.257034,10.180046,77.10134,143.11537,108.00467,463.20325,281.221,446.0764,14.32989,318.4192,34.9364,168.81352,384.5451,218.69907,148.5847,474.29422,313.5424,146.67432,323.43262,485.78348,177.78946,428.03674,214.01537,261.5206,397.17487,58.36095,382.89502,239.25407,434.12863,232.87663,423.01312,28.429037,455.78632,2.624527,130.02542,362.82162,470.5755,101.024895,278.11032,360.55826,309.96072,35.95038,207.92839,122.82385,60.570312,10.374471,313.26422,229.38617,92.0037,221.49356,89.01614,152.68596,356.85013,364.49164,179.42212,28.746214,356.5845,285.8216,344.3479,356.29196,245.65126,179.2478,21.137896,244.75568,444.02158,64.32014,1.0623968,85.87176,267.79227,397.30814,319.52594,453.38443,384.5943,358.0637,376.66385,90.6407,179.99907,307.06558,394.90555,494.7114,346.01047,103.80603,357.47253,289.55472,108.60278,39.829857,331.34564,127.14913,201.13174,425.42047,451.755,48.07334,260.4194,311.6482,65.8181,234.44258,73.0469,461.0133,215.78674,133.70401,134.50655,196.65607,167.99507,149.41354,329.89984,495.58813,371.964,384.19437,214.15924,393.2782,346.39532,264.97958,122.11766,368.08426,440.0961,246.7173,467.89728,456.34296,127.580925,343.36713,99.40762,227.81834,384.14233,232.49211,388.4373,240.69508,211.91081,198.81555,47.890717,463.5506,224.32056,145.88762,19.964037,276.74725,459.36697,405.38284,384.03894,89.31796,496.4063,113.4315,99.76434,405.53458,316.10516,376.93417,171.01294,26.247221,385.6687,197.98656,218.97624,80.56293,282.5369,455.2736,461.11746,30.140095,384.5456,98.52652,196.7912,353.3018,3.077714,438.16446,32.171436,475.6164,222.89545,65.48622,429.94492,385.56815,18.188646,258.84543,489.20276,183.91035,150.2662,318.17508,475.61258,468.48154,444.3639,167.62714,23.777842,143.08562,436.4822,412.70566,96.15452,125.637924,232.95433,3.0357668,446.07123,445.97424,143.80208,485.88068,103.98788,268.53394,0.138912,73.773285,473.76807,342.05807,160.06563,339.05698,71.542984,461.0565,131.17302,130.40012,64.567245,422.4322,391.69052,139.4364,425.5934,141.9189,126.413376,455.54675,337.6659,431.5082,461.21982,280.6994,298.5404,305.50812,305.11243,243.0769,325.77966,200.1554,354.8078,485.95605,180.23317,24.773293,308.84277,23.240982,196.85095,43.213512,171.63606,354.27173,15.8591795,131.90271,275.56915,432.27625,111.06533,308.74585,337.11996,99.238686,269.8206,342.0465,244.05174,102.175285,144.29219,89.42071,420.4231,184.11705,288.685,84.44141,448.1315,44.720943,356.48035,52.718113,183.93558,218.24374,299.7971,228.8467,179.69719,7.1805143,109.5267,475.15155,386.31537,182.52975,435.43756,215.11876,482.01572,445.4999,314.52353,263.91916,27.53748,447.02792,124.02149,341.09656,287.10284,394.71588,444.75467,181.75562,203.71371,46.59074,326.5213,422.6556,364.37823,147.15344,105.01847,94.870605,429.05933,307.87436,119.36525,274.57303,32.58874,257.12787,13.680533,498.63138,342.24084,414.4733,354.67917,108.29754,179.51436,262.2019,121.243324,151.11557,413.99496,332.45218,388.17255,220.99739,147.67728,183.78082,11.827478,36.213894,230.03296,231.76234,305.43045,472.94626,15.016876,213.4523,211.67755,448.20557,288.6684,396.91718,378.19034,399.78925,102.74912,373.4395,404.58722,309.31573,405.68253,13.35435,430.5155,126.52581,101.51329,31.798832,464.5154,434.33447,429.35855,417.1089,20.738773,280.24002,497.2173,221.07355,160.2138,483.07245,212.54074,90.36915,104.93584,201.02435,293.6525,88.08463,430.06628,259.1296,145.83098,307.85782,12.635134,324.6725,295.7894,389.89883,101.882545,386.61203,73.48717,30.8652,170.83775,92.90191,343.2838,262.31857,177.29376,16.740187,499.38705,391.65393,443.71768,140.61609,286.64517,170.07271,182.43716,229.23555,88.23478,48.7203,414.72693,61.392986,113.7266,332.0625,220.63054,5.932244,48.429813,218.63962,281.3444,369.8033,425.75568,387.85086,274.35126,115.572464,482.11914,205.38649,285.04495,219.66016,61.752148,142.80669,28.445145,129.0812,82.82903,31.55029,52.427753,185.24358,422.9485,114.7287,352.92206,418.76108,470.41977,459.2697,367.5245,98.55939,178.1158,225.25655,66.7957,299.53384,62.502625,195.94441,342.9442,356.30194,307.81134,496.40988,79.68558,406.93607,302.74323,214.71553,275.60812,162.52124,92.19107,92.67698,215.12978,257.0472,305.64435,196.79935,286.06583,104.10487,365.7024,431.18677,321.46173,454.62228,329.64276,5.235636,333.65622,211.41422,254.35577,463.0033,415.6584,131.5382,342.0404,498.0511,284.00455,325.44492,239.86836,15.869406,179.10515,391.19925,396.3674,29.821499,140.46126,309.29453,387.43356,56.97979,320.17853,356.7522,412.97733,431.94208,165.81818,235.12123,393.89545,31.127836,305.1388,376.22018,156.00238,145.73325,129.14795,228.31975,254.20584,17.896255,385.33963,398.86847,65.936905,441.35925,415.97037,486.70804,202.05211,3.5501227,297.70996,4.882923,9.945029,252.27599,22.873997,10.862666,350.1468,386.80307,249.90652,197.26935,225.90247,354.14752,310.36716,387.28085,437.77744,278.1013,55.275932,206.59927,396.4326,249.6992],"im":[227.37856,148.38808,48.04085,394.68878,144.49867,280.3648,99.37566,303.48016,13.799565,309.49097,126.70874,26.619701,164.23802,304.19208,427.63245,116.68838,243.20552,280.3821,292.19275,415.4131,116.384544,250.64497,430.1845,166.92793,499.80243,349.5234,330.87915,48.560326,411.3686,309.97443,330.74072,370.8985,170.77615,347.26236,354.44727,229.43066,453.58472,233.32382,36.663734,218.36423,343.26227,98.76625,107.71303,365.37,322.4726,298.06918,117.42374,43.054188,109.74243,234.6821,450.51602,219.68704,266.51248,417.98364,140.32146,106.61717,121.96328,243.31076,141.54526,149.41351,484.4389,444.50305,284.3183,328.7975,120.03816,158.27841,67.39691,282.11844,424.54767,192.46924,453.84476,143.99623,145.59358,133.01025,170.47694,118.779,24.275734,212.73582,241.96346,332.2125,248.14784,144.1458,467.86252,174.7105,452.55005,205.61937,362.5867,377.6666,334.0905,493.22556,167.76105,111.75782,96.39416,345.10654,434.13202,209.72559,275.06308,45.112865,279.85193,481.40274,345.95004,109.74121,185.17834,289.194,458.10196,164.1921,413.00156,35.134796,196.4444,112.579155,41.78652,414.02026,34.77833,477.54984,58.0653,330.4107,452.4237,112.850525,105.56066,194.05066,155.56793,482.87085,275.45325,215.53394,150.30804,497.573,152.74846,68.238556,259.47253,445.83838,443.39474,398.4274,34.268917,471.87167,13.492658,230.60202,103.81961,346.5963,288.33365,165.64029,86.95546,106.1558,302.6756,251.43867,257.80734,201.16994,253.26465,30.583437,191.46326,90.9137,258.54886,143.29462,139.67615,334.71182,85.81163,424.57266,47.513504,357.58386,21.669737,300.89917,205.72794,477.127,488.37558,332.02164,119.12394,451.97223,200.27252,421.35995,434.023,439.1684,475.4988,156.69202,338.84845,62.696465,376.55112,118.18825,215.79207,10.164215,98.25682,462.52213,497.92767,426.9529,441.0011,222.95595,219.92061,401.4725,371.4254,403.28705,56.402863,494.94864,489.35364,342.96188,61.946663,71.79532,90.695274,345.61758,140.94069,269.83762,403.62653,166.30847,297.53732,279.1658,40.290062,197.6356,168.77896,93.42463,49.625324,243.35207,416.21603,173.2358,472.0745,258.12054,44.141563,168.19075,326.20483,459.37338,364.27737,390.9176,442.20593,112.62011,144.57854,274.29874,234.27458,372.26663,203.79097,126.918945,474.48566,317.11758,322.28204,277.1284,464.94672,394.24948,194.51932,40.282944,355.22968,12.026278,374.11646,432.94913,307.50574,338.68137,363.62827,499.98044,232.61574,202.56924,362.27695,147.91194,253.72711,308.8372,182.69,477.33536,465.82706,96.37694,238.65219,474.7209,251.0552,4.261624,67.327354,209.82877,120.94946,16.350973,5.3228345,444.23657,438.038,191.42223,376.5765,69.95525,440.71393,194.17245,270.17563,220.16621,453.82352,212.47432,163.90337,137.72565,147.2216,116.5517,294.00128,121.40986,188.85703,373.46555,386.2262,379.95618,164.1822,161.69598,423.23425,197.83536,9.703912,170.27707,477.18732,142.36594,251.38388,181.99757,267.94626,391.03354,5.3726225,483.18805,494.73056,278.71967,405.9876,117.906815,293.18857,306.55222,473.13174,354.29837,352.82913,64.00103,86.44937,447.43332,467.3156,212.78075,141.2975,199.26035,485.7573,52.218575,36.6436,192.11652,494.98953,147.85994,378.37692,32.011173,433.3067,398.0966,322.03598,489.31854,261.75418,104.064804,160.44846,264.31567,476.22266,343.55518,85.048904,420.3947,257.98526,54.7185,288.7157,133.54128,214.11586,39.302265,462.2463,134.02368,98.77184,371.56674,78.22442,61.413,403.81125,346.9429,19.749708,99.56488,380.92834,221.45702,92.8789,128.05675,62.05649,442.55136,37.96103,471.96646,303.8072,181.6867,387.3688,106.66896,130.17412,113.28896,482.7518,192.76404,418.03378,4.080176,200.40118,48.75595,203.39217,167.38461,5.430599,43.8045,431.77728,367.7629,394.56192,153.65376,228.7878,45.889156,267.27335,259.71783,139.77612,304.87415,301.69894,365.97018,382.05524,89.39942,322.20175,361.62207,275.6285,16.228159,205.17451,39.075294,92.8783,440.94208,432.3896,459.6835,342.33612,254.60379,15.476975,99.456985,185.89195,44.2505,135.9145,333.97314,282.11395,224.319,459.38507,407.70273,391.94022,389.927,309.4027,185.50275,17.869614,237.01685,490.80847,369.14243,460.85773,384.78046,113.17231,297.62384,468.2187,243.30438,351.8932,266.19095,486.89066,95.59309,436.51364,36.94493,106.66022,403.62854,107.88742,262.9515,25.753515,44.62082,432.63754,467.9372,482.10776,152.26755,354.44586,453.81378,198.37398,207.96828,275.25888,325.50098,14.358998,336.2641,337.03018,389.29245,278.22696,242.7163,145.07417,228.9832,98.96668,87.82995,440.6666,102.642624,454.3931,90.71546,114.18326,171.34114,23.412086,339.15668,420.6792,82.09675,245.34044,343.9248,414.02094,252.90712,240.70755,47.60156,8.805769,488.597,361.1062,7.726313,45.648594,449.86172,279.45602,71.91099,363.0314,66.65825,50.848736,155.05899,129.69887,412.5253,324.244,333.84106,207.83743,47.004314,486.6173,255.29834,365.63406,318.55615,470.7998,180.39198,256.8463,322.8206,251.25916,79.48772,125.83791,50.04432,257.21707,459.68152,468.6917,258.69235,263.42664,390.6245,373.39532,50.672787,368.909,402.5141,295.27768,463.62854,442.3021,31.300219,177.97855,8.864218,10.305909,186.51501,86.476494,483.83044,331.37335,494.92108,7.9720783,126.41721,3.8938525,47.409073,256.49796,186.01738,67.19046,435.6242,116.91635,440.8336,25.392145,251.79076,483.7766,71.422356,106.69442,203.9253,219.41321,41.386837,80.6367,106.20332,415.45074,24.9126,406.0526,40.08585,303.62604,18.036623,461.69357,322.84952,152.16125,392.3093,325.3843,367.8703,291.68918,439.066,170.93217,340.77512,5.3641996,39.805157,439.77615,335.2105,188.15016,78.286865,26.02891,469.57657,277.60083,194.16113,20.13038,103.4959,328.4707,102.3499,294.38205,446.5929,78.26013,365.27826,144.78976,377.48764,125.412186,274.77655,214.8734,201.66225,48.75171,92.42175,191.821,160.9154,166.07492,422.2606,254.86055,445.65662,424.779,276.22885,88.909904,442.6171,199.74185,94.49034,83.69529,330.33667,310.97278,48.98243,21.128937,342.75308,470.2227,267.6657,352.68832,11.113807,487.84903,460.175,247.62025,326.87094,72.19426,353.4721,76.875046,166.32469,428.76523,450.44986,164.2823,127.09584,348.01242,168.51263,434.7057,183.60248,345.27924,330.16068,118.42748,66.26003,355.85226,238.9546,118.4954,384.15402,102.17986,375.79376,485.88916,235.62224,378.9983,402.0041,88.36148,53.638313,176.13678,383.3689,197.56253,168.98238,158.97346,38.467606,13.373458,272.80713,283.6469,227.41081,457.68066,19.494982,6.531845,346.348,246.52988,447.73004,33.5361,163.67435,43.48792,460.9928,381.7032,28.649244,43.29298,412.94388,379.49457,30.79571,139.95967,55.24585,265.1158,446.39386,342.90558,477.36902,174.8134,445.28064,149.37134,254.63136,135.22389,317.37314,181.9259,41.66324,152.73117,225.88142,448.091,179.58679,107.046776,31.187918,184.11243,447.01544,415.15515,360.29935,76.12167,118.88264,27.634705,258.22247,82.66566,468.9229,145.28996,67.97061,117.54424,464.89453,408.39423,251.29974,17.118916,155.83286,16.476864,377.96768,61.24818,248.95639,89.3118,436.95322,268.33032,417.13754,271.90567,232.60161,208.5641,455.57086,100.32399,378.67996,241.92125,354.2873,296.63187,398.06396,476.88895,457.98996,399.44128,217.40036,392.23093,404.6543,251.49594,302.33215,37.385315,316.93582,243.7423,128.12349,146.03178,426.14597,186.61395,473.8571,96.218666,97.47347,76.48603,189.47252,478.93774,387.69397,423.8103,68.917755,219.78273,398.86633,212.1988,289.78653,212.8711,357.61758,112.5428,399.72385,282.69397,495.51593,213.87186,336.1373,261.51556,40.63609,228.13492,371.96387,448.92346,215.68523,229.46674,83.46863,239.82553,201.62471,478.88382,58.825977,493.21857,36.361465,152.0363,483.4369,465.0611,177.25816,105.10062,374.266,344.67734,483.44818,264.52228,219.4056,187.90012,43.347153,360.4441,231.00403,12.484725,380.40933,124.53985,193.01254,221.98273,333.96088,56.179825,47.212772,347.98016,361.44275,408.82312,27.84003,375.07733,195.47523,188.43134,470.47473,342.2787,207.22365,362.75385,265.19232,156.72491,9.004748,353.59555,270.32687,213.16862,262.5483,452.186,49.568047,441.78778,352.1315,435.4903,276.40784,317.73135,447.8219,354.58316,83.252525,201.20786,464.26266,83.48781,439.45038,106.64312,314.00018,461.60352,280.8736,86.367714,154.87524,118.436195,343.17264,426.86432,328.2844,194.93372,465.91245,446.18106,421.07904,324.84323,255.1203,379.16852,266.6607,46.488636,218.0676,489.62772,490.25183,359.44217,191.10585,308.16272,138.438,420.94614,435.63895,272.25278,30.438177,87.234314,492.9428,340.0586,420.81177,212.1048,461.3103,151.18855,163.61823,169.692,240.17355,339.29044,408.2216,270.48264,287.23663,370.9256,390.09796,330.01605,488.70416,188.23083,320.26147,384.96896,406.5573,153.35947,455.30298,187.4934,161.41846,364.04547,42.753746,8.5456505,484.559,75.30797,85.83845,470.39944,202.47464,468.26514,84.13035,48.623722,374.8653,258.99106,362.41446,67.809685,261.71716,426.62546,445.99298,56.391354,258.24097,116.87434,438.98477,331.9204,430.2455,37.37991,302.6904,375.0846,91.368805,282.52728,95.0794,142.51509,173.76366,410.08627,99.02832,176.77002,203.7632,193.81158,337.76074,86.82409,173.05191,7.9489217,433.93225,18.018171,282.23764,417.65042,125.83906,44.112312,164.6754,181.71776,129.07863,48.74359,256.20688,13.903962,352.26285,287.00034,299.50516,492.4495,310.20224,394.72565,124.704666,5.687674,323.37405,491.19675,27.158627,423.95255,130.36972,485.92874,83.783646,103.373695,441.29477,26.297453,481.54926,268.3723,476.2702,8.9579,398.6707,77.97068,130.34956,150.02467,68.1199,108.292244,165.69923,62.42821,108.85897,329.5255,278.34457,75.68523,305.97998,309.7327,289.7302,238.9483,323.03452,64.95185,444.8325,117.251045,110.14214,312.9968,334.5823,134.50758,151.19402,250.41568,425.9523,194.38753,313.716,10.902976,109.05453,414.2664,291.02072,478.79395,496.5532,138.73701,230.52238,197.2875,38.52451,54.614845,415.98587,251.76595,9.424794,376.57532,230.18295,489.74857,408.16406,300.4522,26.053825,475.4951,359.62186,317.64188,66.08894,406.11298,167.60938,66.20448,407.6259,488.23004,146.9443,260.22363,131.8802,442.36526,339.03607,234.36475,86.2572,224.45642,224.11804,53.810596,303.2723,432.67947,479.72574,395.8008,388.35376,240.33904,410.8892,8.207783,31.191217,439.2978,389.51108,463.8191,156.8706,211.96198,278.3321,416.82947,289.68555,333.38712,337.24792,346.3139,483.20535,38.82083,185.08829,177.56244,405.27417,376.90332,350.84174,224.30946,448.28455,493.26096,107.90937,164.25146,244.75797,155.17,288.66626,421.58395,323.01038,77.60958,313.10568,123.65104,118.28155,179.33836,153.24077,373.16534,299.32852,119.6911,165.25836,397.13452,311.83972,40.44964,203.59807,327.10275,467.29688,153.7065,169.3921,354.84262,157.68275,62.228176,338.55988,163.21344,272.68524,47.328106,48.047955,319.18134,381.86844,392.97754,144.25699,328.11063,349.67508,347.0806,477.5849,406.13065,92.968315,310.0408,208.39633,157.54898,142.72156,468.92316,290.7622,171.18205,53.141502,159.83394,456.32202,413.97284,257.72366,58.297363,124.68432,199.52557,182.61403,313.43976,245.11539,164.36137,63.46893,439.66364,6.6838484,350.32925,327.71133,428.41452,58.64938,220.54147,20.99992,186.05907,322.11227,232.48935,448.3223,494.8176,82.27718,301.05325,451.5213,227.30165,86.97985,386.91776,196.20592,238.15627,262.43863,493.72015,22.5538,161.35052,253.7565,149.62859,140.892,419.17114,476.24985,290.20633,268.22888,306.0066,119.76414,290.02335,183.27591,212.79225,298.54782,20.669344,220.25697,356.4988,242.67352,154.1832,116.18734,471.5358,385.61575,213.09694,207.29433,374.81155,209.3119,197.23193,205.09167,35.72235,223.10097,448.98865,119.90659,235.63632,391.79742,408.6318,13.784841,286.32498,155.55591,271.08365,238.6725,287.28497,181.29227,33.282356,123.02097,447.40463,252.76611,408.7142,68.692314,322.4222,92.50574,436.01773,48.47309,273.61426,178.60912,385.44046,161.08769,329.71442,316.28928,58.591934,160.90007,231.75255,174.33807,447.1928,451.84702,448.0552,139.98972,355.53064,499.79672,418.4049,274.29227,344.9317,164.41109,245.98572,287.29214,70.881676,273.70932,405.38138,119.14606,282.50677,142.91429,479.26578,245.62408,127.92291,342.38202,478.38913,194.75877,308.28323,215.89523,317.43402,257.26385,336.2169,174.94267,329.99127,72.60459,334.72946,112.015465,230.70879,465.037,461.11273,263.38046,474.0995,252.00456,394.88123,325.98862,440.0602,80.482346,392.5266,168.999,87.71094,74.75825,284.01584,95.73483,385.6343,454.0856,100.86705,114.27305,292.1818,57.739254,254.3149,476.85452,370.25656,107.67416,444.3728,44.804752,385.6109,286.1136,13.080366,60.099293,319.33902,358.01654,41.475574,262.68057,321.81918,481.1818,407.69748,252.06287,341.8331,35.404724,199.84117,230.83484,15.736433,154.19934,309.3693,91.1714,347.50464,25.783035,373.80978,452.79584,151.08131,321.157,387.93307,157.17984,342.96948,479.29523,163.66841,461.05887,233.1814,28.020836,420.93338,250.42004,243.88701,230.62598,391.61243,103.81115,465.1062,294.93048,298.29327,274.22067,62.82409,100.12671,112.46944,410.31906,298.86423,188.05943,356.38998,441.38193,295.3924,122.61938,289.6552,337.52533,431.24213,419.5424,83.77849,398.6566,218.07996,237.41177,225.35185,13.618846,328.51898,346.7194,90.00314,454.10712,357.28256,19.479628,293.11023,364.9568,81.62143,369.74948,277.77307,311.34308,475.94818,442.61798,244.87135,143.56857,280.46762,486.95468,27.6359,50.38739,179.09158,264.50626,146.49242,368.54993,151.99617,164.13354,165.2372,365.88382,482.39307,88.05442,337.4303,456.5099,105.23255,142.54173,424.73578,60.68987,47.968346,387.7512,366.89554,265.4161,306.97372,173.69846,229.88675,59.534546,350.00052,141.48647,108.38209,64.476364,213.8607,398.82974,13.485661,461.27408,350.83743,145.21786,308.92288,467.7629,214.79822,496.49716,240.28934,494.3116,130.76035,206.43546,43.612392,155.05348,127.30374,208.84042,150.02113,16.031132,457.34155,248.18556,337.93222,119.20514,404.65396,7.210502,211.37288,34.250732,346.30573,201.73924,180.4606,25.100046,413.74203,455.86093,488.39905,113.45388,430.26297,5.8440366,265.32498,228.67416,249.61893,341.5926,91.268845,438.98474,190.19884,304.21603,415.61118,264.27664,22.40741,355.18982,447.0312,197.35236,464.1231,204.56342,221.70985,351.59497,239.94221,165.32755,174.3247,209.40234,58.077335,149.69691,295.06213,365.24527,460.5965,340.97897,203.07379,85.661224,426.98114,370.47952,423.01852,475.23306,232.75572,475.60663,331.27698,490.04825,387.72232,367.2095,95.7416,277.5839,54.060497,245.71954,84.93274,335.10217,465.72015,313.47913,469.24774,242.436,391.77094,334.5047,300.81244,87.6254,263.6662,8.004416,95.09261,257.34247,222.12523,395.3585,468.01227,481.22205,240.62704,275.9085,290.50754,353.26,117.58112,486.34335,286.92624,452.2971,32.164738,423.41046,210.54951,291.37195,478.15463,281.2488,276.32468,241.78357,310.86804,276.05014,200.10045,147.37242,356.03696,162.90051,76.47342,293.6155,147.38885,268.3345,109.339066,301.75287,390.72913,470.58215,450.0736,363.09344,74.31959,333.15094,496.767,83.310715,1.095115,54.059578,377.27557,106.58683,191.1535,390.41098,448.96466,27.954222,478.81488,237.92047,249.54152,204.70068,473.00443,193.4413,156.38857,108.803734,425.3,323.44177,154.94211,406.7677,397.79297,258.7806,63.612553,355.0661,47.027344,195.00298,136.73425,180.04785,117.32304,190.20839,162.10641,363.88348,50.483395,265.86395,181.47482,331.17404,318.88083,412.94318,299.55356,209.54236,346.47113,23.211552,117.351234,3.5416298,196.93327,380.3072,360.98074,420.4981,71.60609,310.821,196.60587,129.10382,389.09305,280.89822,173.34792,282.7421,328.48685,108.38132,111.64583,70.45679,195.10329,90.37211,386.41568,402.7656,473.16864,73.99578,159.45833,90.78456,370.39462,359.94687,198.20895,385.93338,328.47678,407.5544,490.1701,321.3204,189.9058,342.05084,221.08717,87.41068,21.657732,77.749756,490.95648,435.50266,245.32388,179.80241,221.84291,20.731178,322.67288,65.89823,483.762,177.34035,45.875256,314.2515,10.912262,41.621952,219.37387,465.48325,396.31186,291.30875,421.76617,446.99948,447.11444,165.51477,466.9554,156.29936,278.32764,157.44406,101.97105,436.03305,411.45514,476.0755,384.0362,453.09003,228.907,347.80896,221.35132,356.2822,124.12808,333.62946,255.68204,207.10951,439.99786,313.66705,394.7408,354.74725,28.383665,247.80147,245.58153,303.52295,371.51755,288.57596,406.09488,36.018955,483.26962,10.265651,439.475,293.74734,142.26471,416.58563,417.31024,473.16833,424.45792,446.8434,309.6353,150.07327,185.17412,13.853561,442.80103,67.01535,475.58395,441.49796,147.16902,177.90773,384.21555,30.686192,464.7059,157.29121,452.78113,236.26793,64.98718,331.42676,215.38826,445.96573,124.767296,476.35696,29.057041,169.33473,392.11887,410.87595,410.4657,299.8059,399.62833,408.53244,163.72504,485.97244,339.99146,312.28775,309.3682,92.21096,323.1843,379.86273,474.1749,308.79315,202.32094,499.8694,367.3603,315.31848,438.00656,475.33698,84.91165,194.41978,380.5259,344.49954,218.67123,388.38574,13.927585,144.28705,210.13362,210.5231,134.49599,64.332184,284.5683,117.557556,148.28436,72.62402,19.066505,273.02676,316.16266,128.41359,442.9635,68.080154,273.1497,428.0109,348.88544,252.67741,234.83391,87.788956,419.73477,83.82859,437.09433,14.485394,191.61719,200.3968,494.01575,50.42526,159.11797,81.82245,194.80035,227.79396,478.2995,120.04161,241.42136,424.989,213.55212,146.47139,34.319313,316.85556,145.60721,405.32526,107.73313,460.88614,220.68388,4.355018,85.95061,431.16324,436.0327,236.53484,402.24487,188.89278,385.9527,408.475,207.0561,416.90125,218.79782,113.85631,463.63675,473.0425,172.54561,64.55797,380.36188,197.62576,316.91458,130.58775,133.41035,370.06604,378.54675,110.094734,184.19844,495.33502,496.25174,27.245428,459.883,415.90842,97.15949,109.279175,274.45462,211.64828,429.55313,248.65125,286.159,163.2486,298.77765,381.48535,48.927406,450.42776,425.40503,146.05888,117.12637,212.86359,240.15019,404.62997,360.9985,163.35689,240.43013,202.02786,343.75656,371.52505,403.03995,426.0218,270.88586,10.136782,133.35365,432.78903,16.896963,41.081585,149.38455,20.591879,344.39487,63.125023,119.95031,252.85252,229.81792,421.42706,386.0892,412.84125,353.3293,94.78683,396.50992,257.1743,238.1555,298.67126,443.8396,108.76857,168.38927,343.84283,281.92178,162.08517,372.67422,402.8228,349.60516,408.8205,458.54855,414.34772,452.6793,163.09634,175.59811,364.3582,112.28913,158.89235,299.7371,306.63855,121.566925,341.38242,455.19806,208.49464,75.33352,466.8384,3.8006861,162.44095,153.99641,402.64383,20.09345,87.46419,381.09616,336.7331,91.37799,488.5781,482.46722,269.43555,151.57141,23.612715,36.9846,258.98157,51.194263,2.9934053,20.398712,449.67126,178.55855,203.7156,160.77469,338.3086,366.87637,86.597435,253.56996,56.50109,439.55518,137.07619,95.87172,324.2913,275.3768,162.76205,250.92172,128.84464,448.55588,304.67874,381.79825,453.76193,108.77968,466.42007,372.36896,481.48123,76.503784,384.50235,119.07876,466.64035,276.94983,430.87512,286.6406,459.13773,299.07584,451.9446,211.05734,247.88124,29.622385,360.39682,208.6991,267.84265,153.72441,55.209343,135.74945,279.57233,335.5924,311.35867,168.92943,496.51993,156.19058,15.267875,368.27557,36.900856,64.81217,498.19537,241.82388,423.36978,83.08597,470.93634,244.67224,216.85013,191.11009,457.6962,129.72855,417.88644,183.09648,338.31564,196.36821,124.528854,416.2513,385.12033,200.50035,259.57538,132.73459,178.30147,51.197807,464.53964,381.05844,37.79547,88.91555,364.61346,180.65602,294.31137,205.86557,264.8192,187.27957,219.30112,324.7997,468.01447,293.65656,205.4079,252.3922,33.672134,90.0614,495.16766,68.39286,55.728676,482.62695,422.43384,114.8365,229.09167,70.95279,446.81598,344.5191,213.54434,403.4112,224.29318,139.05595,223.11385,176.74217,350.69815,46.934994,187.58383,135.41672,400.00342,447.4307,335.29965,325.27716,22.55779,241.81229,206.45137,328.66165,496.43372,280.05087,79.041214,176.22897,176.09848,420.50198,371.59866,422.65784,78.15029,404.7003,256.5934,62.39765,332.28256,57.976826,82.7641,21.355122,75.415985,289.28766,420.79803,235.27318,326.30875,63.594776,257.75085,82.33752,460.8757,425.2838,486.05713,0.56599253,200.06717,473.80667,228.53235,126.74045,151.19347,205.93962,253.44188,94.12363,170.56818,385.60944,181.1358,467.14398,350.46973,447.9873,490.03107,27.603743,447.53574,93.32871,167.49332,244.39821,221.78757,72.20265,353.41055,233.0705,217.58151,221.87181,378.84927,241.83815,24.062086,203.23524,163.92679,175.75961,66.36967,229.5531,9.260409,481.85034,367.8188,301.49313,185.81758,335.63153,146.38052,24.120094,38.957996,428.81284,474.44638,470.82587,196.50064,280.33853,422.8138,253.12222,372.7784,163.69287,228.18231,342.20654,210.97057,268.2218,179.45818,294.8077,86.86117,436.94632,318.98694,55.773598,410.13104,330.332,65.85381,377.5656,374.00723,268.22293,406.97784,239.0512,65.06651,426.5428,309.84012,382.67133,195.83765,141.11122,297.021,282.7463,311.38095,102.93089,493.68945,268.0978,355.81158,81.261406,151.06027,221.00648,0.9933133,162.74805,237.20506,137.02,201.83049,86.100044,410.49808,232.92743,43.677944,493.356,499.8584,418.92487,86.107185,447.1711,199.66849,469.3675,209.0735,276.74313,447.05487,484.72855,311.25928,398.8847,190.60794,34.134296,199.43353,36.4732,247.43974,229.725,415.02936,254.59212,203.15324,331.9287,384.17026,23.387291,438.35028,441.44684,134.20718,412.86612,286.05228,371.38965,337.35812,434.83545,82.27774,221.48602,301.77118,66.63952,202.88252,67.73118,457.33694,389.96115,136.65582,164.75099,253.37898,446.78995,34.332626,490.56216,327.75238,484.0331,373.33636,376.36987,441.6272,381.09558,128.38121,417.5282,283.165,293.64218,280.25055,202.82576,102.342064,337.06967,216.99097,79.03255,292.8273,0.19426918,410.59784,473.47675,76.076416,57.377316,299.36728,385.2247,416.93423,473.00763,355.31787,184.04192,493.65723,461.51443,196.19524,190.46545,3.2146857,386.4206,101.33947,157.52455,293.02228,456.24408,56.822437,313.25256,99.00929,451.64676,334.33176,322.7452,3.6901624,5.795703,291.3997,384.09665,131.1371,362.10788,485.21188,372.63235,202.65906,183.89401,288.4444,213.40388,261.78915,443.41953,432.0879,366.94278,262.20395,1.8594747,48.340004,465.45602,247.86012,164.3973,150.16963,366.2417,18.175194,339.5955,259.69144,50.406277,181.72975,355.1668,45.982136,316.19736,25.84868,416.47897,4.5101113,85.05677,150.39932,223.36702,362.7148,295.61102,117.19126,298.01285,94.85586,473.82132,187.55858,453.89236,257.55237,252.73776,303.88953,3.7651405,206.96758,221.3319,420.5108,423.64432,457.5123,174.67067,33.751133,311.97983,22.110924,323.11975,166.39467,247.4383,119.42798,477.17633,378.06155,207.73064,228.09048,319.42416,44.77162,436.73642,463.50128,113.41426,167.71762,388.8773,450.47925,461.9425,162.26213,326.84558,105.85239,318.7917,71.074486,397.8791,465.22476,424.5349,253.8023,108.175934,208.41942,463.65195,352.91995,355.2042,124.061806,377.20718,164.00227,246.55312,66.2834,252.19762,450.5741,464.85065,298.0695,441.0914,201.24634,444.92004,4.2608914,466.66125,242.78783,167.48729,447.48007,330.42325,62.198128,182.70903,488.68494,200.87564,258.9276,84.259125,257.90738,473.1696,74.53555,316.16754,315.93362,345.85458,274.80212,341.9979,40.83351,259.74237,145.76428,239.29076,68.23506,113.03573,285.8036,467.42603,252.39441,367.63074,240.68565,224.532,111.85534,372.05545,219.01248,430.6623,73.263885,60.887333,132.5857,314.3947,56.680042,225.96175,383.85333,53.232334,252.95334,56.998238,221.50195,61.12418,461.07193,462.27045,392.08463,103.40078,314.35904,67.77834,382.87885,340.4337,44.18013,114.45151,393.19717,323.54156,17.614077,57.297222,199.42773,421.48767,61.628937,358.3839,259.14218,169.27098,152.61891,40.127335,143.65327,337.09802,401.40015,364.9994,134.92513,201.5688,59.44305,106.31608,264.18964,418.97797,287.32272,245.77344,414.77066,268.2222,450.2358,27.672747,254.17995,89.49502,56.774323,74.127266,369.90384,1.3442568,28.342175,482.34177,384.80258,111.363365,277.99854,417.87317,329.77603,140.69978,431.13406,335.56686,63.655853,483.08792,126.36592,318.58847,365.30682,394.73962,329.9084,320.17688,161.63634,398.2726,396.51895,375.86194,20.366037,103.9051,166.67816,318.5621,447.78836,41.697784,52.72019,102.07126,298.76495,392.08954,212.06116,385.597,402.6234,214.32103,382.37585,306.7435,298.64032,354.38583,292.25906,147.50053,142.89108,59.164017,174.73428,413.71417,184.98418,311.90045,379.59863,488.97025,395.76984,22.60239,300.81696,249.46916,340.70636,150.84479,432.71567,81.33623,12.426757,298.17303,109.90627,313.8414,138.83601,445.16217,299.146,197.3289,284.2424,216.30693,204.54698,261.6558,169.41017,173.76369,305.28397,222.857,141.98749,259.98907,289.2023,348.1254,86.67676,7.384071,211.23186,241.21626,209.22067,17.002544,361.50464,407.27673,414.18384,281.9197,86.4235,294.8336,362.60324,308.42484,402.75363,154.11891,223.89934,357.813,95.61683,186.30841,486.98718,362.0299,155.06798,157.48274,262.84686,433.3559,223.25928,361.59384,205.40228,443.64313,250.93182,423.49963,393.19543,18.054886,79.707306,295.63397,449.8316,264.1839,150.05832,415.04166,368.65854,312.96664,469.03088,59.511135,392.02423,191.26314,390.94345,429.389,359.37155,197.52043,77.85086,432.72076,25.103493,239.96146,364.9386,410.36804,81.75413,100.129585,283.0533,457.0939,331.4569,241.07751,132.1716,298.3958,268.02768,327.55707,381.81357,483.10123,7.5162125,497.69156,249.17311,487.41483,102.93924,135.43282,405.37387,43.281063,256.01398,404.9239,226.79756,469.6164,175.1452,301.7624,100.41062,68.15387,15.808089,112.79037,64.4529,52.987717,481.50415,337.36127,33.200592,229.42363,181.41855,245.2931,196.45445,289.96075,408.17322,192.6816,342.94565,488.94272,224.21352,416.1033,418.66824,11.121855,230.94888,348.52386,22.737123,137.91028,195.77832,387.01083,381.82516,143.84924,480.37863,344.15152,376.25168,375.64478,241.66737,203.98273,133.62238,274.14157,62.56839,129.1605,92.655075,54.63697,64.885185,472.7937,90.77296,175.2523,344.1173,345.35675,229.14784,182.00015,259.2658,52.949,416.8088,109.44347,38.58302,17.351578,57.300945,84.29812,269.71405,145.8705,165.00446,89.28154,56.643364,317.45282,173.44221,12.159681,487.8736,254.1001,159.2176,4.344617,345.33823,89.85849,300.408,27.524618,188.59148,102.05362,65.79429,282.395,471.93863,444.55292,191.61472,130.86862,86.07847,106.03511,63.502964,449.0577,377.9217,300.6291,422.01642,32.675552,240.67554,173.16695,330.54565,252.36081,266.35468,79.29008,10.466348,192.36005,27.991148,264.25305,495.00494,280.7616,174.68427,182.55864,380.1478,497.16425,73.78363,68.46709,245.77834,133.29315,242.35507,274.98376,360.1245,40.644737,481.703,471.93506,131.03769,342.7937,324.00983,51.17389,426.46548,230.32884,403.0938,479.49384,438.77057,99.05538,316.36224,415.87976,256.81738,119.39483,360.89087,339.03592,3.8306925,291.38727,161.97672,281.51562,415.70087,258.00522,373.2328,341.72733,440.842,173.67345,316.9266,114.29787,300.48462,45.14036,499.55353,345.38022,384.08655,450.49158,56.434692,395.91434,460.23355,443.58936,110.403145,253.06973,485.68216,188.87108,464.57953,163.72688,403.72,473.17538,282.1207,154.6577,291.6109,107.860855,174.59134,382.88858,185.84482,48.135777,37.539856,132.43094,93.75543,250.20514,368.45526,88.8341,305.30615,349.26245,375.51587,126.04993,434.39917,158.47163,489.06125,54.259182,91.5971,245.64955,323.19504,231.48506,2.4279292,111.79,364.46753,228.96803,169.4159,11.632453,455.41193,230.3688,308.0943,307.67783,372.01437,97.27216,403.01074,234.3666,340.45517,346.7721,410.67374,232.20409,335.89627,128.90173,475.20465,493.1721,210.32484,81.0253,424.9857,330.7731,146.57959,324.02765,138.61389,497.40924,442.19388,417.53934,230.02963,307.82843,483.8961,90.61513,467.88693,495.56635,248.16425,488.0516,422.9338,324.0986,127.40739,128.83423,152.44255,70.77134,47.49078,368.99747,129.85036,442.3966,96.403755,448.31253,479.9216,38.94727,422.85394,166.32712,289.59338,53.67862,235.67877,459.1275,19.622887,417.18237,146.02199,314.3519,233.90376,273.02322,480.70502,175.64107,446.20837,141.25104,442.8061,117.72798,238.22188,69.24142,320.16043,389.73148,268.2001,72.519485,93.8391,361.99936,314.74686,238.75609,4.3635683,121.31018,16.834526,490.5149,378.13266,350.5106,451.18253,150.35649,497.98068,276.983,272.94574,482.4894,34.633797,105.82971,417.97128,215.25859,490.70847,255.92116,240.09822,159.12859,304.6409,277.64368,237.61192,457.6299,117.028496,338.80783,172.08974,171.2003,318.42538,102.87209,159.0212,436.45877,207.01503,448.7362,336.73392,348.7931,381.0709,366.79623,122.7072,222.95013,349.6854,191.55699,22.974249,353.53134,34.148354,283.41394,73.30561,334.3416,434.5776,494.45538,16.093876,292.4635,480.2687,169.86394,321.01736,213.9076,22.309889,353.83725,469.84485,464.19073,297.1463,242.66068,339.68826,272.85153,442.94418,267.58646,378.48227,457.0382,8.53597,499.4521,86.05836,34.39805,125.921265,50.175114,281.94717,109.38898,5.733655,373.11493,290.4016,248.98367,236.31503,402.24075,170.88869,123.39153,232.39551,119.86351,245.72461,204.90486,190.93442,199.54567,337.6666,31.903366,389.6781,155.70293,245.37543,70.948746,258.98105,141.43709,167.99261,84.14412,426.2869,57.478275,120.212135,454.59445,415.02936,282.9375,167.4005,185.96729,451.4039,220.1554,188.79906,114.708015,203.70758,229.91791,144.96286,170.79858,315.3214,348.4666,387.4872,195.9166,154.4212,22.982475,343.9725,60.152958,460.39197,371.80753,292.31693,84.130936,477.14246,210.56093,299.4998,181.17207,460.85214,183.1728,135.83173,487.66672,301.30295,280.46475,272.71765,119.85167,467.48987,277.57065,354.63605,173.52722,18.924004,213.46147,93.867,299.8026,449.09555,488.20697,172.58148,117.52599,145.52992,189.7515,418.48355,355.8,461.7296,239.6215,65.21869,465.07684,445.53928,213.00359,169.23471,40.71116,170.00203,497.2054,303.7747,55.207077,140.68149,26.43671,230.41591,399.88974,104.58158,349.72934,496.0814,352.68372,318.0986,165.95071,404.81018,256.60342,142.16592,228.71739,142.40912,415.26437,235.89543,311.26352,125.507904,197.76607,427.522,246.03995,324.579,89.243256,42.52989,339.02283,344.49023,374.66406,348.02563,429.97995,277.4726,339.6839,277.06622,91.724846,453.25748,281.34964,473.73547,83.89238,469.18713,140.10504,408.00153,484.37268,201.37933,6.6994133,390.44125,388.4956,469.29208,77.206825,344.00153,118.81441,339.26205,487.84488,88.51185,354.35464,277.40497,356.37946,8.51973,432.32,376.0815,215.96301,461.67282,164.76067,440.62195,401.27243,286.32538,211.79489,180.93317,248.3014,12.465107,111.42501,313.00168,495.93417,451.18225,194.60713,35.87948,211.71077,185.57013,324.2202,49.940582,16.926746,152.13486,94.22392,18.12504,347.54184,192.42247,405.483,201.27788,285.35767,307.50702,281.11636,495.22903,341.45428,307.52386,134.31787,91.272385,238.76805,2.135946,484.35114,322.30652,263.71466,343.02246,389.30624,384.4198,333.60843,297.27774,130.68141,267.73508,79.18952,196.04942,432.79245,447.02692,434.33054,125.54837,155.30136,388.05246,146.43034,86.05234,217.16344,375.77603,433.50763,316.1053,369.61017,186.31581,122.12349,110.40074,251.55292,159.14156,446.26395,177.59267,143.65703,162.0783,419.14005,258.08582,424.89682,283.52213,251.86647,112.376625,429.1584,135.07425,103.53315,314.3715,128.9688,252.3546,296.22952,267.51508,164.92441,391.202,265.6102,213.27931,320.71735,207.07732,444.33762,89.00272,369.07315,282.8262,192.05266,479.72757,271.26666,267.65192,53.80983,241.91394,47.510452,324.0823,89.32795,236.96841,345.53003,304.78046,149.68082,215.18109,321.21634,79.21246,265.7947,84.76339,319.62982,369.36835,402.4269,323.86267,46.181686,347.05826,107.97154,389.04813,422.43164,310.85306,177.0007,31.109507,425.2794,281.98862,108.457726,394.6799,177.90755,379.65375,29.671791,211.97198,285.1476,53.423893,101.2315,67.04449,101.651215,213.33627,6.0918894,325.72797,42.891632,129.79208,340.8698,216.3394,171.80095,56.759655,98.835236,416.12805,259.24414,105.75656,51.52268,390.27115,64.483826,245.94525,466.786,112.3067,484.04633,186.63345,383.5211,201.91504,481.17685,367.59296,281.2408,7.0045276,468.21204,187.08327,6.2052035,134.70006,457.9358,444.75186,214.69336,268.85272,25.823198,345.96423,162.35545,204.91513,175.43588,291.58826,70.8129,150.36427,209.08397,271.93024,331.50568,463.78964,81.18826,159.97992,43.875473,485.5942,299.80154,435.09402,57.995327,165.57108,462.18384,91.35242,91.980316,66.248116,493.1872,169.6329,356.32593,371.40106,253.67126,183.64224,366.08234,161.2936,156.48758,38.088486,77.97011,470.9663,242.20761,155.11792,211.69908,221.97122,8.535539,388.88068,168.3828,272.06558,234.50204,88.76348,466.81403,334.06003,283.80585,483.88177,202.00446,58.300095,348.38513,114.16497,226.83405,274.21643,325.2907,236.67696,323.7533,167.61658,48.24703,499.15204,165.05022,481.19107,4.6803703,219.58537,359.2012,344.51297,292.7208,87.11753,362.55212,306.58978,411.82373,321.65274,142.24846,439.1196,392.78778,274.30576,204.33768,182.37415,97.429535,256.56073,98.68929,412.13257,60.212166,278.56097,246.85512,149.94151,432.6385,348.62277,7.012309,279.3743,440.6935,210.32349,387.91208,33.210953,111.88777,421.32742,314.01938,129.2822,288.3794,209.49527,69.51977,306.86526,367.0422,251.22372,326.46332,197.11496,205.77945,280.25552,498.16602,434.36237,82.678604,479.29874,435.24487,206.18184,333.64215,434.1169,370.584,37.984158,80.724846,442.62958,92.13569,154.64746,224.55952,319.9413,30.677702,345.3527,308.7746,425.65457,156.50647,12.254303,438.99942,116.87662,318.28687,122.56445,243.88594,460.4311,83.37669,409.5682,226.45012,178.16913,241.52379,243.01848,445.9938,200.3845,118.22459,9.940351,75.15825,394.05405,157.81299,464.47153,203.2035,96.64205,274.4981,66.97848,480.89697,186.4185,295.4378,81.298,398.22998,90.86099,62.300068,474.11548,163.26277,468.17834,108.09651,180.90094,394.43726,415.16998,496.424,288.83722,131.54855,119.86246,227.54631,98.60638,173.74677,279.1706,191.94075,21.187572,385.7301,445.6756,184.76318,359.12277,413.13623,499.0739,81.81462,57.949554,18.743608,50.246365,105.18156,197.79448,55.783863,342.53418,15.473254,298.37262,60.076347,485.05225,308.2248,226.95985,8.751043,34.089207,312.38242,462.49072,493.23422,235.25374,445.91037,86.91836,299.36276,32.879982,255.86792,215.30435,419.9136,408.3065,419.61133,321.16006,374.9707,128.38678,60.283276,98.99829,61.838345,85.93799,492.25806,19.755856,35.248413,257.63113,454.44565,235.17241,455.48523,126.9939,178.4328,329.32025,452.8558,372.74588,366.5665,496.4712,304.5817,196.02304,80.058586,176.53688,174.14188,320.18408,494.8052,354.3354,17.526112,24.099697,160.67236,387.18738,319.33368,120.06334,403.19617,159.36119,119.5769,133.14958,297.19543,77.57947,18.850952,148.56723,132.24898,100.57245,440.36832,9.591553,24.866058,373.14355,480.09753,360.51138,148.37401,459.2468,244.75943,418.12836,499.6729,477.20123,132.13628,10.839459,36.14237,149.35191,427.58484,268.87872,311.19473,43.067963,178.98099,18.091288,115.36981,14.038409,256.27252,226.01808,403.32004,118.23536,433.77335,415.1197,415.6768,73.159645,333.75116,187.52126,465.1893,180.39275,168.83531,148.01762,457.36755,403.81445,464.30737,179.97574,27.598263,424.64783,332.6008,406.71844,291.4871,182.7282,12.331982,385.67972,83.2587,190.00066,102.38161,204.30197,255.93593,242.87872,182.17288,277.103,218.6601,29.408663,121.310135,157.05061,138.75467,366.2312,95.10613,11.294031,233.40704,281.34155,456.48535,206.49512,322.0104,25.043036,161.6586,406.94507,303.8407,423.2645,51.89562,98.75065,228.60568,403.94754,467.14444,482.25247,271.55997,6.358137,303.79425,437.53067,430.63974,427.9453,310.3708,356.6457,412.9131,200.86713,174.72629,401.60196,468.3763,153.02028,64.87041,135.32538,187.89622,96.92101,325.07877,207.5485,50.718956,450.45276,425.09982,11.75535,451.99023,72.310776,72.499245,161.60825,408.6385,253.75926,461.1374,231.69795,150.89734,433.72684,419.5795,264.92084,1.1295195,16.76034,448.7202,89.087,21.46385,462.98563,348.86258,200.08589,13.847568,216.77731,78.16285,374.27856,376.90585,248.27596,344.08084,238.82234,223.65015,41.503067,101.33467,221.05592,232.20723,396.45184,331.1837,314.08163,174.03412,428.31506,80.46375,170.31587,317.10422,32.628773,482.03943,386.00793,372.09363,231.09659,407.86456,380.21893,211.33429,318.11584,402.806,326.7281,173.78899,412.00876,397.19528,8.020176,52.836655,103.366264,166.4561,137.23384,337.47522,28.13391,392.32697,428.9606,156.1435,204.02788,158.2719,487.4226,145.2204,8.915,310.54565,477.60083,270.07437,135.00356,172.99603,428.21295,444.88937,360.407,25.0862,55.23244,363.2738,247.30167,132.3474,181.41473,480.18033,112.392075,0.70120883,264.33347,15.885119,287.47778,352.0837,321.2498,314.88367,490.93045,429.1752,312.50497,155.9537,403.91165,34.448414,294.92197,203.59917,327.01886,351.4149,41.76144,339.3629,67.525604,76.13429,99.74797,136.10583,348.63855,115.38074,362.5078,480.10742,194.52136,185.06233,393.01398,486.7665,323.05173,165.98381,62.122486,92.150566,419.22913,308.62897,64.59972,354.1221,83.78626,262.9136,497.64288,29.408457,394.7891,208.0085,92.25912,454.3196,370.8895,198.52063,148.09094,55.806103,217.1985,295.89926,366.89536,317.2438,229.38188,314.6145,398.51303,320.7335,419.70764,219.91243,457.49973,86.1372,361.97144,35.73153,290.41263,114.49948,111.24357,12.601662,322.94513,415.76172,279.54016,46.51344,285.87115,307.77557,478.47055,71.687065,470.24387,164.23067,491.66882,56.367023,151.86899,5.9821715,191.0405,138.25055,193.97864,196.15796,329.08868,490.09573,77.80767,14.695304,140.85036,99.602425,68.53189,239.34555,178.53925,92.806915,489.1602,10.87404,112.749344,455.76892,305.43887,427.6287,101.37661,391.76416,30.209888,251.32271,278.29095,86.387794,79.86577,212.61328,416.28186,46.79463,373.4002,285.37366,165.63959,176.44315,290.3357,486.80954,451.90704,256.2876,36.667828,486.24817,83.00482,280.8121,330.47366,459.90625,91.81594,229.52733,478.09882,131.27498,339.46066,308.2317,156.59235,125.24835,1.4637828,386.62564,225.75923,383.11264,390.8938,417.25882,202.45322,376.95407,177.78159,376.6056,313.18018,206.52002,35.219074,140.53004,47.957283,136.44188,215.35713,294.81418,412.19885,162.42053,206.1686,131.68985,307.3616,482.46954,236.31938,420.1059,47.320942,155.64412,497.5038,380.37012,432.66003,197.49962,89.664154,493.9242,373.5664,388.38657,496.93262,189.26642,19.371977,279.093,67.45736,499.7762,74.620705,328.74655,181.14378,368.86023,484.94623,430.79626,322.85187,131.80617,94.16311,13.747309,34.73782,169.35837,14.498884,157.96062,186.37895,44.51529,379.4577,90.6883,429.0161,117.68161,53.831203,298.29703,35.770485,315.4713,315.645,252.25597,481.09192,84.34911,259.0873,237.62254,402.32913,489.4926,288.33884,353.80603,264.71515,422.8995,100.41977,483.70117,283.25552,48.830795,205.29942,370.4961,456.2812,487.37347,114.43899,172.33096,141.83797,215.29054,123.482086,137.56798,416.56833,80.498535,8.713104,214.47847,174.76353,394.9645,295.98688,328.93344,117.25287,480.43848,232.45576,283.22305,231.47702,180.15698,19.733112,21.730104,262.76553,126.71119,392.2128,194.10303,47.694565,82.22648,424.386,430.39694,197.56627,16.082384,375.8663,10.564597,212.99669,179.04877,190.0135,275.50986,19.136917,57.45408,252.62947,22.992579,418.72086,214.99905,358.43173,390.54556,169.81339,80.96614,465.18515,282.564,73.49762,71.264084,83.0174,240.33571,485.08682,487.3565,207.61482,323.3002,325.19913,106.67285,17.984596,336.04562,195.20735,470.74023,99.77252,380.44934,320.16095,340.6999,29.046463,88.71272,176.34917,333.7918,89.57623,53.69917,2.870442,176.11977,191.40959,467.34766,312.00793,138.20903,254.4082,180.87886,174.33412,75.18186,479.19,363.21988,411.37985,490.05194,132.5803,165.70055,349.91162,291.6918,105.18437,41.65005,259.62195,65.41376,20.236902,187.01424,269.14612,449.3873,311.81174,372.18613,323.4524,316.8233,113.961395,62.675686,129.1401,156.99472,294.17303,313.33807,180.63065,255.87007,170.10776,416.77176,475.8976,445.24893,123.58266,215.64828,61.683365,406.70154,227.37936,310.1838,386.01428,272.4,211.53563,81.88917,443.33566,92.11135,324.99625,499.4985,63.178783,28.264278,402.6809,372.01883,138.37169,154.13084,349.90533,197.18387,138.9888,433.79874,356.48755,118.61499,411.05484,292.18372,224.08115,25.713457,436.50488,11.263936,263.7289,73.45195,160.16101,18.917013,133.03745,179.36491,36.07425,425.51715,86.11794,54.71415,105.56837,470.51648,456.66812,442.158,458.3025,250.48988,220.94156,292.50616,228.94685,365.14536,421.47778,491.64185,116.54554,249.48859,472.40533,278.56754,92.59997,85.27395,182.30952,59.556793,5.4137325,280.0142,88.07781,402.44656,158.39796,301.82834,388.01437,82.073006,389.274,144.59152,248.33052,342.66183,254.26219,59.057697,356.00107,32.98972,222.57571,40.039764,465.3186,164.18213,189.0594,203.21193,165.80643,219.1642,18.719751,173.60591,192.80952,481.31204,435.0296,71.99339,449.48804,195.02235,248.03024,53.320038,473.32126,160.80983,85.60243,60.81158,374.88614,480.89325,342.79355,349.4454,3.9160392,142.50038,111.67494,40.487137,366.51324,342.15598,309.3765,448.08234,147.32382,470.3735,353.69867,57.200523,451.32806,343.24344,132.71895,309.00366,8.916633,337.19537,244.63676,123.12757,259.7134,454.5349,132.4795,124.51421,369.2175,414.55338,436.8743,366.89456,92.79054,299.76147,430.24692,457.96646,242.67807,160.14284,296.15802,75.90066,286.38187,163.7512,28.300621,12.725549,19.861832,236.8026,49.933247,179.64699,33.392334,7.896,68.81884,309.86905,39.173786,147.82013,408.11954,280.6233,94.58327,365.08975,412.55405,93.63247,440.4064,447.71036,351.18054,100.88078,216.53738,40.37313,207.37265,456.81937,391.2104,203.10338,21.969032,380.31586,428.31458,10.582688,342.95157,145.1851,220.97864,155.66328,364.62653,120.78875,67.05551,420.23727,147.81537,307.40344,96.16741,91.03344,444.60043,411.33658,204.0794,13.155363,309.54947,16.191866,304.28778,313.82272,56.699448,155.55302,128.69092,426.99564,373.02713,253.38272,284.46085,469.1651,7.7414513,491.09573,378.96518,490.5688,407.82904,431.4003,153.06125,320.80182,95.460396,90.42153,293.48355,287.13104,263.59674,100.99441,25.36872,196.34193,47.43903,256.42474,93.50411,183.26822,23.408876,371.54834,167.89285,175.94969,357.73914,293.7272,312.40405,161.76167,265.66055,492.76947,181.45462,134.11281,476.82193,84.54105,122.592964,299.90982,2.8533237,69.81504,34.439613,326.645,254.06992,258.91147,287.4231,328.81363,62.610783,77.327156,448.89902,281.21246,12.591334,268.09714,207.11136,430.5738,183.0211,456.31467,264.22372,64.639755,24.597525,213.83684,94.7638,401.7375,248.11769,38.36599,49.038116,56.542736,298.72144,73.66455,216.55617,380.55328,132.28334,262.50354,346.58423,17.37669,361.41345,243.71915,196.32034,326.7136,107.66579,375.16858,19.613651,322.21268,344.36157,312.35217,482.93143,197.06386,102.42254,400.84015,322.9303,403.37085,274.14478,386.86447,414.36246,486.29138,424.21008,36.596138,109.31786,496.44876,206.99411,120.60514,24.934374,488.7836,111.81821,117.169106,346.62442,417.00052,309.56827,308.43298,231.6078,164.75554,29.230402,369.55347,313.39505,2.634345,124.26995,71.67585,370.68903,360.48694,408.67172,12.421051,24.006142,2.0205727,345.96982,37.225166,131.77766,354.89484,487.84937,128.29369,55.063396,65.56854,18.288557,463.45908,147.92621,111.21385,97.59064,115.22061,180.83006,368.0504,299.3007,157.60628,108.67327,16.102777,484.75797,412.05716,2.037473,140.4081,243.07692,331.38513,305.06964,216.43214,351.61374,36.807457,303.5018,196.60088,192.28772,150.26764,491.78436,495.2382,124.06278,466.05115,123.4262,9.247929,317.39685,312.4657,38.598385,27.546844,449.4687,398.5406,292.1326,448.68436,402.6233,60.03751,60.934452,398.449,460.83322,395.0036,263.29703,238.45755,324.35587,433.36026,21.300783,50.27429,220.7114,376.03052,77.00656,316.83478,487.21902,146.2409,451.61465,91.57987,99.000534,451.20453,279.4267,200.34808,302.07715,89.78664,191.19508,83.38151,396.71307,136.62062,476.12125,200.5239,304.4688,112.93234,23.057875,190.3166,239.55159,202.68979,33.948185,112.12094,458.2361,429.35052,291.75674,494.2263,199.72403,45.217606,443.00754,316.76886,214.53241,472.88553,247.63919,387.54163,430.38486,435.28622,306.7955,339.66858,115.01241,202.82048,450.7415,42.579285,68.85044,222.26125,438.34363,410.29544,78.75746,494.9082,401.18256,467.46698,226.48045,17.051731,130.82974,303.8798,13.486696,358.52292,302.32242,296.3825,128.94081,245.70708,4.567742,463.7985,470.41785,344.7429,8.98127,108.94205,427.83853,159.01799,198.71988,430.08163,421.7166,98.32481,71.90706,309.98038,142.69568,55.421158,196.01501,321.15714,465.4134,59.847645,272.7656,168.75201,296.0583,137.53156,483.7288,401.64203,343.08273,0.6030569,211.49301,325.76935,120.09878,21.12578,265.34204,122.53032,334.2255,480.3362,108.08316,380.26904,196.94067,66.827736,495.82614,222.56482,15.423886,211.12148,266.44955,354.00314,433.55548,484.98685,4.379353,58.811867,25.915668,88.54025,473.0575,216.32928,230.68658,330.33905,432.9569,160.17487,22.790915,279.00916,308.34805,241.73846,96.74307,151.43523,144.10097,340.06125,177.1098,242.08453,277.67615,229.44594,188.98024,103.35443,30.091778,18.180647,304.05115,36.630653,301.34183,115.89987,431.26138,291.497,144.66965,61.484837,283.62885,128.61389,68.8364,496.41043,204.59702,290.89822,193.18532,25.578928,377.07367,224.24825,59.79206,196.11584,70.118034,387.92154,180.4811,90.12277,483.02615,104.467224,365.38724,441.7429,201.52017,409.7498,294.47568,316.87143,28.209578,111.052605,254.91425,348.47986,59.271095,127.2296,36.444073,316.68887,59.72082,300.01923,437.54025,237.01727,163.57695,21.221859,101.719376,455.62683,381.03696,167.46747,90.599846,350.41553,27.410093,146.88481,167.50543,402.8943,363.14032,20.964367,96.65024,275.5557,248.86713,396.38705,400.68524,437.81903,471.92944,233.1616,198.01802,156.93597,28.600578,265.69534,297.70462,43.411957,499.88193,311.7345,392.54614,40.298336,119.566376,312.55792,387.67255,234.30022,489.68375,91.912094,286.38266,4.252378,84.7661,182.70985,99.824486,485.411,257.91965,477.5079,252.77512,333.3544,219.24435,310.08142,120.171936,135.62375,244.97487,164.59244,154.1804,391.33505,396.16632,221.6635,473.2529,408.05646,225.63196,9.332186,5.4726524,470.11426,343.53482,308.36032,150.09608,20.543364,183.30048,172.0354,182.9907,223.21013,54.967056,455.72504,291.2376,18.998549,371.69925,94.19135,364.15164,188.5549,84.37467,304.32907,284.41855,268.3612,331.5456,331.09644,494.45145,406.2589,470.4067,199.23856,340.75113,459.81412,262.69162,477.08038,207.78317,75.500946,104.184,278.27994,56.76797,432.67923,18.657997,9.151082,394.71323,128.43402,233.23895,338.9815,162.04277,407.5157,262.8235,265.7619,384.46893,202.2431,236.46498,425.71445,313.71597,236.86174,179.3087,432.70447,482.23007,98.623726,152.66609,448.77692,120.39013,306.39722,123.91039,267.54922,349.74493,165.42636,441.30655,397.65997,150.91403,86.47543,262.6907,485.7428,126.55528,231.85257,384.30045,144.74239,243.5119,413.78192,115.28487,315.97202,347.54126,358.17633,451.47577,322.99405,327.3134,212.94069,257.72208,26.391048,267.7957,288.21344,324.16626,466.9823,127.47178,172.3431,497.0177,45.06174,199.19366,380.61807,388.26312,468.09552,246.97859,379.99774,406.02362,68.33883,49.793262,440.23944,377.91818,203.79265,213.13806,120.23413,151.80614,165.34688,164.63507,456.05814,275.07486,441.39612,63.77426,145.1099,385.2688,72.66454,462.9225,200.48839,204.25322,50.628056,32.818165,229.1985,82.54511,492.2675,308.43045,91.60771,482.21426,465.6524,67.02551,147.04459,220.78123,171.68355,317.0397,215.8363,126.89491,42.552975,374.631,363.03854,437.13275,53.60766,54.596462,311.11093,109.73023,179.24727,251.14,409.7967,143.59486,100.09889,70.406845,479.99573,382.58746,390.10925,435.42743,368.62274,388.3802,446.5092,350.8144,74.464874,304.60727,112.37781,443.1706,149.99959,456.6973,28.708841,494.25778,95.877266,242.0587,42.08096,480.8819,396.68665,423.66223,460.08063,206.02469,25.235977,322.86612,448.94748,78.13063,91.657364,237.47797,21.05893,473.0208,82.80456,0.8719595,161.56076,342.6066,158.71243,40.942753,360.4225,370.88358,143.36472,324.13892,125.55587,252.45183,247.50163,57.589207,84.55315,79.35029,164.94505,263.26227,395.7655,186.2775,312.1302,330.53152,24.427576,40.34979,145.84985,143.38107,184.6163,160.99342,212.1613,229.35606,213.63864,358.67484,75.95808,470.30737,455.40158,219.35909,17.183685,161.47629,161.42487,188.94666,68.105225,46.143906,314.46176,14.048646,166.4564,156.14896,499.0767,116.40129,273.18564,399.76974,466.5947,357.80048,407.60483,89.34256,382.98715,6.9943895,247.29828,457.99988,364.57654,423.2927,241.17834,452.95456,298.0867,53.203075,337.75525,388.68738,379.09836,449.53894,198.68466,218.73672,18.011625,246.07916,496.24,328.63025,437.1736,499.35605,134.37216,413.36606,387.9516,435.9936,325.36237,408.03717,195.34845,394.6503,446.15222,476.43793,417.00937,353.71838,348.91022,433.88538,266.48627,175.9957,75.39767,125.823425,242.718,237.38463,13.16664,450.52765,191.2105,219.05655,11.222123,348.35968,20.374485,139.13092,411.5813,478.15128,470.56894,148.82391,363.36563,295.30173,216.31633,18.376385,202.60106,321.82428,369.8916,87.28265,161.66191,409.59232,434.43552,425.24197,113.63043,108.722755,409.70825,94.959625,252.1323,225.79562,240.9455,76.83488,35.877193,218.30235,223.8009,27.801407,498.39377,436.24158,74.469086,461.5874,317.49023,446.9606,260.544,78.72424,469.68207,87.048035,294.82025,398.1861,145.71495,39.53034,34.16507,252.3479,155.78891,31.514498,465.67072,3.8363318,52.3879,342.9584,122.15706,168.59804,400.47583,367.5701,443.39392]} diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/test/fixtures/julia/runner.jl b/lib/node_modules/@stdlib/math/base/special/cphasef/test/fixtures/julia/runner.jl new file mode 100755 index 000000000000..62f8832244c8 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/test/fixtures/julia/runner.jl @@ -0,0 +1,82 @@ +#!/usr/bin/env julia +# +# @license Apache-2.0 +# +# Copyright (c) 2018 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( re, im, name ) + +Generate fixture data and write to file. + +# Arguments + +* `re`: real components +* `im`: imaginary components +* `name::AbstractString`: output filename + +# Examples + +``` julia +julia> re = range( -1000.0, stop = 1000.0, length = 2001 ); +julia> im = range( 0.0, stop = 1000.0, length = 1001 ); +julia> gen( re, im, \"data.json\" ); +``` +""" +function gen( re, im, name ) + z = Array{Float32}( undef, length(re) ); + for i in eachindex(re) + z[ i ] = angle( Complex{Float32}( re[i], im[i] ) ); + end + + # Store data to be written to file as a collection: + data = Dict([ + ("re", re), + ("im", im), + ("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 (re positive, im positive): +re = Float32.( rand( 5001 ) .* 500.0 ); +im = Float32.( rand( 5001 ) .* 500.0 ); +gen( re, im, "positive_positive.json" ); + +# Random (re negative, im positive): +re = Float32.( -rand( 1001 ) .* 500.0 ); +im = Float32.( rand( 1001 ) .* 500.0 ); +gen( re, im, "negative_positive.json" ); + +# Random (re negative, im negative): +re = Float32.( -rand( 1001 ) .* 500.0 ); +im = Float32.( -rand( 1001 ) .* 500.0 ); +gen( re, im, "negative_negative.json" ); diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/test/test.js b/lib/node_modules/@stdlib/math/base/special/cphasef/test/test.js new file mode 100644 index 000000000000..7d4cbb19295f --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/test/test.js @@ -0,0 +1,226 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2018 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 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 Complex64 = require( '@stdlib/complex/float32/ctor' ); +var cphasef = 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 cphasef, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function returns `NaN` if provided `NaN` as either of the arguments', function test( t ) { + t.strictEqual( isnanf( cphasef( new Complex64( 2.0, NaN ) ) ), true, 'returns expected value' ); + t.strictEqual( isnanf( cphasef( new Complex64( NaN, 3.0 ) ) ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `+0` if provided `im = +0.0` and `re >= 0`', function test( t ) { + t.strictEqual( cphasef( new Complex64( 0.0, +0.0) ), +0.0, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( 2.0, +0.0) ), +0.0, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( 4.0, +0.0) ), +0.0, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( 5.0, +0.0) ), +0.0, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( 10.0, +0.0) ), +0.0, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-0` if provided `im = -0.0` and `re >= 0`', function test( t ) { + t.strictEqual( isNegativeZerof( cphasef( new Complex64( 0.0, -0.0 ) ) ), true, 'returns expected value' ); + t.strictEqual( isNegativeZerof( cphasef( new Complex64( 2.0, -0.0 ) ) ), true, 'returns expected value' ); + t.strictEqual( isNegativeZerof( cphasef( new Complex64( 4.0, -0.0 ) ) ), true, 'returns expected value' ); + t.strictEqual( isNegativeZerof( cphasef( new Complex64( 5.0, -0.0 ) ) ), true, 'returns expected value' ); + t.strictEqual( isNegativeZerof( cphasef( new Complex64( 10.0, -0.0 ) ) ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `PI` if provided `im = +0.0` and `re <= -0.0`', function test( t ) { + t.strictEqual( cphasef( new Complex64( -0.0, +0.0 ) ), +PI, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( -2.0, +0.0 ) ), +PI, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( -4.0, +0.0 ) ), +PI, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( -5.0, +0.0 ) ), +PI, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( -10.0, +0.0 ) ), +PI, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-PI` if provided `im = -0.0` and `re <= -0.0`', function test( t ) { + t.strictEqual( cphasef( new Complex64( -0.0, -0.0 ) ), -PI, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( -2.0, -0.0 ) ), -PI, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( -4.0, -0.0 ) ), -PI, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( -5.0, -0.0 ) ), -PI, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( -10.0, -0.0 ) ), -PI, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `+PI/4` if provided `re = im = +infinity`', function test( t ) { + t.strictEqual( cphasef( new Complex64( PINF, PINF ) ), f32( +PI/4.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-PI/4` if provided `re = -im = +infinity`', function test( t ) { + t.strictEqual( cphasef( new Complex64( PINF, NINF ) ), f32( -PI/4.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `*3*PI/4` if provided `-re = im = +infinity`', function test( t ) { + t.strictEqual( cphasef( new Complex64( NINF, PINF ) ), f32( +3.0*PI/4.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-3*PI/4` if provided `re = im = -infinity`', function test( t ) { + t.strictEqual( cphasef( new Complex64( NINF, NINF ) ), f32( -3.0*PI/4.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `0.0` when `re = +infinity`', function test( t ) { + t.strictEqual( cphasef( new Complex64( PINF, -2.0 ) ), 0.0, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( PINF, 0.0 ) ), 0.0, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( PINF, 2.0 ) ), 0.0, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `+PI` when `im > 0` and `re = -infinity`', function test( t ) { + t.strictEqual( cphasef( new Complex64( NINF, 1.0 ) ), PI, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( NINF, 2.0 ) ), PI, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( NINF, 3.0 ) ), PI, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-PI` when `im < 0` and `re = -infinity`', function test( t ) { + t.strictEqual( cphasef( new Complex64( NINF, -1.0 ) ), -PI, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( NINF, -2.0 ) ), -PI, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( NINF, -3.0 ) ), -PI, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `+PI/2` when `im = +infinity`', function test( t ) { + t.strictEqual( cphasef( new Complex64( -1.0, PINF ) ), f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( 0.0, PINF ) ), f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( 2.0, PINF ) ), f32( PI/2.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-PI/2` when `im = -infinity`', function test( t ) { + t.strictEqual( cphasef( new Complex64( -1.0, NINF ) ), -f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( 0.0, NINF ) ), -f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( 2.0, NINF ) ), -f32( PI/2.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `PI/2` if provided a positive `im` and `re=0`', function test( t ) { + t.strictEqual( cphasef( new Complex64( 0.0, 2.0 ) ), f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( 0.0, 1.0 ) ), f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( 0.0, 0.5 ) ), f32( PI/2.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-PI/2` if provided a negative `im` and `re=0`', function test( t ) { + t.strictEqual( cphasef( new Complex64( 0.0, -2.0 ) ), -f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( 0.0, -1.0 ) ), -f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( 0.0, -0.5 ) ), -f32( PI/2.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function computes the argument of a complex number (when `re` and `im` are positive)', function test( t ) { + var expected; + var actual; + var delta; + var tol; + var re; + var im; + var i; + + re = positivePositive.re; + im = positivePositive.im; + expected = positivePositive.expected; + for ( i = 0; i < re.length; i++ ) { + actual = cphasef( new Complex64( re[i], im[i] ) ); + expected[ i ] = f32( expected[ i ] ); + delta = absf( actual - expected[i] ); + tol = EPS * absf( expected[i] ); + t.strictEqual( delta <= tol, true, 'within tolerance. re: '+re[i]+'. im: '+im[i]+'. Actual: '+actual+'. Expected: '+expected[i]+'. tol: '+tol+'. delta: '+delta+'.' ); + } + t.end(); +}); + +tape( 'the function computes the argument of a complex number (when `re` is negative and `im` is positive)', function test( t ) { + var expected; + var actual; + var delta; + var tol; + var re; + var im; + var i; + + re = negativePositive.re; + im = negativePositive.im; + expected = negativePositive.expected; + for ( i = 0; i < re.length; i++ ) { + actual = cphasef( new Complex64( re[i], im[i] ) ); + expected[ i ] = f32( expected[ i ] ); + delta = absf( actual - expected[i] ); + tol = 2.0 * EPS * absf( expected[i] ); + t.strictEqual( delta <= tol, true, 'within tolerance. re: '+re[i]+'. im: '+im[i]+'. Actual: '+actual+'. Expected: '+expected[i]+'. tol: '+tol+'. delta: '+delta+'.' ); + } + t.end(); +}); + +tape( 'the function computes the argument of a complex number (when `re` and `im` are negative)', function test( t ) { + var expected; + var actual; + var delta; + var tol; + var re; + var im; + var i; + + re = negativeNegative.re; + im = negativeNegative.im; + expected = negativeNegative.expected; + for ( i = 0; i < re.length; i++ ) { + actual = cphasef( new Complex64( re[i], im[i] ) ); + expected[ i ] = f32( expected[ i ] ); + delta = absf( actual - expected[i] ); + tol = 2.0 * EPS * absf( expected[i] ); + t.strictEqual( delta <= tol, true, 'within tolerance. re: '+re[i]+'. im: '+im[i]+'. Actual: '+actual+'. Expected: '+expected[i]+'. tol: '+tol+'. delta: '+delta+'.' ); + } + t.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/cphasef/test/test.native.js new file mode 100644 index 000000000000..869021c779fd --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/test/test.native.js @@ -0,0 +1,235 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2023 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 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 Complex64 = require( '@stdlib/complex/float32/ctor' ); +var tryRequire = require( '@stdlib/utils/try-require' ); + + +// VARIABLES // + +var cphasef = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( cphasef instanceof Error ) +}; + + +// 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', opts, function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof cphasef, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function returns `NaN` if provided `NaN` as either of the arguments', opts, function test( t ) { + t.strictEqual( isnanf( cphasef( new Complex64( 2.0, NaN ) ) ), true, 'returns expected value' ); + t.strictEqual( isnanf( cphasef( new Complex64( NaN, 3.0 ) ) ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `+0` if provided `im = +0.0` and `re >= 0`', opts, function test( t ) { + t.strictEqual( cphasef( new Complex64( 0.0, +0.0) ), +0.0, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( 2.0, +0.0) ), +0.0, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( 4.0, +0.0) ), +0.0, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( 5.0, +0.0) ), +0.0, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( 10.0, +0.0) ), +0.0, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-0` if provided `im = -0.0` and `re >= 0`', opts, function test( t ) { + t.strictEqual( isNegativeZerof( cphasef( new Complex64( 0.0, -0.0 ) ) ), true, 'returns expected value' ); + t.strictEqual( isNegativeZerof( cphasef( new Complex64( 2.0, -0.0 ) ) ), true, 'returns expected value' ); + t.strictEqual( isNegativeZerof( cphasef( new Complex64( 4.0, -0.0 ) ) ), true, 'returns expected value' ); + t.strictEqual( isNegativeZerof( cphasef( new Complex64( 5.0, -0.0 ) ) ), true, 'returns expected value' ); + t.strictEqual( isNegativeZerof( cphasef( new Complex64( 10.0, -0.0 ) ) ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `PI` if provided `im = +0.0` and `re <= -0.0`', opts, function test( t ) { + t.strictEqual( cphasef( new Complex64( -0.0, +0.0 ) ), +PI, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( -2.0, +0.0 ) ), +PI, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( -4.0, +0.0 ) ), +PI, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( -5.0, +0.0 ) ), +PI, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( -10.0, +0.0 ) ), +PI, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-PI` if provided `im = -0.0` and `re <= -0.0`', opts, function test( t ) { + t.strictEqual( cphasef( new Complex64( -0.0, -0.0 ) ), -PI, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( -2.0, -0.0 ) ), -PI, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( -4.0, -0.0 ) ), -PI, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( -5.0, -0.0 ) ), -PI, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( -10.0, -0.0 ) ), -PI, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `+PI/4` if provided `re = im = +infinity`', opts, function test( t ) { + t.strictEqual( cphasef( new Complex64( PINF, PINF ) ), f32( +PI/4.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-PI/4` if provided `re = -im = +infinity`', opts, function test( t ) { + t.strictEqual( cphasef( new Complex64( PINF, NINF ) ), f32( -PI/4.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `*3*PI/4` if provided `-re = im = +infinity`', opts, function test( t ) { + t.strictEqual( cphasef( new Complex64( NINF, PINF ) ), f32( +3.0*PI/4.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-3*PI/4` if provided `re = im = -infinity`', opts, function test( t ) { + t.strictEqual( cphasef( new Complex64( NINF, NINF ) ), f32( -3.0*PI/4.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `0.0` when `re = +infinity`', opts, function test( t ) { + t.strictEqual( cphasef( new Complex64( PINF, -2.0 ) ), 0.0, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( PINF, 0.0 ) ), 0.0, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( PINF, 2.0 ) ), 0.0, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `+PI` when `im > 0` and `re = -infinity`', opts, function test( t ) { + t.strictEqual( cphasef( new Complex64( NINF, 1.0 ) ), PI, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( NINF, 2.0 ) ), PI, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( NINF, 3.0 ) ), PI, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-PI` when `im < 0` and `re = -infinity`', opts, function test( t ) { + t.strictEqual( cphasef( new Complex64( NINF, -1.0 ) ), -PI, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( NINF, -2.0 ) ), -PI, 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( NINF, -3.0 ) ), -PI, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `+PI/2` when `im = +infinity`', opts, function test( t ) { + t.strictEqual( cphasef( new Complex64( -1.0, PINF ) ), f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( 0.0, PINF ) ), f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( 2.0, PINF ) ), f32( PI/2.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-PI/2` when `im = -infinity`', opts, function test( t ) { + t.strictEqual( cphasef( new Complex64( -1.0, NINF ) ), -f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( 0.0, NINF ) ), -f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( 2.0, NINF ) ), -f32( PI/2.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `PI/2` if provided a positive `im` and `re=0`', opts, function test( t ) { + t.strictEqual( cphasef( new Complex64( 0.0, 2.0 ) ), f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( 0.0, 1.0 ) ), f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( 0.0, 0.5 ) ), f32( PI/2.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-PI/2` if provided a negative `im` and `re=0`', opts, function test( t ) { + t.strictEqual( cphasef( new Complex64( 0.0, -2.0 ) ), -f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( 0.0, -1.0 ) ), -f32( PI/2.0 ), 'returns expected value' ); + t.strictEqual( cphasef( new Complex64( 0.0, -0.5 ) ), -f32( PI/2.0 ), 'returns expected value' ); + t.end(); +}); + +tape( 'the function computes the argument of a complex number (when `re` and `im` are positive)', opts, function test( t ) { + var expected; + var actual; + var delta; + var tol; + var re; + var im; + var i; + + re = positivePositive.re; + im = positivePositive.im; + expected = positivePositive.expected; + for ( i = 0; i < re.length; i++ ) { + actual = cphasef( new Complex64( re[i], im[i] ) ); + expected[ i ] = f32( expected[ i ] ); + delta = absf( actual - expected[i] ); + tol = EPS * absf( expected[i] ); + t.strictEqual( delta <= tol, true, 'within tolerance. re: '+re[i]+'. im: '+im[i]+'. Actual: '+actual+'. Expected: '+expected[i]+'. tol: '+tol+'. delta: '+delta+'.' ); + } + t.end(); +}); + +tape( 'the function computes the argument of a complex number (when `re` is negative and `im` is positive)', opts, function test( t ) { + var expected; + var actual; + var delta; + var tol; + var re; + var im; + var i; + + re = negativePositive.re; + im = negativePositive.im; + expected = negativePositive.expected; + for ( i = 0; i < re.length; i++ ) { + actual = cphasef( new Complex64( re[i], im[i] ) ); + expected[ i ] = f32( expected[ i ] ); + delta = absf( actual - expected[i] ); + tol = 2.0 * EPS * absf( expected[i] ); + t.strictEqual( delta <= tol, true, 'within tolerance. re: '+re[i]+'. im: '+im[i]+'. Actual: '+actual+'. Expected: '+expected[i]+'. tol: '+tol+'. delta: '+delta+'.' ); + } + t.end(); +}); + +tape( 'the function computes the argument of a complex number (when `re` and `im` are negative)', opts, function test( t ) { + var expected; + var actual; + var delta; + var tol; + var re; + var im; + var i; + + re = negativeNegative.re; + im = negativeNegative.im; + expected = negativeNegative.expected; + for ( i = 0; i < re.length; i++ ) { + actual = cphasef( new Complex64( re[i], im[i] ) ); + expected[ i ] = f32( expected[ i ] ); + delta = absf( actual - expected[i] ); + tol = 2.0 * EPS * absf( expected[i] ); + t.strictEqual( delta <= tol, true, 'within tolerance. re: '+re[i]+'. im: '+im[i]+'. Actual: '+actual+'. Expected: '+expected[i]+'. tol: '+tol+'. delta: '+delta+'.' ); + } + t.end(); +}); From 792eba00e3ac39b3cd3ff9198ff3b00c78881683 Mon Sep 17 00:00:00 2001 From: Karan Anand Date: Sun, 1 Jun 2025 08:53:40 -0700 Subject: [PATCH 2/3] test: update tolerances --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: passed - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: passed - task: lint_javascript_tests status: passed - task: lint_javascript_benchmarks status: passed - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: passed - task: lint_c_examples status: passed - task: lint_c_benchmarks status: passed - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: passed - task: lint_license_headers status: passed --- --- .../@stdlib/math/base/special/cphasef/README.md | 4 ++-- .../math/base/special/cphasef/benchmark/benchmark.js | 2 +- .../base/special/cphasef/benchmark/benchmark.native.js | 2 +- .../math/base/special/cphasef/benchmark/c/benchmark.c | 2 +- .../base/special/cphasef/benchmark/c/native/benchmark.c | 2 +- .../base/special/cphasef/benchmark/julia/benchmark.jl | 2 +- .../@stdlib/math/base/special/cphasef/binding.gyp | 2 +- .../math/base/special/cphasef/docs/types/index.d.ts | 2 +- .../@stdlib/math/base/special/cphasef/docs/types/test.ts | 2 +- .../math/base/special/cphasef/examples/c/example.c | 4 ++-- .../@stdlib/math/base/special/cphasef/examples/index.js | 2 +- .../@stdlib/math/base/special/cphasef/include.gypi | 2 +- .../cphasef/include/stdlib/math/base/special/cphasef.h | 2 +- .../@stdlib/math/base/special/cphasef/lib/index.js | 2 +- .../@stdlib/math/base/special/cphasef/lib/main.js | 2 +- .../@stdlib/math/base/special/cphasef/lib/native.js | 2 +- .../@stdlib/math/base/special/cphasef/src/Makefile | 2 +- .../@stdlib/math/base/special/cphasef/src/addon.c | 2 +- .../@stdlib/math/base/special/cphasef/src/main.c | 2 +- .../base/special/cphasef/test/fixtures/julia/runner.jl | 2 +- .../@stdlib/math/base/special/cphasef/test/test.js | 8 ++++---- .../@stdlib/math/base/special/cphasef/test/test.native.js | 8 ++++---- 22 files changed, 30 insertions(+), 30 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/README.md b/lib/node_modules/@stdlib/math/base/special/cphasef/README.md index 3f3ef844d1c8..ffdcda20b63d 100644 --- a/lib/node_modules/@stdlib/math/base/special/cphasef/README.md +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/README.md @@ -2,7 +2,7 @@ @license Apache-2.0 -Copyright (c) 2018 The Stdlib Authors. +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. @@ -166,7 +166,7 @@ int main( void ) { v = x[ i ]; y = stdlib_base_cphasef( v ); stdlib_complex64_reim( v, &re, &im ); - printf( "fcphasef(%f + %lfi) = %f\n", re, im, y ); + printf( "fcphasef(%f + %fi) = %f\n", re, im, y ); } } ``` diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/benchmark.js b/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/benchmark.js index a7cbd5cede40..80ebc422b843 100644 --- a/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/benchmark.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2018 The Stdlib Authors. +* 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. diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/benchmark.native.js index 61c518cbc4a2..397623582fe2 100644 --- a/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/benchmark.native.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2023 The Stdlib Authors. +* 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. diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/c/benchmark.c b/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/c/benchmark.c index 4a89cb6c45f9..f427e533a049 100644 --- a/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/c/benchmark.c +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/c/benchmark.c @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2018 The Stdlib Authors. +* 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. diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/c/native/benchmark.c b/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/c/native/benchmark.c index b492126f72a2..a5a367ebbf6b 100644 --- a/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/c/native/benchmark.c +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/c/native/benchmark.c @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2023 The Stdlib Authors. +* 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. diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/julia/benchmark.jl b/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/julia/benchmark.jl index 9d4fef417bd5..866d5667079a 100755 --- a/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/julia/benchmark.jl +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/benchmark/julia/benchmark.jl @@ -2,7 +2,7 @@ # # @license Apache-2.0 # -# Copyright (c) 2018 The Stdlib Authors. +# 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. diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/binding.gyp b/lib/node_modules/@stdlib/math/base/special/cphasef/binding.gyp index f2b466aef5c4..68a1ca11d160 100644 --- a/lib/node_modules/@stdlib/math/base/special/cphasef/binding.gyp +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/binding.gyp @@ -1,6 +1,6 @@ # @license Apache-2.0 # -# Copyright (c) 2023 The Stdlib Authors. +# 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. diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/docs/types/index.d.ts b/lib/node_modules/@stdlib/math/base/special/cphasef/docs/types/index.d.ts index eb36dffadce8..efe0bdf3ad03 100644 --- a/lib/node_modules/@stdlib/math/base/special/cphasef/docs/types/index.d.ts +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/docs/types/index.d.ts @@ -1,7 +1,7 @@ /* * @license Apache-2.0 * -* Copyright (c) 2019 The Stdlib Authors. +* 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. diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/docs/types/test.ts b/lib/node_modules/@stdlib/math/base/special/cphasef/docs/types/test.ts index bfbb3942cecb..3e409f7c103f 100644 --- a/lib/node_modules/@stdlib/math/base/special/cphasef/docs/types/test.ts +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/docs/types/test.ts @@ -1,7 +1,7 @@ /* * @license Apache-2.0 * -* Copyright (c) 2019 The Stdlib Authors. +* 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. diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/examples/c/example.c b/lib/node_modules/@stdlib/math/base/special/cphasef/examples/c/example.c index e74e9b063e2e..7e7bdf984eb7 100644 --- a/lib/node_modules/@stdlib/math/base/special/cphasef/examples/c/example.c +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/examples/c/example.c @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2023 The Stdlib Authors. +* 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. @@ -38,6 +38,6 @@ int main( void ) { v = x[ i ]; y = stdlib_base_cphasef( v ); stdlib_complex64_reim( v, &re, &im ); - printf( "fcphasef(%f + %lfi) = %f\n", re, im, y ); + printf( "fcphasef(%f + %fi) = %f\n", re, im, y ); } } diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/examples/index.js b/lib/node_modules/@stdlib/math/base/special/cphasef/examples/index.js index fe3432ac0161..667b8d9c9b9d 100644 --- a/lib/node_modules/@stdlib/math/base/special/cphasef/examples/index.js +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/examples/index.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2018 The Stdlib Authors. +* 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. diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/include.gypi b/lib/node_modules/@stdlib/math/base/special/cphasef/include.gypi index 78db9faf8c74..ecfaf82a3279 100644 --- a/lib/node_modules/@stdlib/math/base/special/cphasef/include.gypi +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/include.gypi @@ -1,6 +1,6 @@ # @license Apache-2.0 # -# Copyright (c) 2023 The Stdlib Authors. +# 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. diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/include/stdlib/math/base/special/cphasef.h b/lib/node_modules/@stdlib/math/base/special/cphasef/include/stdlib/math/base/special/cphasef.h index fcd1e87ade29..6ff8d1d18129 100644 --- a/lib/node_modules/@stdlib/math/base/special/cphasef/include/stdlib/math/base/special/cphasef.h +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/include/stdlib/math/base/special/cphasef.h @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2023 The Stdlib Authors. +* 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. diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/lib/index.js b/lib/node_modules/@stdlib/math/base/special/cphasef/lib/index.js index cc4a75ff3b48..a2507e33f39a 100644 --- a/lib/node_modules/@stdlib/math/base/special/cphasef/lib/index.js +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/lib/index.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2018 The Stdlib Authors. +* 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. diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/lib/main.js b/lib/node_modules/@stdlib/math/base/special/cphasef/lib/main.js index 3ec62f2f9103..0eb3bb864ae3 100644 --- a/lib/node_modules/@stdlib/math/base/special/cphasef/lib/main.js +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/lib/main.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2018 The Stdlib Authors. +* 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. diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/lib/native.js b/lib/node_modules/@stdlib/math/base/special/cphasef/lib/native.js index 41d8979e7b11..6794d0d38ab5 100644 --- a/lib/node_modules/@stdlib/math/base/special/cphasef/lib/native.js +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/lib/native.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2023 The Stdlib Authors. +* 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. diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/src/Makefile b/lib/node_modules/@stdlib/math/base/special/cphasef/src/Makefile index 904c7dc4bd7a..7733b6180cb4 100644 --- a/lib/node_modules/@stdlib/math/base/special/cphasef/src/Makefile +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/src/Makefile @@ -1,7 +1,7 @@ #/ # @license Apache-2.0 # -# Copyright (c) 2023 The Stdlib Authors. +# 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. diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/src/addon.c b/lib/node_modules/@stdlib/math/base/special/cphasef/src/addon.c index 5411201cdadb..bbcc60d1195c 100644 --- a/lib/node_modules/@stdlib/math/base/special/cphasef/src/addon.c +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/src/addon.c @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2023 The Stdlib Authors. +* 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. diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/src/main.c b/lib/node_modules/@stdlib/math/base/special/cphasef/src/main.c index c3252fd825ef..85940b7c81de 100644 --- a/lib/node_modules/@stdlib/math/base/special/cphasef/src/main.c +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/src/main.c @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2023 The Stdlib Authors. +* 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. diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/test/fixtures/julia/runner.jl b/lib/node_modules/@stdlib/math/base/special/cphasef/test/fixtures/julia/runner.jl index 62f8832244c8..f1810b3b1432 100755 --- a/lib/node_modules/@stdlib/math/base/special/cphasef/test/fixtures/julia/runner.jl +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/test/fixtures/julia/runner.jl @@ -2,7 +2,7 @@ # # @license Apache-2.0 # -# Copyright (c) 2018 The Stdlib Authors. +# 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. diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/test/test.js b/lib/node_modules/@stdlib/math/base/special/cphasef/test/test.js index 7d4cbb19295f..0f3fca660bbe 100644 --- a/lib/node_modules/@stdlib/math/base/special/cphasef/test/test.js +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/test/test.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2018 The Stdlib Authors. +* 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. @@ -175,7 +175,7 @@ tape( 'the function computes the argument of a complex number (when `re` and `im actual = cphasef( new Complex64( re[i], im[i] ) ); expected[ i ] = f32( expected[ i ] ); delta = absf( actual - expected[i] ); - tol = EPS * absf( expected[i] ); + tol = 1.3 * EPS * absf( expected[i] ); t.strictEqual( delta <= tol, true, 'within tolerance. re: '+re[i]+'. im: '+im[i]+'. Actual: '+actual+'. Expected: '+expected[i]+'. tol: '+tol+'. delta: '+delta+'.' ); } t.end(); @@ -197,7 +197,7 @@ tape( 'the function computes the argument of a complex number (when `re` is nega actual = cphasef( new Complex64( re[i], im[i] ) ); expected[ i ] = f32( expected[ i ] ); delta = absf( actual - expected[i] ); - tol = 2.0 * EPS * absf( expected[i] ); + tol = EPS * absf( expected[i] ); t.strictEqual( delta <= tol, true, 'within tolerance. re: '+re[i]+'. im: '+im[i]+'. Actual: '+actual+'. Expected: '+expected[i]+'. tol: '+tol+'. delta: '+delta+'.' ); } t.end(); @@ -219,7 +219,7 @@ tape( 'the function computes the argument of a complex number (when `re` and `im actual = cphasef( new Complex64( re[i], im[i] ) ); expected[ i ] = f32( expected[ i ] ); delta = absf( actual - expected[i] ); - tol = 2.0 * EPS * absf( expected[i] ); + tol = EPS * absf( expected[i] ); t.strictEqual( delta <= tol, true, 'within tolerance. re: '+re[i]+'. im: '+im[i]+'. Actual: '+actual+'. Expected: '+expected[i]+'. tol: '+tol+'. delta: '+delta+'.' ); } t.end(); diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/cphasef/test/test.native.js index 869021c779fd..4a748e809e00 100644 --- a/lib/node_modules/@stdlib/math/base/special/cphasef/test/test.native.js +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/test/test.native.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2023 The Stdlib Authors. +* 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. @@ -184,7 +184,7 @@ tape( 'the function computes the argument of a complex number (when `re` and `im actual = cphasef( new Complex64( re[i], im[i] ) ); expected[ i ] = f32( expected[ i ] ); delta = absf( actual - expected[i] ); - tol = EPS * absf( expected[i] ); + tol = 1.3 * EPS * absf( expected[i] ); t.strictEqual( delta <= tol, true, 'within tolerance. re: '+re[i]+'. im: '+im[i]+'. Actual: '+actual+'. Expected: '+expected[i]+'. tol: '+tol+'. delta: '+delta+'.' ); } t.end(); @@ -206,7 +206,7 @@ tape( 'the function computes the argument of a complex number (when `re` is nega actual = cphasef( new Complex64( re[i], im[i] ) ); expected[ i ] = f32( expected[ i ] ); delta = absf( actual - expected[i] ); - tol = 2.0 * EPS * absf( expected[i] ); + tol = EPS * absf( expected[i] ); t.strictEqual( delta <= tol, true, 'within tolerance. re: '+re[i]+'. im: '+im[i]+'. Actual: '+actual+'. Expected: '+expected[i]+'. tol: '+tol+'. delta: '+delta+'.' ); } t.end(); @@ -228,7 +228,7 @@ tape( 'the function computes the argument of a complex number (when `re` and `im actual = cphasef( new Complex64( re[i], im[i] ) ); expected[ i ] = f32( expected[ i ] ); delta = absf( actual - expected[i] ); - tol = 2.0 * EPS * absf( expected[i] ); + tol = EPS * absf( expected[i] ); t.strictEqual( delta <= tol, true, 'within tolerance. re: '+re[i]+'. im: '+im[i]+'. Actual: '+actual+'. Expected: '+expected[i]+'. tol: '+tol+'. delta: '+delta+'.' ); } t.end(); From 718328365e7fa8a5c766e71400438089eaa34301 Mon Sep 17 00:00:00 2001 From: Karan Anand Date: Sun, 1 Jun 2025 09:00:08 -0700 Subject: [PATCH 3/3] chore: fix header include --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: passed - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: passed - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: na - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- lib/node_modules/@stdlib/math/base/special/cphasef/README.md | 2 +- .../@stdlib/math/base/special/cphasef/examples/c/example.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/README.md b/lib/node_modules/@stdlib/math/base/special/cphasef/README.md index ffdcda20b63d..e8e17f4d2462 100644 --- a/lib/node_modules/@stdlib/math/base/special/cphasef/README.md +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/README.md @@ -144,7 +144,7 @@ float stdlib_base_cphasef( const stdlib_complex64_t z ); ### Examples ```c -#include "stdlib/math/base/special/cphase.h" +#include "stdlib/math/base/special/cphasef.h" #include "stdlib/complex/float32/ctor.h" #include "stdlib/complex/float32/reim.h" #include diff --git a/lib/node_modules/@stdlib/math/base/special/cphasef/examples/c/example.c b/lib/node_modules/@stdlib/math/base/special/cphasef/examples/c/example.c index 7e7bdf984eb7..c5ecc669bd70 100644 --- a/lib/node_modules/@stdlib/math/base/special/cphasef/examples/c/example.c +++ b/lib/node_modules/@stdlib/math/base/special/cphasef/examples/c/example.c @@ -16,7 +16,7 @@ * limitations under the License. */ -#include "stdlib/math/base/special/cphase.h" +#include "stdlib/math/base/special/cphasef.h" #include "stdlib/complex/float32/ctor.h" #include "stdlib/complex/float32/reim.h" #include