From c4b41b7adc18252863c1dbd774fa80d34c810700 Mon Sep 17 00:00:00 2001 From: Karan Anand Date: Sun, 23 Mar 2025 20:39:19 -0700 Subject: [PATCH 1/4] feat: temp commit --- .../math/base/special/csignumf/README.md | 266 ++++++++++++++++++ .../special/csignumf/benchmark/benchmark.js | 58 ++++ .../csignumf/benchmark/benchmark.native.js | 66 +++++ .../csignumf/benchmark/c/native/Makefile | 146 ++++++++++ .../csignumf/benchmark/c/native/benchmark.c | 141 ++++++++++ .../special/csignumf/benchmark/julia/REQUIRE | 2 + .../csignumf/benchmark/julia/benchmark.jl | 144 ++++++++++ .../math/base/special/csignumf/binding.gyp | 170 +++++++++++ .../math/base/special/csignumf/docs/repl.txt | 27 ++ .../special/csignumf/docs/types/index.d.ts | 50 ++++ .../base/special/csignumf/docs/types/test.ts | 45 +++ .../base/special/csignumf/examples/c/Makefile | 146 ++++++++++ .../special/csignumf/examples/c/example.c | 46 +++ .../base/special/csignumf/examples/index.js | 32 +++ .../math/base/special/csignumf/include.gypi | 53 ++++ .../stdlib/math/base/special/csignumf.h | 40 +++ .../math/base/special/csignumf/lib/index.js | 67 +++++ .../math/base/special/csignumf/lib/main.js | 87 ++++++ .../math/base/special/csignumf/lib/native.js | 76 +++++ .../math/base/special/csignumf/manifest.json | 78 +++++ .../math/base/special/csignumf/package.json | 64 +++++ .../math/base/special/csignumf/src/Makefile | 70 +++++ .../math/base/special/csignumf/src/addon.c | 23 ++ .../math/base/special/csignumf/src/main.c | 58 ++++ .../csignumf/test/fixtures/julia/REQUIRE | 2 + .../csignumf/test/fixtures/julia/data.json | 1 + .../csignumf/test/fixtures/julia/runner.jl | 71 +++++ .../math/base/special/csignumf/test/test.js | 116 ++++++++ .../base/special/csignumf/test/test.native.js | 125 ++++++++ 29 files changed, 2270 insertions(+) create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/README.md create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/benchmark.js create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/benchmark.native.js create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/c/native/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/c/native/benchmark.c create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/julia/REQUIRE create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/julia/benchmark.jl create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/binding.gyp create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/docs/repl.txt create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/docs/types/index.d.ts create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/docs/types/test.ts create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/examples/c/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/examples/c/example.c create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/examples/index.js create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/include.gypi create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/include/stdlib/math/base/special/csignumf.h create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/lib/index.js create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/lib/main.js create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/lib/native.js create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/manifest.json create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/package.json create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/src/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/src/addon.c create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/src/main.c create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/test/fixtures/julia/REQUIRE create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/test/fixtures/julia/data.json create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/test/fixtures/julia/runner.jl create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/test/test.js create mode 100644 lib/node_modules/@stdlib/math/base/special/csignumf/test/test.native.js diff --git a/lib/node_modules/@stdlib/math/base/special/csignumf/README.md b/lib/node_modules/@stdlib/math/base/special/csignumf/README.md new file mode 100644 index 000000000000..a05a29f1372e --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/README.md @@ -0,0 +1,266 @@ + + +# csignum + +> Evaluate the [signum][signum] function of a double-precision complex floating-point number. + + + +
+ +
+ + + + + +
+ +## Usage + +```javascript +var csignum = require( '@stdlib/math/base/special/csignum' ); +``` + +#### csignum( z ) + +Evaluates the [signum][signum] function of a double-precision complex floating-point number. + +```javascript +var Complex128 = require( '@stdlib/complex/float64/ctor' ); +var real = require( '@stdlib/complex/float64/real' ); +var imag = require( '@stdlib/complex/float64/imag' ); + +var v = csignum( new Complex128( -4.2, 5.5 ) ); +// returns + +var re = real( v ); +// returns -0.6069136033622302 + +var im = imag( v ); +// returns 0.79476781392673 + +v = csignum( new Complex128( 0.0, 0.0 ) ); +// returns + +re = real( v ); +// returns 0.0 + +im = imag( v ); +// returns 0.0 + +v = csignum( new Complex128( NaN, NaN ) ); +// returns + +re = real( v ); +// returns NaN + +im = imag( v ); +// returns NaN +``` + +
+ + + + + +
+ +
+ + + + + +
+ +## Examples + + + +```javascript +var uniform = require( '@stdlib/random/base/uniform' ).factory; +var Complex128 = require( '@stdlib/complex/float64/ctor' ); +var csignum = require( '@stdlib/math/base/special/csignum' ); + +var rand = uniform( -50.0, 50.0 ); + +var z; +var i; +for ( i = 0; i < 100; i++ ) { + z = new Complex128( rand(), rand() ); + console.log( 'csignum(%s) = %s', z, csignum( z ) ); +} +``` + +
+ + + + + +* * * + +
+ +## C APIs + + + +
+ +
+ + + + + +
+ +### Usage + +```c +#include "stdlib/math/base/special/csignum.h" +``` + +#### stdlib_base_csignum( z ) + +Evaluates the [signum][signum] function of a double-precision complex floating-point number. + +```c +#include "stdlib/complex/float64/ctor.h" +#include "stdlib/complex/float64/real.h" +#include "stdlib/complex/float64/imag.h" + +stdlib_complex128_t z = stdlib_complex128( -4.2, 5.5 ); + +stdlib_complex128_t out = stdlib_base_csignum( z ); + +double re = stdlib_complex128_real( out ); +// returns -0.6069136033622302 + +double im = stdlib_complex128_imag( out ); +// returns 0.79476781392673 +``` + +The function accepts the following arguments: + +- **z**: `[in] stdlib_complex128_t` input value. + +```c +stdlib_complex128_t stdlib_base_csignum( const stdlib_complex128_t z ); +``` + +
+ + + + + +
+ +
+ + + + + +
+ +### Examples + +```c +#include "stdlib/math/base/special/csignum.h" +#include "stdlib/complex/float64/ctor.h" +#include "stdlib/complex/float64/reim.h" +#include + +int main( void ) { + const stdlib_complex128_t x[] = { + stdlib_complex128( 3.14, 1.5 ), + stdlib_complex128( -3.14, -1.5 ), + stdlib_complex128( 0.0, 0.0 ), + stdlib_complex128( 0.0/0.0, 0.0/0.0 ) + }; + + stdlib_complex128_t v; + stdlib_complex128_t y; + double re1; + double im1; + double re2; + double im2; + int i; + for ( i = 0; i < 4; i++ ) { + v = x[ i ]; + y = stdlib_base_csignum( v ); + stdlib_complex128_reim( v, &re1, &im1 ); + stdlib_complex128_reim( y, &re2, &im2 ); + printf( "csignum(%lf + %lfi) = %lf + %lfi\n", re1, im1, re2, im2 ); + } +} +``` + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + diff --git a/lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/benchmark.js b/lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/benchmark.js new file mode 100644 index 000000000000..33b7914587d8 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/benchmark.js @@ -0,0 +1,58 @@ +/** +* @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 isnan = require( '@stdlib/math/base/assert/is-nan' ); +var Complex128 = require( '@stdlib/complex/float64/ctor' ); +var real = require( '@stdlib/complex/float64/real' ); +var imag = require( '@stdlib/complex/float64/imag' ); +var pkg = require( './../package.json' ).name; +var csignum = require( './../lib' ); + + +// MAIN // + +bench( pkg, function benchmark( b ) { + var values; + var y; + var i; + + values = [ + new Complex128( uniform( -500.0, 500.0 ), uniform( -500.0, 500.0 ) ), + new Complex128( uniform( -500.0, 500.0 ), uniform( -500.0, 500.0 ) ) + ]; + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = csignum( values[ i%values.length ] ); + if ( isnan( real( y ) ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnan( imag( y ) ) ) { + b.fail( 'should not return not NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/benchmark.native.js new file mode 100644 index 000000000000..47c11711ac49 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/benchmark.native.js @@ -0,0 +1,66 @@ +/** +* @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 isnan = require( '@stdlib/math/base/assert/is-nan' ); +var Complex128 = require( '@stdlib/complex/float64/ctor' ); +var real = require( '@stdlib/complex/float64/real' ); +var tryRequire = require( '@stdlib/utils/try-require' ); +var pkg = require( './../package.json' ).name; + + +// VARIABLES // + +var csignum = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( csignum instanceof Error ) +}; + + +// MAIN // + +bench( pkg+'::native', opts, function benchmark( b ) { + var values; + var y; + var i; + + values = [ + new Complex128( uniform( -500.0, 500.0 ), uniform( -500.0, 500.0 ) ), + new Complex128( uniform( -500.0, 500.0 ), uniform( -500.0, 500.0 ) ) + ]; + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = csignum( values[ i%values.length ] ); + if ( isnan( real( y ) ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnan( real( y ) ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/c/native/Makefile b/lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/c/native/Makefile new file mode 100644 index 000000000000..7f6bbc4c205c --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/c/native/Makefile @@ -0,0 +1,146 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2021 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 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 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/csignumf/benchmark/c/native/benchmark.c b/lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/c/native/benchmark.c new file mode 100644 index 000000000000..777d3ff6acae --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/c/native/benchmark.c @@ -0,0 +1,141 @@ +/** +* @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/csignum.h" +#include "stdlib/complex/float64/ctor.h" +#include "stdlib/complex/float64/reim.h" +#include +#include +#include +#include +#include + +#define NAME "csignum" +#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 double rand_double( void ) { + int r = rand(); + return (double)r / ( (double)RAND_MAX + 1.0 ); +} + +/** +* Runs a benchmark. +* +* @return elapsed time in seconds +*/ +static double benchmark( void ) { + double elapsed; + double re; + double im; + double t; + double v; + int i; + + stdlib_complex128_t x; + stdlib_complex128_t y; + + t = tic(); + for ( i = 0; i < ITERATIONS; i++ ) { + v = ( 1000.0*rand_double() ) - 500.0; + x = stdlib_complex128( v, v ); + y = stdlib_base_csignum( x ); + stdlib_complex128_reim( y, &re, &im ); + if ( re != re ) { + printf( "unexpected result\n" ); + break; + } + } + elapsed = tic() - t; + if ( im != im ) { + printf( "unexpected result\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/csignumf/benchmark/julia/REQUIRE b/lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/julia/REQUIRE new file mode 100644 index 000000000000..98645e192e41 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/julia/REQUIRE @@ -0,0 +1,2 @@ +julia 1.5 +BenchmarkTools 0.5.0 diff --git a/lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/julia/benchmark.jl b/lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/julia/benchmark.jl new file mode 100644 index 000000000000..e302c48058e7 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/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 = "signum"; +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 sign( ComplexF64( (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/csignumf/binding.gyp b/lib/node_modules/@stdlib/math/base/special/csignumf/binding.gyp new file mode 100644 index 000000000000..f2b466aef5c4 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/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/csignumf/docs/repl.txt b/lib/node_modules/@stdlib/math/base/special/csignumf/docs/repl.txt new file mode 100644 index 000000000000..cc72c0b366f9 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/docs/repl.txt @@ -0,0 +1,27 @@ + +{{alias}}( z ) + Evaluates the signum function of a double-precision complex floating-point + number. + + Parameters + ---------- + z: Complex128 + Complex number. + + Returns + ------- + out: Complex128 + Result. + + Examples + -------- + > var v = {{alias}}( new {{alias:@stdlib/complex/float64/ctor}}( -4.2, 5.5 ) ) + + > var re = {{alias:@stdlib/complex/float64/real}}( v ) + -0.6069136033622302 + > var im = {{alias:@stdlib/complex/float64/imag}}( v ) + 0.79476781392673 + + See Also + -------- + diff --git a/lib/node_modules/@stdlib/math/base/special/csignumf/docs/types/index.d.ts b/lib/node_modules/@stdlib/math/base/special/csignumf/docs/types/index.d.ts new file mode 100644 index 000000000000..28fed2dbf572 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/docs/types/index.d.ts @@ -0,0 +1,50 @@ +/* +* @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 { Complex128 } from '@stdlib/types/complex'; + +/** +* Evaluates the signum function of a double-precision complex floating-point number. +* +* @param z - input value +* @returns result +* +* @example +* var Complex128 = require( '@stdlib/complex/float64/ctor' ); +* var real = require( '@stdlib/complex/float64/real' ); +* var imag = require( '@stdlib/complex/float64/imag' ); +* +* var v = cceil( new Complex128( -4.2, 5.5 ) ); +* // returns +* +* var re = real( v ); +* // returns -0.6069136033622302 +* +* var im = imag( v ); +* // returns 0.79476781392673 +*/ +declare function csignum( z: Complex128 ): Complex128; + + +// EXPORTS // + +export = csignum; diff --git a/lib/node_modules/@stdlib/math/base/special/csignumf/docs/types/test.ts b/lib/node_modules/@stdlib/math/base/special/csignumf/docs/types/test.ts new file mode 100644 index 000000000000..f4f8ac52c6ca --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/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 Complex128 = require( '@stdlib/complex/float64/ctor' ); +import csignum = require( './index' ); + + +// TESTS // + +// The function returns an array of numbers... +{ + csignum( new Complex128( 1.0, 2.0 ) ); // $ExpectType Complex128 +} + +// The compiler throws an error if the function is provided a value other than a complex number... +{ + csignum( true ); // $ExpectError + csignum( false ); // $ExpectError + csignum( null ); // $ExpectError + csignum( undefined ); // $ExpectError + csignum( '5' ); // $ExpectError + csignum( [] ); // $ExpectError + csignum( {} ); // $ExpectError + csignum( ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function is provided insufficient arguments... +{ + csignum(); // $ExpectError +} diff --git a/lib/node_modules/@stdlib/math/base/special/csignumf/examples/c/Makefile b/lib/node_modules/@stdlib/math/base/special/csignumf/examples/c/Makefile new file mode 100644 index 000000000000..f0ae66fecf01 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/examples/c/Makefile @@ -0,0 +1,146 @@ +#/ +# @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 + +# 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/csignumf/examples/c/example.c b/lib/node_modules/@stdlib/math/base/special/csignumf/examples/c/example.c new file mode 100644 index 000000000000..ef57de8c7017 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/examples/c/example.c @@ -0,0 +1,46 @@ +/** +* @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/csignum.h" +#include "stdlib/complex/float64/ctor.h" +#include "stdlib/complex/float64/reim.h" +#include + +int main( void ) { + const stdlib_complex128_t x[] = { + stdlib_complex128( 3.14, 1.5 ), + stdlib_complex128( -3.14, -1.5 ), + stdlib_complex128( 0.0, 0.0 ), + stdlib_complex128( 0.0/0.0, 0.0/0.0 ) + }; + + stdlib_complex128_t v; + stdlib_complex128_t y; + double re1; + double im1; + double re2; + double im2; + int i; + for ( i = 0; i < 4; i++ ) { + v = x[ i ]; + y = stdlib_base_csignum( v ); + stdlib_complex128_reim( v, &re1, &im1 ); + stdlib_complex128_reim( y, &re2, &im2 ); + printf( "csignum(%lf + %lfi) = %lf + %lfi\n", re1, im1, re2, im2 ); + } +} diff --git a/lib/node_modules/@stdlib/math/base/special/csignumf/examples/index.js b/lib/node_modules/@stdlib/math/base/special/csignumf/examples/index.js new file mode 100644 index 000000000000..9ec2309764e6 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/examples/index.js @@ -0,0 +1,32 @@ +/** +* @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 uniform = require( '@stdlib/random/base/uniform' ).factory; +var Complex128 = require( '@stdlib/complex/float64/ctor' ); +var csignum = require( './../lib' ); + +var rand = uniform( -50.0, 50.0 ); + +var z; +var i; +for ( i = 0; i < 100; i++ ) { + z = new Complex128( rand(), rand() ); + console.log( 'csignum(%s) = %s', z, csignum( z ) ); +} diff --git a/lib/node_modules/@stdlib/math/base/special/csignumf/include.gypi b/lib/node_modules/@stdlib/math/base/special/csignumf/include.gypi new file mode 100644 index 000000000000..78db9faf8c74 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/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': [ + ' +* +* var re = real( v ); +* // returns -0.6069136033622302 +* +* var im = imag( v ); +* // returns 0.79476781392673 +* +* v = csignumf( new Complex64( 0.0, 0.0 ) ); +* // returns +* +* re = real( v ); +* // returns -0.0 +* +* im = imag( v ); +* // returns 0.0 +* +* v = csignumf( new Complex64( NaN, NaN ) ); +* // returns +* +* re = real( v ); +* // returns -NaN +* +* im = imag( v ); +* // returns NaN +*/ + +// MODULES // + +var main = require( './main.js' ); + + +// EXPORTS // + +module.exports = main; diff --git a/lib/node_modules/@stdlib/math/base/special/csignumf/lib/main.js b/lib/node_modules/@stdlib/math/base/special/csignumf/lib/main.js new file mode 100644 index 000000000000..76eb1e0476df --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/lib/main.js @@ -0,0 +1,87 @@ +/** +* @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 Complex64 = require( '@stdlib/complex/float32/ctor' ); +var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' ); +var real = require( '@stdlib/complex/float32/real' ); +var imag = require( '@stdlib/complex/float32/imag' ); +var cabsf = require( '@stdlib/math/base/special/cabsf' ); + + +// MAIN // + +/** +* Evaluates the signum function of a single-precision floating-point complex number. +* +* @param {Complex64} z - complex number +* @returns {Complex64} result +* +* @example +* var Complex64 = require( '@stdlib/complex/float32/ctor' ); +* var real = require( '@stdlib/complex/float32/real' ); +* var imag = require( '@stdlib/complex/float32/imag' ); +* +* var v = csignumf( new Complex64( -4.2, 5.5 ) ); +* // returns +* +* var re = real( v ); +* // returns -0.6069136033622302 +* +* var im = imag( v ); +* // returns 0.79476781392673 +* +* v = csignumf( new Complex64( 0.0, 0.0 ) ); +* // returns +* +* re = real( v ); +* // returns -0.0 +* +* im = imag( v ); +* // returns 0.0 +* +* v = csignumf( new Complex64( NaN, NaN ) ); +* // returns +* +* re = real( v ); +* // returns NaN +* +* im = imag( v ); +* // returns NaN +*/ +function csignumf( z ) { + var re; + var im; + var az; + + az = cabsf( z ); + if ( az === 0.0 ) { + return z; + } + re = float64ToFloat32( real( z ) / az ); + im = float64ToFloat32( imag( z ) / az ); + return new Complex64( re, im ); +} + + +// EXPORTS // + +module.exports = csignumf; diff --git a/lib/node_modules/@stdlib/math/base/special/csignumf/lib/native.js b/lib/node_modules/@stdlib/math/base/special/csignumf/lib/native.js new file mode 100644 index 000000000000..58559762a298 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/lib/native.js @@ -0,0 +1,76 @@ +/** +* @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 Complex64 = require( '@stdlib/complex/float32/ctor' ); +var addon = require( './../src/addon.node' ); + + +// MAIN // + +/** +* Evaluates the signum function of a single-precision floating-point complex number. +* +* @private +* @param {Complex64} z - complex number +* @returns {Complex64} result +* +* @example +* var Complex64 = require( '@stdlib/complex/float32/ctor' ); +* var real = require( '@stdlib/complex/float32/real' ); +* var imag = require( '@stdlib/complex/float32/imag' ); +* +* var v = csignumf( new Complex64( -4.2, 5.5 ) ); +* // returns +* +* var re = real( v ); +* // returns -0.6069136033622302 +* +* var im = imag( v ); +* // returns 0.79476781392673 +* +* v = csignumf( new Complex64( 0.0, 0.0 ) ); +* // returns +* +* re = real( v ); +* // returns -0.0 +* +* im = imag( v ); +* // returns 0.0 +* +* v = csignumf( new Complex64( NaN, NaN ) ); +* // returns +* +* re = real( v ); +* // returns NaN +* +* im = imag( v ); +* // returns NaN +*/ +function csignumf( z ) { + var v = addon( z ); + return new Complex64( v.re, v.im ); +} + + +// EXPORTS // + +module.exports = csignumf; diff --git a/lib/node_modules/@stdlib/math/base/special/csignumf/manifest.json b/lib/node_modules/@stdlib/math/base/special/csignumf/manifest.json new file mode 100644 index 000000000000..6931c9381e21 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/manifest.json @@ -0,0 +1,78 @@ +{ + "options": { + "task": "build" + }, + "fields": [ + { + "field": "src", + "resolve": true, + "relative": true + }, + { + "field": "include", + "resolve": true, + "relative": true + }, + { + "field": "libraries", + "resolve": false, + "relative": false + }, + { + "field": "libpath", + "resolve": true, + "relative": false + } + ], + "confs": [ + { + "task": "build", + "src": [ + "./src/main.c" + ], + "include": [ + "./include" + ], + "libraries": [], + "libpath": [], + "dependencies": [ + "@stdlib/math/base/napi/unary", + "@stdlib/complex/float64/ctor", + "@stdlib/complex/float64/reim", + "@stdlib/math/base/special/cabs" + ] + }, + { + "task": "benchmark", + "src": [ + "./src/main.c" + ], + "include": [ + "./include" + ], + "libraries": [], + "libpath": [], + "dependencies": [ + "@stdlib/complex/float64/ctor", + "@stdlib/complex/float64/reim", + "@stdlib/math/base/special/cabs" + ] + }, + { + "task": "examples", + "src": [ + "./src/main.c" + ], + "include": [ + "./include" + ], + "libraries": [], + "libpath": [], + "dependencies": [ + "@stdlib/complex/float64/ctor", + "@stdlib/complex/float64/reim", + "@stdlib/math/base/special/cabs" + ] + } + ] +} diff --git a/lib/node_modules/@stdlib/math/base/special/csignumf/package.json b/lib/node_modules/@stdlib/math/base/special/csignumf/package.json new file mode 100644 index 000000000000..f6800f2d1e02 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/package.json @@ -0,0 +1,64 @@ +{ + "name": "@stdlib/math/base/special/csignum", + "version": "0.0.0", + "description": "Evaluate the signum function of a double-precision complex floating-point number.", + "license": "Apache-2.0", + "author": { + "name": "The Stdlib Authors", + "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" + }, + "contributors": [ + { + "name": "The Stdlib Authors", + "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" + } + ], + "main": "./lib", + "gypfile": true, + "directories": { + "benchmark": "./benchmark", + "doc": "./docs", + "example": "./examples", + "include": "./include", + "lib": "./lib", + "src": "./src", + "test": "./test" + }, + "types": "./docs/types", + "scripts": {}, + "homepage": "https://github.com/stdlib-js/stdlib", + "repository": { + "type": "git", + "url": "git://github.com/stdlib-js/stdlib.git" + }, + "bugs": { + "url": "https://github.com/stdlib-js/stdlib/issues" + }, + "dependencies": {}, + "devDependencies": {}, + "engines": { + "node": ">=0.10.0", + "npm": ">2.7.0" + }, + "os": [ + "aix", + "darwin", + "freebsd", + "linux", + "macos", + "openbsd", + "sunos", + "win32", + "windows" + ], + "keywords": [ + "stdlib", + "stdmath", + "mathematics", + "math", + "signum", + "complex", + "cmplx", + "number" + ] +} diff --git a/lib/node_modules/@stdlib/math/base/special/csignumf/src/Makefile b/lib/node_modules/@stdlib/math/base/special/csignumf/src/Makefile new file mode 100644 index 000000000000..a28d8988fb47 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/src/Makefile @@ -0,0 +1,70 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2021 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/csignumf/src/addon.c b/lib/node_modules/@stdlib/math/base/special/csignumf/src/addon.c new file mode 100644 index 000000000000..e2b4a3e7a95f --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/src/addon.c @@ -0,0 +1,23 @@ +/** +* @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/csignumf.h" +#include "stdlib/math/base/napi/unary.h" + +// cppcheck-suppress shadowFunction +STDLIB_MATH_BASE_NAPI_MODULE_C_C( stdlib_base_csignumf ) diff --git a/lib/node_modules/@stdlib/math/base/special/csignumf/src/main.c b/lib/node_modules/@stdlib/math/base/special/csignumf/src/main.c new file mode 100644 index 000000000000..98d52de0cf88 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/src/main.c @@ -0,0 +1,58 @@ +/** +* @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/csignumf.h" +#include "stdlib/math/base/special/cabsf.h" +#include "stdlib/complex/float32/ctor.h" +#include "stdlib/complex/float32/reim.h" + +/** +* Evaluates the signum function of a single-precision floating-point complex number. +* +* @param z input value +* @return result +* +* @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( -4.2f, 5.5f ); +* +* stdlib_complex64_t out = stdlib_base_csignumf( z ); +* +* float re = stdlib_complex64_real( out ); +* // returns -0.6069136033622302f +* +* float im = stdlib_complex64_imag( out ); +* // returns 0.79476781392673f +*/ +stdlib_complex64_t stdlib_base_csignumf( const stdlib_complex64_t z ) { + float re; + float im; + float az; + + az = stdlib_base_cabsf( z ); + if ( az == 0.0 ) { + return z; + } + stdlib_complex64_reim( z, &re, &im ); + re = re / az; + im = im / az; + return stdlib_complex64( re, im ); +} diff --git a/lib/node_modules/@stdlib/math/base/special/csignumf/test/fixtures/julia/REQUIRE b/lib/node_modules/@stdlib/math/base/special/csignumf/test/fixtures/julia/REQUIRE new file mode 100644 index 000000000000..308c3be89c85 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/test/fixtures/julia/REQUIRE @@ -0,0 +1,2 @@ +julia 1.5 +JSON 0.21 diff --git a/lib/node_modules/@stdlib/math/base/special/csignumf/test/fixtures/julia/data.json b/lib/node_modules/@stdlib/math/base/special/csignumf/test/fixtures/julia/data.json new file mode 100644 index 000000000000..f751b5531b83 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/test/fixtures/julia/data.json @@ -0,0 +1 @@ +{"re":[-1000.0,-999.000999000999,-998.001998001998,-997.002997002997,-996.003996003996,-995.004995004995,-994.005994005994,-993.006993006993,-992.007992007992,-991.008991008991,-990.00999000999,-989.010989010989,-988.011988011988,-987.012987012987,-986.013986013986,-985.014985014985,-984.015984015984,-983.016983016983,-982.017982017982,-981.018981018981,-980.01998001998,-979.020979020979,-978.021978021978,-977.022977022977,-976.023976023976,-975.024975024975,-974.025974025974,-973.026973026973,-972.027972027972,-971.028971028971,-970.0299700299701,-969.030969030969,-968.0319680319681,-967.032967032967,-966.0339660339661,-965.034965034965,-964.0359640359641,-963.036963036963,-962.0379620379621,-961.038961038961,-960.0399600399601,-959.040959040959,-958.0419580419581,-957.042957042957,-956.0439560439561,-955.044955044955,-954.0459540459541,-953.046953046953,-952.0479520479521,-951.048951048951,-950.0499500499501,-949.050949050949,-948.0519480519481,-947.052947052947,-946.0539460539461,-945.054945054945,-944.0559440559441,-943.056943056943,-942.0579420579421,-941.0589410589411,-940.05994005994,-939.0609390609391,-938.061938061938,-937.0629370629371,-936.063936063936,-935.0649350649351,-934.065934065934,-933.0669330669331,-932.067932067932,-931.0689310689311,-930.06993006993,-929.0709290709291,-928.071928071928,-927.0729270729271,-926.073926073926,-925.0749250749251,-924.075924075924,-923.0769230769231,-922.077922077922,-921.0789210789211,-920.07992007992,-919.0809190809191,-918.081918081918,-917.0829170829171,-916.083916083916,-915.0849150849151,-914.085914085914,-913.0869130869131,-912.0879120879121,-911.0889110889111,-910.0899100899101,-909.0909090909091,-908.0919080919081,-907.0929070929071,-906.0939060939061,-905.0949050949051,-904.0959040959041,-903.0969030969031,-902.0979020979021,-901.0989010989011,-900.0999000999001,-899.1008991008991,-898.1018981018981,-897.1028971028971,-896.1038961038961,-895.1048951048951,-894.1058941058941,-893.1068931068932,-892.1078921078921,-891.1088911088912,-890.1098901098901,-889.1108891108892,-888.1118881118881,-887.1128871128872,-886.1138861138861,-885.1148851148852,-884.1158841158841,-883.1168831168832,-882.1178821178821,-881.1188811188811,-880.1198801198801,-879.1208791208791,-878.1218781218781,-877.1228771228771,-876.1238761238761,-875.1248751248751,-874.1258741258741,-873.1268731268731,-872.1278721278721,-871.1288711288711,-870.1298701298701,-869.1308691308691,-868.1318681318681,-867.1328671328671,-866.1338661338661,-865.1348651348651,-864.1358641358642,-863.1368631368631,-862.1378621378622,-861.1388611388611,-860.1398601398602,-859.1408591408591,-858.1418581418582,-857.1428571428571,-856.1438561438562,-855.1448551448551,-854.1458541458542,-853.1468531468531,-852.1478521478522,-851.1488511488511,-850.1498501498502,-849.1508491508491,-848.1518481518482,-847.1528471528471,-846.1538461538462,-845.1548451548451,-844.1558441558442,-843.1568431568431,-842.1578421578422,-841.1588411588411,-840.1598401598402,-839.1608391608391,-838.1618381618382,-837.1628371628371,-836.1638361638362,-835.1648351648352,-834.1658341658342,-833.1668331668332,-832.1678321678322,-831.1688311688312,-830.1698301698302,-829.1708291708292,-828.1718281718282,-827.1728271728272,-826.1738261738262,-825.1748251748252,-824.1758241758242,-823.1768231768232,-822.1778221778221,-821.1788211788212,-820.1798201798201,-819.1808191808192,-818.1818181818181,-817.1828171828172,-816.1838161838161,-815.1848151848152,-814.1858141858141,-813.1868131868132,-812.1878121878121,-811.1888111888112,-810.1898101898101,-809.1908091908092,-808.1918081918081,-807.1928071928072,-806.1938061938062,-805.1948051948052,-804.1958041958042,-803.1968031968032,-802.1978021978022,-801.1988011988012,-800.1998001998002,-799.2007992007992,-798.2017982017982,-797.2027972027972,-796.2037962037962,-795.2047952047952,-794.2057942057942,-793.2067932067932,-792.2077922077922,-791.2087912087912,-790.2097902097902,-789.2107892107892,-788.2117882117882,-787.2127872127872,-786.2137862137862,-785.2147852147853,-784.2157842157842,-783.2167832167833,-782.2177822177822,-781.2187812187813,-780.2197802197802,-779.2207792207793,-778.2217782217782,-777.2227772227773,-776.2237762237762,-775.2247752247753,-774.2257742257742,-773.2267732267733,-772.2277722277722,-771.2287712287713,-770.2297702297702,-769.2307692307693,-768.2317682317682,-767.2327672327673,-766.2337662337662,-765.2347652347653,-764.2357642357642,-763.2367632367632,-762.2377622377622,-761.2387612387612,-760.2397602397602,-759.2407592407592,-758.2417582417582,-757.2427572427572,-756.2437562437563,-755.2447552447552,-754.2457542457543,-753.2467532467532,-752.2477522477523,-751.2487512487512,-750.2497502497503,-749.2507492507492,-748.2517482517483,-747.2527472527472,-746.2537462537463,-745.2547452547452,-744.2557442557443,-743.2567432567432,-742.2577422577423,-741.2587412587412,-740.2597402597403,-739.2607392607392,-738.2617382617383,-737.2627372627372,-736.2637362637363,-735.2647352647352,-734.2657342657343,-733.2667332667332,-732.2677322677323,-731.2687312687312,-730.2697302697303,-729.2707292707292,-728.2717282717283,-727.2727272727273,-726.2737262737263,-725.2747252747253,-724.2757242757243,-723.2767232767233,-722.2777222777223,-721.2787212787213,-720.2797202797203,-719.2807192807193,-718.2817182817183,-717.2827172827173,-716.2837162837163,-715.2847152847153,-714.2857142857143,-713.2867132867133,-712.2877122877123,-711.2887112887113,-710.2897102897103,-709.2907092907093,-708.2917082917083,-707.2927072927073,-706.2937062937064,-705.2947052947053,-704.2957042957042,-703.2967032967033,-702.2977022977022,-701.2987012987013,-700.2997002997002,-699.3006993006993,-698.3016983016983,-697.3026973026973,-696.3036963036963,-695.3046953046953,-694.3056943056943,-693.3066933066933,-692.3076923076923,-691.3086913086913,-690.3096903096903,-689.3106893106893,-688.3116883116883,-687.3126873126873,-686.3136863136863,-685.3146853146853,-684.3156843156843,-683.3166833166833,-682.3176823176823,-681.3186813186813,-680.3196803196803,-679.3206793206793,-678.3216783216783,-677.3226773226774,-676.3236763236763,-675.3246753246754,-674.3256743256743,-673.3266733266734,-672.3276723276723,-671.3286713286714,-670.3296703296703,-669.3306693306694,-668.3316683316683,-667.3326673326674,-666.3336663336663,-665.3346653346654,-664.3356643356643,-663.3366633366634,-662.3376623376623,-661.3386613386614,-660.3396603396603,-659.3406593406594,-658.3416583416583,-657.3426573426574,-656.3436563436563,-655.3446553446554,-654.3456543456543,-653.3466533466534,-652.3476523476523,-651.3486513486514,-650.3496503496503,-649.3506493506494,-648.3516483516484,-647.3526473526474,-646.3536463536464,-645.3546453546453,-644.3556443556444,-643.3566433566433,-642.3576423576424,-641.3586413586413,-640.3596403596404,-639.3606393606393,-638.3616383616384,-637.3626373626373,-636.3636363636364,-635.3646353646353,-634.3656343656344,-633.3666333666333,-632.3676323676324,-631.3686313686313,-630.3696303696304,-629.3706293706293,-628.3716283716284,-627.3726273726273,-626.3736263736264,-625.3746253746253,-624.3756243756244,-623.3766233766233,-622.3776223776224,-621.3786213786213,-620.3796203796204,-619.3806193806194,-618.3816183816184,-617.3826173826174,-616.3836163836164,-615.3846153846154,-614.3856143856144,-613.3866133866134,-612.3876123876124,-611.3886113886114,-610.3896103896104,-609.3906093906094,-608.3916083916084,-607.3926073926074,-606.3936063936064,-605.3946053946054,-604.3956043956044,-603.3966033966034,-602.3976023976024,-601.3986013986014,-600.3996003996004,-599.4005994005994,-598.4015984015984,-597.4025974025974,-596.4035964035965,-595.4045954045954,-594.4055944055945,-593.4065934065934,-592.4075924075925,-591.4085914085914,-590.4095904095905,-589.4105894105894,-588.4115884115885,-587.4125874125874,-586.4135864135864,-585.4145854145854,-584.4155844155844,-583.4165834165834,-582.4175824175824,-581.4185814185814,-580.4195804195804,-579.4205794205794,-578.4215784215784,-577.4225774225774,-576.4235764235764,-575.4245754245754,-574.4255744255744,-573.4265734265734,-572.4275724275724,-571.4285714285714,-570.4295704295704,-569.4305694305694,-568.4315684315684,-567.4325674325675,-566.4335664335664,-565.4345654345655,-564.4355644355644,-563.4365634365635,-562.4375624375624,-561.4385614385615,-560.4395604395604,-559.4405594405595,-558.4415584415584,-557.4425574425575,-556.4435564435564,-555.4445554445555,-554.4455544455544,-553.4465534465535,-552.4475524475524,-551.4485514485515,-550.4495504495504,-549.4505494505495,-548.4515484515484,-547.4525474525475,-546.4535464535464,-545.4545454545455,-544.4555444555444,-543.4565434565435,-542.4575424575424,-541.4585414585415,-540.4595404595404,-539.4605394605395,-538.4615384615385,-537.4625374625375,-536.4635364635365,-535.4645354645355,-534.4655344655345,-533.4665334665335,-532.4675324675325,-531.4685314685315,-530.4695304695305,-529.4705294705295,-528.4715284715285,-527.4725274725274,-526.4735264735265,-525.4745254745254,-524.4755244755245,-523.4765234765234,-522.4775224775225,-521.4785214785214,-520.4795204795205,-519.4805194805194,-518.4815184815185,-517.4825174825174,-516.4835164835165,-515.4845154845154,-514.4855144855145,-513.4865134865134,-512.4875124875125,-511.4885114885115,-510.4895104895105,-509.4905094905095,-508.4915084915085,-507.4925074925075,-506.4935064935065,-505.4945054945055,-504.4955044955045,-503.4965034965035,-502.4975024975025,-501.4985014985015,-500.4995004995005,-499.5004995004995,-498.5014985014985,-497.5024975024975,-496.5034965034965,-495.5044955044955,-494.5054945054945,-493.5064935064935,-492.5074925074925,-491.5084915084915,-490.5094905094905,-489.5104895104895,-488.5114885114885,-487.5124875124875,-486.5134865134865,-485.5144855144855,-484.5154845154845,-483.5164835164835,-482.5174825174825,-481.5184815184815,-480.5194805194805,-479.5204795204795,-478.5214785214785,-477.5224775224775,-476.5234765234765,-475.5244755244755,-474.5254745254745,-473.5264735264735,-472.5274725274725,-471.5284715284715,-470.52947052947053,-469.53046953046953,-468.53146853146853,-467.53246753246754,-466.53346653346654,-465.53446553446554,-464.53546453546454,-463.53646353646354,-462.53746253746255,-461.53846153846155,-460.53946053946055,-459.54045954045955,-458.54145854145855,-457.54245754245756,-456.54345654345656,-455.54445554445556,-454.54545454545456,-453.54645354645356,-452.54745254745256,-451.54845154845157,-450.54945054945057,-449.55044955044957,-448.5514485514486,-447.5524475524476,-446.5534465534466,-445.5544455544456,-444.5554445554446,-443.5564435564436,-442.5574425574426,-441.5584415584416,-440.55944055944053,-439.56043956043953,-438.56143856143854,-437.56243756243754,-436.56343656343654,-435.56443556443554,-434.56543456543454,-433.56643356643355,-432.56743256743255,-431.56843156843155,-430.56943056943055,-429.57042957042955,-428.57142857142856,-427.57242757242756,-426.57342657342656,-425.57442557442556,-424.57542457542456,-423.57642357642357,-422.57742257742257,-421.57842157842157,-420.57942057942057,-419.5804195804196,-418.5814185814186,-417.5824175824176,-416.5834165834166,-415.5844155844156,-414.5854145854146,-413.5864135864136,-412.5874125874126,-411.5884115884116,-410.5894105894106,-409.5904095904096,-408.5914085914086,-407.5924075924076,-406.5934065934066,-405.5944055944056,-404.5954045954046,-403.5964035964036,-402.5974025974026,-401.5984015984016,-400.5994005994006,-399.6003996003996,-398.6013986013986,-397.6023976023976,-396.6033966033966,-395.6043956043956,-394.6053946053946,-393.6063936063936,-392.6073926073926,-391.6083916083916,-390.60939060939063,-389.61038961038963,-388.61138861138863,-387.61238761238764,-386.61338661338664,-385.61438561438564,-384.61538461538464,-383.61638361638364,-382.61738261738265,-381.6183816183816,-380.6193806193806,-379.6203796203796,-378.6213786213786,-377.6223776223776,-376.6233766233766,-375.6243756243756,-374.6253746253746,-373.6263736263736,-372.6273726273726,-371.6283716283716,-370.6293706293706,-369.6303696303696,-368.6313686313686,-367.6323676323676,-366.6333666333666,-365.6343656343656,-364.6353646353646,-363.6363636363636,-362.6373626373626,-361.63836163836163,-360.63936063936063,-359.64035964035963,-358.64135864135864,-357.64235764235764,-356.64335664335664,-355.64435564435564,-354.64535464535464,-353.64635364635365,-352.64735264735265,-351.64835164835165,-350.64935064935065,-349.65034965034965,-348.65134865134866,-347.65234765234766,-346.65334665334666,-345.65434565434566,-344.65534465534466,-343.65634365634367,-342.65734265734267,-341.65834165834167,-340.65934065934067,-339.6603396603397,-338.6613386613387,-337.6623376623377,-336.6633366633367,-335.6643356643357,-334.6653346653347,-333.6663336663337,-332.6673326673327,-331.6683316683317,-330.6693306693307,-329.6703296703297,-328.6713286713287,-327.6723276723277,-326.6733266733267,-325.6743256743257,-324.6753246753247,-323.6763236763237,-322.67732267732265,-321.67832167832165,-320.67932067932065,-319.68031968031966,-318.68131868131866,-317.68231768231766,-316.68331668331666,-315.68431568431566,-314.68531468531467,-313.68631368631367,-312.68731268731267,-311.68831168831167,-310.6893106893107,-309.6903096903097,-308.6913086913087,-307.6923076923077,-306.6933066933067,-305.6943056943057,-304.6953046953047,-303.6963036963037,-302.6973026973027,-301.6983016983017,-300.6993006993007,-299.7002997002997,-298.7012987012987,-297.7022977022977,-296.7032967032967,-295.7042957042957,-294.7052947052947,-293.7062937062937,-292.7072927072927,-291.7082917082917,-290.7092907092907,-289.7102897102897,-288.7112887112887,-287.7122877122877,-286.7132867132867,-285.7142857142857,-284.7152847152847,-283.7162837162837,-282.7172827172827,-281.71828171828173,-280.71928071928073,-279.72027972027973,-278.72127872127874,-277.72227772227774,-276.72327672327674,-275.72427572427574,-274.72527472527474,-273.72627372627375,-272.72727272727275,-271.72827172827175,-270.72927072927075,-269.73026973026975,-268.73126873126876,-267.73226773226776,-266.73326673326676,-265.73426573426576,-264.73526473526476,-263.7362637362637,-262.7372627372627,-261.7382617382617,-260.7392607392607,-259.7402597402597,-258.7412587412587,-257.7422577422577,-256.7432567432567,-255.74425574425575,-254.74525474525475,-253.74625374625376,-252.74725274725276,-251.74825174825176,-250.74925074925076,-249.75024975024974,-248.75124875124874,-247.75224775224774,-246.75324675324674,-245.75424575424574,-244.75524475524475,-243.75624375624375,-242.75724275724275,-241.75824175824175,-240.75924075924075,-239.76023976023976,-238.76123876123876,-237.76223776223776,-236.76323676323676,-235.76423576423576,-234.76523476523477,-233.76623376623377,-232.76723276723277,-231.76823176823177,-230.76923076923077,-229.77022977022978,-228.77122877122878,-227.77222777222778,-226.77322677322678,-225.77422577422578,-224.77522477522479,-223.7762237762238,-222.7772227772228,-221.7782217782218,-220.7792207792208,-219.78021978021977,-218.78121878121877,-217.78221778221777,-216.78321678321677,-215.78421578421577,-214.78521478521478,-213.78621378621378,-212.78721278721278,-211.78821178821178,-210.78921078921078,-209.7902097902098,-208.7912087912088,-207.7922077922078,-206.7932067932068,-205.7942057942058,-204.7952047952048,-203.7962037962038,-202.7972027972028,-201.7982017982018,-200.7992007992008,-199.8001998001998,-198.8011988011988,-197.8021978021978,-196.8031968031968,-195.8041958041958,-194.80519480519482,-193.80619380619382,-192.80719280719282,-191.80819180819182,-190.8091908091908,-189.8101898101898,-188.8111888111888,-187.8121878121878,-186.8131868131868,-185.8141858141858,-184.8151848151848,-183.8161838161838,-182.8171828171828,-181.8181818181818,-180.81918081918081,-179.82017982017982,-178.82117882117882,-177.82217782217782,-176.82317682317682,-175.82417582417582,-174.82517482517483,-173.82617382617383,-172.82717282717283,-171.82817182817183,-170.82917082917083,-169.83016983016984,-168.83116883116884,-167.83216783216784,-166.83316683316684,-165.83416583416584,-164.83516483516485,-163.83616383616385,-162.83716283716285,-161.83816183816185,-160.83916083916083,-159.84015984015983,-158.84115884115883,-157.84215784215783,-156.84315684315683,-155.84415584415584,-154.84515484515484,-153.84615384615384,-152.84715284715284,-151.84815184815184,-150.84915084915085,-149.85014985014985,-148.85114885114885,-147.85214785214785,-146.85314685314685,-145.85414585414586,-144.85514485514486,-143.85614385614386,-142.85714285714286,-141.85814185814186,-140.85914085914087,-139.86013986013987,-138.86113886113887,-137.86213786213787,-136.86313686313687,-135.86413586413587,-134.86513486513488,-133.86613386613388,-132.86713286713288,-131.86813186813185,-130.86913086913086,-129.87012987012986,-128.87112887112886,-127.87212787212788,-126.87312687312688,-125.87412587412588,-124.87512487512487,-123.87612387612387,-122.87712287712287,-121.87812187812187,-120.87912087912088,-119.88011988011988,-118.88111888111888,-117.88211788211788,-116.88311688311688,-115.88411588411589,-114.88511488511489,-113.88611388611389,-112.88711288711289,-111.8881118881119,-110.8891108891109,-109.89010989010988,-108.89110889110889,-107.89210789210789,-106.89310689310689,-105.89410589410589,-104.8951048951049,-103.8961038961039,-102.8971028971029,-101.8981018981019,-100.8991008991009,-99.9000999000999,-98.9010989010989,-97.9020979020979,-96.90309690309691,-95.90409590409591,-94.9050949050949,-93.9060939060939,-92.9070929070929,-91.9080919080919,-90.9090909090909,-89.91008991008991,-88.91108891108891,-87.91208791208791,-86.91308691308691,-85.91408591408592,-84.91508491508492,-83.91608391608392,-82.91708291708292,-81.91808191808192,-80.91908091908093,-79.92007992007991,-78.92107892107892,-77.92207792207792,-76.92307692307692,-75.92407592407592,-74.92507492507492,-73.92607392607393,-72.92707292707293,-71.92807192807193,-70.92907092907093,-69.93006993006993,-68.93106893106894,-67.93206793206794,-66.93306693306694,-65.93406593406593,-64.93506493506493,-63.93606393606394,-62.93706293706294,-61.938061938061935,-60.93906093906094,-59.94005994005994,-58.94105894105894,-57.94205794205794,-56.943056943056945,-55.94405594405595,-54.94505494505494,-53.946053946053944,-52.947052947052946,-51.94805194805195,-50.94905094905095,-49.95004995004995,-48.95104895104895,-47.952047952047955,-46.95304695304695,-45.95404595404595,-44.955044955044954,-43.956043956043956,-42.95704295704296,-41.95804195804196,-40.95904095904096,-39.96003996003996,-38.96103896103896,-37.96203796203796,-36.96303696303696,-35.964035964035965,-34.96503496503497,-33.96603396603397,-32.967032967032964,-31.96803196803197,-30.969030969030968,-29.97002997002997,-28.97102897102897,-27.972027972027973,-26.973026973026972,-25.974025974025974,-24.975024975024976,-23.976023976023978,-22.977022977022976,-21.978021978021978,-20.97902097902098,-19.98001998001998,-18.98101898101898,-17.982017982017982,-16.983016983016984,-15.984015984015985,-14.985014985014985,-13.986013986013987,-12.987012987012987,-11.988011988011989,-10.989010989010989,-9.99000999000999,-8.991008991008991,-7.992007992007992,-6.993006993006993,-5.994005994005994,-4.995004995004995,-3.996003996003996,-2.997002997002997,-1.998001998001998,-0.999000999000999,0.0,0.999000999000999,1.998001998001998,2.997002997002997,3.996003996003996,4.995004995004995,5.994005994005994,6.993006993006993,7.992007992007992,8.991008991008991,9.99000999000999,10.989010989010989,11.988011988011989,12.987012987012987,13.986013986013987,14.985014985014985,15.984015984015985,16.983016983016984,17.982017982017982,18.98101898101898,19.98001998001998,20.97902097902098,21.978021978021978,22.977022977022976,23.976023976023978,24.975024975024976,25.974025974025974,26.973026973026972,27.972027972027973,28.97102897102897,29.97002997002997,30.969030969030968,31.96803196803197,32.967032967032964,33.96603396603397,34.96503496503497,35.964035964035965,36.96303696303696,37.96203796203796,38.96103896103896,39.96003996003996,40.95904095904096,41.95804195804196,42.95704295704296,43.956043956043956,44.955044955044954,45.95404595404595,46.95304695304695,47.952047952047955,48.95104895104895,49.95004995004995,50.94905094905095,51.94805194805195,52.947052947052946,53.946053946053944,54.94505494505494,55.94405594405595,56.943056943056945,57.94205794205794,58.94105894105894,59.94005994005994,60.93906093906094,61.938061938061935,62.93706293706294,63.93606393606394,64.93506493506493,65.93406593406593,66.93306693306694,67.93206793206794,68.93106893106894,69.93006993006993,70.92907092907093,71.92807192807193,72.92707292707293,73.92607392607393,74.92507492507492,75.92407592407592,76.92307692307692,77.92207792207792,78.92107892107892,79.92007992007991,80.91908091908093,81.91808191808192,82.91708291708292,83.91608391608392,84.91508491508492,85.91408591408592,86.91308691308691,87.91208791208791,88.91108891108891,89.91008991008991,90.9090909090909,91.9080919080919,92.9070929070929,93.9060939060939,94.9050949050949,95.90409590409591,96.90309690309691,97.9020979020979,98.9010989010989,99.9000999000999,100.8991008991009,101.8981018981019,102.8971028971029,103.8961038961039,104.8951048951049,105.89410589410589,106.89310689310689,107.89210789210789,108.89110889110889,109.89010989010988,110.8891108891109,111.8881118881119,112.88711288711289,113.88611388611389,114.88511488511489,115.88411588411589,116.88311688311688,117.88211788211788,118.88111888111888,119.88011988011988,120.87912087912088,121.87812187812187,122.87712287712287,123.87612387612387,124.87512487512487,125.87412587412588,126.87312687312688,127.87212787212788,128.87112887112886,129.87012987012986,130.86913086913086,131.86813186813185,132.86713286713288,133.86613386613388,134.86513486513488,135.86413586413587,136.86313686313687,137.86213786213787,138.86113886113887,139.86013986013987,140.85914085914087,141.85814185814186,142.85714285714286,143.85614385614386,144.85514485514486,145.85414585414586,146.85314685314685,147.85214785214785,148.85114885114885,149.85014985014985,150.84915084915085,151.84815184815184,152.84715284715284,153.84615384615384,154.84515484515484,155.84415584415584,156.84315684315683,157.84215784215783,158.84115884115883,159.84015984015983,160.83916083916083,161.83816183816185,162.83716283716285,163.83616383616385,164.83516483516485,165.83416583416584,166.83316683316684,167.83216783216784,168.83116883116884,169.83016983016984,170.82917082917083,171.82817182817183,172.82717282717283,173.82617382617383,174.82517482517483,175.82417582417582,176.82317682317682,177.82217782217782,178.82117882117882,179.82017982017982,180.81918081918081,181.8181818181818,182.8171828171828,183.8161838161838,184.8151848151848,185.8141858141858,186.8131868131868,187.8121878121878,188.8111888111888,189.8101898101898,190.8091908091908,191.80819180819182,192.80719280719282,193.80619380619382,194.80519480519482,195.8041958041958,196.8031968031968,197.8021978021978,198.8011988011988,199.8001998001998,200.7992007992008,201.7982017982018,202.7972027972028,203.7962037962038,204.7952047952048,205.7942057942058,206.7932067932068,207.7922077922078,208.7912087912088,209.7902097902098,210.78921078921078,211.78821178821178,212.78721278721278,213.78621378621378,214.78521478521478,215.78421578421577,216.78321678321677,217.78221778221777,218.78121878121877,219.78021978021977,220.7792207792208,221.7782217782218,222.7772227772228,223.7762237762238,224.77522477522479,225.77422577422578,226.77322677322678,227.77222777222778,228.77122877122878,229.77022977022978,230.76923076923077,231.76823176823177,232.76723276723277,233.76623376623377,234.76523476523477,235.76423576423576,236.76323676323676,237.76223776223776,238.76123876123876,239.76023976023976,240.75924075924075,241.75824175824175,242.75724275724275,243.75624375624375,244.75524475524475,245.75424575424574,246.75324675324674,247.75224775224774,248.75124875124874,249.75024975024974,250.74925074925076,251.74825174825176,252.74725274725276,253.74625374625376,254.74525474525475,255.74425574425575,256.7432567432567,257.7422577422577,258.7412587412587,259.7402597402597,260.7392607392607,261.7382617382617,262.7372627372627,263.7362637362637,264.73526473526476,265.73426573426576,266.73326673326676,267.73226773226776,268.73126873126876,269.73026973026975,270.72927072927075,271.72827172827175,272.72727272727275,273.72627372627375,274.72527472527474,275.72427572427574,276.72327672327674,277.72227772227774,278.72127872127874,279.72027972027973,280.71928071928073,281.71828171828173,282.7172827172827,283.7162837162837,284.7152847152847,285.7142857142857,286.7132867132867,287.7122877122877,288.7112887112887,289.7102897102897,290.7092907092907,291.7082917082917,292.7072927072927,293.7062937062937,294.7052947052947,295.7042957042957,296.7032967032967,297.7022977022977,298.7012987012987,299.7002997002997,300.6993006993007,301.6983016983017,302.6973026973027,303.6963036963037,304.6953046953047,305.6943056943057,306.6933066933067,307.6923076923077,308.6913086913087,309.6903096903097,310.6893106893107,311.68831168831167,312.68731268731267,313.68631368631367,314.68531468531467,315.68431568431566,316.68331668331666,317.68231768231766,318.68131868131866,319.68031968031966,320.67932067932065,321.67832167832165,322.67732267732265,323.6763236763237,324.6753246753247,325.6743256743257,326.6733266733267,327.6723276723277,328.6713286713287,329.6703296703297,330.6693306693307,331.6683316683317,332.6673326673327,333.6663336663337,334.6653346653347,335.6643356643357,336.6633366633367,337.6623376623377,338.6613386613387,339.6603396603397,340.65934065934067,341.65834165834167,342.65734265734267,343.65634365634367,344.65534465534466,345.65434565434566,346.65334665334666,347.65234765234766,348.65134865134866,349.65034965034965,350.64935064935065,351.64835164835165,352.64735264735265,353.64635364635365,354.64535464535464,355.64435564435564,356.64335664335664,357.64235764235764,358.64135864135864,359.64035964035963,360.63936063936063,361.63836163836163,362.6373626373626,363.6363636363636,364.6353646353646,365.6343656343656,366.6333666333666,367.6323676323676,368.6313686313686,369.6303696303696,370.6293706293706,371.6283716283716,372.6273726273726,373.6263736263736,374.6253746253746,375.6243756243756,376.6233766233766,377.6223776223776,378.6213786213786,379.6203796203796,380.6193806193806,381.6183816183816,382.61738261738265,383.61638361638364,384.61538461538464,385.61438561438564,386.61338661338664,387.61238761238764,388.61138861138863,389.61038961038963,390.60939060939063,391.6083916083916,392.6073926073926,393.6063936063936,394.6053946053946,395.6043956043956,396.6033966033966,397.6023976023976,398.6013986013986,399.6003996003996,400.5994005994006,401.5984015984016,402.5974025974026,403.5964035964036,404.5954045954046,405.5944055944056,406.5934065934066,407.5924075924076,408.5914085914086,409.5904095904096,410.5894105894106,411.5884115884116,412.5874125874126,413.5864135864136,414.5854145854146,415.5844155844156,416.5834165834166,417.5824175824176,418.5814185814186,419.5804195804196,420.57942057942057,421.57842157842157,422.57742257742257,423.57642357642357,424.57542457542456,425.57442557442556,426.57342657342656,427.57242757242756,428.57142857142856,429.57042957042955,430.56943056943055,431.56843156843155,432.56743256743255,433.56643356643355,434.56543456543454,435.56443556443554,436.56343656343654,437.56243756243754,438.56143856143854,439.56043956043953,440.55944055944053,441.5584415584416,442.5574425574426,443.5564435564436,444.5554445554446,445.5544455544456,446.5534465534466,447.5524475524476,448.5514485514486,449.55044955044957,450.54945054945057,451.54845154845157,452.54745254745256,453.54645354645356,454.54545454545456,455.54445554445556,456.54345654345656,457.54245754245756,458.54145854145855,459.54045954045955,460.53946053946055,461.53846153846155,462.53746253746255,463.53646353646354,464.53546453546454,465.53446553446554,466.53346653346654,467.53246753246754,468.53146853146853,469.53046953046953,470.52947052947053,471.5284715284715,472.5274725274725,473.5264735264735,474.5254745254745,475.5244755244755,476.5234765234765,477.5224775224775,478.5214785214785,479.5204795204795,480.5194805194805,481.5184815184815,482.5174825174825,483.5164835164835,484.5154845154845,485.5144855144855,486.5134865134865,487.5124875124875,488.5114885114885,489.5104895104895,490.5094905094905,491.5084915084915,492.5074925074925,493.5064935064935,494.5054945054945,495.5044955044955,496.5034965034965,497.5024975024975,498.5014985014985,499.5004995004995,500.4995004995005,501.4985014985015,502.4975024975025,503.4965034965035,504.4955044955045,505.4945054945055,506.4935064935065,507.4925074925075,508.4915084915085,509.4905094905095,510.4895104895105,511.4885114885115,512.4875124875125,513.4865134865134,514.4855144855145,515.4845154845154,516.4835164835165,517.4825174825174,518.4815184815185,519.4805194805194,520.4795204795205,521.4785214785214,522.4775224775225,523.4765234765234,524.4755244755245,525.4745254745254,526.4735264735265,527.4725274725274,528.4715284715285,529.4705294705295,530.4695304695305,531.4685314685315,532.4675324675325,533.4665334665335,534.4655344655345,535.4645354645355,536.4635364635365,537.4625374625375,538.4615384615385,539.4605394605395,540.4595404595404,541.4585414585415,542.4575424575424,543.4565434565435,544.4555444555444,545.4545454545455,546.4535464535464,547.4525474525475,548.4515484515484,549.4505494505495,550.4495504495504,551.4485514485515,552.4475524475524,553.4465534465535,554.4455544455544,555.4445554445555,556.4435564435564,557.4425574425575,558.4415584415584,559.4405594405595,560.4395604395604,561.4385614385615,562.4375624375624,563.4365634365635,564.4355644355644,565.4345654345655,566.4335664335664,567.4325674325675,568.4315684315684,569.4305694305694,570.4295704295704,571.4285714285714,572.4275724275724,573.4265734265734,574.4255744255744,575.4245754245754,576.4235764235764,577.4225774225774,578.4215784215784,579.4205794205794,580.4195804195804,581.4185814185814,582.4175824175824,583.4165834165834,584.4155844155844,585.4145854145854,586.4135864135864,587.4125874125874,588.4115884115885,589.4105894105894,590.4095904095905,591.4085914085914,592.4075924075925,593.4065934065934,594.4055944055945,595.4045954045954,596.4035964035965,597.4025974025974,598.4015984015984,599.4005994005994,600.3996003996004,601.3986013986014,602.3976023976024,603.3966033966034,604.3956043956044,605.3946053946054,606.3936063936064,607.3926073926074,608.3916083916084,609.3906093906094,610.3896103896104,611.3886113886114,612.3876123876124,613.3866133866134,614.3856143856144,615.3846153846154,616.3836163836164,617.3826173826174,618.3816183816184,619.3806193806194,620.3796203796204,621.3786213786213,622.3776223776224,623.3766233766233,624.3756243756244,625.3746253746253,626.3736263736264,627.3726273726273,628.3716283716284,629.3706293706293,630.3696303696304,631.3686313686313,632.3676323676324,633.3666333666333,634.3656343656344,635.3646353646353,636.3636363636364,637.3626373626373,638.3616383616384,639.3606393606393,640.3596403596404,641.3586413586413,642.3576423576424,643.3566433566433,644.3556443556444,645.3546453546453,646.3536463536464,647.3526473526474,648.3516483516484,649.3506493506494,650.3496503496503,651.3486513486514,652.3476523476523,653.3466533466534,654.3456543456543,655.3446553446554,656.3436563436563,657.3426573426574,658.3416583416583,659.3406593406594,660.3396603396603,661.3386613386614,662.3376623376623,663.3366633366634,664.3356643356643,665.3346653346654,666.3336663336663,667.3326673326674,668.3316683316683,669.3306693306694,670.3296703296703,671.3286713286714,672.3276723276723,673.3266733266734,674.3256743256743,675.3246753246754,676.3236763236763,677.3226773226774,678.3216783216783,679.3206793206793,680.3196803196803,681.3186813186813,682.3176823176823,683.3166833166833,684.3156843156843,685.3146853146853,686.3136863136863,687.3126873126873,688.3116883116883,689.3106893106893,690.3096903096903,691.3086913086913,692.3076923076923,693.3066933066933,694.3056943056943,695.3046953046953,696.3036963036963,697.3026973026973,698.3016983016983,699.3006993006993,700.2997002997002,701.2987012987013,702.2977022977022,703.2967032967033,704.2957042957042,705.2947052947053,706.2937062937064,707.2927072927073,708.2917082917083,709.2907092907093,710.2897102897103,711.2887112887113,712.2877122877123,713.2867132867133,714.2857142857143,715.2847152847153,716.2837162837163,717.2827172827173,718.2817182817183,719.2807192807193,720.2797202797203,721.2787212787213,722.2777222777223,723.2767232767233,724.2757242757243,725.2747252747253,726.2737262737263,727.2727272727273,728.2717282717283,729.2707292707292,730.2697302697303,731.2687312687312,732.2677322677323,733.2667332667332,734.2657342657343,735.2647352647352,736.2637362637363,737.2627372627372,738.2617382617383,739.2607392607392,740.2597402597403,741.2587412587412,742.2577422577423,743.2567432567432,744.2557442557443,745.2547452547452,746.2537462537463,747.2527472527472,748.2517482517483,749.2507492507492,750.2497502497503,751.2487512487512,752.2477522477523,753.2467532467532,754.2457542457543,755.2447552447552,756.2437562437563,757.2427572427572,758.2417582417582,759.2407592407592,760.2397602397602,761.2387612387612,762.2377622377622,763.2367632367632,764.2357642357642,765.2347652347653,766.2337662337662,767.2327672327673,768.2317682317682,769.2307692307693,770.2297702297702,771.2287712287713,772.2277722277722,773.2267732267733,774.2257742257742,775.2247752247753,776.2237762237762,777.2227772227773,778.2217782217782,779.2207792207793,780.2197802197802,781.2187812187813,782.2177822177822,783.2167832167833,784.2157842157842,785.2147852147853,786.2137862137862,787.2127872127872,788.2117882117882,789.2107892107892,790.2097902097902,791.2087912087912,792.2077922077922,793.2067932067932,794.2057942057942,795.2047952047952,796.2037962037962,797.2027972027972,798.2017982017982,799.2007992007992,800.1998001998002,801.1988011988012,802.1978021978022,803.1968031968032,804.1958041958042,805.1948051948052,806.1938061938062,807.1928071928072,808.1918081918081,809.1908091908092,810.1898101898101,811.1888111888112,812.1878121878121,813.1868131868132,814.1858141858141,815.1848151848152,816.1838161838161,817.1828171828172,818.1818181818181,819.1808191808192,820.1798201798201,821.1788211788212,822.1778221778221,823.1768231768232,824.1758241758242,825.1748251748252,826.1738261738262,827.1728271728272,828.1718281718282,829.1708291708292,830.1698301698302,831.1688311688312,832.1678321678322,833.1668331668332,834.1658341658342,835.1648351648352,836.1638361638362,837.1628371628371,838.1618381618382,839.1608391608391,840.1598401598402,841.1588411588411,842.1578421578422,843.1568431568431,844.1558441558442,845.1548451548451,846.1538461538462,847.1528471528471,848.1518481518482,849.1508491508491,850.1498501498502,851.1488511488511,852.1478521478522,853.1468531468531,854.1458541458542,855.1448551448551,856.1438561438562,857.1428571428571,858.1418581418582,859.1408591408591,860.1398601398602,861.1388611388611,862.1378621378622,863.1368631368631,864.1358641358642,865.1348651348651,866.1338661338661,867.1328671328671,868.1318681318681,869.1308691308691,870.1298701298701,871.1288711288711,872.1278721278721,873.1268731268731,874.1258741258741,875.1248751248751,876.1238761238761,877.1228771228771,878.1218781218781,879.1208791208791,880.1198801198801,881.1188811188811,882.1178821178821,883.1168831168832,884.1158841158841,885.1148851148852,886.1138861138861,887.1128871128872,888.1118881118881,889.1108891108892,890.1098901098901,891.1088911088912,892.1078921078921,893.1068931068932,894.1058941058941,895.1048951048951,896.1038961038961,897.1028971028971,898.1018981018981,899.1008991008991,900.0999000999001,901.0989010989011,902.0979020979021,903.0969030969031,904.0959040959041,905.0949050949051,906.0939060939061,907.0929070929071,908.0919080919081,909.0909090909091,910.0899100899101,911.0889110889111,912.0879120879121,913.0869130869131,914.085914085914,915.0849150849151,916.083916083916,917.0829170829171,918.081918081918,919.0809190809191,920.07992007992,921.0789210789211,922.077922077922,923.0769230769231,924.075924075924,925.0749250749251,926.073926073926,927.0729270729271,928.071928071928,929.0709290709291,930.06993006993,931.0689310689311,932.067932067932,933.0669330669331,934.065934065934,935.0649350649351,936.063936063936,937.0629370629371,938.061938061938,939.0609390609391,940.05994005994,941.0589410589411,942.0579420579421,943.056943056943,944.0559440559441,945.054945054945,946.0539460539461,947.052947052947,948.0519480519481,949.050949050949,950.0499500499501,951.048951048951,952.0479520479521,953.046953046953,954.0459540459541,955.044955044955,956.0439560439561,957.042957042957,958.0419580419581,959.040959040959,960.0399600399601,961.038961038961,962.0379620379621,963.036963036963,964.0359640359641,965.034965034965,966.0339660339661,967.032967032967,968.0319680319681,969.030969030969,970.0299700299701,971.028971028971,972.027972027972,973.026973026973,974.025974025974,975.024975024975,976.023976023976,977.022977022977,978.021978021978,979.020979020979,980.01998001998,981.018981018981,982.017982017982,983.016983016983,984.015984015984,985.014985014985,986.013986013986,987.012987012987,988.011988011988,989.010989010989,990.00999000999,991.008991008991,992.007992007992,993.006993006993,994.005994005994,995.004995004995,996.003996003996,997.002997002997,998.001998001998,999.000999000999,1000.0],"expected_re":[-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865474,-0.7071067811865476,-0.7071067811865475,-0.7071067811865474,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865474,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865474,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865474,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,0.0,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865474,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865474,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865474,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865474,0.7071067811865475,0.7071067811865476,0.7071067811865474,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475],"expected_im":[-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865474,-0.7071067811865476,-0.7071067811865475,-0.7071067811865474,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865474,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865474,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865474,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,-0.7071067811865476,-0.7071067811865475,-0.7071067811865475,0.0,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865474,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865474,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865474,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865474,0.7071067811865475,0.7071067811865476,0.7071067811865474,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865475,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865476,0.7071067811865475,0.7071067811865476,0.7071067811865475],"im":[-1000.0,-999.000999000999,-998.001998001998,-997.002997002997,-996.003996003996,-995.004995004995,-994.005994005994,-993.006993006993,-992.007992007992,-991.008991008991,-990.00999000999,-989.010989010989,-988.011988011988,-987.012987012987,-986.013986013986,-985.014985014985,-984.015984015984,-983.016983016983,-982.017982017982,-981.018981018981,-980.01998001998,-979.020979020979,-978.021978021978,-977.022977022977,-976.023976023976,-975.024975024975,-974.025974025974,-973.026973026973,-972.027972027972,-971.028971028971,-970.0299700299701,-969.030969030969,-968.0319680319681,-967.032967032967,-966.0339660339661,-965.034965034965,-964.0359640359641,-963.036963036963,-962.0379620379621,-961.038961038961,-960.0399600399601,-959.040959040959,-958.0419580419581,-957.042957042957,-956.0439560439561,-955.044955044955,-954.0459540459541,-953.046953046953,-952.0479520479521,-951.048951048951,-950.0499500499501,-949.050949050949,-948.0519480519481,-947.052947052947,-946.0539460539461,-945.054945054945,-944.0559440559441,-943.056943056943,-942.0579420579421,-941.0589410589411,-940.05994005994,-939.0609390609391,-938.061938061938,-937.0629370629371,-936.063936063936,-935.0649350649351,-934.065934065934,-933.0669330669331,-932.067932067932,-931.0689310689311,-930.06993006993,-929.0709290709291,-928.071928071928,-927.0729270729271,-926.073926073926,-925.0749250749251,-924.075924075924,-923.0769230769231,-922.077922077922,-921.0789210789211,-920.07992007992,-919.0809190809191,-918.081918081918,-917.0829170829171,-916.083916083916,-915.0849150849151,-914.085914085914,-913.0869130869131,-912.0879120879121,-911.0889110889111,-910.0899100899101,-909.0909090909091,-908.0919080919081,-907.0929070929071,-906.0939060939061,-905.0949050949051,-904.0959040959041,-903.0969030969031,-902.0979020979021,-901.0989010989011,-900.0999000999001,-899.1008991008991,-898.1018981018981,-897.1028971028971,-896.1038961038961,-895.1048951048951,-894.1058941058941,-893.1068931068932,-892.1078921078921,-891.1088911088912,-890.1098901098901,-889.1108891108892,-888.1118881118881,-887.1128871128872,-886.1138861138861,-885.1148851148852,-884.1158841158841,-883.1168831168832,-882.1178821178821,-881.1188811188811,-880.1198801198801,-879.1208791208791,-878.1218781218781,-877.1228771228771,-876.1238761238761,-875.1248751248751,-874.1258741258741,-873.1268731268731,-872.1278721278721,-871.1288711288711,-870.1298701298701,-869.1308691308691,-868.1318681318681,-867.1328671328671,-866.1338661338661,-865.1348651348651,-864.1358641358642,-863.1368631368631,-862.1378621378622,-861.1388611388611,-860.1398601398602,-859.1408591408591,-858.1418581418582,-857.1428571428571,-856.1438561438562,-855.1448551448551,-854.1458541458542,-853.1468531468531,-852.1478521478522,-851.1488511488511,-850.1498501498502,-849.1508491508491,-848.1518481518482,-847.1528471528471,-846.1538461538462,-845.1548451548451,-844.1558441558442,-843.1568431568431,-842.1578421578422,-841.1588411588411,-840.1598401598402,-839.1608391608391,-838.1618381618382,-837.1628371628371,-836.1638361638362,-835.1648351648352,-834.1658341658342,-833.1668331668332,-832.1678321678322,-831.1688311688312,-830.1698301698302,-829.1708291708292,-828.1718281718282,-827.1728271728272,-826.1738261738262,-825.1748251748252,-824.1758241758242,-823.1768231768232,-822.1778221778221,-821.1788211788212,-820.1798201798201,-819.1808191808192,-818.1818181818181,-817.1828171828172,-816.1838161838161,-815.1848151848152,-814.1858141858141,-813.1868131868132,-812.1878121878121,-811.1888111888112,-810.1898101898101,-809.1908091908092,-808.1918081918081,-807.1928071928072,-806.1938061938062,-805.1948051948052,-804.1958041958042,-803.1968031968032,-802.1978021978022,-801.1988011988012,-800.1998001998002,-799.2007992007992,-798.2017982017982,-797.2027972027972,-796.2037962037962,-795.2047952047952,-794.2057942057942,-793.2067932067932,-792.2077922077922,-791.2087912087912,-790.2097902097902,-789.2107892107892,-788.2117882117882,-787.2127872127872,-786.2137862137862,-785.2147852147853,-784.2157842157842,-783.2167832167833,-782.2177822177822,-781.2187812187813,-780.2197802197802,-779.2207792207793,-778.2217782217782,-777.2227772227773,-776.2237762237762,-775.2247752247753,-774.2257742257742,-773.2267732267733,-772.2277722277722,-771.2287712287713,-770.2297702297702,-769.2307692307693,-768.2317682317682,-767.2327672327673,-766.2337662337662,-765.2347652347653,-764.2357642357642,-763.2367632367632,-762.2377622377622,-761.2387612387612,-760.2397602397602,-759.2407592407592,-758.2417582417582,-757.2427572427572,-756.2437562437563,-755.2447552447552,-754.2457542457543,-753.2467532467532,-752.2477522477523,-751.2487512487512,-750.2497502497503,-749.2507492507492,-748.2517482517483,-747.2527472527472,-746.2537462537463,-745.2547452547452,-744.2557442557443,-743.2567432567432,-742.2577422577423,-741.2587412587412,-740.2597402597403,-739.2607392607392,-738.2617382617383,-737.2627372627372,-736.2637362637363,-735.2647352647352,-734.2657342657343,-733.2667332667332,-732.2677322677323,-731.2687312687312,-730.2697302697303,-729.2707292707292,-728.2717282717283,-727.2727272727273,-726.2737262737263,-725.2747252747253,-724.2757242757243,-723.2767232767233,-722.2777222777223,-721.2787212787213,-720.2797202797203,-719.2807192807193,-718.2817182817183,-717.2827172827173,-716.2837162837163,-715.2847152847153,-714.2857142857143,-713.2867132867133,-712.2877122877123,-711.2887112887113,-710.2897102897103,-709.2907092907093,-708.2917082917083,-707.2927072927073,-706.2937062937064,-705.2947052947053,-704.2957042957042,-703.2967032967033,-702.2977022977022,-701.2987012987013,-700.2997002997002,-699.3006993006993,-698.3016983016983,-697.3026973026973,-696.3036963036963,-695.3046953046953,-694.3056943056943,-693.3066933066933,-692.3076923076923,-691.3086913086913,-690.3096903096903,-689.3106893106893,-688.3116883116883,-687.3126873126873,-686.3136863136863,-685.3146853146853,-684.3156843156843,-683.3166833166833,-682.3176823176823,-681.3186813186813,-680.3196803196803,-679.3206793206793,-678.3216783216783,-677.3226773226774,-676.3236763236763,-675.3246753246754,-674.3256743256743,-673.3266733266734,-672.3276723276723,-671.3286713286714,-670.3296703296703,-669.3306693306694,-668.3316683316683,-667.3326673326674,-666.3336663336663,-665.3346653346654,-664.3356643356643,-663.3366633366634,-662.3376623376623,-661.3386613386614,-660.3396603396603,-659.3406593406594,-658.3416583416583,-657.3426573426574,-656.3436563436563,-655.3446553446554,-654.3456543456543,-653.3466533466534,-652.3476523476523,-651.3486513486514,-650.3496503496503,-649.3506493506494,-648.3516483516484,-647.3526473526474,-646.3536463536464,-645.3546453546453,-644.3556443556444,-643.3566433566433,-642.3576423576424,-641.3586413586413,-640.3596403596404,-639.3606393606393,-638.3616383616384,-637.3626373626373,-636.3636363636364,-635.3646353646353,-634.3656343656344,-633.3666333666333,-632.3676323676324,-631.3686313686313,-630.3696303696304,-629.3706293706293,-628.3716283716284,-627.3726273726273,-626.3736263736264,-625.3746253746253,-624.3756243756244,-623.3766233766233,-622.3776223776224,-621.3786213786213,-620.3796203796204,-619.3806193806194,-618.3816183816184,-617.3826173826174,-616.3836163836164,-615.3846153846154,-614.3856143856144,-613.3866133866134,-612.3876123876124,-611.3886113886114,-610.3896103896104,-609.3906093906094,-608.3916083916084,-607.3926073926074,-606.3936063936064,-605.3946053946054,-604.3956043956044,-603.3966033966034,-602.3976023976024,-601.3986013986014,-600.3996003996004,-599.4005994005994,-598.4015984015984,-597.4025974025974,-596.4035964035965,-595.4045954045954,-594.4055944055945,-593.4065934065934,-592.4075924075925,-591.4085914085914,-590.4095904095905,-589.4105894105894,-588.4115884115885,-587.4125874125874,-586.4135864135864,-585.4145854145854,-584.4155844155844,-583.4165834165834,-582.4175824175824,-581.4185814185814,-580.4195804195804,-579.4205794205794,-578.4215784215784,-577.4225774225774,-576.4235764235764,-575.4245754245754,-574.4255744255744,-573.4265734265734,-572.4275724275724,-571.4285714285714,-570.4295704295704,-569.4305694305694,-568.4315684315684,-567.4325674325675,-566.4335664335664,-565.4345654345655,-564.4355644355644,-563.4365634365635,-562.4375624375624,-561.4385614385615,-560.4395604395604,-559.4405594405595,-558.4415584415584,-557.4425574425575,-556.4435564435564,-555.4445554445555,-554.4455544455544,-553.4465534465535,-552.4475524475524,-551.4485514485515,-550.4495504495504,-549.4505494505495,-548.4515484515484,-547.4525474525475,-546.4535464535464,-545.4545454545455,-544.4555444555444,-543.4565434565435,-542.4575424575424,-541.4585414585415,-540.4595404595404,-539.4605394605395,-538.4615384615385,-537.4625374625375,-536.4635364635365,-535.4645354645355,-534.4655344655345,-533.4665334665335,-532.4675324675325,-531.4685314685315,-530.4695304695305,-529.4705294705295,-528.4715284715285,-527.4725274725274,-526.4735264735265,-525.4745254745254,-524.4755244755245,-523.4765234765234,-522.4775224775225,-521.4785214785214,-520.4795204795205,-519.4805194805194,-518.4815184815185,-517.4825174825174,-516.4835164835165,-515.4845154845154,-514.4855144855145,-513.4865134865134,-512.4875124875125,-511.4885114885115,-510.4895104895105,-509.4905094905095,-508.4915084915085,-507.4925074925075,-506.4935064935065,-505.4945054945055,-504.4955044955045,-503.4965034965035,-502.4975024975025,-501.4985014985015,-500.4995004995005,-499.5004995004995,-498.5014985014985,-497.5024975024975,-496.5034965034965,-495.5044955044955,-494.5054945054945,-493.5064935064935,-492.5074925074925,-491.5084915084915,-490.5094905094905,-489.5104895104895,-488.5114885114885,-487.5124875124875,-486.5134865134865,-485.5144855144855,-484.5154845154845,-483.5164835164835,-482.5174825174825,-481.5184815184815,-480.5194805194805,-479.5204795204795,-478.5214785214785,-477.5224775224775,-476.5234765234765,-475.5244755244755,-474.5254745254745,-473.5264735264735,-472.5274725274725,-471.5284715284715,-470.52947052947053,-469.53046953046953,-468.53146853146853,-467.53246753246754,-466.53346653346654,-465.53446553446554,-464.53546453546454,-463.53646353646354,-462.53746253746255,-461.53846153846155,-460.53946053946055,-459.54045954045955,-458.54145854145855,-457.54245754245756,-456.54345654345656,-455.54445554445556,-454.54545454545456,-453.54645354645356,-452.54745254745256,-451.54845154845157,-450.54945054945057,-449.55044955044957,-448.5514485514486,-447.5524475524476,-446.5534465534466,-445.5544455544456,-444.5554445554446,-443.5564435564436,-442.5574425574426,-441.5584415584416,-440.55944055944053,-439.56043956043953,-438.56143856143854,-437.56243756243754,-436.56343656343654,-435.56443556443554,-434.56543456543454,-433.56643356643355,-432.56743256743255,-431.56843156843155,-430.56943056943055,-429.57042957042955,-428.57142857142856,-427.57242757242756,-426.57342657342656,-425.57442557442556,-424.57542457542456,-423.57642357642357,-422.57742257742257,-421.57842157842157,-420.57942057942057,-419.5804195804196,-418.5814185814186,-417.5824175824176,-416.5834165834166,-415.5844155844156,-414.5854145854146,-413.5864135864136,-412.5874125874126,-411.5884115884116,-410.5894105894106,-409.5904095904096,-408.5914085914086,-407.5924075924076,-406.5934065934066,-405.5944055944056,-404.5954045954046,-403.5964035964036,-402.5974025974026,-401.5984015984016,-400.5994005994006,-399.6003996003996,-398.6013986013986,-397.6023976023976,-396.6033966033966,-395.6043956043956,-394.6053946053946,-393.6063936063936,-392.6073926073926,-391.6083916083916,-390.60939060939063,-389.61038961038963,-388.61138861138863,-387.61238761238764,-386.61338661338664,-385.61438561438564,-384.61538461538464,-383.61638361638364,-382.61738261738265,-381.6183816183816,-380.6193806193806,-379.6203796203796,-378.6213786213786,-377.6223776223776,-376.6233766233766,-375.6243756243756,-374.6253746253746,-373.6263736263736,-372.6273726273726,-371.6283716283716,-370.6293706293706,-369.6303696303696,-368.6313686313686,-367.6323676323676,-366.6333666333666,-365.6343656343656,-364.6353646353646,-363.6363636363636,-362.6373626373626,-361.63836163836163,-360.63936063936063,-359.64035964035963,-358.64135864135864,-357.64235764235764,-356.64335664335664,-355.64435564435564,-354.64535464535464,-353.64635364635365,-352.64735264735265,-351.64835164835165,-350.64935064935065,-349.65034965034965,-348.65134865134866,-347.65234765234766,-346.65334665334666,-345.65434565434566,-344.65534465534466,-343.65634365634367,-342.65734265734267,-341.65834165834167,-340.65934065934067,-339.6603396603397,-338.6613386613387,-337.6623376623377,-336.6633366633367,-335.6643356643357,-334.6653346653347,-333.6663336663337,-332.6673326673327,-331.6683316683317,-330.6693306693307,-329.6703296703297,-328.6713286713287,-327.6723276723277,-326.6733266733267,-325.6743256743257,-324.6753246753247,-323.6763236763237,-322.67732267732265,-321.67832167832165,-320.67932067932065,-319.68031968031966,-318.68131868131866,-317.68231768231766,-316.68331668331666,-315.68431568431566,-314.68531468531467,-313.68631368631367,-312.68731268731267,-311.68831168831167,-310.6893106893107,-309.6903096903097,-308.6913086913087,-307.6923076923077,-306.6933066933067,-305.6943056943057,-304.6953046953047,-303.6963036963037,-302.6973026973027,-301.6983016983017,-300.6993006993007,-299.7002997002997,-298.7012987012987,-297.7022977022977,-296.7032967032967,-295.7042957042957,-294.7052947052947,-293.7062937062937,-292.7072927072927,-291.7082917082917,-290.7092907092907,-289.7102897102897,-288.7112887112887,-287.7122877122877,-286.7132867132867,-285.7142857142857,-284.7152847152847,-283.7162837162837,-282.7172827172827,-281.71828171828173,-280.71928071928073,-279.72027972027973,-278.72127872127874,-277.72227772227774,-276.72327672327674,-275.72427572427574,-274.72527472527474,-273.72627372627375,-272.72727272727275,-271.72827172827175,-270.72927072927075,-269.73026973026975,-268.73126873126876,-267.73226773226776,-266.73326673326676,-265.73426573426576,-264.73526473526476,-263.7362637362637,-262.7372627372627,-261.7382617382617,-260.7392607392607,-259.7402597402597,-258.7412587412587,-257.7422577422577,-256.7432567432567,-255.74425574425575,-254.74525474525475,-253.74625374625376,-252.74725274725276,-251.74825174825176,-250.74925074925076,-249.75024975024974,-248.75124875124874,-247.75224775224774,-246.75324675324674,-245.75424575424574,-244.75524475524475,-243.75624375624375,-242.75724275724275,-241.75824175824175,-240.75924075924075,-239.76023976023976,-238.76123876123876,-237.76223776223776,-236.76323676323676,-235.76423576423576,-234.76523476523477,-233.76623376623377,-232.76723276723277,-231.76823176823177,-230.76923076923077,-229.77022977022978,-228.77122877122878,-227.77222777222778,-226.77322677322678,-225.77422577422578,-224.77522477522479,-223.7762237762238,-222.7772227772228,-221.7782217782218,-220.7792207792208,-219.78021978021977,-218.78121878121877,-217.78221778221777,-216.78321678321677,-215.78421578421577,-214.78521478521478,-213.78621378621378,-212.78721278721278,-211.78821178821178,-210.78921078921078,-209.7902097902098,-208.7912087912088,-207.7922077922078,-206.7932067932068,-205.7942057942058,-204.7952047952048,-203.7962037962038,-202.7972027972028,-201.7982017982018,-200.7992007992008,-199.8001998001998,-198.8011988011988,-197.8021978021978,-196.8031968031968,-195.8041958041958,-194.80519480519482,-193.80619380619382,-192.80719280719282,-191.80819180819182,-190.8091908091908,-189.8101898101898,-188.8111888111888,-187.8121878121878,-186.8131868131868,-185.8141858141858,-184.8151848151848,-183.8161838161838,-182.8171828171828,-181.8181818181818,-180.81918081918081,-179.82017982017982,-178.82117882117882,-177.82217782217782,-176.82317682317682,-175.82417582417582,-174.82517482517483,-173.82617382617383,-172.82717282717283,-171.82817182817183,-170.82917082917083,-169.83016983016984,-168.83116883116884,-167.83216783216784,-166.83316683316684,-165.83416583416584,-164.83516483516485,-163.83616383616385,-162.83716283716285,-161.83816183816185,-160.83916083916083,-159.84015984015983,-158.84115884115883,-157.84215784215783,-156.84315684315683,-155.84415584415584,-154.84515484515484,-153.84615384615384,-152.84715284715284,-151.84815184815184,-150.84915084915085,-149.85014985014985,-148.85114885114885,-147.85214785214785,-146.85314685314685,-145.85414585414586,-144.85514485514486,-143.85614385614386,-142.85714285714286,-141.85814185814186,-140.85914085914087,-139.86013986013987,-138.86113886113887,-137.86213786213787,-136.86313686313687,-135.86413586413587,-134.86513486513488,-133.86613386613388,-132.86713286713288,-131.86813186813185,-130.86913086913086,-129.87012987012986,-128.87112887112886,-127.87212787212788,-126.87312687312688,-125.87412587412588,-124.87512487512487,-123.87612387612387,-122.87712287712287,-121.87812187812187,-120.87912087912088,-119.88011988011988,-118.88111888111888,-117.88211788211788,-116.88311688311688,-115.88411588411589,-114.88511488511489,-113.88611388611389,-112.88711288711289,-111.8881118881119,-110.8891108891109,-109.89010989010988,-108.89110889110889,-107.89210789210789,-106.89310689310689,-105.89410589410589,-104.8951048951049,-103.8961038961039,-102.8971028971029,-101.8981018981019,-100.8991008991009,-99.9000999000999,-98.9010989010989,-97.9020979020979,-96.90309690309691,-95.90409590409591,-94.9050949050949,-93.9060939060939,-92.9070929070929,-91.9080919080919,-90.9090909090909,-89.91008991008991,-88.91108891108891,-87.91208791208791,-86.91308691308691,-85.91408591408592,-84.91508491508492,-83.91608391608392,-82.91708291708292,-81.91808191808192,-80.91908091908093,-79.92007992007991,-78.92107892107892,-77.92207792207792,-76.92307692307692,-75.92407592407592,-74.92507492507492,-73.92607392607393,-72.92707292707293,-71.92807192807193,-70.92907092907093,-69.93006993006993,-68.93106893106894,-67.93206793206794,-66.93306693306694,-65.93406593406593,-64.93506493506493,-63.93606393606394,-62.93706293706294,-61.938061938061935,-60.93906093906094,-59.94005994005994,-58.94105894105894,-57.94205794205794,-56.943056943056945,-55.94405594405595,-54.94505494505494,-53.946053946053944,-52.947052947052946,-51.94805194805195,-50.94905094905095,-49.95004995004995,-48.95104895104895,-47.952047952047955,-46.95304695304695,-45.95404595404595,-44.955044955044954,-43.956043956043956,-42.95704295704296,-41.95804195804196,-40.95904095904096,-39.96003996003996,-38.96103896103896,-37.96203796203796,-36.96303696303696,-35.964035964035965,-34.96503496503497,-33.96603396603397,-32.967032967032964,-31.96803196803197,-30.969030969030968,-29.97002997002997,-28.97102897102897,-27.972027972027973,-26.973026973026972,-25.974025974025974,-24.975024975024976,-23.976023976023978,-22.977022977022976,-21.978021978021978,-20.97902097902098,-19.98001998001998,-18.98101898101898,-17.982017982017982,-16.983016983016984,-15.984015984015985,-14.985014985014985,-13.986013986013987,-12.987012987012987,-11.988011988011989,-10.989010989010989,-9.99000999000999,-8.991008991008991,-7.992007992007992,-6.993006993006993,-5.994005994005994,-4.995004995004995,-3.996003996003996,-2.997002997002997,-1.998001998001998,-0.999000999000999,0.0,0.999000999000999,1.998001998001998,2.997002997002997,3.996003996003996,4.995004995004995,5.994005994005994,6.993006993006993,7.992007992007992,8.991008991008991,9.99000999000999,10.989010989010989,11.988011988011989,12.987012987012987,13.986013986013987,14.985014985014985,15.984015984015985,16.983016983016984,17.982017982017982,18.98101898101898,19.98001998001998,20.97902097902098,21.978021978021978,22.977022977022976,23.976023976023978,24.975024975024976,25.974025974025974,26.973026973026972,27.972027972027973,28.97102897102897,29.97002997002997,30.969030969030968,31.96803196803197,32.967032967032964,33.96603396603397,34.96503496503497,35.964035964035965,36.96303696303696,37.96203796203796,38.96103896103896,39.96003996003996,40.95904095904096,41.95804195804196,42.95704295704296,43.956043956043956,44.955044955044954,45.95404595404595,46.95304695304695,47.952047952047955,48.95104895104895,49.95004995004995,50.94905094905095,51.94805194805195,52.947052947052946,53.946053946053944,54.94505494505494,55.94405594405595,56.943056943056945,57.94205794205794,58.94105894105894,59.94005994005994,60.93906093906094,61.938061938061935,62.93706293706294,63.93606393606394,64.93506493506493,65.93406593406593,66.93306693306694,67.93206793206794,68.93106893106894,69.93006993006993,70.92907092907093,71.92807192807193,72.92707292707293,73.92607392607393,74.92507492507492,75.92407592407592,76.92307692307692,77.92207792207792,78.92107892107892,79.92007992007991,80.91908091908093,81.91808191808192,82.91708291708292,83.91608391608392,84.91508491508492,85.91408591408592,86.91308691308691,87.91208791208791,88.91108891108891,89.91008991008991,90.9090909090909,91.9080919080919,92.9070929070929,93.9060939060939,94.9050949050949,95.90409590409591,96.90309690309691,97.9020979020979,98.9010989010989,99.9000999000999,100.8991008991009,101.8981018981019,102.8971028971029,103.8961038961039,104.8951048951049,105.89410589410589,106.89310689310689,107.89210789210789,108.89110889110889,109.89010989010988,110.8891108891109,111.8881118881119,112.88711288711289,113.88611388611389,114.88511488511489,115.88411588411589,116.88311688311688,117.88211788211788,118.88111888111888,119.88011988011988,120.87912087912088,121.87812187812187,122.87712287712287,123.87612387612387,124.87512487512487,125.87412587412588,126.87312687312688,127.87212787212788,128.87112887112886,129.87012987012986,130.86913086913086,131.86813186813185,132.86713286713288,133.86613386613388,134.86513486513488,135.86413586413587,136.86313686313687,137.86213786213787,138.86113886113887,139.86013986013987,140.85914085914087,141.85814185814186,142.85714285714286,143.85614385614386,144.85514485514486,145.85414585414586,146.85314685314685,147.85214785214785,148.85114885114885,149.85014985014985,150.84915084915085,151.84815184815184,152.84715284715284,153.84615384615384,154.84515484515484,155.84415584415584,156.84315684315683,157.84215784215783,158.84115884115883,159.84015984015983,160.83916083916083,161.83816183816185,162.83716283716285,163.83616383616385,164.83516483516485,165.83416583416584,166.83316683316684,167.83216783216784,168.83116883116884,169.83016983016984,170.82917082917083,171.82817182817183,172.82717282717283,173.82617382617383,174.82517482517483,175.82417582417582,176.82317682317682,177.82217782217782,178.82117882117882,179.82017982017982,180.81918081918081,181.8181818181818,182.8171828171828,183.8161838161838,184.8151848151848,185.8141858141858,186.8131868131868,187.8121878121878,188.8111888111888,189.8101898101898,190.8091908091908,191.80819180819182,192.80719280719282,193.80619380619382,194.80519480519482,195.8041958041958,196.8031968031968,197.8021978021978,198.8011988011988,199.8001998001998,200.7992007992008,201.7982017982018,202.7972027972028,203.7962037962038,204.7952047952048,205.7942057942058,206.7932067932068,207.7922077922078,208.7912087912088,209.7902097902098,210.78921078921078,211.78821178821178,212.78721278721278,213.78621378621378,214.78521478521478,215.78421578421577,216.78321678321677,217.78221778221777,218.78121878121877,219.78021978021977,220.7792207792208,221.7782217782218,222.7772227772228,223.7762237762238,224.77522477522479,225.77422577422578,226.77322677322678,227.77222777222778,228.77122877122878,229.77022977022978,230.76923076923077,231.76823176823177,232.76723276723277,233.76623376623377,234.76523476523477,235.76423576423576,236.76323676323676,237.76223776223776,238.76123876123876,239.76023976023976,240.75924075924075,241.75824175824175,242.75724275724275,243.75624375624375,244.75524475524475,245.75424575424574,246.75324675324674,247.75224775224774,248.75124875124874,249.75024975024974,250.74925074925076,251.74825174825176,252.74725274725276,253.74625374625376,254.74525474525475,255.74425574425575,256.7432567432567,257.7422577422577,258.7412587412587,259.7402597402597,260.7392607392607,261.7382617382617,262.7372627372627,263.7362637362637,264.73526473526476,265.73426573426576,266.73326673326676,267.73226773226776,268.73126873126876,269.73026973026975,270.72927072927075,271.72827172827175,272.72727272727275,273.72627372627375,274.72527472527474,275.72427572427574,276.72327672327674,277.72227772227774,278.72127872127874,279.72027972027973,280.71928071928073,281.71828171828173,282.7172827172827,283.7162837162837,284.7152847152847,285.7142857142857,286.7132867132867,287.7122877122877,288.7112887112887,289.7102897102897,290.7092907092907,291.7082917082917,292.7072927072927,293.7062937062937,294.7052947052947,295.7042957042957,296.7032967032967,297.7022977022977,298.7012987012987,299.7002997002997,300.6993006993007,301.6983016983017,302.6973026973027,303.6963036963037,304.6953046953047,305.6943056943057,306.6933066933067,307.6923076923077,308.6913086913087,309.6903096903097,310.6893106893107,311.68831168831167,312.68731268731267,313.68631368631367,314.68531468531467,315.68431568431566,316.68331668331666,317.68231768231766,318.68131868131866,319.68031968031966,320.67932067932065,321.67832167832165,322.67732267732265,323.6763236763237,324.6753246753247,325.6743256743257,326.6733266733267,327.6723276723277,328.6713286713287,329.6703296703297,330.6693306693307,331.6683316683317,332.6673326673327,333.6663336663337,334.6653346653347,335.6643356643357,336.6633366633367,337.6623376623377,338.6613386613387,339.6603396603397,340.65934065934067,341.65834165834167,342.65734265734267,343.65634365634367,344.65534465534466,345.65434565434566,346.65334665334666,347.65234765234766,348.65134865134866,349.65034965034965,350.64935064935065,351.64835164835165,352.64735264735265,353.64635364635365,354.64535464535464,355.64435564435564,356.64335664335664,357.64235764235764,358.64135864135864,359.64035964035963,360.63936063936063,361.63836163836163,362.6373626373626,363.6363636363636,364.6353646353646,365.6343656343656,366.6333666333666,367.6323676323676,368.6313686313686,369.6303696303696,370.6293706293706,371.6283716283716,372.6273726273726,373.6263736263736,374.6253746253746,375.6243756243756,376.6233766233766,377.6223776223776,378.6213786213786,379.6203796203796,380.6193806193806,381.6183816183816,382.61738261738265,383.61638361638364,384.61538461538464,385.61438561438564,386.61338661338664,387.61238761238764,388.61138861138863,389.61038961038963,390.60939060939063,391.6083916083916,392.6073926073926,393.6063936063936,394.6053946053946,395.6043956043956,396.6033966033966,397.6023976023976,398.6013986013986,399.6003996003996,400.5994005994006,401.5984015984016,402.5974025974026,403.5964035964036,404.5954045954046,405.5944055944056,406.5934065934066,407.5924075924076,408.5914085914086,409.5904095904096,410.5894105894106,411.5884115884116,412.5874125874126,413.5864135864136,414.5854145854146,415.5844155844156,416.5834165834166,417.5824175824176,418.5814185814186,419.5804195804196,420.57942057942057,421.57842157842157,422.57742257742257,423.57642357642357,424.57542457542456,425.57442557442556,426.57342657342656,427.57242757242756,428.57142857142856,429.57042957042955,430.56943056943055,431.56843156843155,432.56743256743255,433.56643356643355,434.56543456543454,435.56443556443554,436.56343656343654,437.56243756243754,438.56143856143854,439.56043956043953,440.55944055944053,441.5584415584416,442.5574425574426,443.5564435564436,444.5554445554446,445.5544455544456,446.5534465534466,447.5524475524476,448.5514485514486,449.55044955044957,450.54945054945057,451.54845154845157,452.54745254745256,453.54645354645356,454.54545454545456,455.54445554445556,456.54345654345656,457.54245754245756,458.54145854145855,459.54045954045955,460.53946053946055,461.53846153846155,462.53746253746255,463.53646353646354,464.53546453546454,465.53446553446554,466.53346653346654,467.53246753246754,468.53146853146853,469.53046953046953,470.52947052947053,471.5284715284715,472.5274725274725,473.5264735264735,474.5254745254745,475.5244755244755,476.5234765234765,477.5224775224775,478.5214785214785,479.5204795204795,480.5194805194805,481.5184815184815,482.5174825174825,483.5164835164835,484.5154845154845,485.5144855144855,486.5134865134865,487.5124875124875,488.5114885114885,489.5104895104895,490.5094905094905,491.5084915084915,492.5074925074925,493.5064935064935,494.5054945054945,495.5044955044955,496.5034965034965,497.5024975024975,498.5014985014985,499.5004995004995,500.4995004995005,501.4985014985015,502.4975024975025,503.4965034965035,504.4955044955045,505.4945054945055,506.4935064935065,507.4925074925075,508.4915084915085,509.4905094905095,510.4895104895105,511.4885114885115,512.4875124875125,513.4865134865134,514.4855144855145,515.4845154845154,516.4835164835165,517.4825174825174,518.4815184815185,519.4805194805194,520.4795204795205,521.4785214785214,522.4775224775225,523.4765234765234,524.4755244755245,525.4745254745254,526.4735264735265,527.4725274725274,528.4715284715285,529.4705294705295,530.4695304695305,531.4685314685315,532.4675324675325,533.4665334665335,534.4655344655345,535.4645354645355,536.4635364635365,537.4625374625375,538.4615384615385,539.4605394605395,540.4595404595404,541.4585414585415,542.4575424575424,543.4565434565435,544.4555444555444,545.4545454545455,546.4535464535464,547.4525474525475,548.4515484515484,549.4505494505495,550.4495504495504,551.4485514485515,552.4475524475524,553.4465534465535,554.4455544455544,555.4445554445555,556.4435564435564,557.4425574425575,558.4415584415584,559.4405594405595,560.4395604395604,561.4385614385615,562.4375624375624,563.4365634365635,564.4355644355644,565.4345654345655,566.4335664335664,567.4325674325675,568.4315684315684,569.4305694305694,570.4295704295704,571.4285714285714,572.4275724275724,573.4265734265734,574.4255744255744,575.4245754245754,576.4235764235764,577.4225774225774,578.4215784215784,579.4205794205794,580.4195804195804,581.4185814185814,582.4175824175824,583.4165834165834,584.4155844155844,585.4145854145854,586.4135864135864,587.4125874125874,588.4115884115885,589.4105894105894,590.4095904095905,591.4085914085914,592.4075924075925,593.4065934065934,594.4055944055945,595.4045954045954,596.4035964035965,597.4025974025974,598.4015984015984,599.4005994005994,600.3996003996004,601.3986013986014,602.3976023976024,603.3966033966034,604.3956043956044,605.3946053946054,606.3936063936064,607.3926073926074,608.3916083916084,609.3906093906094,610.3896103896104,611.3886113886114,612.3876123876124,613.3866133866134,614.3856143856144,615.3846153846154,616.3836163836164,617.3826173826174,618.3816183816184,619.3806193806194,620.3796203796204,621.3786213786213,622.3776223776224,623.3766233766233,624.3756243756244,625.3746253746253,626.3736263736264,627.3726273726273,628.3716283716284,629.3706293706293,630.3696303696304,631.3686313686313,632.3676323676324,633.3666333666333,634.3656343656344,635.3646353646353,636.3636363636364,637.3626373626373,638.3616383616384,639.3606393606393,640.3596403596404,641.3586413586413,642.3576423576424,643.3566433566433,644.3556443556444,645.3546453546453,646.3536463536464,647.3526473526474,648.3516483516484,649.3506493506494,650.3496503496503,651.3486513486514,652.3476523476523,653.3466533466534,654.3456543456543,655.3446553446554,656.3436563436563,657.3426573426574,658.3416583416583,659.3406593406594,660.3396603396603,661.3386613386614,662.3376623376623,663.3366633366634,664.3356643356643,665.3346653346654,666.3336663336663,667.3326673326674,668.3316683316683,669.3306693306694,670.3296703296703,671.3286713286714,672.3276723276723,673.3266733266734,674.3256743256743,675.3246753246754,676.3236763236763,677.3226773226774,678.3216783216783,679.3206793206793,680.3196803196803,681.3186813186813,682.3176823176823,683.3166833166833,684.3156843156843,685.3146853146853,686.3136863136863,687.3126873126873,688.3116883116883,689.3106893106893,690.3096903096903,691.3086913086913,692.3076923076923,693.3066933066933,694.3056943056943,695.3046953046953,696.3036963036963,697.3026973026973,698.3016983016983,699.3006993006993,700.2997002997002,701.2987012987013,702.2977022977022,703.2967032967033,704.2957042957042,705.2947052947053,706.2937062937064,707.2927072927073,708.2917082917083,709.2907092907093,710.2897102897103,711.2887112887113,712.2877122877123,713.2867132867133,714.2857142857143,715.2847152847153,716.2837162837163,717.2827172827173,718.2817182817183,719.2807192807193,720.2797202797203,721.2787212787213,722.2777222777223,723.2767232767233,724.2757242757243,725.2747252747253,726.2737262737263,727.2727272727273,728.2717282717283,729.2707292707292,730.2697302697303,731.2687312687312,732.2677322677323,733.2667332667332,734.2657342657343,735.2647352647352,736.2637362637363,737.2627372627372,738.2617382617383,739.2607392607392,740.2597402597403,741.2587412587412,742.2577422577423,743.2567432567432,744.2557442557443,745.2547452547452,746.2537462537463,747.2527472527472,748.2517482517483,749.2507492507492,750.2497502497503,751.2487512487512,752.2477522477523,753.2467532467532,754.2457542457543,755.2447552447552,756.2437562437563,757.2427572427572,758.2417582417582,759.2407592407592,760.2397602397602,761.2387612387612,762.2377622377622,763.2367632367632,764.2357642357642,765.2347652347653,766.2337662337662,767.2327672327673,768.2317682317682,769.2307692307693,770.2297702297702,771.2287712287713,772.2277722277722,773.2267732267733,774.2257742257742,775.2247752247753,776.2237762237762,777.2227772227773,778.2217782217782,779.2207792207793,780.2197802197802,781.2187812187813,782.2177822177822,783.2167832167833,784.2157842157842,785.2147852147853,786.2137862137862,787.2127872127872,788.2117882117882,789.2107892107892,790.2097902097902,791.2087912087912,792.2077922077922,793.2067932067932,794.2057942057942,795.2047952047952,796.2037962037962,797.2027972027972,798.2017982017982,799.2007992007992,800.1998001998002,801.1988011988012,802.1978021978022,803.1968031968032,804.1958041958042,805.1948051948052,806.1938061938062,807.1928071928072,808.1918081918081,809.1908091908092,810.1898101898101,811.1888111888112,812.1878121878121,813.1868131868132,814.1858141858141,815.1848151848152,816.1838161838161,817.1828171828172,818.1818181818181,819.1808191808192,820.1798201798201,821.1788211788212,822.1778221778221,823.1768231768232,824.1758241758242,825.1748251748252,826.1738261738262,827.1728271728272,828.1718281718282,829.1708291708292,830.1698301698302,831.1688311688312,832.1678321678322,833.1668331668332,834.1658341658342,835.1648351648352,836.1638361638362,837.1628371628371,838.1618381618382,839.1608391608391,840.1598401598402,841.1588411588411,842.1578421578422,843.1568431568431,844.1558441558442,845.1548451548451,846.1538461538462,847.1528471528471,848.1518481518482,849.1508491508491,850.1498501498502,851.1488511488511,852.1478521478522,853.1468531468531,854.1458541458542,855.1448551448551,856.1438561438562,857.1428571428571,858.1418581418582,859.1408591408591,860.1398601398602,861.1388611388611,862.1378621378622,863.1368631368631,864.1358641358642,865.1348651348651,866.1338661338661,867.1328671328671,868.1318681318681,869.1308691308691,870.1298701298701,871.1288711288711,872.1278721278721,873.1268731268731,874.1258741258741,875.1248751248751,876.1238761238761,877.1228771228771,878.1218781218781,879.1208791208791,880.1198801198801,881.1188811188811,882.1178821178821,883.1168831168832,884.1158841158841,885.1148851148852,886.1138861138861,887.1128871128872,888.1118881118881,889.1108891108892,890.1098901098901,891.1088911088912,892.1078921078921,893.1068931068932,894.1058941058941,895.1048951048951,896.1038961038961,897.1028971028971,898.1018981018981,899.1008991008991,900.0999000999001,901.0989010989011,902.0979020979021,903.0969030969031,904.0959040959041,905.0949050949051,906.0939060939061,907.0929070929071,908.0919080919081,909.0909090909091,910.0899100899101,911.0889110889111,912.0879120879121,913.0869130869131,914.085914085914,915.0849150849151,916.083916083916,917.0829170829171,918.081918081918,919.0809190809191,920.07992007992,921.0789210789211,922.077922077922,923.0769230769231,924.075924075924,925.0749250749251,926.073926073926,927.0729270729271,928.071928071928,929.0709290709291,930.06993006993,931.0689310689311,932.067932067932,933.0669330669331,934.065934065934,935.0649350649351,936.063936063936,937.0629370629371,938.061938061938,939.0609390609391,940.05994005994,941.0589410589411,942.0579420579421,943.056943056943,944.0559440559441,945.054945054945,946.0539460539461,947.052947052947,948.0519480519481,949.050949050949,950.0499500499501,951.048951048951,952.0479520479521,953.046953046953,954.0459540459541,955.044955044955,956.0439560439561,957.042957042957,958.0419580419581,959.040959040959,960.0399600399601,961.038961038961,962.0379620379621,963.036963036963,964.0359640359641,965.034965034965,966.0339660339661,967.032967032967,968.0319680319681,969.030969030969,970.0299700299701,971.028971028971,972.027972027972,973.026973026973,974.025974025974,975.024975024975,976.023976023976,977.022977022977,978.021978021978,979.020979020979,980.01998001998,981.018981018981,982.017982017982,983.016983016983,984.015984015984,985.014985014985,986.013986013986,987.012987012987,988.011988011988,989.010989010989,990.00999000999,991.008991008991,992.007992007992,993.006993006993,994.005994005994,995.004995004995,996.003996003996,997.002997002997,998.001998001998,999.000999000999,1000.0]} diff --git a/lib/node_modules/@stdlib/math/base/special/csignumf/test/fixtures/julia/runner.jl b/lib/node_modules/@stdlib/math/base/special/csignumf/test/fixtures/julia/runner.jl new file mode 100644 index 000000000000..b635397653f9 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/test/fixtures/julia/runner.jl @@ -0,0 +1,71 @@ +#!/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`: domain (real components) +* `im`: domain (imaginary components) +* `name::AbstractString`: output filename + +# Examples + +``` julia +julia> re = range( -1.0, stop = 1.0, length = 2001 ); +julia> im = range( -1.0, stop = 1.0, length = 2001 ); +julia> gen( re, im, \"data.json\" ); +``` +""" +function gen( re, im, name ) + z = complex.( re, im ); + y = sign.( z ); + + # Store data to be written to file as a collection: + data = Dict([ + ("re", re), + ("im", im), + ("expected_re", real( y )), + ("expected_im", imag( y )) + ]); + + # 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 ); + +# Generate fixture data: +re = range( -1000.0, stop = 1000.0, length = 2003 ); +im = range( -1000.0, stop = 1000.0, length = 2003 ); +gen( re, im, "data.json" ); diff --git a/lib/node_modules/@stdlib/math/base/special/csignumf/test/test.js b/lib/node_modules/@stdlib/math/base/special/csignumf/test/test.js new file mode 100644 index 000000000000..742bb298f344 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/test/test.js @@ -0,0 +1,116 @@ +/** +* @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 PINF = require( '@stdlib/constants/float64/pinf' ); +var NINF = require( '@stdlib/constants/float64/ninf' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var EPS = require( '@stdlib/constants/float64/eps' ); +var abs = require( '@stdlib/math/base/special/abs' ); +var isNegativeZero = require( '@stdlib/math/base/assert/is-negative-zero' ); +var isPositiveZero = require( '@stdlib/math/base/assert/is-positive-zero' ); +var Complex128 = require( '@stdlib/complex/float64/ctor' ); +var real = require( '@stdlib/complex/float64/real' ); +var imag = require( '@stdlib/complex/float64/imag' ); +var csignum = require( './../lib' ); + + +// FIXTURES // + +var data = require( './fixtures/julia/data.json' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof csignum, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function evaluates the signum function', function test( t ) { + var delta; + var ere; + var eim; + var tol; + var re; + var im; + var y; + var i; + + re = data.re; + im = data.im; + ere = data.expected_re; + eim = data.expected_im; + + for ( i = 0; i < re.length; i++ ) { + y = csignum( new Complex128( re[ i ], im[ i ] ) ); + if ( real( y ) === ere[ i ] && imag( y ) === eim[ i ] ) { + t.equal( real( y ), ere[ i ], 're: '+re[ i ]+'. Expected: '+ere[ i ] ); + t.equal( imag( y ), eim[ i ], 'im: '+im[ i ]+'. Expected: '+eim[ i ] ); + } else { + delta = abs( real( y ) - ere[ i ] ); + tol = EPS * abs( ere[ i ] ); + t.ok( delta <= tol, 'within tolerance. re: '+re[ i ]+'. im: '+im[ i ]+'. Actual re: '+real( y )+'. Expected re: '+ere[ i ]+'. delta: '+delta+'. tol: '+tol+'.' ); + + delta = abs( imag( y ) - eim[ i ] ); + tol = EPS * abs( eim[ i ] ); + t.ok( delta <= tol, 'within tolerance. re: '+re[ i ]+'. im: '+im[ i ]+'. Actual im: '+imag( y )+'. Expected im: '+eim[ i ]+'. delta: '+delta+'. tol: '+tol+'.' ); + } + } + t.end(); +}); + +tape( 'the function returns a `NaN` if provided a `NaN`', function test( t ) { + var val = csignum( new Complex128( NaN, NaN ) ); + t.strictEqual( isnan( real( val ) ), true, 'returns expected value' ); + t.strictEqual( isnan( imag( val ) ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `+0` if provided `+0`', function test( t ) { + var val = csignum( new Complex128( +0.0, +0.0 ) ); + t.strictEqual( isPositiveZero( real( val ) ), true, 'returns expected value' ); + t.strictEqual( isPositiveZero( imag( val ) ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-0` if provided `-0`', function test( t ) { + var val = csignum( new Complex128( -0.0, -0.0 ) ); + t.strictEqual( isNegativeZero( real( val ) ), true, 'returns expected value' ); + t.strictEqual( isNegativeZero( imag( val ) ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns a `NaN` if provided `infinity`', function test( t ) { + var val = csignum( new Complex128( PINF, PINF ) ); + t.strictEqual( isnan( real( val ) ), true, 'returns expected value' ); + t.strictEqual( isnan( imag( val ) ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns a `NaN` if provided `-infinity`', function test( t ) { + var val = csignum( new Complex128( NINF, NINF ) ); + t.strictEqual( isnan( real( val ) ), true, 'returns expected value' ); + t.strictEqual( isnan( imag( val ) ), true, 'returns expected value' ); + t.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/csignumf/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/csignumf/test/test.native.js new file mode 100644 index 000000000000..54a91d540faf --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/test/test.native.js @@ -0,0 +1,125 @@ +/** +* @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 PINF = require( '@stdlib/constants/float64/pinf' ); +var NINF = require( '@stdlib/constants/float64/ninf' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var EPS = require( '@stdlib/constants/float64/eps' ); +var abs = require( '@stdlib/math/base/special/abs' ); +var isNegativeZero = require( '@stdlib/math/base/assert/is-negative-zero' ); +var isPositiveZero = require( '@stdlib/math/base/assert/is-positive-zero' ); +var Complex128 = require( '@stdlib/complex/float64/ctor' ); +var real = require( '@stdlib/complex/float64/real' ); +var imag = require( '@stdlib/complex/float64/imag' ); +var tryRequire = require( '@stdlib/utils/try-require' ); + + +// VARIABLES // + +var csignum = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( csignum instanceof Error ) +}; + + +// FIXTURES // + +var data = require( './fixtures/julia/data.json' ); + + +// TESTS // + +tape( 'main export is a function', opts, function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof csignum, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function evaluates the signum function', opts, function test( t ) { + var delta; + var ere; + var eim; + var tol; + var re; + var im; + var y; + var i; + + re = data.re; + im = data.im; + ere = data.expected_re; + eim = data.expected_im; + + for ( i = 0; i < re.length; i++ ) { + y = csignum( new Complex128( re[ i ], im[ i ] ) ); + if ( real( y ) === ere[ i ] && imag( y ) === eim[ i ] ) { + t.equal( real( y ), ere[ i ], 're: '+re[ i ]+'. Expected: '+ere[ i ] ); + t.equal( imag( y ), eim[ i ], 'im: '+im[ i ]+'. Expected: '+eim[ i ] ); + } else { + delta = abs( real( y ) - ere[ i ] ); + tol = EPS * abs( ere[ i ] ); + t.ok( delta <= tol, 'within tolerance. re: '+re[ i ]+'. im: '+im[ i ]+'. Actual re: '+real( y )+'. Expected re: '+ere[ i ]+'. delta: '+delta+'. tol: '+tol+'.' ); + + delta = abs( imag( y ) - eim[ i ] ); + tol = EPS * abs( eim[ i ] ); + t.ok( delta <= tol, 'within tolerance. re: '+re[ i ]+'. im: '+im[ i ]+'. Actual im: '+imag( y )+'. Expected im: '+eim[ i ]+'. delta: '+delta+'. tol: '+tol+'.' ); + } + } + t.end(); +}); + +tape( 'the function returns a `NaN` if provided a `NaN`', opts, function test( t ) { + var val = csignum( new Complex128( NaN, NaN ) ); + t.strictEqual( isnan( real( val ) ), true, 'returns expected value' ); + t.strictEqual( isnan( imag( val ) ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `+0` if provided `+0`', opts, function test( t ) { + var val = csignum( new Complex128( +0.0, +0.0 ) ); + t.strictEqual( isPositiveZero( real( val ) ), true, 'returns expected value' ); + t.strictEqual( isPositiveZero( imag( val ) ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `-0` if provided `-0`', opts, function test( t ) { + var val = csignum( new Complex128( -0.0, -0.0 ) ); + t.strictEqual( isNegativeZero( real( val ) ), true, 'returns expected value' ); + t.strictEqual( isNegativeZero( imag( val ) ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns a `NaN` if provided `infinity`', opts, function test( t ) { + var val = csignum( new Complex128( PINF, PINF ) ); + t.strictEqual( isnan( real( val ) ), true, 'returns expected value' ); + t.strictEqual( isnan( imag( val ) ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns a `NaN` if provided `-infinity`', opts, function test( t ) { + var val = csignum( new Complex128( NINF, NINF ) ); + t.strictEqual( isnan( real( val ) ), true, 'returns expected value' ); + t.strictEqual( isnan( imag( val ) ), true, 'returns expected value' ); + t.end(); +}); From 3d03deb060681927ed27da0565a8c77b689fef0e Mon Sep 17 00:00:00 2001 From: stdlib-bot <82920195+stdlib-bot@users.noreply.github.com> Date: Tue, 25 Mar 2025 06:52:59 +0000 Subject: [PATCH 2/4] chore: update copyright years --- lib/node_modules/@stdlib/math/base/special/csignumf/README.md | 2 +- .../@stdlib/math/base/special/csignumf/benchmark/benchmark.js | 2 +- .../math/base/special/csignumf/benchmark/benchmark.native.js | 2 +- .../math/base/special/csignumf/benchmark/c/native/Makefile | 2 +- .../math/base/special/csignumf/benchmark/c/native/benchmark.c | 2 +- .../math/base/special/csignumf/benchmark/julia/benchmark.jl | 2 +- lib/node_modules/@stdlib/math/base/special/csignumf/binding.gyp | 2 +- .../@stdlib/math/base/special/csignumf/docs/types/index.d.ts | 2 +- .../@stdlib/math/base/special/csignumf/docs/types/test.ts | 2 +- .../@stdlib/math/base/special/csignumf/examples/c/Makefile | 2 +- .../@stdlib/math/base/special/csignumf/examples/c/example.c | 2 +- .../@stdlib/math/base/special/csignumf/examples/index.js | 2 +- .../@stdlib/math/base/special/csignumf/include.gypi | 2 +- .../csignumf/include/stdlib/math/base/special/csignumf.h | 2 +- .../@stdlib/math/base/special/csignumf/lib/index.js | 2 +- lib/node_modules/@stdlib/math/base/special/csignumf/lib/main.js | 2 +- .../@stdlib/math/base/special/csignumf/lib/native.js | 2 +- .../@stdlib/math/base/special/csignumf/src/Makefile | 2 +- lib/node_modules/@stdlib/math/base/special/csignumf/src/addon.c | 2 +- lib/node_modules/@stdlib/math/base/special/csignumf/src/main.c | 2 +- .../math/base/special/csignumf/test/fixtures/julia/runner.jl | 2 +- .../@stdlib/math/base/special/csignumf/test/test.js | 2 +- .../@stdlib/math/base/special/csignumf/test/test.native.js | 2 +- 23 files changed, 23 insertions(+), 23 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/csignumf/README.md b/lib/node_modules/@stdlib/math/base/special/csignumf/README.md index c9f20d57d650..cb5d79226780 100644 --- a/lib/node_modules/@stdlib/math/base/special/csignumf/README.md +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/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. diff --git a/lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/benchmark.js b/lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/benchmark.js index 2d5db4e341e4..fcd762cfa274 100644 --- a/lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/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/csignumf/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/benchmark.native.js index d66c70611ff8..c70210cc27d9 100644 --- a/lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/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/csignumf/benchmark/c/native/Makefile b/lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/c/native/Makefile index 7f6bbc4c205c..a4bd7b38fd74 100644 --- a/lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/c/native/Makefile +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/c/native/Makefile @@ -1,7 +1,7 @@ #/ # @license Apache-2.0 # -# Copyright (c) 2021 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/csignumf/benchmark/c/native/benchmark.c b/lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/c/native/benchmark.c index b49cc8febe9d..34a2ed84abe6 100644 --- a/lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/c/native/benchmark.c +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/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/csignumf/benchmark/julia/benchmark.jl b/lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/julia/benchmark.jl index d3d4397214dd..c1064e0d6ed2 100644 --- a/lib/node_modules/@stdlib/math/base/special/csignumf/benchmark/julia/benchmark.jl +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/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/csignumf/binding.gyp b/lib/node_modules/@stdlib/math/base/special/csignumf/binding.gyp index f2b466aef5c4..68a1ca11d160 100644 --- a/lib/node_modules/@stdlib/math/base/special/csignumf/binding.gyp +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/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/csignumf/docs/types/index.d.ts b/lib/node_modules/@stdlib/math/base/special/csignumf/docs/types/index.d.ts index a2f050f6df41..329284c21864 100644 --- a/lib/node_modules/@stdlib/math/base/special/csignumf/docs/types/index.d.ts +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/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/csignumf/docs/types/test.ts b/lib/node_modules/@stdlib/math/base/special/csignumf/docs/types/test.ts index cdb465945fd2..b3befff79ae5 100644 --- a/lib/node_modules/@stdlib/math/base/special/csignumf/docs/types/test.ts +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/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/csignumf/examples/c/Makefile b/lib/node_modules/@stdlib/math/base/special/csignumf/examples/c/Makefile index f0ae66fecf01..25ced822f96a 100644 --- a/lib/node_modules/@stdlib/math/base/special/csignumf/examples/c/Makefile +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/examples/c/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/csignumf/examples/c/example.c b/lib/node_modules/@stdlib/math/base/special/csignumf/examples/c/example.c index 11422d21d628..b6c10cb18f00 100644 --- a/lib/node_modules/@stdlib/math/base/special/csignumf/examples/c/example.c +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/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. diff --git a/lib/node_modules/@stdlib/math/base/special/csignumf/examples/index.js b/lib/node_modules/@stdlib/math/base/special/csignumf/examples/index.js index 7e9191bc6e44..92be2f0d5111 100644 --- a/lib/node_modules/@stdlib/math/base/special/csignumf/examples/index.js +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/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/csignumf/include.gypi b/lib/node_modules/@stdlib/math/base/special/csignumf/include.gypi index 78db9faf8c74..ecfaf82a3279 100644 --- a/lib/node_modules/@stdlib/math/base/special/csignumf/include.gypi +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/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/csignumf/include/stdlib/math/base/special/csignumf.h b/lib/node_modules/@stdlib/math/base/special/csignumf/include/stdlib/math/base/special/csignumf.h index 8e3dd70831e6..785257d722ef 100644 --- a/lib/node_modules/@stdlib/math/base/special/csignumf/include/stdlib/math/base/special/csignumf.h +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/include/stdlib/math/base/special/csignumf.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/csignumf/lib/index.js b/lib/node_modules/@stdlib/math/base/special/csignumf/lib/index.js index 35d767f734ff..6c012fe58fee 100644 --- a/lib/node_modules/@stdlib/math/base/special/csignumf/lib/index.js +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/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/csignumf/lib/main.js b/lib/node_modules/@stdlib/math/base/special/csignumf/lib/main.js index 7be2aa9b066b..69bcb5693dcd 100644 --- a/lib/node_modules/@stdlib/math/base/special/csignumf/lib/main.js +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/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/csignumf/lib/native.js b/lib/node_modules/@stdlib/math/base/special/csignumf/lib/native.js index b3c4b43e7d80..d7e8af5dbc2a 100644 --- a/lib/node_modules/@stdlib/math/base/special/csignumf/lib/native.js +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/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/csignumf/src/Makefile b/lib/node_modules/@stdlib/math/base/special/csignumf/src/Makefile index a28d8988fb47..7733b6180cb4 100644 --- a/lib/node_modules/@stdlib/math/base/special/csignumf/src/Makefile +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/src/Makefile @@ -1,7 +1,7 @@ #/ # @license Apache-2.0 # -# Copyright (c) 2021 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/csignumf/src/addon.c b/lib/node_modules/@stdlib/math/base/special/csignumf/src/addon.c index e2b4a3e7a95f..e07c7b598d44 100644 --- a/lib/node_modules/@stdlib/math/base/special/csignumf/src/addon.c +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/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/csignumf/src/main.c b/lib/node_modules/@stdlib/math/base/special/csignumf/src/main.c index c06d3faa323a..3bae2c38bde4 100644 --- a/lib/node_modules/@stdlib/math/base/special/csignumf/src/main.c +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/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/csignumf/test/fixtures/julia/runner.jl b/lib/node_modules/@stdlib/math/base/special/csignumf/test/fixtures/julia/runner.jl index 29b6ffed1502..4198c24193ff 100755 --- a/lib/node_modules/@stdlib/math/base/special/csignumf/test/fixtures/julia/runner.jl +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/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/csignumf/test/test.js b/lib/node_modules/@stdlib/math/base/special/csignumf/test/test.js index a2b27b93f6a9..61f2413a0e7f 100644 --- a/lib/node_modules/@stdlib/math/base/special/csignumf/test/test.js +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/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. diff --git a/lib/node_modules/@stdlib/math/base/special/csignumf/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/csignumf/test/test.native.js index 3dce7b25ae69..99f83fe79822 100644 --- a/lib/node_modules/@stdlib/math/base/special/csignumf/test/test.native.js +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/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. From a72c52ffa9b9dc89dd96971e65106c451e1fdf93 Mon Sep 17 00:00:00 2001 From: Athan Date: Tue, 1 Apr 2025 22:49:15 -0700 Subject: [PATCH 3/4] chore: re-enable lint rule Signed-off-by: Athan --- lib/node_modules/@stdlib/math/base/special/csignumf/src/addon.c | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/node_modules/@stdlib/math/base/special/csignumf/src/addon.c b/lib/node_modules/@stdlib/math/base/special/csignumf/src/addon.c index e07c7b598d44..9120c406d2a9 100644 --- a/lib/node_modules/@stdlib/math/base/special/csignumf/src/addon.c +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/src/addon.c @@ -19,5 +19,4 @@ #include "stdlib/math/base/special/csignumf.h" #include "stdlib/math/base/napi/unary.h" -// cppcheck-suppress shadowFunction STDLIB_MATH_BASE_NAPI_MODULE_C_C( stdlib_base_csignumf ) From 4ef278e15278ea2ce55a7214fc369e1dc4cb2306 Mon Sep 17 00:00:00 2001 From: Athan Date: Tue, 1 Apr 2025 22:50:51 -0700 Subject: [PATCH 4/4] refactor: inline operations Signed-off-by: Athan --- .../@stdlib/math/base/special/csignumf/src/main.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/csignumf/src/main.c b/lib/node_modules/@stdlib/math/base/special/csignumf/src/main.c index 3bae2c38bde4..a60bef26518d 100644 --- a/lib/node_modules/@stdlib/math/base/special/csignumf/src/main.c +++ b/lib/node_modules/@stdlib/math/base/special/csignumf/src/main.c @@ -52,7 +52,5 @@ stdlib_complex64_t stdlib_base_csignumf( const stdlib_complex64_t z ) { return z; } stdlib_complex64_reim( z, &re, &im ); - re = re / az; - im = im / az; - return stdlib_complex64( re, im ); + return stdlib_complex64( re/az, im/az ); }