From d9b351a17e74c4163c1d6692d9db919ae7c70a22 Mon Sep 17 00:00:00 2001 From: GUNJ JOSHI Date: Sat, 6 Apr 2024 02:35:07 +0530 Subject: [PATCH 01/11] feat: add math/base/special/deg2radf --- .../math/base/special/rad2degf/README.md | 200 ++++++++++++++++++ .../special/rad2degf/benchmark/benchmark.js | 52 +++++ .../rad2degf/benchmark/benchmark.native.js | 61 ++++++ .../rad2degf/benchmark/c/native/Makefile | 146 +++++++++++++ .../rad2degf/benchmark/c/native/benchmark.c | 136 ++++++++++++ .../math/base/special/rad2degf/binding.gyp | 170 +++++++++++++++ .../math/base/special/rad2degf/docs/repl.txt | 30 +++ .../special/rad2degf/docs/types/index.d.ts | 44 ++++ .../base/special/rad2degf/docs/types/test.ts | 44 ++++ .../base/special/rad2degf/examples/c/Makefile | 146 +++++++++++++ .../special/rad2degf/examples/c/example.c | 33 +++ .../base/special/rad2degf/examples/index.js | 33 +++ .../math/base/special/rad2degf/include.gypi | 53 +++++ .../stdlib/math/base/special/rad2degf.h | 38 ++++ .../math/base/special/rad2degf/lib/index.js | 46 ++++ .../math/base/special/rad2degf/lib/main.js | 59 ++++++ .../math/base/special/rad2degf/lib/native.js | 54 +++++ .../math/base/special/rad2degf/manifest.json | 69 ++++++ .../math/base/special/rad2degf/package.json | 67 ++++++ .../math/base/special/rad2degf/src/Makefile | 70 ++++++ .../math/base/special/rad2degf/src/addon.c | 23 ++ .../math/base/special/rad2degf/src/main.c | 38 ++++ .../rad2degf/test/fixtures/julia/REQUIRE | 2 + .../rad2degf/test/fixtures/julia/data.json | 1 + .../rad2degf/test/fixtures/julia/runner.jl | 65 ++++++ .../math/base/special/rad2degf/test/test.js | 165 +++++++++++++++ .../base/special/rad2degf/test/test.native.js | 174 +++++++++++++++ 27 files changed, 2019 insertions(+) create mode 100644 lib/node_modules/@stdlib/math/base/special/rad2degf/README.md create mode 100644 lib/node_modules/@stdlib/math/base/special/rad2degf/benchmark/benchmark.js create mode 100644 lib/node_modules/@stdlib/math/base/special/rad2degf/benchmark/benchmark.native.js create mode 100644 lib/node_modules/@stdlib/math/base/special/rad2degf/benchmark/c/native/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/special/rad2degf/benchmark/c/native/benchmark.c create mode 100644 lib/node_modules/@stdlib/math/base/special/rad2degf/binding.gyp create mode 100644 lib/node_modules/@stdlib/math/base/special/rad2degf/docs/repl.txt create mode 100644 lib/node_modules/@stdlib/math/base/special/rad2degf/docs/types/index.d.ts create mode 100644 lib/node_modules/@stdlib/math/base/special/rad2degf/docs/types/test.ts create mode 100644 lib/node_modules/@stdlib/math/base/special/rad2degf/examples/c/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/special/rad2degf/examples/c/example.c create mode 100644 lib/node_modules/@stdlib/math/base/special/rad2degf/examples/index.js create mode 100644 lib/node_modules/@stdlib/math/base/special/rad2degf/include.gypi create mode 100644 lib/node_modules/@stdlib/math/base/special/rad2degf/include/stdlib/math/base/special/rad2degf.h create mode 100644 lib/node_modules/@stdlib/math/base/special/rad2degf/lib/index.js create mode 100644 lib/node_modules/@stdlib/math/base/special/rad2degf/lib/main.js create mode 100644 lib/node_modules/@stdlib/math/base/special/rad2degf/lib/native.js create mode 100644 lib/node_modules/@stdlib/math/base/special/rad2degf/manifest.json create mode 100644 lib/node_modules/@stdlib/math/base/special/rad2degf/package.json create mode 100644 lib/node_modules/@stdlib/math/base/special/rad2degf/src/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/special/rad2degf/src/addon.c create mode 100644 lib/node_modules/@stdlib/math/base/special/rad2degf/src/main.c create mode 100644 lib/node_modules/@stdlib/math/base/special/rad2degf/test/fixtures/julia/REQUIRE create mode 100644 lib/node_modules/@stdlib/math/base/special/rad2degf/test/fixtures/julia/data.json create mode 100755 lib/node_modules/@stdlib/math/base/special/rad2degf/test/fixtures/julia/runner.jl create mode 100644 lib/node_modules/@stdlib/math/base/special/rad2degf/test/test.js create mode 100644 lib/node_modules/@stdlib/math/base/special/rad2degf/test/test.native.js diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/README.md b/lib/node_modules/@stdlib/math/base/special/rad2degf/README.md new file mode 100644 index 00000000000..57243481f09 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/README.md @@ -0,0 +1,200 @@ + + +# rad2degf + +> Convert an angle from radians to degrees (single-precision). + +
+ +## Usage + +```javascript +var rad2degf = require( '@stdlib/math/base/special/rad2degf' ); +``` + +#### rad2degf( x ) + +Converts an angle from radians to degrees (single-precision). + +```javascript +var d = rad2degf( 3.141592653589793 / 2.0 ); +// returns 90.0 + +d = rad2degf( -3.141592653589793 / 4.0 ); +// returns -45.0 + +d = rad2degf( NaN ); +// returns NaN +``` + +
+ + + +
+ +## Notes + +- Due to finite precision, canonical values may not be returned. For example, + + ```javascript + var d = rad2degf( 3.141592653589793 / 6.0 ); + // returns 29.999999999999996 + ``` + +
+ + + +
+ +## Examples + + + +```javascript +var randu = require( '@stdlib/random/base/randu' ); +var TWO_PI = require( '@stdlib/constants/float32/two-pi' ); +var rad2degf = require( '@stdlib/math/base/special/rad2degf' ); + +var r; +var d; +var i; + +for ( i = 0; i < 100; i++ ) { + r = randu() * TWO_PI; + d = rad2degf( r ); + console.log( 'radians: %d => degrees: %d', r, d ); +} +``` + +
+ + + + + +* * * + +
+ +## C APIs + + + +
+ +
+ + + + + +
+ +### Usage + +```c +#include "stdlib/math/base/special/rad2degf.h" +``` + +#### stdlib_base_rad2degf( x ) + +Converts an angle from radians to degrees (single-precision). + +```c +float x = 3.141592653589793f / 2.0f; +float d = stdlib_base_rad2degf( x ); +// returns 90.0f + +x = -3.141592653589793f / 4.0f; +d = stdlib_base_rad2degf( x ); +// returns -45.0f +``` + +The function accepts the following arguments: + +- **x**: `[in] float` input value (in radians). + +```c +float stdlib_base_rad2degf( const float x ); +``` + +
+ + + + + +
+ +
+ + + + + +
+ +### Examples + +```c +#include "stdlib/math/base/special/rad2degf.h" +#include "stdlib/constants/float32/two_pi.h" +#include +#include + +int main( void ) { + float x; + float d; + int i; + + for ( i = 0; i < 100; i++ ) { + x = (float)rand() / (float)RAND_MAX * STDLIB_CONSTANT_FLOAT32_TWO_PI; + d = stdlib_base_rad2degf( x ); + printf( "radians: %f => degrees: %f\n", x, d ); + } +} +``` + +
+ + + +
+ + + + + + + + + + + + + + diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/benchmark/benchmark.js b/lib/node_modules/@stdlib/math/base/special/rad2degf/benchmark/benchmark.js new file mode 100644 index 00000000000..2874e663cf9 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/benchmark/benchmark.js @@ -0,0 +1,52 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 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 randu = require( '@stdlib/random/base/randu' ); +var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var TWO_PI = require( '@stdlib/constants/float32/two-pi' ); +var pkg = require( './../package.json' ).name; +var rad2degf = require( './../lib' ); + + +// MAIN // + +bench( pkg, function benchmark( b ) { + var x; + var y; + var i; + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + x = ( randu() * TWO_PI ) - 0.0; + y = rad2degf( x ); + if ( isnanf( y ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnanf( y ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/math/base/special/rad2degf/benchmark/benchmark.native.js new file mode 100644 index 00000000000..0819301db29 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/benchmark/benchmark.native.js @@ -0,0 +1,61 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 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 randu = require( '@stdlib/random/base/randu' ); +var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var TWO_PI = require( '@stdlib/constants/float32/two-pi' ); +var tryRequire = require( '@stdlib/utils/try-require' ); +var pkg = require( './../package.json' ).name; + + +// VARIABLES // + +var rad2degf = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( rad2degf instanceof Error ) +}; + + +// MAIN // + +bench( pkg+'::native', opts, function benchmark( b ) { + var x; + var y; + var i; + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + x = ( randu() * TWO_PI ) - 0.0; + y = rad2degf( x ); + if ( isnanf( y ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnanf( y ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/benchmark/c/native/Makefile b/lib/node_modules/@stdlib/math/base/special/rad2degf/benchmark/c/native/Makefile new file mode 100644 index 00000000000..f69e9da2b4d --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/benchmark/c/native/Makefile @@ -0,0 +1,146 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2024 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/rad2degf/benchmark/c/native/benchmark.c b/lib/node_modules/@stdlib/math/base/special/rad2degf/benchmark/c/native/benchmark.c new file mode 100644 index 00000000000..4d9c360e45d --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/benchmark/c/native/benchmark.c @@ -0,0 +1,136 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 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. +*/ + +/** +* Benchmark `rad2degf`. +*/ +#include "stdlib/math/base/special/rad2degf.h" +#include +#include +#include +#include +#include + +#define NAME "rad2degf" +#define ITERATIONS 1000000 +#define REPEATS 3 + +/** +* Prints the TAP version. +*/ +void print_version() { + printf( "TAP version 13\n" ); +} + +/** +* Prints the TAP summary. +* +* @param total total number of tests +* @param passing total number of passing tests +*/ +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 +*/ +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 +*/ +double tic() { + 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 +*/ +float rand_float() { + int r = rand(); + return (float)r / ( (float)RAND_MAX + 1.0f ); +} + +/** +* Runs a benchmark. +* +* @return elapsed time in seconds +*/ +double benchmark() { + double elapsed; + double t; + float x; + float y; + int i; + + t = tic(); + for ( i = 0; i < ITERATIONS; i++ ) { + x = ( 2.0f * rand_float() * 3.14f ) - 0.0f; + y = stdlib_base_rad2degf( x ); + if ( y != y ) { + printf( "should not return NaN\n" ); + break; + } + } + elapsed = tic() - t; + if ( y != y ) { + printf( "should not return NaN\n" ); + } + return elapsed; +} + +/** +* Main execution sequence. +*/ +int main( void ) { + double elapsed; + int i; + + // Use the current time to seed the random number generator: + srand( time( NULL ) ); + + print_version(); + for ( i = 0; i < REPEATS; i++ ) { + printf( "# c::native::%s\n", NAME ); + elapsed = benchmark(); + print_results( elapsed ); + printf( "ok %d benchmark finished\n", i+1 ); + } + print_summary( REPEATS, REPEATS ); +} diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/binding.gyp b/lib/node_modules/@stdlib/math/base/special/rad2degf/binding.gyp new file mode 100644 index 00000000000..ec399223344 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/binding.gyp @@ -0,0 +1,170 @@ +# @license Apache-2.0 +# +# Copyright (c) 2024 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/rad2degf/docs/repl.txt b/lib/node_modules/@stdlib/math/base/special/rad2degf/docs/repl.txt new file mode 100644 index 00000000000..895386a7820 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/docs/repl.txt @@ -0,0 +1,30 @@ + +{{alias}}( x ) + Converts an angle from radians to degrees (single-precision). + + Parameters + ---------- + x: number + Angle in radians. + + Returns + ------- + d: number + Angle in degrees. + + Examples + -------- + > var d = {{alias}}( 3.141592653589793 / 2.0 ) + 90.0 + > d = {{alias}}( -3.141592653589793 / 4.0 ) + -45.0 + > d = {{alias}}( NaN ) + NaN + + // Due to finite precision, canonical values may not be returned: + > d = {{alias}}( 3.141592653589793 / 6.0 ) + 29.999999999999996 + + See Also + -------- + diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/docs/types/index.d.ts b/lib/node_modules/@stdlib/math/base/special/rad2degf/docs/types/index.d.ts new file mode 100644 index 00000000000..b253aa9e575 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/docs/types/index.d.ts @@ -0,0 +1,44 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2024 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 + +/** +* Converts an angle from radians to degrees (single-precision). +* +* @param x - angle in radians +* @returns angle in degrees +* +* @example +* var d = rad2degf( 3.141592653589793 / 2.0 ); +* // returns 90.0 +* +* @example +* var d = rad2degf( -3.141592653589793 / 4.0 ); +* // returns -45.0 +* +* @example +* var d = rad2degf( NaN ); +* // returns NaN +*/ +declare function rad2degf( x: number ): number; + + +// EXPORTS // + +export = rad2degf; diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/docs/types/test.ts b/lib/node_modules/@stdlib/math/base/special/rad2degf/docs/types/test.ts new file mode 100644 index 00000000000..c60c8073531 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/docs/types/test.ts @@ -0,0 +1,44 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2024 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 rad2degf = require( './index' ); + + +// TESTS // + +// The function returns a number... +{ + rad2degf( 8 ); // $ExpectType number +} + +// The compiler throws an error if the function is provided a value other than a number... +{ + rad2degf( true ); // $ExpectError + rad2degf( false ); // $ExpectError + rad2degf( null ); // $ExpectError + rad2degf( undefined ); // $ExpectError + rad2degf( '5' ); // $ExpectError + rad2degf( [] ); // $ExpectError + rad2degf( {} ); // $ExpectError + rad2degf( ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function is provided insufficient arguments... +{ + rad2degf(); // $ExpectError +} diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/examples/c/Makefile b/lib/node_modules/@stdlib/math/base/special/rad2degf/examples/c/Makefile new file mode 100644 index 00000000000..6aed70daf16 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/examples/c/Makefile @@ -0,0 +1,146 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2024 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/rad2degf/examples/c/example.c b/lib/node_modules/@stdlib/math/base/special/rad2degf/examples/c/example.c new file mode 100644 index 00000000000..788d61fb6de --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/examples/c/example.c @@ -0,0 +1,33 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 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/rad2degf.h" +#include "stdlib/constants/float32/two_pi.h" +#include + +int main( void ) { + float x; + float d; + int i; + + for ( i = 0; i < 100; i++ ) { + x = (float)rand() / (float)RAND_MAX * STDLIB_CONSTANT_FLOAT32_TWO_PI; + d = stdlib_base_rad2degf( x ); + printf( "radians: %f => degrees: %f\n", x, d ); + } +} diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/examples/index.js b/lib/node_modules/@stdlib/math/base/special/rad2degf/examples/index.js new file mode 100644 index 00000000000..d57b59f855c --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/examples/index.js @@ -0,0 +1,33 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 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 randu = require( '@stdlib/random/base/randu' ); +var TWO_PI = require( '@stdlib/constants/float32/two-pi' ); +var rad2degf = require( './../lib' ); + +var r; +var d; +var i; + +for ( i = 0; i < 100; i++ ) { + r = randu() * TWO_PI; + d = rad2degf( r ); + console.log( 'radians: %d => degrees: %d', r, d ); +} diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/include.gypi b/lib/node_modules/@stdlib/math/base/special/rad2degf/include.gypi new file mode 100644 index 00000000000..575cb043c0b --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/include.gypi @@ -0,0 +1,53 @@ +# @license Apache-2.0 +# +# Copyright (c) 2024 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# A GYP include file for building a Node.js native add-on. +# +# Main documentation: +# +# [1]: https://gyp.gsrc.io/docs/InputFormatReference.md +# [2]: https://gyp.gsrc.io/docs/UserDocumentation.md +{ + # Define variables to be used throughout the configuration for all targets: + 'variables': { + # Source directory: + 'src_dir': './src', + + # Include directories: + 'include_dirs': [ + '=0.10.0", + "npm": ">2.7.0" + }, + "os": [ + "aix", + "darwin", + "freebsd", + "linux", + "macos", + "openbsd", + "sunos", + "win32", + "windows" + ], + "keywords": [ + "stdlib", + "stdmath", + "mathematics", + "math", + "trig", + "trigonometry", + "geometry", + "radians", + "degrees", + "angle", + "convert" + ] +} diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/src/Makefile b/lib/node_modules/@stdlib/math/base/special/rad2degf/src/Makefile new file mode 100644 index 00000000000..bcf18aa4665 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/src/Makefile @@ -0,0 +1,70 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2024 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/rad2degf/src/addon.c b/lib/node_modules/@stdlib/math/base/special/rad2degf/src/addon.c new file mode 100644 index 00000000000..801174ea2d1 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/src/addon.c @@ -0,0 +1,23 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 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/rad2degf.h" +#include "stdlib/math/base/napi/unary.h" + +// cppcheck-suppress shadowFunction +STDLIB_MATH_BASE_NAPI_MODULE_F_F( stdlib_base_rad2degf ) diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/src/main.c b/lib/node_modules/@stdlib/math/base/special/rad2degf/src/main.c new file mode 100644 index 00000000000..e92bdabde2e --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/src/main.c @@ -0,0 +1,38 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 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/rad2degf.h" + +// 180.0 / π +static const float CONST_180_DIV_PI = 57.29577951308232f; + +/** +* Converts an angle from radians to degrees (single-precision). +* +* @param x input value (in radians) +* @return output value (in degrees) +* +* @example +* float x = 3.141592653589793f / 2.0f +* +* float out = stdlib_base_rad2deg( x ); +* // returns 90.0f +*/ +float stdlib_base_rad2degf( const float x ) { + return x * CONST_180_DIV_PI; +} diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/test/fixtures/julia/REQUIRE b/lib/node_modules/@stdlib/math/base/special/rad2degf/test/fixtures/julia/REQUIRE new file mode 100644 index 00000000000..308c3be89c8 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/test/fixtures/julia/REQUIRE @@ -0,0 +1,2 @@ +julia 1.5 +JSON 0.21 diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/test/fixtures/julia/data.json b/lib/node_modules/@stdlib/math/base/special/rad2degf/test/fixtures/julia/data.json new file mode 100644 index 00000000000..d286888814a --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/test/fixtures/julia/data.json @@ -0,0 +1 @@ +{"expected":[-572.9577951308232,-572.3854097211021,-571.813024311381,-571.2406389016598,-570.6682534919388,-570.0958680822177,-569.5234826724967,-568.9510972627755,-568.3787118530544,-567.8063264433333,-567.2339410336122,-566.6615556238911,-566.0891702141699,-565.5167848044489,-564.9443993947278,-564.3720139850068,-563.7996285752856,-563.2272431655645,-562.6548577558434,-562.0824723461222,-561.5100869364012,-560.93770152668,-560.365316116959,-559.7929307072379,-559.2205452975168,-558.6481598877957,-558.0757744780745,-557.5033890683535,-556.9310036586323,-556.3586182489113,-555.7862328391901,-555.2138474294691,-554.641462019748,-554.0690766100269,-553.4966912003058,-552.9243057905846,-552.3519203808636,-551.7795349711424,-551.2071495614214,-550.6347641517002,-550.0623787419792,-549.4899933322581,-548.917607922537,-548.3452225128159,-547.7728371030947,-547.2004516933737,-546.6280662836525,-546.0556808739314,-545.4832954642103,-544.9109100544892,-544.3385246447682,-543.766139235047,-543.193753825326,-542.6213684156048,-542.0489830058837,-541.4765975961626,-540.9042121864414,-540.3318267767204,-539.7594413669993,-539.1870559572783,-538.6146705475571,-538.0422851378361,-537.4698997281149,-536.8975143183937,-536.3251289086727,-535.7527434989515,-535.1803580892305,-534.6079726795094,-534.0355872697884,-533.4632018600672,-532.890816450346,-532.318431040625,-531.7460456309038,-531.1736602211828,-530.6012748114616,-530.0288894017406,-529.4565039920195,-528.8841185822984,-528.3117331725773,-527.7393477628561,-527.1669623531351,-526.5945769434139,-526.0221915336929,-525.4498061239717,-524.8774207142507,-524.3050353045296,-523.7326498948084,-523.1602644850874,-522.5878790753662,-522.0154936656452,-521.443108255924,-520.870722846203,-520.2983374364818,-519.7259520267606,-519.1535666170397,-518.5811812073185,-518.0087957975975,-517.4364103878763,-516.8640249781553,-516.2916395684341,-515.7192541587129,-515.1468687489919,-514.5744833392707,-514.0020979295497,-513.4297125198286,-512.8573271101076,-512.2849417003864,-511.71255629066525,-511.1401708809442,-510.56778547122303,-509.99540006150204,-509.4230146517809,-508.8506292420598,-508.27824383233866,-507.7058584226176,-507.1334730128965,-506.56108760317534,-505.9887021934543,-505.4163167837331,-504.84393137401213,-504.27154596429097,-503.6991605545699,-503.12677514484875,-502.55438973512764,-501.9820043254066,-501.4096189156854,-500.8372335059644,-500.2648480962432,-499.6924626865222,-499.12007727680106,-498.5476918670799,-497.97530645735884,-497.40292104763773,-496.8305356379167,-496.2581502281955,-495.68576481847447,-495.1133794087533,-494.5409939990323,-493.96860858931115,-493.39622317959,-492.82383776986893,-492.2514523601478,-491.6790669504268,-491.1066815407056,-490.53429613098456,-489.9619107212634,-489.3895253115423,-488.81713990182124,-488.24475449210007,-487.672369082379,-487.0999836726579,-486.52759826293686,-485.9552128532157,-485.38282744349453,-484.8104420337735,-484.2380566240524,-483.6656712143313,-483.09328580461016,-482.5209003948891,-481.948514985168,-481.37612957544695,-480.8037441657258,-480.2313587560046,-479.6589733462836,-479.08658793656247,-478.5142025268414,-477.94181711712025,-477.3694317073992,-476.7970462976781,-476.22466088795693,-475.6522754782359,-475.0798900685147,-474.50750465879366,-473.93511924907256,-473.3627338393515,-472.79034842963034,-472.2179630199092,-471.6455776101882,-471.073192200467,-470.50080679074597,-469.9284213810248,-469.35603597130375,-468.78365056158265,-468.2112651518616,-467.63887974214043,-467.06649433241927,-466.4941089226983,-465.9217235129771,-465.34933810325606,-464.7769526935349,-464.20456728381384,-463.63218187409274,-463.0597964643716,-462.4874110546505,-461.91502564492936,-461.34264023520836,-460.7702548254872,-460.19786941576615,-459.625484006045,-459.0530985963239,-458.4807131866028,-457.9083277768817,-457.3359423671606,-456.76355695743945,-456.1911715477184,-455.6187861379973,-455.0464007282762,-454.4740153185551,-453.901629908834,-453.3292444991129,-452.7568590893918,-452.18447367967065,-451.61208826994954,-451.0397028602285,-450.4673174505074,-449.8949320407863,-449.32254663106517,-448.7501612213441,-448.17777581162295,-447.60539040190184,-447.03300499218074,-446.4606195824596,-445.8882341727386,-445.31584876301747,-444.74346335329636,-444.17107794357526,-443.59869253385415,-443.02630712413304,-442.45392171441193,-441.8815363046908,-441.3091508949697,-440.73676548524867,-440.16438007552756,-439.59199466580645,-439.0196092560853,-438.44722384636424,-437.87483843664313,-437.302453026922,-436.7300676172009,-436.1576822074798,-435.58529679775876,-435.0129113880376,-434.4405259783165,-433.8681405685954,-433.29575515887433,-432.7233697491532,-432.1509843394321,-431.578598929711,-431.0062135199899,-430.4338281102688,-429.8614427005477,-429.2890572908266,-428.71667188110547,-428.1442864713844,-427.5719010616633,-426.9995156519422,-426.42713024222104,-425.8547448325,-425.2823594227789,-424.7099740130578,-424.13758860333667,-423.56520319361556,-422.9928177838945,-422.4204323741734,-421.84804696445224,-421.27566155473113,-420.7032761450101,-420.130890735289,-419.55850532556786,-418.98611991584676,-418.41373450612565,-417.8413490964046,-417.26896368668343,-416.6965782769623,-416.1241928672412,-415.55180745752017,-414.97942204779906,-414.40703663807795,-413.83465122835685,-413.2622658186357,-412.68988040891463,-412.1174949991935,-411.5451095894724,-410.9727241797513,-410.40033877003026,-409.82795336030915,-409.25556795058804,-408.6831825408669,-408.1107971311458,-407.5384117214247,-406.9660263117036,-406.3936409019825,-405.8212554922614,-405.24887008254035,-404.67648467281924,-404.1040992630981,-403.53171385337697,-402.95932844365586,-402.3869430339348,-401.8145576242137,-401.2421722144926,-400.6697868047715,-400.0974013950504,-399.5250159853293,-398.95263057560817,-398.38024516588706,-397.80785975616595,-397.2354743464449,-396.6630889367238,-396.0907035270027,-395.5183181172815,-394.9459327075605,-394.37354729783937,-393.80116188811826,-393.22877647839715,-392.65639106867604,-392.084005658955,-391.5116202492339,-390.9392348395127,-390.3668494297916,-389.79446402007056,-389.22207861034946,-388.64969320062835,-388.07730779090724,-387.50492238118613,-386.932536971465,-386.3601515617439,-385.7877661520228,-385.2153807423017,-384.64299533258065,-384.07060992285955,-383.49822451313844,-382.92583910341733,-382.3534536936962,-381.7810682839751,-381.208682874254,-380.6362974645329,-380.0639120548118,-379.49152664509074,-378.91914123536964,-378.34675582564853,-377.77437041592736,-377.2019850062063,-376.6295995964852,-376.0572141867641,-375.484828777043,-374.9124433673219,-374.34005795760083,-373.76767254787967,-373.19528713815856,-372.62290172843745,-372.0505163187164,-371.4781309089953,-370.9057454992742,-370.3333600895531,-369.760974679832,-369.18858927011087,-368.61620386038976,-368.04381845066865,-367.47143304094755,-366.8990476312265,-366.3266622215054,-365.7542768117843,-365.1818914020631,-364.609505992342,-364.03712058262096,-363.46473517289985,-362.89234976317874,-362.31996435345764,-361.7475789437366,-361.1751935340155,-360.6028081242943,-360.0304227145732,-359.4580373048521,-358.88565189513105,-358.31326648540994,-357.74088107568883,-357.1684956659677,-356.5961102562467,-356.0237248465255,-355.4513394368044,-354.8789540270833,-354.3065686173622,-353.73418320764114,-353.16179779792003,-352.5894123881989,-352.01702697847776,-351.4446415687567,-350.8722561590356,-350.2998707493145,-349.7274853395934,-349.1550999298723,-348.5827145201512,-348.0103291104301,-347.43794370070896,-346.86555829098785,-346.2931728812668,-345.7207874715457,-345.1484020618246,-344.5760166521035,-344.00363124238237,-343.4312458326613,-342.85886042294015,-342.28647501321905,-341.71408960349794,-341.1417041937769,-340.5693187840558,-339.9969333743347,-339.42454796461357,-338.85216255489246,-338.27977714517135,-337.70739173545024,-337.13500632572914,-336.56262091600803,-335.990235506287,-335.41785009656587,-334.84546468684476,-334.2730792771236,-333.70069386740255,-333.12830845768144,-332.55592304796033,-331.9835376382392,-331.4111522285181,-330.83876681879707,-330.26638140907596,-329.6939959993548,-329.1216105896337,-328.54922517991264,-327.97683977019153,-327.4044543604704,-326.8320689507493,-326.2596835410282,-325.6872981313071,-325.114912721586,-324.5425273118649,-323.9701419021438,-323.39775649242273,-322.8253710827016,-322.2529856729805,-321.6806002632594,-321.1082148535383,-320.5358294438172,-319.9634440340961,-319.391058624375,-318.81867321465387,-318.2462878049328,-317.6739023952117,-317.1015169854906,-316.52913157576944,-315.9567461660484,-315.3843607563273,-314.8119753466062,-314.23958993688507,-313.66720452716396,-313.0948191174429,-312.52243370772175,-311.95004829800064,-311.37766288827953,-310.8052774785584,-310.2328920688374,-309.66050665911627,-309.08812124939516,-308.51573583967405,-307.94335042995294,-307.37096502023184,-306.7985796105107,-306.2261942007896,-305.6538087910685,-305.08142338134746,-304.50903797162636,-303.9366525619052,-303.3642671521841,-302.79188174246303,-302.2194963327419,-301.6471109230208,-301.0747255132997,-300.5023401035786,-299.92995469385755,-299.3575692841364,-298.7851838744153,-298.2127984646942,-297.6404130549731,-297.068027645252,-296.4956422355309,-295.9232568258098,-295.3508714160887,-294.7784860063676,-294.2061005966465,-293.6337151869254,-293.06132977720426,-292.4889443674832,-291.9165589577621,-291.344173548041,-290.77178813831983,-290.1994027285988,-289.6270173188777,-289.05463190915657,-288.48224649943546,-287.90986108971435,-287.3374756799933,-286.7650902702722,-286.19270486055103,-285.6203194508299,-285.0479340411089,-284.47554863138777,-283.90316322166666,-283.33077781194555,-282.75839240222444,-282.1860069925034,-281.61362158278223,-281.0412361730611,-280.46885076334,-279.89646535361896,-279.32407994389786,-278.75169453417675,-278.17930912445564,-277.60692371473453,-277.0345383050134,-276.4621528952923,-275.8897674855712,-275.3173820758501,-274.74499666612905,-274.17261125640795,-273.60022584668684,-273.0278404369657,-272.4554550272446,-271.8830696175235,-271.3106842078024,-270.7382987980813,-270.1659133883602,-269.59352797863914,-269.02114256891804,-268.4487571591969,-267.87637174947577,-267.3039863397547,-266.7316009300336,-266.1592155203125,-265.5868301105914,-265.0144447008703,-264.4420592911492,-263.86967388142807,-263.29728847170696,-262.72490306198586,-262.1525176522648,-261.5801322425437,-261.0077468328226,-260.4353614231015,-259.8629760133803,-259.29059060365927,-258.71820519393816,-258.14581978421705,-257.57343437449595,-257.00104896477484,-256.4286635550538,-255.85627814533262,-255.28389273561152,-254.71150732589044,-254.13912191616933,-253.56673650644825,-252.99435109672714,-252.42196568700606,-251.84958027728496,-251.27719486756382,-250.7048094578427,-250.1324240481216,-249.56003863840053,-248.98765322867942,-248.41526781895834,-247.84288240923723,-247.27049699951615,-246.698111589795,-246.1257261800739,-245.5533407703528,-244.9809553606317,-244.40856995091062,-243.8361845411895,-243.26379913146843,-242.69141372174727,-242.1190283120262,-241.54664290230508,-240.974257492584,-240.4018720828629,-239.8294866731418,-239.2571012634207,-238.6847158536996,-238.11233044397846,-237.53994503425736,-236.96755962453628,-236.39517421481517,-235.8227888050941,-235.25040339537298,-234.67801798565188,-234.1056325759308,-233.53324716620963,-232.96086175648855,-232.38847634676745,-231.81609093704637,-231.24370552732526,-230.67132011760418,-230.09893470788307,-229.52654929816194,-228.95416388844086,-228.38177847871972,-227.80939306899865,-227.23700765927754,-226.66462224955646,-226.09223683983532,-225.51985143011424,-224.94746602039314,-224.37508061067206,-223.80269520095092,-223.2303097912298,-222.65792438150874,-222.08553897178763,-221.51315356206652,-220.9407681523454,-220.36838274262433,-219.79599733290323,-219.22361192318212,-218.651226513461,-218.0788411037399,-217.5064556940188,-216.9340702842977,-216.3616848745766,-215.7892994648555,-215.2169140551344,-214.6445286454133,-214.0721432356922,-213.4997578259711,-212.92737241625,-212.3549870065289,-211.78260159680778,-211.2102161870867,-210.63783077736556,-210.0654453676445,-209.49305995792338,-208.9206745482023,-208.34828913848116,-207.77590372876008,-207.20351831903898,-206.63113290931784,-206.05874749959676,-205.48636208987566,-204.91397668015458,-204.34159127043344,-203.76920586071236,-203.19682045099125,-202.62443504127017,-202.05204963154904,-201.47966422182793,-200.90727881210685,-200.33489340238575,-199.76250799266464,-199.19012258294353,-198.61773717322245,-198.04535176350134,-197.47296635378024,-196.90058094405913,-196.32819553433802,-195.75581012461694,-195.1834247148958,-194.61103930517473,-194.03865389545362,-193.4662684857325,-192.8938830760114,-192.32149766629033,-191.74911225656922,-191.1767268468481,-190.604341437127,-190.0319560274059,-189.45957061768482,-188.88718520796368,-188.3147997982426,-187.7424143885215,-187.17002897880042,-186.59764356907928,-186.0252581593582,-185.4528727496371,-184.880487339916,-184.30810193019488,-183.73571652047377,-183.1633311107527,-182.59094570103156,-182.01856029131048,-181.44617488158937,-180.8737894718683,-180.30140406214716,-179.72901865242605,-179.15663324270497,-178.58424783298386,-178.01186242326276,-177.43947701354165,-176.86709160382057,-176.29470619409946,-175.72232078437835,-175.14993537465725,-174.57754996493614,-174.00516455521506,-173.43277914549392,-172.86039373577285,-172.28800832605174,-171.71562291633066,-171.14323750660952,-170.57085209688844,-169.99846668716734,-169.42608127744623,-168.85369586772512,-168.28131045800401,-167.70892504828294,-167.1365396385618,-166.56415422884072,-165.9917688191196,-165.41938340939853,-164.8469979996774,-164.27461258995632,-163.7022271802352,-163.1298417705141,-162.557456360793,-161.9850709510719,-161.4126855413508,-160.8403001316297,-160.2679147219086,-159.6955293121875,-159.1231439024664,-158.5507584927453,-157.9783730830242,-157.4059876733031,-156.83360226358198,-156.26121685386087,-155.68883144413977,-155.1164460344187,-154.54406062469758,-153.97167521497647,-153.39928980525536,-152.82690439553426,-152.25451898581318,-151.68213357609204,-151.10974816637096,-150.53736275664986,-149.96497734692878,-149.39259193720764,-148.82020652748656,-148.24782111776545,-147.67543570804435,-147.10305029832324,-146.53066488860213,-145.95827947888105,-145.38589406915992,-144.81350865943884,-144.24112324971773,-143.66873783999665,-143.09635243027552,-142.52396702055444,-141.95158161083333,-141.37919620111222,-140.80681079139111,-140.23442538167,-139.66203997194893,-139.08965456222782,-138.5172691525067,-137.9448837427856,-137.37249833306453,-136.80011292334342,-136.2277275136223,-135.6553421039012,-135.0829566941801,-134.51057128445902,-133.93818587473788,-133.3658004650168,-132.7934150552957,-132.2210296455746,-131.64864423585348,-131.0762588261324,-130.5038734164113,-129.93148800669016,-129.35910259696908,-128.78671718724797,-128.2143317775269,-127.64194636780576,-127.06956095808467,-126.49717554836357,-125.92479013864248,-125.35240472892136,-124.78001931920026,-124.20763390947917,-123.63524849975808,-123.06286309003696,-122.49047768031585,-121.91809227059476,-121.34570686087363,-120.77332145115254,-120.20093604143145,-119.62855063171035,-119.05616522198923,-118.48377981226814,-117.91139440254705,-117.33900899282594,-116.76662358310482,-116.19423817338372,-115.62185276366263,-115.04946735394154,-114.47708194422043,-113.90469653449932,-113.33231112477823,-112.75992571505712,-112.18754030533603,-111.6151548956149,-111.04276948589381,-110.4703840761727,-109.89799866645161,-109.3256132567305,-108.7532278470094,-108.1808424372883,-107.6084570275672,-107.0360716178461,-106.463686208125,-105.89130079840389,-105.31891538868278,-104.74652997896169,-104.17414456924058,-103.60175915951949,-103.02937374979838,-102.45698834007729,-101.88460293035618,-101.31221752063509,-100.73983211091397,-100.16744670119287,-99.59506129147177,-99.02267588175067,-98.45029047202956,-97.87790506230847,-97.30551965258736,-96.73313424286626,-96.16074883314516,-95.58836342342406,-95.01597801370295,-94.44359260398184,-93.87120719426075,-93.29882178453964,-92.72643637481855,-92.15405096509744,-91.58166555537635,-91.00928014565524,-90.43689473593415,-89.86450932621302,-89.29212391649193,-88.71973850677082,-88.14735309704973,-87.57496768732862,-87.00258227760753,-86.43019686788642,-85.85781145816533,-85.28542604844422,-84.71304063872311,-84.14065522900201,-83.5682698192809,-82.9958844095598,-82.4234989998387,-81.8511135901176,-81.2787281803965,-80.7063427706754,-80.1339573609543,-79.5615719512332,-78.9891865415121,-78.41680113179099,-77.84441572206988,-77.27203031234879,-76.69964490262768,-76.12725949290659,-75.55487408318548,-74.98248867346439,-74.41010326374328,-73.83771785402217,-73.26533244430107,-72.69294703457996,-72.12056162485887,-71.54817621513776,-70.97579080541666,-70.40340539569556,-69.83101998597446,-69.25863457625336,-68.68624916653226,-68.11386375681116,-67.54147834709005,-66.96909293736894,-66.39670752764785,-65.82432211792674,-65.25193670820565,-64.67955129848454,-64.10716588876345,-63.53478047904233,-62.96239506932124,-62.39000965960013,-61.81762424987904,-61.245238840157924,-60.67285343043682,-60.100468020715724,-59.528082610994616,-58.95569720127352,-58.38331179155241,-57.810926381831315,-57.238540972110215,-56.666155562389115,-56.093770152668014,-55.52138474294691,-54.94899933322581,-54.3766139235047,-53.8042285137836,-53.2318431040625,-52.65945769434139,-52.08707228462029,-51.51468687489919,-50.94230146517809,-50.36991605545698,-49.79753064573588,-49.22514523601478,-48.65275982629368,-48.08037441657258,-47.507989006851474,-46.935603597130374,-46.363218187409274,-45.79083277768817,-45.21844736796707,-44.646061958245966,-44.073676548524865,-43.501291138803765,-42.928905729082665,-42.35652031936156,-41.78413490964045,-41.21174949991935,-40.63936409019825,-40.06697868047715,-39.49459327075605,-38.92220786103494,-38.34982245131384,-37.77743704159274,-37.20505163187164,-36.63266622215053,-36.06028081242943,-35.48789540270833,-34.91550999298723,-34.34312458326613,-33.770739173545024,-33.198353763823924,-32.625968354102824,-32.05358294438172,-31.48119753466062,-30.90881212493952,-30.33642671521841,-29.764041305497308,-29.191655895776204,-28.619270486055107,-28.046885076334007,-27.474499666612903,-26.9021142568918,-26.329728847170696,-25.757343437449595,-25.18495802772849,-24.61257261800739,-24.04018720828629,-23.467801798565187,-22.895416388844087,-22.323030979122983,-21.750645569401883,-21.17826015968078,-20.605874749959675,-20.033489340238575,-19.46110393051747,-18.88871852079637,-18.316333111075267,-17.743947701354166,-17.171562291633066,-16.599176881911962,-16.02679147219086,-15.45440606246976,-14.882020652748654,-14.309635243027554,-13.737249833306452,-13.164864423585348,-12.592479013864246,-12.020093604143145,-11.447708194422043,-10.875322784700941,-10.302937374979837,-9.730551965258735,-9.158166555537633,-8.585781145816533,-8.01339573609543,-7.441010326374327,-6.868624916653226,-6.296239506932123,-5.723854097211022,-5.151468687489919,-4.579083277768817,-4.006697868047715,-3.434312458326613,-2.861927048605511,-2.2895416388844083,-1.7171562291633065,-1.1447708194422042,-0.5723854097211021,0.0,0.5723854097211021,1.1447708194422042,1.7171562291633065,2.2895416388844083,2.861927048605511,3.434312458326613,4.006697868047715,4.579083277768817,5.151468687489919,5.723854097211022,6.296239506932123,6.868624916653226,7.441010326374327,8.01339573609543,8.585781145816533,9.158166555537633,9.730551965258735,10.302937374979837,10.875322784700941,11.447708194422043,12.020093604143145,12.592479013864246,13.164864423585348,13.737249833306452,14.309635243027554,14.882020652748654,15.45440606246976,16.02679147219086,16.599176881911962,17.171562291633066,17.743947701354166,18.316333111075267,18.88871852079637,19.46110393051747,20.033489340238575,20.605874749959675,21.17826015968078,21.750645569401883,22.323030979122983,22.895416388844087,23.467801798565187,24.04018720828629,24.61257261800739,25.18495802772849,25.757343437449595,26.329728847170696,26.9021142568918,27.474499666612903,28.046885076334007,28.619270486055107,29.191655895776204,29.764041305497308,30.33642671521841,30.90881212493952,31.48119753466062,32.05358294438172,32.625968354102824,33.198353763823924,33.770739173545024,34.34312458326613,34.91550999298723,35.48789540270833,36.06028081242943,36.63266622215053,37.20505163187164,37.77743704159274,38.34982245131384,38.92220786103494,39.49459327075605,40.06697868047715,40.63936409019825,41.21174949991935,41.78413490964045,42.35652031936156,42.928905729082665,43.501291138803765,44.073676548524865,44.646061958245966,45.21844736796707,45.79083277768817,46.363218187409274,46.935603597130374,47.507989006851474,48.08037441657258,48.65275982629368,49.22514523601478,49.79753064573588,50.36991605545698,50.94230146517809,51.51468687489919,52.08707228462029,52.65945769434139,53.2318431040625,53.8042285137836,54.3766139235047,54.94899933322581,55.52138474294691,56.093770152668014,56.666155562389115,57.238540972110215,57.810926381831315,58.38331179155241,58.95569720127352,59.528082610994616,60.100468020715724,60.67285343043682,61.245238840157924,61.81762424987904,62.39000965960013,62.96239506932124,63.53478047904233,64.10716588876345,64.67955129848454,65.25193670820565,65.82432211792674,66.39670752764785,66.96909293736894,67.54147834709005,68.11386375681116,68.68624916653226,69.25863457625336,69.83101998597446,70.40340539569556,70.97579080541666,71.54817621513776,72.12056162485887,72.69294703457996,73.26533244430107,73.83771785402217,74.41010326374328,74.98248867346439,75.55487408318548,76.12725949290659,76.69964490262768,77.27203031234879,77.84441572206988,78.41680113179099,78.9891865415121,79.5615719512332,80.1339573609543,80.7063427706754,81.2787281803965,81.8511135901176,82.4234989998387,82.9958844095598,83.5682698192809,84.14065522900201,84.71304063872311,85.28542604844422,85.85781145816533,86.43019686788642,87.00258227760753,87.57496768732862,88.14735309704973,88.71973850677082,89.29212391649193,89.86450932621302,90.43689473593415,91.00928014565524,91.58166555537635,92.15405096509744,92.72643637481855,93.29882178453964,93.87120719426075,94.44359260398184,95.01597801370295,95.58836342342406,96.16074883314516,96.73313424286626,97.30551965258736,97.87790506230847,98.45029047202956,99.02267588175067,99.59506129147177,100.16744670119287,100.73983211091397,101.31221752063509,101.88460293035618,102.45698834007729,103.02937374979838,103.60175915951949,104.17414456924058,104.74652997896169,105.31891538868278,105.89130079840389,106.463686208125,107.0360716178461,107.6084570275672,108.1808424372883,108.7532278470094,109.3256132567305,109.89799866645161,110.4703840761727,111.04276948589381,111.6151548956149,112.18754030533603,112.75992571505712,113.33231112477823,113.90469653449932,114.47708194422043,115.04946735394154,115.62185276366263,116.19423817338372,116.76662358310482,117.33900899282594,117.91139440254705,118.48377981226814,119.05616522198923,119.62855063171035,120.20093604143145,120.77332145115254,121.34570686087363,121.91809227059476,122.49047768031585,123.06286309003696,123.63524849975808,124.20763390947917,124.78001931920026,125.35240472892136,125.92479013864248,126.49717554836357,127.06956095808467,127.64194636780576,128.2143317775269,128.78671718724797,129.35910259696908,129.93148800669016,130.5038734164113,131.0762588261324,131.64864423585348,132.2210296455746,132.7934150552957,133.3658004650168,133.93818587473788,134.51057128445902,135.0829566941801,135.6553421039012,136.2277275136223,136.80011292334342,137.37249833306453,137.9448837427856,138.5172691525067,139.08965456222782,139.66203997194893,140.23442538167,140.80681079139111,141.37919620111222,141.95158161083333,142.52396702055444,143.09635243027552,143.66873783999665,144.24112324971773,144.81350865943884,145.38589406915992,145.95827947888105,146.53066488860213,147.10305029832324,147.67543570804435,148.24782111776545,148.82020652748656,149.39259193720764,149.96497734692878,150.53736275664986,151.10974816637096,151.68213357609204,152.25451898581318,152.82690439553426,153.39928980525536,153.97167521497647,154.54406062469758,155.1164460344187,155.68883144413977,156.26121685386087,156.83360226358198,157.4059876733031,157.9783730830242,158.5507584927453,159.1231439024664,159.6955293121875,160.2679147219086,160.8403001316297,161.4126855413508,161.9850709510719,162.557456360793,163.1298417705141,163.7022271802352,164.27461258995632,164.8469979996774,165.41938340939853,165.9917688191196,166.56415422884072,167.1365396385618,167.70892504828294,168.28131045800401,168.85369586772512,169.42608127744623,169.99846668716734,170.57085209688844,171.14323750660952,171.71562291633066,172.28800832605174,172.86039373577285,173.43277914549392,174.00516455521506,174.57754996493614,175.14993537465725,175.72232078437835,176.29470619409946,176.86709160382057,177.43947701354165,178.01186242326276,178.58424783298386,179.15663324270497,179.72901865242605,180.30140406214716,180.8737894718683,181.44617488158937,182.01856029131048,182.59094570103156,183.1633311107527,183.73571652047377,184.30810193019488,184.880487339916,185.4528727496371,186.0252581593582,186.59764356907928,187.17002897880042,187.7424143885215,188.3147997982426,188.88718520796368,189.45957061768482,190.0319560274059,190.604341437127,191.1767268468481,191.74911225656922,192.32149766629033,192.8938830760114,193.4662684857325,194.03865389545362,194.61103930517473,195.1834247148958,195.75581012461694,196.32819553433802,196.90058094405913,197.47296635378024,198.04535176350134,198.61773717322245,199.19012258294353,199.76250799266464,200.33489340238575,200.90727881210685,201.47966422182793,202.05204963154904,202.62443504127017,203.19682045099125,203.76920586071236,204.34159127043344,204.91397668015458,205.48636208987566,206.05874749959676,206.63113290931784,207.20351831903898,207.77590372876008,208.34828913848116,208.9206745482023,209.49305995792338,210.0654453676445,210.63783077736556,211.2102161870867,211.78260159680778,212.3549870065289,212.92737241625,213.4997578259711,214.0721432356922,214.6445286454133,215.2169140551344,215.7892994648555,216.3616848745766,216.9340702842977,217.5064556940188,218.0788411037399,218.651226513461,219.22361192318212,219.79599733290323,220.36838274262433,220.9407681523454,221.51315356206652,222.08553897178763,222.65792438150874,223.2303097912298,223.80269520095092,224.37508061067206,224.94746602039314,225.51985143011424,226.09223683983532,226.66462224955646,227.23700765927754,227.80939306899865,228.38177847871972,228.95416388844086,229.52654929816194,230.09893470788307,230.67132011760418,231.24370552732526,231.81609093704637,232.38847634676745,232.96086175648855,233.53324716620963,234.1056325759308,234.67801798565188,235.25040339537298,235.8227888050941,236.39517421481517,236.96755962453628,237.53994503425736,238.11233044397846,238.6847158536996,239.2571012634207,239.8294866731418,240.4018720828629,240.974257492584,241.54664290230508,242.1190283120262,242.69141372174727,243.26379913146843,243.8361845411895,244.40856995091062,244.9809553606317,245.5533407703528,246.1257261800739,246.698111589795,247.27049699951615,247.84288240923723,248.41526781895834,248.98765322867942,249.56003863840053,250.1324240481216,250.7048094578427,251.27719486756382,251.84958027728496,252.42196568700606,252.99435109672714,253.56673650644825,254.13912191616933,254.71150732589044,255.28389273561152,255.85627814533262,256.4286635550538,257.00104896477484,257.57343437449595,258.14581978421705,258.71820519393816,259.29059060365927,259.8629760133803,260.4353614231015,261.0077468328226,261.5801322425437,262.1525176522648,262.72490306198586,263.29728847170696,263.86967388142807,264.4420592911492,265.0144447008703,265.5868301105914,266.1592155203125,266.7316009300336,267.3039863397547,267.87637174947577,268.4487571591969,269.02114256891804,269.59352797863914,270.1659133883602,270.7382987980813,271.3106842078024,271.8830696175235,272.4554550272446,273.0278404369657,273.60022584668684,274.17261125640795,274.74499666612905,275.3173820758501,275.8897674855712,276.4621528952923,277.0345383050134,277.60692371473453,278.17930912445564,278.75169453417675,279.32407994389786,279.89646535361896,280.46885076334,281.0412361730611,281.61362158278223,282.1860069925034,282.75839240222444,283.33077781194555,283.90316322166666,284.47554863138777,285.0479340411089,285.6203194508299,286.19270486055103,286.7650902702722,287.3374756799933,287.90986108971435,288.48224649943546,289.05463190915657,289.6270173188777,290.1994027285988,290.77178813831983,291.344173548041,291.9165589577621,292.4889443674832,293.06132977720426,293.6337151869254,294.2061005966465,294.7784860063676,295.3508714160887,295.9232568258098,296.4956422355309,297.068027645252,297.6404130549731,298.2127984646942,298.7851838744153,299.3575692841364,299.92995469385755,300.5023401035786,301.0747255132997,301.6471109230208,302.2194963327419,302.79188174246303,303.3642671521841,303.9366525619052,304.50903797162636,305.08142338134746,305.6538087910685,306.2261942007896,306.7985796105107,307.37096502023184,307.94335042995294,308.51573583967405,309.08812124939516,309.66050665911627,310.2328920688374,310.8052774785584,311.37766288827953,311.95004829800064,312.52243370772175,313.0948191174429,313.66720452716396,314.23958993688507,314.8119753466062,315.3843607563273,315.9567461660484,316.52913157576944,317.1015169854906,317.6739023952117,318.2462878049328,318.81867321465387,319.391058624375,319.9634440340961,320.5358294438172,321.1082148535383,321.6806002632594,322.2529856729805,322.8253710827016,323.39775649242273,323.9701419021438,324.5425273118649,325.114912721586,325.6872981313071,326.2596835410282,326.8320689507493,327.4044543604704,327.97683977019153,328.54922517991264,329.1216105896337,329.6939959993548,330.26638140907596,330.83876681879707,331.4111522285181,331.9835376382392,332.55592304796033,333.12830845768144,333.70069386740255,334.2730792771236,334.84546468684476,335.41785009656587,335.990235506287,336.56262091600803,337.13500632572914,337.70739173545024,338.27977714517135,338.85216255489246,339.42454796461357,339.9969333743347,340.5693187840558,341.1417041937769,341.71408960349794,342.28647501321905,342.85886042294015,343.4312458326613,344.00363124238237,344.5760166521035,345.1484020618246,345.7207874715457,346.2931728812668,346.86555829098785,347.43794370070896,348.0103291104301,348.5827145201512,349.1550999298723,349.7274853395934,350.2998707493145,350.8722561590356,351.4446415687567,352.01702697847776,352.5894123881989,353.16179779792003,353.73418320764114,354.3065686173622,354.8789540270833,355.4513394368044,356.0237248465255,356.5961102562467,357.1684956659677,357.74088107568883,358.31326648540994,358.88565189513105,359.4580373048521,360.0304227145732,360.6028081242943,361.1751935340155,361.7475789437366,362.31996435345764,362.89234976317874,363.46473517289985,364.03712058262096,364.609505992342,365.1818914020631,365.7542768117843,366.3266622215054,366.8990476312265,367.47143304094755,368.04381845066865,368.61620386038976,369.18858927011087,369.760974679832,370.3333600895531,370.9057454992742,371.4781309089953,372.0505163187164,372.62290172843745,373.19528713815856,373.76767254787967,374.34005795760083,374.9124433673219,375.484828777043,376.0572141867641,376.6295995964852,377.2019850062063,377.77437041592736,378.34675582564853,378.91914123536964,379.49152664509074,380.0639120548118,380.6362974645329,381.208682874254,381.7810682839751,382.3534536936962,382.92583910341733,383.49822451313844,384.07060992285955,384.64299533258065,385.2153807423017,385.7877661520228,386.3601515617439,386.932536971465,387.50492238118613,388.07730779090724,388.64969320062835,389.22207861034946,389.79446402007056,390.3668494297916,390.9392348395127,391.5116202492339,392.084005658955,392.65639106867604,393.22877647839715,393.80116188811826,394.37354729783937,394.9459327075605,395.5183181172815,396.0907035270027,396.6630889367238,397.2354743464449,397.80785975616595,398.38024516588706,398.95263057560817,399.5250159853293,400.0974013950504,400.6697868047715,401.2421722144926,401.8145576242137,402.3869430339348,402.95932844365586,403.53171385337697,404.1040992630981,404.67648467281924,405.24887008254035,405.8212554922614,406.3936409019825,406.9660263117036,407.5384117214247,408.1107971311458,408.6831825408669,409.25556795058804,409.82795336030915,410.40033877003026,410.9727241797513,411.5451095894724,412.1174949991935,412.68988040891463,413.2622658186357,413.83465122835685,414.40703663807795,414.97942204779906,415.55180745752017,416.1241928672412,416.6965782769623,417.26896368668343,417.8413490964046,418.41373450612565,418.98611991584676,419.55850532556786,420.130890735289,420.7032761450101,421.27566155473113,421.84804696445224,422.4204323741734,422.9928177838945,423.56520319361556,424.13758860333667,424.7099740130578,425.2823594227789,425.8547448325,426.42713024222104,426.9995156519422,427.5719010616633,428.1442864713844,428.71667188110547,429.2890572908266,429.8614427005477,430.4338281102688,431.0062135199899,431.578598929711,432.1509843394321,432.7233697491532,433.29575515887433,433.8681405685954,434.4405259783165,435.0129113880376,435.58529679775876,436.1576822074798,436.7300676172009,437.302453026922,437.87483843664313,438.44722384636424,439.0196092560853,439.59199466580645,440.16438007552756,440.73676548524867,441.3091508949697,441.8815363046908,442.45392171441193,443.02630712413304,443.59869253385415,444.17107794357526,444.74346335329636,445.31584876301747,445.8882341727386,446.4606195824596,447.03300499218074,447.60539040190184,448.17777581162295,448.7501612213441,449.32254663106517,449.8949320407863,450.4673174505074,451.0397028602285,451.61208826994954,452.18447367967065,452.7568590893918,453.3292444991129,453.901629908834,454.4740153185551,455.0464007282762,455.6187861379973,456.1911715477184,456.76355695743945,457.3359423671606,457.9083277768817,458.4807131866028,459.0530985963239,459.625484006045,460.19786941576615,460.7702548254872,461.34264023520836,461.91502564492936,462.4874110546505,463.0597964643716,463.63218187409274,464.20456728381384,464.7769526935349,465.34933810325606,465.9217235129771,466.4941089226983,467.06649433241927,467.63887974214043,468.2112651518616,468.78365056158265,469.35603597130375,469.9284213810248,470.50080679074597,471.073192200467,471.6455776101882,472.2179630199092,472.79034842963034,473.3627338393515,473.93511924907256,474.50750465879366,475.0798900685147,475.6522754782359,476.22466088795693,476.7970462976781,477.3694317073992,477.94181711712025,478.5142025268414,479.08658793656247,479.6589733462836,480.2313587560046,480.8037441657258,481.37612957544695,481.948514985168,482.5209003948891,483.09328580461016,483.6656712143313,484.2380566240524,484.8104420337735,485.38282744349453,485.9552128532157,486.52759826293686,487.0999836726579,487.672369082379,488.24475449210007,488.81713990182124,489.3895253115423,489.9619107212634,490.53429613098456,491.1066815407056,491.6790669504268,492.2514523601478,492.82383776986893,493.39622317959,493.96860858931115,494.5409939990323,495.1133794087533,495.68576481847447,496.2581502281955,496.8305356379167,497.40292104763773,497.97530645735884,498.5476918670799,499.12007727680106,499.6924626865222,500.2648480962432,500.8372335059644,501.4096189156854,501.9820043254066,502.55438973512764,503.12677514484875,503.6991605545699,504.27154596429097,504.84393137401213,505.4163167837331,505.9887021934543,506.56108760317534,507.1334730128965,507.7058584226176,508.27824383233866,508.8506292420598,509.4230146517809,509.99540006150204,510.56778547122303,511.1401708809442,511.71255629066525,512.2849417003864,512.8573271101076,513.4297125198286,514.0020979295497,514.5744833392707,515.1468687489919,515.7192541587129,516.2916395684341,516.8640249781553,517.4364103878763,518.0087957975975,518.5811812073185,519.1535666170397,519.7259520267606,520.2983374364818,520.870722846203,521.443108255924,522.0154936656452,522.5878790753662,523.1602644850874,523.7326498948084,524.3050353045296,524.8774207142507,525.4498061239717,526.0221915336929,526.5945769434139,527.1669623531351,527.7393477628561,528.3117331725773,528.8841185822984,529.4565039920195,530.0288894017406,530.6012748114616,531.1736602211828,531.7460456309038,532.318431040625,532.890816450346,533.4632018600672,534.0355872697884,534.6079726795094,535.1803580892305,535.7527434989515,536.3251289086727,536.8975143183937,537.4698997281149,538.0422851378361,538.6146705475571,539.1870559572783,539.7594413669993,540.3318267767204,540.9042121864414,541.4765975961626,542.0489830058837,542.6213684156048,543.193753825326,543.766139235047,544.3385246447682,544.9109100544892,545.4832954642103,546.0556808739314,546.6280662836525,547.2004516933737,547.7728371030947,548.3452225128159,548.917607922537,549.4899933322581,550.0623787419792,550.6347641517002,551.2071495614214,551.7795349711424,552.3519203808636,552.9243057905846,553.4966912003058,554.0690766100269,554.641462019748,555.2138474294691,555.7862328391901,556.3586182489113,556.9310036586323,557.5033890683535,558.0757744780745,558.6481598877957,559.2205452975168,559.7929307072379,560.365316116959,560.93770152668,561.5100869364012,562.0824723461222,562.6548577558434,563.2272431655645,563.7996285752856,564.3720139850068,564.9443993947278,565.5167848044489,566.0891702141699,566.6615556238911,567.2339410336122,567.8063264433333,568.3787118530544,568.9510972627755,569.5234826724967,570.0958680822177,570.6682534919388,571.2406389016598,571.813024311381,572.3854097211021,572.9577951308232],"x":[-10.0,-9.99000999000999,-9.98001998001998,-9.97002997002997,-9.96003996003996,-9.95004995004995,-9.94005994005994,-9.93006993006993,-9.92007992007992,-9.91008991008991,-9.9000999000999,-9.89010989010989,-9.88011988011988,-9.87012987012987,-9.86013986013986,-9.850149850149851,-9.84015984015984,-9.83016983016983,-9.82017982017982,-9.81018981018981,-9.8001998001998,-9.79020979020979,-9.780219780219781,-9.77022977022977,-9.76023976023976,-9.75024975024975,-9.74025974025974,-9.73026973026973,-9.72027972027972,-9.710289710289711,-9.7002997002997,-9.69030969030969,-9.68031968031968,-9.67032967032967,-9.66033966033966,-9.65034965034965,-9.640359640359641,-9.63036963036963,-9.620379620379621,-9.61038961038961,-9.6003996003996,-9.59040959040959,-9.58041958041958,-9.570429570429571,-9.56043956043956,-9.550449550449551,-9.54045954045954,-9.53046953046953,-9.52047952047952,-9.51048951048951,-9.500499500499501,-9.49050949050949,-9.480519480519481,-9.47052947052947,-9.46053946053946,-9.45054945054945,-9.44055944055944,-9.430569430569431,-9.42057942057942,-9.410589410589411,-9.4005994005994,-9.390609390609391,-9.38061938061938,-9.37062937062937,-9.360639360639361,-9.35064935064935,-9.340659340659341,-9.33066933066933,-9.320679320679321,-9.31068931068931,-9.3006993006993,-9.290709290709291,-9.28071928071928,-9.270729270729271,-9.26073926073926,-9.250749250749251,-9.24075924075924,-9.23076923076923,-9.220779220779221,-9.21078921078921,-9.200799200799201,-9.19080919080919,-9.180819180819181,-9.17082917082917,-9.160839160839162,-9.150849150849151,-9.14085914085914,-9.130869130869131,-9.12087912087912,-9.110889110889111,-9.1008991008991,-9.090909090909092,-9.080919080919081,-9.07092907092907,-9.060939060939061,-9.05094905094905,-9.040959040959041,-9.03096903096903,-9.020979020979022,-9.010989010989011,-9.000999000999,-8.991008991008991,-8.98101898101898,-8.971028971028971,-8.96103896103896,-8.951048951048952,-8.941058941058941,-8.93106893106893,-8.921078921078921,-8.91108891108891,-8.901098901098901,-8.89110889110889,-8.881118881118882,-8.871128871128871,-8.861138861138862,-8.851148851148851,-8.84115884115884,-8.831168831168831,-8.82117882117882,-8.811188811188812,-8.801198801198801,-8.791208791208792,-8.781218781218781,-8.77122877122877,-8.761238761238761,-8.75124875124875,-8.741258741258742,-8.731268731268731,-8.721278721278722,-8.711288711288711,-8.7012987012987,-8.691308691308691,-8.68131868131868,-8.671328671328672,-8.661338661338661,-8.651348651348652,-8.641358641358641,-8.631368631368632,-8.621378621378621,-8.61138861138861,-8.601398601398602,-8.591408591408591,-8.581418581418582,-8.571428571428571,-8.561438561438562,-8.551448551448551,-8.54145854145854,-8.531468531468532,-8.521478521478521,-8.511488511488512,-8.501498501498501,-8.491508491508492,-8.481518481518481,-8.47152847152847,-8.461538461538462,-8.451548451548451,-8.441558441558442,-8.431568431568431,-8.421578421578422,-8.411588411588411,-8.401598401598402,-8.391608391608392,-8.381618381618381,-8.371628371628372,-8.361638361638361,-8.351648351648352,-8.341658341658341,-8.331668331668332,-8.321678321678322,-8.311688311688311,-8.301698301698302,-8.291708291708291,-8.281718281718282,-8.271728271728271,-8.261738261738262,-8.251748251748252,-8.241758241758241,-8.231768231768232,-8.221778221778221,-8.211788211788212,-8.201798201798201,-8.191808191808192,-8.181818181818182,-8.171828171828173,-8.161838161838162,-8.151848151848151,-8.141858141858142,-8.131868131868131,-8.121878121878122,-8.111888111888112,-8.101898101898103,-8.091908091908092,-8.081918081918081,-8.071928071928072,-8.061938061938061,-8.051948051948052,-8.041958041958042,-8.031968031968033,-8.021978021978022,-8.011988011988011,-8.001998001998002,-7.992007992007992,-7.982017982017982,-7.972027972027972,-7.962037962037962,-7.952047952047952,-7.942057942057942,-7.932067932067932,-7.922077922077922,-7.912087912087912,-7.9020979020979025,-7.892107892107892,-7.882117882117882,-7.872127872127872,-7.862137862137862,-7.852147852147852,-7.842157842157842,-7.8321678321678325,-7.822177822177822,-7.812187812187812,-7.802197802197802,-7.792207792207792,-7.782217782217782,-7.772227772227772,-7.7622377622377625,-7.752247752247753,-7.742257742257742,-7.732267732267732,-7.722277722277722,-7.712287712287712,-7.702297702297702,-7.6923076923076925,-7.682317682317683,-7.672327672327673,-7.662337662337662,-7.652347652347652,-7.642357642357642,-7.632367632367632,-7.6223776223776225,-7.612387612387613,-7.602397602397603,-7.592407592407592,-7.582417582417582,-7.572427572427572,-7.562437562437562,-7.5524475524475525,-7.542457542457543,-7.532467532467533,-7.522477522477523,-7.512487512487512,-7.502497502497502,-7.492507492507492,-7.4825174825174825,-7.472527472527473,-7.462537462537463,-7.452547452547453,-7.442557442557442,-7.432567432567432,-7.422577422577422,-7.4125874125874125,-7.402597402597403,-7.392607392607393,-7.382617382617383,-7.372627372627373,-7.362637362637362,-7.352647352647352,-7.3426573426573425,-7.332667332667333,-7.322677322677323,-7.312687312687313,-7.302697302697303,-7.292707292707293,-7.282717282717282,-7.2727272727272725,-7.262737262737263,-7.252747252747253,-7.242757242757243,-7.232767232767233,-7.222777222777223,-7.212787212787212,-7.2027972027972025,-7.192807192807193,-7.182817182817183,-7.172827172827173,-7.162837162837163,-7.152847152847153,-7.142857142857143,-7.1328671328671325,-7.122877122877123,-7.112887112887113,-7.102897102897103,-7.092907092907093,-7.082917082917083,-7.072927072927073,-7.062937062937063,-7.052947052947053,-7.042957042957043,-7.032967032967033,-7.022977022977023,-7.012987012987013,-7.002997002997003,-6.993006993006993,-6.983016983016983,-6.973026973026973,-6.963036963036963,-6.953046953046953,-6.943056943056943,-6.933066933066933,-6.923076923076923,-6.9130869130869135,-6.903096903096903,-6.893106893106893,-6.883116883116883,-6.873126873126873,-6.863136863136863,-6.853146853146853,-6.8431568431568435,-6.833166833166834,-6.823176823176823,-6.813186813186813,-6.803196803196803,-6.793206793206793,-6.783216783216783,-6.7732267732267735,-6.763236763236764,-6.753246753246753,-6.743256743256743,-6.733266733266733,-6.723276723276723,-6.713286713286713,-6.7032967032967035,-6.693306693306694,-6.683316683316684,-6.673326673326673,-6.663336663336663,-6.653346653346653,-6.643356643356643,-6.6333666333666335,-6.623376623376624,-6.613386613386614,-6.603396603396604,-6.593406593406593,-6.583416583416583,-6.573426573426573,-6.5634365634365635,-6.553446553446554,-6.543456543456544,-6.533466533466534,-6.523476523476523,-6.513486513486513,-6.503496503496503,-6.4935064935064934,-6.483516483516484,-6.473526473526474,-6.463536463536464,-6.453546453546454,-6.443556443556443,-6.433566433566433,-6.4235764235764234,-6.413586413586414,-6.403596403596404,-6.393606393606394,-6.383616383616384,-6.373626373626373,-6.363636363636363,-6.353646353646353,-6.343656343656344,-6.333666333666334,-6.323676323676324,-6.313686313686314,-6.303696303696304,-6.293706293706293,-6.283716283716283,-6.273726273726274,-6.263736263736264,-6.253746253746254,-6.243756243756244,-6.233766233766234,-6.223776223776224,-6.213786213786213,-6.203796203796204,-6.193806193806194,-6.183816183816184,-6.173826173826174,-6.163836163836164,-6.153846153846154,-6.143856143856143,-6.1338661338661336,-6.123876123876124,-6.113886113886114,-6.103896103896104,-6.093906093906094,-6.083916083916084,-6.073926073926074,-6.0639360639360635,-6.053946053946054,-6.043956043956044,-6.033966033966034,-6.023976023976024,-6.013986013986014,-6.003996003996004,-5.994005994005994,-5.984015984015984,-5.974025974025974,-5.964035964035964,-5.954045954045954,-5.944055944055944,-5.934065934065934,-5.924075924075924,-5.914085914085914,-5.904095904095904,-5.894105894105894,-5.884115884115884,-5.874125874125874,-5.864135864135864,-5.854145854145854,-5.8441558441558445,-5.834165834165834,-5.824175824175824,-5.814185814185814,-5.804195804195804,-5.794205794205794,-5.784215784215784,-5.7742257742257745,-5.764235764235765,-5.754245754245754,-5.744255744255744,-5.734265734265734,-5.724275724275724,-5.714285714285714,-5.7042957042957045,-5.694305694305695,-5.684315684315684,-5.674325674325674,-5.664335664335664,-5.654345654345654,-5.644355644355644,-5.6343656343656345,-5.624375624375625,-5.614385614385615,-5.604395604395604,-5.594405594405594,-5.584415584415584,-5.574425574425574,-5.5644355644355645,-5.554445554445555,-5.544455544455545,-5.534465534465535,-5.524475524475524,-5.514485514485514,-5.504495504495504,-5.4945054945054945,-5.484515484515485,-5.474525474525475,-5.464535464535465,-5.454545454545454,-5.444555444555444,-5.434565434565434,-5.4245754245754245,-5.414585414585415,-5.404595404595405,-5.394605394605395,-5.384615384615385,-5.374625374625374,-5.364635364635364,-5.3546453546453545,-5.344655344655345,-5.334665334665335,-5.324675324675325,-5.314685314685315,-5.304695304695304,-5.294705294705294,-5.2847152847152845,-5.274725274725275,-5.264735264735265,-5.254745254745255,-5.244755244755245,-5.234765234765235,-5.224775224775224,-5.2147852147852145,-5.204795204795205,-5.194805194805195,-5.184815184815185,-5.174825174825175,-5.164835164835165,-5.154845154845155,-5.1448551448551445,-5.134865134865135,-5.124875124875125,-5.114885114885115,-5.104895104895105,-5.094905094905095,-5.084915084915085,-5.0749250749250745,-5.064935064935065,-5.054945054945055,-5.044955044955045,-5.034965034965035,-5.024975024975025,-5.014985014985015,-5.004995004995005,-4.995004995004995,-4.985014985014985,-4.975024975024975,-4.965034965034965,-4.955044955044955,-4.945054945054945,-4.935064935064935,-4.9250749250749255,-4.915084915084915,-4.905094905094905,-4.895104895104895,-4.885114885114885,-4.875124875124875,-4.865134865134865,-4.8551448551448555,-4.845154845154845,-4.835164835164835,-4.825174825174825,-4.815184815184815,-4.805194805194805,-4.795204795204795,-4.7852147852147855,-4.775224775224776,-4.765234765234765,-4.755244755244755,-4.745254745254745,-4.735264735264735,-4.725274725274725,-4.7152847152847155,-4.705294705294706,-4.695304695304696,-4.685314685314685,-4.675324675324675,-4.665334665334665,-4.655344655344655,-4.6453546453546455,-4.635364635364636,-4.625374625374626,-4.615384615384615,-4.605394605394605,-4.595404595404595,-4.585414585414585,-4.5754245754245755,-4.565434565434566,-4.555444555444556,-4.545454545454546,-4.535464535464535,-4.525474525474525,-4.515484515484515,-4.5054945054945055,-4.495504495504496,-4.485514485514486,-4.475524475524476,-4.465534465534465,-4.455544455544455,-4.445554445554445,-4.4355644355644355,-4.425574425574426,-4.415584415584416,-4.405594405594406,-4.395604395604396,-4.385614385614385,-4.375624375624375,-4.3656343656343655,-4.355644355644356,-4.345654345654346,-4.335664335664336,-4.325674325674326,-4.315684315684316,-4.305694305694305,-4.2957042957042955,-4.285714285714286,-4.275724275724276,-4.265734265734266,-4.255744255744256,-4.245754245754246,-4.235764235764235,-4.2257742257742255,-4.215784215784216,-4.205794205794206,-4.195804195804196,-4.185814185814186,-4.175824175824176,-4.165834165834166,-4.1558441558441555,-4.145854145854146,-4.135864135864136,-4.125874125874126,-4.115884115884116,-4.105894105894106,-4.095904095904096,-4.085914085914086,-4.075924075924076,-4.065934065934066,-4.055944055944056,-4.045954045954046,-4.035964035964036,-4.025974025974026,-4.015984015984016,-4.005994005994006,-3.996003996003996,-3.986013986013986,-3.976023976023976,-3.966033966033966,-3.956043956043956,-3.946053946053946,-3.936063936063936,-3.926073926073926,-3.9160839160839163,-3.906093906093906,-3.896103896103896,-3.886113886113886,-3.8761238761238763,-3.866133866133866,-3.856143856143856,-3.8461538461538463,-3.8361638361638364,-3.826173826173826,-3.816183816183816,-3.8061938061938063,-3.796203796203796,-3.786213786213786,-3.7762237762237763,-3.7662337662337664,-3.756243756243756,-3.746253746253746,-3.7362637362637363,-3.7262737262737264,-3.716283716283716,-3.7062937062937062,-3.6963036963036964,-3.6863136863136865,-3.676323676323676,-3.6663336663336663,-3.6563436563436564,-3.6463536463536466,-3.6363636363636362,-3.6263736263736264,-3.6163836163836165,-3.606393606393606,-3.5964035964035963,-3.5864135864135864,-3.5764235764235766,-3.5664335664335662,-3.5564435564435564,-3.5464535464535465,-3.5364635364635366,-3.5264735264735263,-3.5164835164835164,-3.5064935064935066,-3.4965034965034967,-3.4865134865134864,-3.4765234765234765,-3.4665334665334666,-3.4565434565434567,-3.4465534465534464,-3.4365634365634365,-3.4265734265734267,-3.416583416583417,-3.4065934065934065,-3.3966033966033966,-3.3866133866133867,-3.3766233766233764,-3.3666333666333665,-3.3566433566433567,-3.346653346653347,-3.3366633366633365,-3.3266733266733266,-3.3166833166833167,-3.306693306693307,-3.2967032967032965,-3.2867132867132867,-3.276723276723277,-3.266733266733267,-3.2567432567432566,-3.2467532467532467,-3.236763236763237,-3.226773226773227,-3.2167832167832167,-3.206793206793207,-3.196803196803197,-3.1868131868131866,-3.1768231768231767,-3.166833166833167,-3.156843156843157,-3.1468531468531467,-3.136863136863137,-3.126873126873127,-3.116883116883117,-3.1068931068931067,-3.096903096903097,-3.086913086913087,-3.076923076923077,-3.0669330669330668,-3.056943056943057,-3.046953046953047,-3.036963036963037,-3.026973026973027,-3.016983016983017,-3.006993006993007,-2.997002997002997,-2.987012987012987,-2.977022977022977,-2.967032967032967,-2.957042957042957,-2.947052947052947,-2.937062937062937,-2.927072927072927,-2.917082917082917,-2.907092907092907,-2.897102897102897,-2.8871128871128873,-2.877122877122877,-2.867132867132867,-2.857142857142857,-2.8471528471528473,-2.837162837162837,-2.827172827172827,-2.8171828171828173,-2.8071928071928074,-2.797202797202797,-2.787212787212787,-2.7772227772227773,-2.7672327672327675,-2.757242757242757,-2.7472527472527473,-2.7372627372627374,-2.727272727272727,-2.717282717282717,-2.7072927072927073,-2.6973026973026974,-2.687312687312687,-2.6773226773226773,-2.6673326673326674,-2.6573426573426575,-2.647352647352647,-2.6373626373626373,-2.6273726273726274,-2.6173826173826176,-2.6073926073926073,-2.5974025974025974,-2.5874125874125875,-2.5774225774225776,-2.5674325674325673,-2.5574425574425574,-2.5474525474525476,-2.5374625374625372,-2.5274725274725274,-2.5174825174825175,-2.5074925074925076,-2.4975024975024973,-2.4875124875124874,-2.4775224775224776,-2.4675324675324677,-2.4575424575424574,-2.4475524475524475,-2.4375624375624376,-2.4275724275724277,-2.4175824175824174,-2.4075924075924076,-2.3976023976023977,-2.387612387612388,-2.3776223776223775,-2.3676323676323676,-2.3576423576423577,-2.347652347652348,-2.3376623376623376,-2.3276723276723277,-2.317682317682318,-2.3076923076923075,-2.2977022977022976,-2.2877122877122877,-2.277722277722278,-2.2677322677322675,-2.2577422577422577,-2.247752247752248,-2.237762237762238,-2.2277722277722276,-2.2177822177822177,-2.207792207792208,-2.197802197802198,-2.1878121878121877,-2.177822177822178,-2.167832167832168,-2.157842157842158,-2.1478521478521477,-2.137862137862138,-2.127872127872128,-2.1178821178821177,-2.107892107892108,-2.097902097902098,-2.087912087912088,-2.0779220779220777,-2.067932067932068,-2.057942057942058,-2.047952047952048,-2.037962037962038,-2.027972027972028,-2.017982017982018,-2.007992007992008,-1.998001998001998,-1.988011988011988,-1.978021978021978,-1.968031968031968,-1.9580419580419581,-1.948051948051948,-1.9380619380619382,-1.928071928071928,-1.9180819180819182,-1.908091908091908,-1.898101898101898,-1.8881118881118881,-1.878121878121878,-1.8681318681318682,-1.858141858141858,-1.8481518481518482,-1.838161838161838,-1.8281718281718282,-1.8181818181818181,-1.8081918081918082,-1.7982017982017982,-1.7882117882117883,-1.7782217782217782,-1.7682317682317683,-1.7582417582417582,-1.7482517482517483,-1.7382617382617382,-1.7282717282717284,-1.7182817182817183,-1.7082917082917084,-1.6983016983016983,-1.6883116883116882,-1.6783216783216783,-1.6683316683316682,-1.6583416583416584,-1.6483516483516483,-1.6383616383616384,-1.6283716283716283,-1.6183816183816184,-1.6083916083916083,-1.5984015984015985,-1.5884115884115884,-1.5784215784215785,-1.5684315684315684,-1.5584415584415585,-1.5484515484515484,-1.5384615384615385,-1.5284715284715285,-1.5184815184815186,-1.5084915084915085,-1.4985014985014986,-1.4885114885114885,-1.4785214785214784,-1.4685314685314685,-1.4585414585414584,-1.4485514485514486,-1.4385614385614385,-1.4285714285714286,-1.4185814185814185,-1.4085914085914086,-1.3986013986013985,-1.3886113886113887,-1.3786213786213786,-1.3686313686313687,-1.3586413586413586,-1.3486513486513487,-1.3386613386613386,-1.3286713286713288,-1.3186813186813187,-1.3086913086913088,-1.2987012987012987,-1.2887112887112888,-1.2787212787212787,-1.2687312687312686,-1.2587412587412588,-1.2487512487512487,-1.2387612387612388,-1.2287712287712287,-1.2187812187812188,-1.2087912087912087,-1.1988011988011988,-1.1888111888111887,-1.1788211788211789,-1.1688311688311688,-1.158841158841159,-1.1488511488511488,-1.138861138861139,-1.1288711288711288,-1.118881118881119,-1.1088911088911089,-1.098901098901099,-1.088911088911089,-1.078921078921079,-1.068931068931069,-1.0589410589410588,-1.048951048951049,-1.0389610389610389,-1.028971028971029,-1.018981018981019,-1.008991008991009,-0.999000999000999,-0.989010989010989,-0.9790209790209791,-0.9690309690309691,-0.9590409590409591,-0.949050949050949,-0.939060939060939,-0.929070929070929,-0.919080919080919,-0.9090909090909091,-0.8991008991008991,-0.8891108891108891,-0.8791208791208791,-0.8691308691308691,-0.8591408591408591,-0.8491508491508492,-0.8391608391608392,-0.8291708291708292,-0.8191808191808192,-0.8091908091908092,-0.7992007992007992,-0.7892107892107892,-0.7792207792207793,-0.7692307692307693,-0.7592407592407593,-0.7492507492507493,-0.7392607392607392,-0.7292707292707292,-0.7192807192807192,-0.7092907092907093,-0.6993006993006993,-0.6893106893106893,-0.6793206793206793,-0.6693306693306693,-0.6593406593406593,-0.6493506493506493,-0.6393606393606394,-0.6293706293706294,-0.6193806193806194,-0.6093906093906094,-0.5994005994005994,-0.5894105894105894,-0.5794205794205795,-0.5694305694305695,-0.5594405594405595,-0.5494505494505495,-0.5394605394605395,-0.5294705294705294,-0.5194805194805194,-0.5094905094905094,-0.4995004995004995,-0.48951048951048953,-0.47952047952047955,-0.4695304695304695,-0.4595404595404595,-0.44955044955044954,-0.43956043956043955,-0.42957042957042957,-0.4195804195804196,-0.4095904095904096,-0.3996003996003996,-0.38961038961038963,-0.37962037962037964,-0.3696303696303696,-0.3596403596403596,-0.34965034965034963,-0.33966033966033965,-0.32967032967032966,-0.3196803196803197,-0.3096903096903097,-0.2997002997002997,-0.2897102897102897,-0.27972027972027974,-0.26973026973026976,-0.2597402597402597,-0.24975024975024976,-0.23976023976023977,-0.22977022977022976,-0.21978021978021978,-0.2097902097902098,-0.1998001998001998,-0.18981018981018982,-0.1798201798201798,-0.16983016983016982,-0.15984015984015984,-0.14985014985014986,-0.13986013986013987,-0.12987012987012986,-0.11988011988011989,-0.10989010989010989,-0.0999000999000999,-0.0899100899100899,-0.07992007992007992,-0.06993006993006994,-0.059940059940059943,-0.04995004995004995,-0.03996003996003996,-0.029970029970029972,-0.01998001998001998,-0.00999000999000999,0.0,0.00999000999000999,0.01998001998001998,0.029970029970029972,0.03996003996003996,0.04995004995004995,0.059940059940059943,0.06993006993006994,0.07992007992007992,0.0899100899100899,0.0999000999000999,0.10989010989010989,0.11988011988011989,0.12987012987012986,0.13986013986013987,0.14985014985014986,0.15984015984015984,0.16983016983016982,0.1798201798201798,0.18981018981018982,0.1998001998001998,0.2097902097902098,0.21978021978021978,0.22977022977022976,0.23976023976023977,0.24975024975024976,0.2597402597402597,0.26973026973026976,0.27972027972027974,0.2897102897102897,0.2997002997002997,0.3096903096903097,0.3196803196803197,0.32967032967032966,0.33966033966033965,0.34965034965034963,0.3596403596403596,0.3696303696303696,0.37962037962037964,0.38961038961038963,0.3996003996003996,0.4095904095904096,0.4195804195804196,0.42957042957042957,0.43956043956043955,0.44955044955044954,0.4595404595404595,0.4695304695304695,0.47952047952047955,0.48951048951048953,0.4995004995004995,0.5094905094905094,0.5194805194805194,0.5294705294705294,0.5394605394605395,0.5494505494505495,0.5594405594405595,0.5694305694305695,0.5794205794205795,0.5894105894105894,0.5994005994005994,0.6093906093906094,0.6193806193806194,0.6293706293706294,0.6393606393606394,0.6493506493506493,0.6593406593406593,0.6693306693306693,0.6793206793206793,0.6893106893106893,0.6993006993006993,0.7092907092907093,0.7192807192807192,0.7292707292707292,0.7392607392607392,0.7492507492507493,0.7592407592407593,0.7692307692307693,0.7792207792207793,0.7892107892107892,0.7992007992007992,0.8091908091908092,0.8191808191808192,0.8291708291708292,0.8391608391608392,0.8491508491508492,0.8591408591408591,0.8691308691308691,0.8791208791208791,0.8891108891108891,0.8991008991008991,0.9090909090909091,0.919080919080919,0.929070929070929,0.939060939060939,0.949050949050949,0.9590409590409591,0.9690309690309691,0.9790209790209791,0.989010989010989,0.999000999000999,1.008991008991009,1.018981018981019,1.028971028971029,1.0389610389610389,1.048951048951049,1.0589410589410588,1.068931068931069,1.078921078921079,1.088911088911089,1.098901098901099,1.1088911088911089,1.118881118881119,1.1288711288711288,1.138861138861139,1.1488511488511488,1.158841158841159,1.1688311688311688,1.1788211788211789,1.1888111888111887,1.1988011988011988,1.2087912087912087,1.2187812187812188,1.2287712287712287,1.2387612387612388,1.2487512487512487,1.2587412587412588,1.2687312687312686,1.2787212787212787,1.2887112887112888,1.2987012987012987,1.3086913086913088,1.3186813186813187,1.3286713286713288,1.3386613386613386,1.3486513486513487,1.3586413586413586,1.3686313686313687,1.3786213786213786,1.3886113886113887,1.3986013986013985,1.4085914085914086,1.4185814185814185,1.4285714285714286,1.4385614385614385,1.4485514485514486,1.4585414585414584,1.4685314685314685,1.4785214785214784,1.4885114885114885,1.4985014985014986,1.5084915084915085,1.5184815184815186,1.5284715284715285,1.5384615384615385,1.5484515484515484,1.5584415584415585,1.5684315684315684,1.5784215784215785,1.5884115884115884,1.5984015984015985,1.6083916083916083,1.6183816183816184,1.6283716283716283,1.6383616383616384,1.6483516483516483,1.6583416583416584,1.6683316683316682,1.6783216783216783,1.6883116883116882,1.6983016983016983,1.7082917082917084,1.7182817182817183,1.7282717282717284,1.7382617382617382,1.7482517482517483,1.7582417582417582,1.7682317682317683,1.7782217782217782,1.7882117882117883,1.7982017982017982,1.8081918081918082,1.8181818181818181,1.8281718281718282,1.838161838161838,1.8481518481518482,1.858141858141858,1.8681318681318682,1.878121878121878,1.8881118881118881,1.898101898101898,1.908091908091908,1.9180819180819182,1.928071928071928,1.9380619380619382,1.948051948051948,1.9580419580419581,1.968031968031968,1.978021978021978,1.988011988011988,1.998001998001998,2.007992007992008,2.017982017982018,2.027972027972028,2.037962037962038,2.047952047952048,2.057942057942058,2.067932067932068,2.0779220779220777,2.087912087912088,2.097902097902098,2.107892107892108,2.1178821178821177,2.127872127872128,2.137862137862138,2.1478521478521477,2.157842157842158,2.167832167832168,2.177822177822178,2.1878121878121877,2.197802197802198,2.207792207792208,2.2177822177822177,2.2277722277722276,2.237762237762238,2.247752247752248,2.2577422577422577,2.2677322677322675,2.277722277722278,2.2877122877122877,2.2977022977022976,2.3076923076923075,2.317682317682318,2.3276723276723277,2.3376623376623376,2.347652347652348,2.3576423576423577,2.3676323676323676,2.3776223776223775,2.387612387612388,2.3976023976023977,2.4075924075924076,2.4175824175824174,2.4275724275724277,2.4375624375624376,2.4475524475524475,2.4575424575424574,2.4675324675324677,2.4775224775224776,2.4875124875124874,2.4975024975024973,2.5074925074925076,2.5174825174825175,2.5274725274725274,2.5374625374625372,2.5474525474525476,2.5574425574425574,2.5674325674325673,2.5774225774225776,2.5874125874125875,2.5974025974025974,2.6073926073926073,2.6173826173826176,2.6273726273726274,2.6373626373626373,2.647352647352647,2.6573426573426575,2.6673326673326674,2.6773226773226773,2.687312687312687,2.6973026973026974,2.7072927072927073,2.717282717282717,2.727272727272727,2.7372627372627374,2.7472527472527473,2.757242757242757,2.7672327672327675,2.7772227772227773,2.787212787212787,2.797202797202797,2.8071928071928074,2.8171828171828173,2.827172827172827,2.837162837162837,2.8471528471528473,2.857142857142857,2.867132867132867,2.877122877122877,2.8871128871128873,2.897102897102897,2.907092907092907,2.917082917082917,2.927072927072927,2.937062937062937,2.947052947052947,2.957042957042957,2.967032967032967,2.977022977022977,2.987012987012987,2.997002997002997,3.006993006993007,3.016983016983017,3.026973026973027,3.036963036963037,3.046953046953047,3.056943056943057,3.0669330669330668,3.076923076923077,3.086913086913087,3.096903096903097,3.1068931068931067,3.116883116883117,3.126873126873127,3.136863136863137,3.1468531468531467,3.156843156843157,3.166833166833167,3.1768231768231767,3.1868131868131866,3.196803196803197,3.206793206793207,3.2167832167832167,3.226773226773227,3.236763236763237,3.2467532467532467,3.2567432567432566,3.266733266733267,3.276723276723277,3.2867132867132867,3.2967032967032965,3.306693306693307,3.3166833166833167,3.3266733266733266,3.3366633366633365,3.346653346653347,3.3566433566433567,3.3666333666333665,3.3766233766233764,3.3866133866133867,3.3966033966033966,3.4065934065934065,3.416583416583417,3.4265734265734267,3.4365634365634365,3.4465534465534464,3.4565434565434567,3.4665334665334666,3.4765234765234765,3.4865134865134864,3.4965034965034967,3.5064935064935066,3.5164835164835164,3.5264735264735263,3.5364635364635366,3.5464535464535465,3.5564435564435564,3.5664335664335662,3.5764235764235766,3.5864135864135864,3.5964035964035963,3.606393606393606,3.6163836163836165,3.6263736263736264,3.6363636363636362,3.6463536463536466,3.6563436563436564,3.6663336663336663,3.676323676323676,3.6863136863136865,3.6963036963036964,3.7062937062937062,3.716283716283716,3.7262737262737264,3.7362637362637363,3.746253746253746,3.756243756243756,3.7662337662337664,3.7762237762237763,3.786213786213786,3.796203796203796,3.8061938061938063,3.816183816183816,3.826173826173826,3.8361638361638364,3.8461538461538463,3.856143856143856,3.866133866133866,3.8761238761238763,3.886113886113886,3.896103896103896,3.906093906093906,3.9160839160839163,3.926073926073926,3.936063936063936,3.946053946053946,3.956043956043956,3.966033966033966,3.976023976023976,3.986013986013986,3.996003996003996,4.005994005994006,4.015984015984016,4.025974025974026,4.035964035964036,4.045954045954046,4.055944055944056,4.065934065934066,4.075924075924076,4.085914085914086,4.095904095904096,4.105894105894106,4.115884115884116,4.125874125874126,4.135864135864136,4.145854145854146,4.1558441558441555,4.165834165834166,4.175824175824176,4.185814185814186,4.195804195804196,4.205794205794206,4.215784215784216,4.2257742257742255,4.235764235764235,4.245754245754246,4.255744255744256,4.265734265734266,4.275724275724276,4.285714285714286,4.2957042957042955,4.305694305694305,4.315684315684316,4.325674325674326,4.335664335664336,4.345654345654346,4.355644355644356,4.3656343656343655,4.375624375624375,4.385614385614385,4.395604395604396,4.405594405594406,4.415584415584416,4.425574425574426,4.4355644355644355,4.445554445554445,4.455544455544455,4.465534465534465,4.475524475524476,4.485514485514486,4.495504495504496,4.5054945054945055,4.515484515484515,4.525474525474525,4.535464535464535,4.545454545454546,4.555444555444556,4.565434565434566,4.5754245754245755,4.585414585414585,4.595404595404595,4.605394605394605,4.615384615384615,4.625374625374626,4.635364635364636,4.6453546453546455,4.655344655344655,4.665334665334665,4.675324675324675,4.685314685314685,4.695304695304696,4.705294705294706,4.7152847152847155,4.725274725274725,4.735264735264735,4.745254745254745,4.755244755244755,4.765234765234765,4.775224775224776,4.7852147852147855,4.795204795204795,4.805194805194805,4.815184815184815,4.825174825174825,4.835164835164835,4.845154845154845,4.8551448551448555,4.865134865134865,4.875124875124875,4.885114885114885,4.895104895104895,4.905094905094905,4.915084915084915,4.9250749250749255,4.935064935064935,4.945054945054945,4.955044955044955,4.965034965034965,4.975024975024975,4.985014985014985,4.995004995004995,5.004995004995005,5.014985014985015,5.024975024975025,5.034965034965035,5.044955044955045,5.054945054945055,5.064935064935065,5.0749250749250745,5.084915084915085,5.094905094905095,5.104895104895105,5.114885114885115,5.124875124875125,5.134865134865135,5.1448551448551445,5.154845154845155,5.164835164835165,5.174825174825175,5.184815184815185,5.194805194805195,5.204795204795205,5.2147852147852145,5.224775224775224,5.234765234765235,5.244755244755245,5.254745254745255,5.264735264735265,5.274725274725275,5.2847152847152845,5.294705294705294,5.304695304695304,5.314685314685315,5.324675324675325,5.334665334665335,5.344655344655345,5.3546453546453545,5.364635364635364,5.374625374625374,5.384615384615385,5.394605394605395,5.404595404595405,5.414585414585415,5.4245754245754245,5.434565434565434,5.444555444555444,5.454545454545454,5.464535464535465,5.474525474525475,5.484515484515485,5.4945054945054945,5.504495504495504,5.514485514485514,5.524475524475524,5.534465534465535,5.544455544455545,5.554445554445555,5.5644355644355645,5.574425574425574,5.584415584415584,5.594405594405594,5.604395604395604,5.614385614385615,5.624375624375625,5.6343656343656345,5.644355644355644,5.654345654345654,5.664335664335664,5.674325674325674,5.684315684315684,5.694305694305695,5.7042957042957045,5.714285714285714,5.724275724275724,5.734265734265734,5.744255744255744,5.754245754245754,5.764235764235765,5.7742257742257745,5.784215784215784,5.794205794205794,5.804195804195804,5.814185814185814,5.824175824175824,5.834165834165834,5.8441558441558445,5.854145854145854,5.864135864135864,5.874125874125874,5.884115884115884,5.894105894105894,5.904095904095904,5.914085914085914,5.924075924075924,5.934065934065934,5.944055944055944,5.954045954045954,5.964035964035964,5.974025974025974,5.984015984015984,5.994005994005994,6.003996003996004,6.013986013986014,6.023976023976024,6.033966033966034,6.043956043956044,6.053946053946054,6.0639360639360635,6.073926073926074,6.083916083916084,6.093906093906094,6.103896103896104,6.113886113886114,6.123876123876124,6.1338661338661336,6.143856143856143,6.153846153846154,6.163836163836164,6.173826173826174,6.183816183816184,6.193806193806194,6.203796203796204,6.213786213786213,6.223776223776224,6.233766233766234,6.243756243756244,6.253746253746254,6.263736263736264,6.273726273726274,6.283716283716283,6.293706293706293,6.303696303696304,6.313686313686314,6.323676323676324,6.333666333666334,6.343656343656344,6.353646353646353,6.363636363636363,6.373626373626373,6.383616383616384,6.393606393606394,6.403596403596404,6.413586413586414,6.4235764235764234,6.433566433566433,6.443556443556443,6.453546453546454,6.463536463536464,6.473526473526474,6.483516483516484,6.4935064935064934,6.503496503496503,6.513486513486513,6.523476523476523,6.533466533466534,6.543456543456544,6.553446553446554,6.5634365634365635,6.573426573426573,6.583416583416583,6.593406593406593,6.603396603396604,6.613386613386614,6.623376623376624,6.6333666333666335,6.643356643356643,6.653346653346653,6.663336663336663,6.673326673326673,6.683316683316684,6.693306693306694,6.7032967032967035,6.713286713286713,6.723276723276723,6.733266733266733,6.743256743256743,6.753246753246753,6.763236763236764,6.7732267732267735,6.783216783216783,6.793206793206793,6.803196803196803,6.813186813186813,6.823176823176823,6.833166833166834,6.8431568431568435,6.853146853146853,6.863136863136863,6.873126873126873,6.883116883116883,6.893106893106893,6.903096903096903,6.9130869130869135,6.923076923076923,6.933066933066933,6.943056943056943,6.953046953046953,6.963036963036963,6.973026973026973,6.983016983016983,6.993006993006993,7.002997002997003,7.012987012987013,7.022977022977023,7.032967032967033,7.042957042957043,7.052947052947053,7.062937062937063,7.072927072927073,7.082917082917083,7.092907092907093,7.102897102897103,7.112887112887113,7.122877122877123,7.1328671328671325,7.142857142857143,7.152847152847153,7.162837162837163,7.172827172827173,7.182817182817183,7.192807192807193,7.2027972027972025,7.212787212787212,7.222777222777223,7.232767232767233,7.242757242757243,7.252747252747253,7.262737262737263,7.2727272727272725,7.282717282717282,7.292707292707293,7.302697302697303,7.312687312687313,7.322677322677323,7.332667332667333,7.3426573426573425,7.352647352647352,7.362637362637362,7.372627372627373,7.382617382617383,7.392607392607393,7.402597402597403,7.4125874125874125,7.422577422577422,7.432567432567432,7.442557442557442,7.452547452547453,7.462537462537463,7.472527472527473,7.4825174825174825,7.492507492507492,7.502497502497502,7.512487512487512,7.522477522477523,7.532467532467533,7.542457542457543,7.5524475524475525,7.562437562437562,7.572427572427572,7.582417582417582,7.592407592407592,7.602397602397603,7.612387612387613,7.6223776223776225,7.632367632367632,7.642357642357642,7.652347652347652,7.662337662337662,7.672327672327673,7.682317682317683,7.6923076923076925,7.702297702297702,7.712287712287712,7.722277722277722,7.732267732267732,7.742257742257742,7.752247752247753,7.7622377622377625,7.772227772227772,7.782217782217782,7.792207792207792,7.802197802197802,7.812187812187812,7.822177822177822,7.8321678321678325,7.842157842157842,7.852147852147852,7.862137862137862,7.872127872127872,7.882117882117882,7.892107892107892,7.9020979020979025,7.912087912087912,7.922077922077922,7.932067932067932,7.942057942057942,7.952047952047952,7.962037962037962,7.972027972027972,7.982017982017982,7.992007992007992,8.001998001998002,8.011988011988011,8.021978021978022,8.031968031968033,8.041958041958042,8.051948051948052,8.061938061938061,8.071928071928072,8.081918081918081,8.091908091908092,8.101898101898103,8.111888111888112,8.121878121878122,8.131868131868131,8.141858141858142,8.151848151848151,8.161838161838162,8.171828171828173,8.181818181818182,8.191808191808192,8.201798201798201,8.211788211788212,8.221778221778221,8.231768231768232,8.241758241758241,8.251748251748252,8.261738261738262,8.271728271728271,8.281718281718282,8.291708291708291,8.301698301698302,8.311688311688311,8.321678321678322,8.331668331668332,8.341658341658341,8.351648351648352,8.361638361638361,8.371628371628372,8.381618381618381,8.391608391608392,8.401598401598402,8.411588411588411,8.421578421578422,8.431568431568431,8.441558441558442,8.451548451548451,8.461538461538462,8.47152847152847,8.481518481518481,8.491508491508492,8.501498501498501,8.511488511488512,8.521478521478521,8.531468531468532,8.54145854145854,8.551448551448551,8.561438561438562,8.571428571428571,8.581418581418582,8.591408591408591,8.601398601398602,8.61138861138861,8.621378621378621,8.631368631368632,8.641358641358641,8.651348651348652,8.661338661338661,8.671328671328672,8.68131868131868,8.691308691308691,8.7012987012987,8.711288711288711,8.721278721278722,8.731268731268731,8.741258741258742,8.75124875124875,8.761238761238761,8.77122877122877,8.781218781218781,8.791208791208792,8.801198801198801,8.811188811188812,8.82117882117882,8.831168831168831,8.84115884115884,8.851148851148851,8.861138861138862,8.871128871128871,8.881118881118882,8.89110889110889,8.901098901098901,8.91108891108891,8.921078921078921,8.93106893106893,8.941058941058941,8.951048951048952,8.96103896103896,8.971028971028971,8.98101898101898,8.991008991008991,9.000999000999,9.010989010989011,9.020979020979022,9.03096903096903,9.040959040959041,9.05094905094905,9.060939060939061,9.07092907092907,9.080919080919081,9.090909090909092,9.1008991008991,9.110889110889111,9.12087912087912,9.130869130869131,9.14085914085914,9.150849150849151,9.160839160839162,9.17082917082917,9.180819180819181,9.19080919080919,9.200799200799201,9.21078921078921,9.220779220779221,9.23076923076923,9.24075924075924,9.250749250749251,9.26073926073926,9.270729270729271,9.28071928071928,9.290709290709291,9.3006993006993,9.31068931068931,9.320679320679321,9.33066933066933,9.340659340659341,9.35064935064935,9.360639360639361,9.37062937062937,9.38061938061938,9.390609390609391,9.4005994005994,9.410589410589411,9.42057942057942,9.430569430569431,9.44055944055944,9.45054945054945,9.46053946053946,9.47052947052947,9.480519480519481,9.49050949050949,9.500499500499501,9.51048951048951,9.52047952047952,9.53046953046953,9.54045954045954,9.550449550449551,9.56043956043956,9.570429570429571,9.58041958041958,9.59040959040959,9.6003996003996,9.61038961038961,9.620379620379621,9.63036963036963,9.640359640359641,9.65034965034965,9.66033966033966,9.67032967032967,9.68031968031968,9.69030969030969,9.7002997002997,9.710289710289711,9.72027972027972,9.73026973026973,9.74025974025974,9.75024975024975,9.76023976023976,9.77022977022977,9.780219780219781,9.79020979020979,9.8001998001998,9.81018981018981,9.82017982017982,9.83016983016983,9.84015984015984,9.850149850149851,9.86013986013986,9.87012987012987,9.88011988011988,9.89010989010989,9.9000999000999,9.91008991008991,9.92007992007992,9.93006993006993,9.94005994005994,9.95004995004995,9.96003996003996,9.97002997002997,9.98001998001998,9.99000999000999,10.0]} \ No newline at end of file diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/test/fixtures/julia/runner.jl b/lib/node_modules/@stdlib/math/base/special/rad2degf/test/fixtures/julia/runner.jl new file mode 100755 index 00000000000..7f2b9efc5ce --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/test/fixtures/julia/runner.jl @@ -0,0 +1,65 @@ +#!/usr/bin/env julia +# +# @license Apache-2.0 +# +# Copyright (c) 2024 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( domain, name ) + +Generate fixture data and write to file. + +# Arguments + +* `domain`: domain +* `name::AbstractString`: output filename + +# Examples + +``` julia +julia> x = range( -1000, stop = 1000, length = 2021 ); +julia> gen( x, \"data.json\" ); +``` +""" +function gen( domain, name ) + x = collect( domain ); + y = rad2deg.( x ); + + # Store data to be written to file as a collection: + data = Dict([ + ("x", x), + ("expected", 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) ); + close( outfile ); +end + +# Get the filename: +file = @__FILE__; + +# Extract the directory in which this file resides: +dir = dirname( file ); + +# Generate fixture data: +x = range( -10, stop = 10, length = 2003 ); +gen( x, "data.json" ); diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/test/test.js b/lib/node_modules/@stdlib/math/base/special/rad2degf/test/test.js new file mode 100644 index 00000000000..cd60f68f12b --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/test/test.js @@ -0,0 +1,165 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 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/float32/pinf' ); +var NINF = require( '@stdlib/constants/float32/ninf' ); +var PI = require( '@stdlib/constants/float32/pi' ); +var EPS = require( '@stdlib/constants/float32/eps' ); +var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var abs = require( '@stdlib/math/base/special/abs' ); +var float64ToFloat32 = require('@stdlib/number/float64/base/to-float32'); +var rad2degf = 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 rad2degf, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'if provided `+infinity`, the function returns `+infinity`', function test( t ) { + var r = rad2degf( PINF ); + t.equal( r, PINF, 'returns +infinity' ); + t.end(); +}); + +tape( 'if provided `-infinity`, the function returns `-infinity`', function test( t ) { + var r = rad2degf( NINF ); + t.equal( r, NINF, 'returns -infinity' ); + t.end(); +}); + +tape( 'if provided `NaN`, the function returns `NaN`', function test( t ) { + var r = rad2degf( NaN ); + t.equal( isnanf( r ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function converts an angle from radians to degrees', function test( t ) { + var expected; + var delta; + var tol; + var x; + var r; + var i; + var e; + + x = data.x; + expected = data.expected; + + for ( i = 0; i < x.length; i++ ) { + r = rad2degf( x[ i ] ); + e = float64ToFloat32( expected[ i ] ); + if ( r === e ) { + t.equal( r, e, 'x: '+x[ i ]+'. E: '+e ); + } else { + delta = abs( r - e ); + tol = EPS * abs( e ); + t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. y: '+r+'. E: '+e+'. tol: '+tol+'. Δ: '+delta+'.' ); + } + } + t.end(); +}); + +tape( 'the function converts an angle from radians to degrees (canonical values)', function test( t ) { + var expected; + var delta; + var tol; + var er; + var x; + var r; + var i; + + x = [ + PI / 6.0, + PI / 4.0, + PI / 3.0, + PI / 2.0, + 2.0 * PI / 3.0, + 3.0 * PI / 4.0, + 5.0 * PI / 6.0, + PI, + 7.0 * PI / 6.0, + 5.0 * PI / 4.0, + 4.0 * PI / 3.0, + 3.0 * PI / 2.0, + 5.0 * PI / 3.0, + 7.0 * PI / 4.0, + 11.0 * PI / 6.0, + 2 * PI + ]; + + expected = [ + 30.0, + 45.0, + 60.0, + 90.0, + 120.0, + 135.0, + 150.0, + 180.0, + 210.0, + 225.0, + 240.0, + 270.0, + 300.0, + 315.0, + 330.0, + 360.0 + ]; + for ( i = 0; i < x.length; i++ ) { + r = rad2degf( x[ i ] ); + er = float64ToFloat32( expected[ i ] ); + if ( r === er ) { + t.equal( r, er, 'x: '+x[ i ]+'. r: '+r+'. expected: '+er+'.' ); + } else { + delta = abs( r - er ); + tol = abs( EPS * er ); + t.equal( delta <= tol, true, 'x: '+x[ i ]+'. r: '+r+'. expected: '+er+'. delta: '+delta+'. tol: '+ tol+'.' ); + } + // Negative `x`: + r = rad2degf( -x[ i ] ); + er = float64ToFloat32( -expected[ i ] ); + if ( r === er ) { + t.equal( r, er, 'x: '+x[ i ]+'. r: '+r+'. expected: '+er+'.' ); + } else { + delta = abs( r - er ); + tol = abs( EPS * er ); + t.equal( delta <= tol, true, 'x: '+x[ i ]+'. r: '+r+'. expected: '+er+'. delta: '+delta+'. tol: '+ tol+'.' ); + } + } + t.end(); +}); + +tape( 'if provided a value greater than `~3.14e+38`, the function will underflow', function test( t ) { + var r = rad2degf( 3.14e+38 ); + t.equal( r, PINF, 'returns +infinity' ); + t.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/rad2degf/test/test.native.js new file mode 100644 index 00000000000..2f31f00e00f --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/test/test.native.js @@ -0,0 +1,174 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 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/float32/pinf' ); +var NINF = require( '@stdlib/constants/float32/ninf' ); +var PI = require( '@stdlib/constants/float32/pi' ); +var EPS = require( '@stdlib/constants/float32/eps' ); +var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var abs = require( '@stdlib/math/base/special/abs' ); +var float64ToFloat32 = require('@stdlib/number/float64/base/to-float32'); +var tryRequire = require( '@stdlib/utils/try-require' ); + + +// VARIABLES // + +var rad2degf = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( rad2degf 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 rad2degf, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'if provided `+infinity`, the function returns `+infinity`', opts, function test( t ) { + var r = rad2degf( PINF ); + t.equal( r, PINF, 'returns +infinity' ); + t.end(); +}); + +tape( 'if provided `-infinity`, the function returns `-infinity`', opts, function test( t ) { + var r = rad2degf( NINF ); + t.equal( r, NINF, 'returns -infinity' ); + t.end(); +}); + +tape( 'if provided `NaN`, the function returns `NaN`', opts, function test( t ) { + var r = rad2degf( NaN ); + t.equal( isnanf( r ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function converts an angle from radians to degrees', opts, function test( t ) { + var expected; + var delta; + var tol; + var x; + var r; + var i; + var e; + + x = data.x; + expected = data.expected; + + for ( i = 0; i < x.length; i++ ) { + r = rad2degf( x[ i ] ); + e = float64ToFloat32( expected[ i ] ); + if ( r === e ) { + t.equal( r, e, 'x: '+x[ i ]+'. E: '+e ); + } else { + delta = abs( r - e ); + tol = EPS * abs( e ); + t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. y: '+r+'. E: '+e+'. tol: '+tol+'. Δ: '+delta+'.' ); + } + } + t.end(); +}); + +tape( 'the function converts an angle from radians to degrees (canonical values)', opts, function test( t ) { + var expected; + var delta; + var tol; + var er; + var x; + var r; + var i; + + x = [ + PI / 6.0, + PI / 4.0, + PI / 3.0, + PI / 2.0, + 2.0 * PI / 3.0, + 3.0 * PI / 4.0, + 5.0 * PI / 6.0, + PI, + 7.0 * PI / 6.0, + 5.0 * PI / 4.0, + 4.0 * PI / 3.0, + 3.0 * PI / 2.0, + 5.0 * PI / 3.0, + 7.0 * PI / 4.0, + 11.0 * PI / 6.0, + 2 * PI + ]; + + expected = [ + 30.0, + 45.0, + 60.0, + 90.0, + 120.0, + 135.0, + 150.0, + 180.0, + 210.0, + 225.0, + 240.0, + 270.0, + 300.0, + 315.0, + 330.0, + 360.0 + ]; + for ( i = 0; i < x.length; i++ ) { + r = rad2degf( x[ i ] ); + er = float64ToFloat32( expected[ i ] ); + if ( r === er ) { + t.equal( r, er, 'x: '+x[ i ]+'. r: '+r+'. expected: '+er+'.' ); + } else { + delta = abs( r - er ); + tol = abs( EPS * er ); + t.equal( delta <= tol, true, 'x: '+x[ i ]+'. r: '+r+'. expected: '+er+'. delta: '+delta+'. tol: '+ tol+'.' ); + } + // Negative `x`: + r = rad2degf( -x[ i ] ); + er = float64ToFloat32( -expected[ i ] ); + if ( r === er ) { + t.equal( r, er, 'x: '+x[ i ]+'. r: '+r+'. expected: '+er+'.' ); + } else { + delta = abs( r - er ); + tol = abs( EPS * er ); + t.equal( delta <= tol, true, 'x: '+x[ i ]+'. r: '+r+'. expected: '+er+'. delta: '+delta+'. tol: '+ tol+'.' ); + } + } + t.end(); +}); + +tape( 'if provided a value greater than `~3.14e+38`, the function will underflow', opts, function test( t ) { + var r = rad2degf( 3.14e+38 ); + t.equal( r, PINF, 'returns +infinity' ); + t.end(); +}); From 724cd5832ad3f9e6c136221659352ea136b59aa2 Mon Sep 17 00:00:00 2001 From: GUNJ JOSHI Date: Sat, 6 Apr 2024 02:37:07 +0530 Subject: [PATCH 02/11] feat: add math/base/special/deg2radf --- .../@stdlib/math/base/special/rad2degf/examples/c/example.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/examples/c/example.c b/lib/node_modules/@stdlib/math/base/special/rad2degf/examples/c/example.c index 788d61fb6de..fa80b024d80 100644 --- a/lib/node_modules/@stdlib/math/base/special/rad2degf/examples/c/example.c +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/examples/c/example.c @@ -18,6 +18,7 @@ #include "stdlib/math/base/special/rad2degf.h" #include "stdlib/constants/float32/two_pi.h" +#include #include int main( void ) { From 4ddd7d16ce3607244bee8c2edeca0da08778bff7 Mon Sep 17 00:00:00 2001 From: GUNJ JOSHI Date: Sat, 6 Apr 2024 02:46:02 +0530 Subject: [PATCH 03/11] Update example.c Signed-off-by: GUNJ JOSHI --- .../math/base/special/rad2degf/examples/c/example.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/examples/c/example.c b/lib/node_modules/@stdlib/math/base/special/rad2degf/examples/c/example.c index fa80b024d80..1434dad0933 100644 --- a/lib/node_modules/@stdlib/math/base/special/rad2degf/examples/c/example.c +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/examples/c/example.c @@ -23,12 +23,12 @@ int main( void ) { float x; - float d; - int i; + float d; + int i; - for ( i = 0; i < 100; i++ ) { + for ( i = 0; i < 100; i++ ) { x = (float)rand() / (float)RAND_MAX * STDLIB_CONSTANT_FLOAT32_TWO_PI; - d = stdlib_base_rad2degf( x ); - printf( "radians: %f => degrees: %f\n", x, d ); - } + d = stdlib_base_rad2degf( x ); + printf( "radians: %f => degrees: %f\n", x, d ); + } } From 10878fc585b7bd0a005c41287b5b8de8c0eadf33 Mon Sep 17 00:00:00 2001 From: GUNJ JOSHI Date: Sat, 6 Apr 2024 02:49:51 +0530 Subject: [PATCH 04/11] Update main.c Signed-off-by: GUNJ JOSHI --- lib/node_modules/@stdlib/math/base/special/rad2degf/src/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/src/main.c b/lib/node_modules/@stdlib/math/base/special/rad2degf/src/main.c index e92bdabde2e..15519734c16 100644 --- a/lib/node_modules/@stdlib/math/base/special/rad2degf/src/main.c +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/src/main.c @@ -25,7 +25,7 @@ static const float CONST_180_DIV_PI = 57.29577951308232f; * Converts an angle from radians to degrees (single-precision). * * @param x input value (in radians) -* @return output value (in degrees) +* @return output value (in degrees) * * @example * float x = 3.141592653589793f / 2.0f From 57f969247c363242077941dfaa4ce30405bb6756 Mon Sep 17 00:00:00 2001 From: Athan Date: Fri, 5 Apr 2024 15:17:42 -0700 Subject: [PATCH 05/11] Apply suggestions from code review Signed-off-by: Athan --- .../@stdlib/math/base/special/rad2degf/lib/main.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/lib/main.js b/lib/node_modules/@stdlib/math/base/special/rad2degf/lib/main.js index 76342329679..d0e8a8659ab 100644 --- a/lib/node_modules/@stdlib/math/base/special/rad2degf/lib/main.js +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/lib/main.js @@ -26,7 +26,7 @@ var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' ); // VARIABLES // // 180.0 / π -var CONST_180_DIV_PI = 57.29577951308232; +var CONST_180_DIV_PI = float64ToFloat32( 57.29577951308232 ); // MAIN // @@ -50,7 +50,7 @@ var CONST_180_DIV_PI = 57.29577951308232; * // returns NaN */ function rad2degf( x ) { - return float64ToFloat32( x * float64ToFloat32( CONST_180_DIV_PI ) ); + return float64ToFloat32( x * CONST_180_DIV_PI ); } From cdf11e6e8953fe453a8332c5b92832560ae56d37 Mon Sep 17 00:00:00 2001 From: Athan Date: Fri, 5 Apr 2024 15:19:09 -0700 Subject: [PATCH 06/11] Apply suggestions from code review Signed-off-by: Athan --- lib/node_modules/@stdlib/math/base/special/rad2degf/lib/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/lib/main.js b/lib/node_modules/@stdlib/math/base/special/rad2degf/lib/main.js index d0e8a8659ab..184ac382d14 100644 --- a/lib/node_modules/@stdlib/math/base/special/rad2degf/lib/main.js +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/lib/main.js @@ -50,7 +50,7 @@ var CONST_180_DIV_PI = float64ToFloat32( 57.29577951308232 ); * // returns NaN */ function rad2degf( x ) { - return float64ToFloat32( x * CONST_180_DIV_PI ); + return float64ToFloat32( float64ToFloat32( x ) * CONST_180_DIV_PI ); } From ac91fa62ed6b63bb95379714470e63ee1c713540 Mon Sep 17 00:00:00 2001 From: Athan Date: Fri, 5 Apr 2024 15:20:19 -0700 Subject: [PATCH 07/11] Apply suggestions from code review Signed-off-by: Athan --- lib/node_modules/@stdlib/math/base/special/rad2degf/src/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/src/main.c b/lib/node_modules/@stdlib/math/base/special/rad2degf/src/main.c index 15519734c16..97ab8adb00e 100644 --- a/lib/node_modules/@stdlib/math/base/special/rad2degf/src/main.c +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/src/main.c @@ -28,7 +28,7 @@ static const float CONST_180_DIV_PI = 57.29577951308232f; * @return output value (in degrees) * * @example -* float x = 3.141592653589793f / 2.0f +* float x = 3.141592653589793f / 2.0f; * * float out = stdlib_base_rad2deg( x ); * // returns 90.0f From 092d3ce5d2ab817795a1cdb0c7b04c7f0b1b5bf9 Mon Sep 17 00:00:00 2001 From: Athan Date: Fri, 5 Apr 2024 15:25:25 -0700 Subject: [PATCH 08/11] Apply suggestions from code review Signed-off-by: Athan --- .../@stdlib/math/base/special/rad2degf/test/test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/test/test.js b/lib/node_modules/@stdlib/math/base/special/rad2degf/test/test.js index cd60f68f12b..4eb7b913051 100644 --- a/lib/node_modules/@stdlib/math/base/special/rad2degf/test/test.js +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/test/test.js @@ -141,7 +141,7 @@ tape( 'the function converts an angle from radians to degrees (canonical values) t.equal( r, er, 'x: '+x[ i ]+'. r: '+r+'. expected: '+er+'.' ); } else { delta = abs( r - er ); - tol = abs( EPS * er ); + tol = EPS * abs( er ); t.equal( delta <= tol, true, 'x: '+x[ i ]+'. r: '+r+'. expected: '+er+'. delta: '+delta+'. tol: '+ tol+'.' ); } // Negative `x`: @@ -151,7 +151,7 @@ tape( 'the function converts an angle from radians to degrees (canonical values) t.equal( r, er, 'x: '+x[ i ]+'. r: '+r+'. expected: '+er+'.' ); } else { delta = abs( r - er ); - tol = abs( EPS * er ); + tol = EPS * abs( er ); t.equal( delta <= tol, true, 'x: '+x[ i ]+'. r: '+r+'. expected: '+er+'. delta: '+delta+'. tol: '+ tol+'.' ); } } From 40c38ac55e1434099f6ee288fa2d790e7d850298 Mon Sep 17 00:00:00 2001 From: Athan Date: Fri, 5 Apr 2024 15:27:44 -0700 Subject: [PATCH 09/11] Apply suggestions from code review Signed-off-by: Athan --- .../@stdlib/math/base/special/rad2degf/test/test.native.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/rad2degf/test/test.native.js index 2f31f00e00f..1871051f239 100644 --- a/lib/node_modules/@stdlib/math/base/special/rad2degf/test/test.native.js +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/test/test.native.js @@ -150,7 +150,7 @@ tape( 'the function converts an angle from radians to degrees (canonical values) t.equal( r, er, 'x: '+x[ i ]+'. r: '+r+'. expected: '+er+'.' ); } else { delta = abs( r - er ); - tol = abs( EPS * er ); + tol = EPS * abs( er ); t.equal( delta <= tol, true, 'x: '+x[ i ]+'. r: '+r+'. expected: '+er+'. delta: '+delta+'. tol: '+ tol+'.' ); } // Negative `x`: @@ -160,7 +160,7 @@ tape( 'the function converts an angle from radians to degrees (canonical values) t.equal( r, er, 'x: '+x[ i ]+'. r: '+r+'. expected: '+er+'.' ); } else { delta = abs( r - er ); - tol = abs( EPS * er ); + tol = EPS * abs( er ); t.equal( delta <= tol, true, 'x: '+x[ i ]+'. r: '+r+'. expected: '+er+'. delta: '+delta+'. tol: '+ tol+'.' ); } } From 4dba125c8ce9b3b3d1528dc7d8cd1f9d6463bafc Mon Sep 17 00:00:00 2001 From: Athan Date: Fri, 5 Apr 2024 15:31:34 -0700 Subject: [PATCH 10/11] Apply suggestions from code review Signed-off-by: Athan --- .../@stdlib/math/base/special/rad2degf/test/test.js | 4 ++-- .../@stdlib/math/base/special/rad2degf/test/test.native.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/test/test.js b/lib/node_modules/@stdlib/math/base/special/rad2degf/test/test.js index 4eb7b913051..ba1feb96a25 100644 --- a/lib/node_modules/@stdlib/math/base/special/rad2degf/test/test.js +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/test/test.js @@ -158,8 +158,8 @@ tape( 'the function converts an angle from radians to degrees (canonical values) t.end(); }); -tape( 'if provided a value greater than `~3.14e+38`, the function will underflow', function test( t ) { - var r = rad2degf( 3.14e+38 ); +tape( 'if provided a value greater than `~6e+36`, the function will underflow', function test( t ) { + var r = rad2degf( 6.0e+36 ); t.equal( r, PINF, 'returns +infinity' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/rad2degf/test/test.native.js index 1871051f239..28110520493 100644 --- a/lib/node_modules/@stdlib/math/base/special/rad2degf/test/test.native.js +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/test/test.native.js @@ -167,8 +167,8 @@ tape( 'the function converts an angle from radians to degrees (canonical values) t.end(); }); -tape( 'if provided a value greater than `~3.14e+38`, the function will underflow', opts, function test( t ) { - var r = rad2degf( 3.14e+38 ); +tape( 'if provided a value greater than `~6e+36`, the function will underflow', opts, function test( t ) { + var r = rad2degf( 6.0e+36 ); t.equal( r, PINF, 'returns +infinity' ); t.end(); }); From df24e888aef1499b623da998ca9482481af49d01 Mon Sep 17 00:00:00 2001 From: Athan Date: Fri, 5 Apr 2024 15:33:47 -0700 Subject: [PATCH 11/11] Apply suggestions from code review Signed-off-by: Athan --- lib/node_modules/@stdlib/math/base/special/rad2degf/README.md | 2 +- .../@stdlib/math/base/special/rad2degf/docs/repl.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/README.md b/lib/node_modules/@stdlib/math/base/special/rad2degf/README.md index 57243481f09..e931786d119 100644 --- a/lib/node_modules/@stdlib/math/base/special/rad2degf/README.md +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/README.md @@ -57,7 +57,7 @@ d = rad2degf( NaN ); ```javascript var d = rad2degf( 3.141592653589793 / 6.0 ); - // returns 29.999999999999996 + // returns 30.000001907348633 ``` diff --git a/lib/node_modules/@stdlib/math/base/special/rad2degf/docs/repl.txt b/lib/node_modules/@stdlib/math/base/special/rad2degf/docs/repl.txt index 895386a7820..08ac72cdb91 100644 --- a/lib/node_modules/@stdlib/math/base/special/rad2degf/docs/repl.txt +++ b/lib/node_modules/@stdlib/math/base/special/rad2degf/docs/repl.txt @@ -23,7 +23,7 @@ // Due to finite precision, canonical values may not be returned: > d = {{alias}}( 3.141592653589793 / 6.0 ) - 29.999999999999996 + 30.000001907348633 See Also --------