diff --git a/CHANGELOG.md b/CHANGELOG.md index dfa8bda53..610f0b3ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@
-## Unreleased (2024-08-31) +## Unreleased (2024-09-02)
@@ -76,6 +76,28 @@ +
+ +#### [@stdlib/math/base/special/aversinf](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/math/base/special/aversinf) + +
+ +
+ +##### Features + +- [`4bddc16`](https://github.com/stdlib-js/stdlib/commit/4bddc16dfcdc4d18a95bbd08abc869f58d77396b) - add `math/base/special/aversinf` [(#2852)](https://github.com/stdlib-js/stdlib/pull/2852) + +
+ + + +
+ +
+ + +
#### [@stdlib/math/base/special/ldexpf](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/math/base/special/ldexpf) @@ -254,6 +276,7 @@ A total of 3 people contributed to this release. Thank you to the following cont
+- [`4bddc16`](https://github.com/stdlib-js/stdlib/commit/4bddc16dfcdc4d18a95bbd08abc869f58d77396b) - **feat:** add `math/base/special/aversinf` [(#2852)](https://github.com/stdlib-js/stdlib/pull/2852) _(by Gunj Joshi)_ - [`ff629c7`](https://github.com/stdlib-js/stdlib/commit/ff629c760ef40d9245a87a56716ea7a12145f6b2) - **feat:** add `math/base/special/maxabsf` _(by Gunj Joshi, Philipp Burckhardt)_ - [`6b76aa9`](https://github.com/stdlib-js/stdlib/commit/6b76aa904c33cbe3f3c28b61ae7797e444d13e52) - **feat:** add `math/base/special/avercosf` [(#2846)](https://github.com/stdlib-js/stdlib/pull/2846) _(by Gunj Joshi)_ - [`f65c856`](https://github.com/stdlib-js/stdlib/commit/f65c8563ab3b3a25883d020332f4a594aa69892a) - **refactor:** use stdlib `fmod` and `DDD_D` napi function in `math/base/special/wrap` [(#2814)](https://github.com/stdlib-js/stdlib/pull/2814) _(by Gunj Joshi)_ diff --git a/base/special/aversinf/README.md b/base/special/aversinf/README.md new file mode 100644 index 000000000..e845ad7aa --- /dev/null +++ b/base/special/aversinf/README.md @@ -0,0 +1,215 @@ + + +# Arcversinef + +> Compute the [inverse versed sine][inverse-versed-sine] of a single-precision floating-point number (in radians). + +
+ +The [inverse versed sine][inverse-versed-sine] is defined as + + + +```math +\mathop{\mathrm{aversinf}}(\theta) = \arccos(1-\theta) +``` + + + +
+ + + +
+ +## Usage + +```javascript +var aversinf = require( '@stdlib/math/base/special/aversinf' ); +``` + +#### aversinf( x ) + +Computes the [inverse versed sine][inverse-versed-sine] of a single-precision floating-point number (in radians). + +```javascript +var v = aversinf( 0.0 ); +// returns 0.0 + +v = aversinf( 3.141592653589793 / 2.0 ); +// returns ~2.1783 + +v = aversinf( 3.141592653589793 / 6.0 ); +// returns ~1.0742 +``` + +If `x < 0`, `x > 2`, or `x` is `NaN`, the function returns `NaN`. + +```javascript +var v = aversinf( -1.0 ); +// returns NaN + +v = aversinf( 3.14 ); +// returns NaN + +v = aversinf( NaN ); +// returns NaN +``` + +
+ + + +
+ +## Examples + + + +```javascript +var linspace = require( '@stdlib/array/base/linspace' ); +var aversinf = require( '@stdlib/math/base/special/aversinf' ); + +var x = linspace( 0.0, 2.0, 100 ); + +var i; +for ( i = 0; i < x.length; i++ ) { + console.log( aversinf( x[ i ] ) ); +} +``` + +
+ + + + + +* * * + +
+ +## C APIs + + + +
+ +
+ + + + + +
+ +### Usage + +```c +#include "stdlib/math/base/special/aversinf.h" +``` + +#### stdlib_base_aversinf( x ) + +Compute the [inverse versed sine][inverse-versed-sine] of a single-precision floating-point number (in radians). + +```c +float out = stdlib_base_aversinf( 3.141592653589793f / 2.0f ); +// returns ~2.1783f +``` + +If `x < 0`, `x > 2`, or `x` is `NaN`, the function returns `NaN`. + +```c +float out = stdlib_base_aversinf( 3.141592653589793f ); +// returns NaN +``` + +The function accepts the following arguments: + +- **x**: `[in] float` input value. + +```c +float stdlib_base_aversinf( const float x ); +``` + +
+ + + + + +
+ +
+ + + + + +
+ +### Examples + +```c +#include "stdlib/math/base/special/aversinf.h" +#include + +int main( void ) { + const float x[] = { -2.5f, -2.0f, -1.5f, -1.0f, -0.5f, 0.5f, 1.0f, 1.5f, 2.0f, 2.5f }; + + float v; + int i; + for ( i = 0; i < 10; i++ ) { + v = stdlib_base_aversinf( x[ i ] ); + printf( "aversinf(%f) = %f\n", x[ i ], v ); + } +} +``` + +
+ + + +
+ + + + + + + + + + + + + + diff --git a/base/special/aversinf/benchmark/benchmark.js b/base/special/aversinf/benchmark/benchmark.js new file mode 100644 index 000000000..a37533afa --- /dev/null +++ b/base/special/aversinf/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/array/uniform' ); +var isnanf = require( './../../../../base/assert/is-nanf' ); +var pkg = require( './../package.json' ).name; +var aversinf = require( './../lib' ); + + +// MAIN // + +bench( pkg, function benchmark( b ) { + var x; + var y; + var i; + + x = randu( 100, 0.0, 2.0 ); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = aversinf( x[ i % x.length ] ); + if ( isnanf( y ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnanf( y ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); diff --git a/base/special/aversinf/benchmark/benchmark.native.js b/base/special/aversinf/benchmark/benchmark.native.js new file mode 100644 index 000000000..bf00c34e7 --- /dev/null +++ b/base/special/aversinf/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/array/uniform' ); +var isnanf = require( './../../../../base/assert/is-nanf' ); +var tryRequire = require( '@stdlib/utils/try-require' ); +var pkg = require( './../package.json' ).name; + + +// VARIABLES // + +var aversinf = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( aversinf instanceof Error ) +}; + + +// MAIN // + +bench( pkg+'::native', opts, function benchmark( b ) { + var x; + var y; + var i; + + x = randu( 100, 0.0, 2.0 ); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = aversinf( x[ i % x.length ] ); + if ( isnanf( y ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnanf( y ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); diff --git a/base/special/aversinf/benchmark/c/native/Makefile b/base/special/aversinf/benchmark/c/native/Makefile new file mode 100644 index 000000000..f69e9da2b --- /dev/null +++ b/base/special/aversinf/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/base/special/aversinf/benchmark/c/native/benchmark.c b/base/special/aversinf/benchmark/c/native/benchmark.c new file mode 100644 index 000000000..8a51b45a1 --- /dev/null +++ b/base/special/aversinf/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. +*/ + +#include "stdlib/math/base/special/aversinf.h" +#include +#include +#include +#include +#include + +#define NAME "aversinf" +#define ITERATIONS 1000000 +#define REPEATS 3 + +/** +* Prints the TAP version. +*/ +static void print_version( void ) { + printf( "TAP version 13\n" ); +} + +/** +* Prints the TAP summary. +* +* @param total total number of tests +* @param passing total number of passing tests +*/ +static void print_summary( int total, int passing ) { + printf( "#\n" ); + printf( "1..%d\n", total ); // TAP plan + printf( "# total %d\n", total ); + printf( "# pass %d\n", passing ); + printf( "#\n" ); + printf( "# ok\n" ); +} + +/** +* Prints benchmarks results. +* +* @param elapsed elapsed time in seconds +*/ +static void print_results( double elapsed ) { + double rate = (double)ITERATIONS / elapsed; + printf( " ---\n" ); + printf( " iterations: %d\n", ITERATIONS ); + printf( " elapsed: %0.9f\n", elapsed ); + printf( " rate: %0.9f\n", rate ); + printf( " ...\n" ); +} + +/** +* Returns a clock time. +* +* @return clock time +*/ +static double tic( void ) { + struct timeval now; + gettimeofday( &now, NULL ); + return (double)now.tv_sec + (double)now.tv_usec/1.0e6; +} + +/** +* Generates a random number on the interval [0,1). +* +* @return random number +*/ +static float rand_float( void ) { + int r = rand(); + return (float)r / ( (float)RAND_MAX + 1.0f ); +} + +/** +* Runs a benchmark. +* +* @return elapsed time in seconds +*/ +static double benchmark( void ) { + double elapsed; + double t; + float x[ 100 ]; + float y; + int i; + + for ( i = 0; i < 100; i++ ) { + x[ i ] = 2.0f * rand_float(); + } + + t = tic(); + for ( i = 0; i < ITERATIONS; i++ ) { + y = stdlib_base_aversinf( x[ i % 100 ] ); + 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/base/special/aversinf/binding.gyp b/base/special/aversinf/binding.gyp new file mode 100644 index 000000000..ec3992233 --- /dev/null +++ b/base/special/aversinf/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/base/special/aversinf/docs/repl.txt b/base/special/aversinf/docs/repl.txt new file mode 100644 index 000000000..dfd81d301 --- /dev/null +++ b/base/special/aversinf/docs/repl.txt @@ -0,0 +1,29 @@ + +{{alias}}( x ) + Computes the inverse versed sine of a single-precision + floating-point number (in radians). + + The inverse versed sine is defined as `acos(1-x)`. + + If `x < 0`, `x > 2`, or `x` is `NaN`, the function returns `NaN`. + + Parameters + ---------- + x: number + Input value. + + Returns + ------- + y: number + Inverse versed sine. + + Examples + -------- + > var y = {{alias}}( 1.5 ) + ~2.0906 + > y = {{alias}}( 0.0 ) + 0.0 + + See Also + -------- + diff --git a/base/special/aversinf/docs/types/index.d.ts b/base/special/aversinf/docs/types/index.d.ts new file mode 100644 index 000000000..e281eebb2 --- /dev/null +++ b/base/special/aversinf/docs/types/index.d.ts @@ -0,0 +1,48 @@ +/* +* @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 + +/** +* Computes the inverse versed sine of a single-precision floating-point number (in radians). +* +* @param x - input value +* @returns inverse versed sine +* +* @example +* var v = aversinf( 0.0 ); +* // returns 0.0 +* +* @example +* var v = aversinf( 3.141592653589793 / 2.0 ); +* // returns ~2.1783 +* +* @example +* var v = aversinf( 3.141592653589793 / 6.0 ); +* // returns ~1.0742 +* +* @example +* var v = aversinf( NaN ); +* // returns NaN +*/ +declare function aversinf( x: number ): number; + + +// EXPORTS // + +export = aversinf; diff --git a/base/special/aversinf/docs/types/test.ts b/base/special/aversinf/docs/types/test.ts new file mode 100644 index 000000000..873b5119a --- /dev/null +++ b/base/special/aversinf/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 aversinf = require( './index' ); + + +// TESTS // + +// The function returns a number... +{ + aversinf( 8 ); // $ExpectType number +} + +// The compiler throws an error if the function is provided a value other than a number... +{ + aversinf( true ); // $ExpectError + aversinf( false ); // $ExpectError + aversinf( null ); // $ExpectError + aversinf( undefined ); // $ExpectError + aversinf( '5' ); // $ExpectError + aversinf( [] ); // $ExpectError + aversinf( {} ); // $ExpectError + aversinf( ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function is provided insufficient arguments... +{ + aversinf(); // $ExpectError +} diff --git a/base/special/aversinf/examples/c/Makefile b/base/special/aversinf/examples/c/Makefile new file mode 100644 index 000000000..6aed70daf --- /dev/null +++ b/base/special/aversinf/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/base/special/aversinf/examples/c/example.c b/base/special/aversinf/examples/c/example.c new file mode 100644 index 000000000..8684cb95d --- /dev/null +++ b/base/special/aversinf/examples/c/example.c @@ -0,0 +1,31 @@ +/** +* @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/aversinf.h" +#include + +int main( void ) { + const float x[] = { -2.5f, -2.0f, -1.5f, -1.0f, -0.5f, 0.5f, 1.0f, 1.5f, 2.0f, 2.5f }; + + float v; + int i; + for ( i = 0; i < 10; i++ ) { + v = stdlib_base_aversinf( x[ i ] ); + printf( "aversinf(%f) = %f\n", x[ i ], v ); + } +} diff --git a/base/special/aversinf/examples/index.js b/base/special/aversinf/examples/index.js new file mode 100644 index 000000000..751a59ef8 --- /dev/null +++ b/base/special/aversinf/examples/index.js @@ -0,0 +1,29 @@ +/** +* @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 linspace = require( '@stdlib/array/base/linspace' ); +var aversinf = require( './../lib' ); + +var x = linspace( 0.0, 2.0, 100 ); + +var i; +for ( i = 0; i < x.length; i++ ) { + console.log( 'aversinf(%d) = %d', x[ i ], aversinf( x[ i ] ) ); +} diff --git a/base/special/aversinf/include.gypi b/base/special/aversinf/include.gypi new file mode 100644 index 000000000..575cb043c --- /dev/null +++ b/base/special/aversinf/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", + "aversin", + "aversine", + "arcversin", + "arcversine", + "versed sine", + "aversinus", + "arcvers", + "avers", + "aver", + "arc", + "versed", + "sine", + "sin", + "acos", + "trig", + "trigonometry", + "radians", + "angle" + ] +} diff --git a/base/special/aversinf/src/Makefile b/base/special/aversinf/src/Makefile new file mode 100644 index 000000000..bcf18aa46 --- /dev/null +++ b/base/special/aversinf/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/base/special/aversinf/src/addon.c b/base/special/aversinf/src/addon.c new file mode 100644 index 000000000..95f876525 --- /dev/null +++ b/base/special/aversinf/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/aversinf.h" +#include "stdlib/math/base/napi/unary.h" + +// cppcheck-suppress shadowFunction +STDLIB_MATH_BASE_NAPI_MODULE_F_F( stdlib_base_aversinf ) diff --git a/base/special/aversinf/src/main.c b/base/special/aversinf/src/main.c new file mode 100644 index 000000000..58be7a153 --- /dev/null +++ b/base/special/aversinf/src/main.c @@ -0,0 +1,34 @@ +/** +* @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/aversinf.h" +#include "stdlib/math/base/special/acosf.h" + +/** +* Computes the inverse versed sine of a single-precision floating-point number (in radians). +* +* @param x input value +* @return output value +* +* @example +* float out = stdlib_base_aversinf( 3.141592653589793f / 6.0f ); +* // returns ~1.0742f +*/ +float stdlib_base_aversinf( const float x ) { + return stdlib_base_acosf( 1.0f - x ); +} diff --git a/base/special/aversinf/test/fixtures/julia/REQUIRE b/base/special/aversinf/test/fixtures/julia/REQUIRE new file mode 100644 index 000000000..308c3be89 --- /dev/null +++ b/base/special/aversinf/test/fixtures/julia/REQUIRE @@ -0,0 +1,2 @@ +julia 1.5 +JSON 0.21 diff --git a/base/special/aversinf/test/fixtures/julia/data.json b/base/special/aversinf/test/fixtures/julia/data.json new file mode 100644 index 000000000..2d711bd18 --- /dev/null +++ b/base/special/aversinf/test/fixtures/julia/data.json @@ -0,0 +1 @@ +{"expected":[0.0,0.044702737660220405,0.06322448399238306,0.07744031506983888,0.0894278276254381,0.09999168854112497,0.10954454438007719,0.1183315053893799,0.12651226109093763,0.13419772299188398,0.14146863841465734,0.14838596005247204,0.15499703820580663,0.1613395250092296,0.16744394618485994,0.17333545726395508,0.1790350797045388,0.18456059361669613,0.1899271969521157,0.1951480017486949,0.20023441411004353,0.20519642957378156,0.21004286581555673,0.2147815482094537,0.21941945941724922,0.2239628611785085,0.22841739436612082,0.23278816186770565,0.23707979776384536,0.241296525474356,0.24544220694942132,0.2495203845355891,0.2535343168072103,0.2574870093934855,0.26138124162970217,0.2652195897038253,0.2690044468457411,0.27273804100822796,0.27642245041029156,0.2800596172504731,0.2836513598467625,0.28719938341825896,0.29070528968980985,0.29417058547295444,0.2975966903534324,0.3009849435963817,0.3043366103643685,0.30765288733002066,0.31093490775377153,0.3141837460877224,0.31740042215857983,0.320585904975757,0.3237411162048935,0.32686693334203176,0.32996419261938165,0.3330336916699029,0.3360761919747248,0.3390924211146525,0.3420830748445843,0.345048819007574,0.34799029130343223,0.35090810292514724,0.35380284007500307,0.3566750653710329,0.35952531915334157,0.36235412069887735,0.36516196935237527,0.36794934558042947,0.3707167119549899,0.3734645140719684,0.37619318141011754,0.3789031281348525,0.38159475385127317,0.3842684443102561,0.3869245720711375,0.38956349712420885,0.3921855674759597,0.3947911196997614,0.3973804794544479,0.39995396197305344,0.40251187252378223,0.40505450684510874,0.40758215155676353,0.41009508454822013,0.41259357534616536,0.4150778854623282,0.4175482687229375,0.42000497158097555,0.4224482334123157,0.42487828679675005,0.4272953577848353,0.4296996661514246,0.43209142563668546,0.4344708441753548,0.43683812411491957,0.43919346242337254,0.44153705088714773,0.44386907629979167,0.4461897206418992,0.4484991612528,0.45079757099445705,0.4530851184080002,0.4553619678632964,0.4576282797019354,0.4598842103739751,0.46212991256878005,0.4643655353402636,0.46659122422681837,0.46880712136621133,0.4710133656056998,0.4732100926076066,0.4753974349505818,0.47757552222676714,0.4797444811350598,0.4819044355706679,0.48405550671113473,0.4861978130990029,0.4883314707212742,0.49045659308581646,0.49257329129486277,0.494681674115732,0.49678184804890085,0.4988739173935489,0.5009579843106865,0.5030341488839771,0.5051025091783532,0.5071631612965265,0.5092161994334803,0.5112617159290321,0.5132998013185535,0.5153305443819188,0.5173540321907626,0.5193703501541156,0.5213795820624861,0.5233818101304497,0.5253771150378124,0.5273655759694011,0.5293472706535389,0.5313222753992581,0.5332906651323,0.5352525134299506,0.5372078925547566,0.5391568734871683,0.5410995259571456,0.5430359184747727,0.5449661183599149,0.5468901917709573,0.5488082037326573,0.550720218163144,0.5526262979000998,0.5545265047261494,0.556420899393488,0.558309541647777,0.5601924902513319,0.5620698030056273,0.5639415367731474,0.5658077474986006,0.5676684902295215,0.5695238191362854,0.5713737875315507,0.5732184478891516,0.5750578518624611,0.5768920503022392,0.5787210932739867,0.5805450300748183,0.5823639092498761,0.5841777786082923,0.585986685238721,0.5877906755244509,0.5895897951581142,0.5913840891560034,0.5931736018720082,0.5949583770111881,0.5967384576429878,0.5985138862141094,0.6002847045610528,0.6020509539223328,0.6038126749503832,0.6055699077231601,0.6073226917554511,0.6090710660098982,0.6108150689077494,0.612554738339339,0.6142901116743105,0.6160212257715887,0.6177481169891069,0.6194708211932979,0.6211893737683545,0.6229038096252694,0.6246141632106564,0.6263204685153628,0.6280227590828767,0.6297210680175384,0.6314154279925565,0.633105871257839,0.6347924296476428,0.6364751345880456,0.6381540171042461,0.6398291078276992,0.6415004370030873,0.6431680344951343,0.6448319297952665,0.6464921520281249,0.648148729957931,0.6498016919947126,0.6514510662003924,0.6530968802947409,0.6547391616612026,0.6563779373525926,0.658013234096671,0.6596450783015974,0.6612734960612684,0.6628985131605413,0.6645201550803462,0.6661384470026908,0.66775341381556,0.6693650801177127,0.6709734702233776,0.6725786081668541,0.6741805177070157,0.6757792223317213,0.677374745262138,0.678967109456974,0.6805563376166255,0.6821424521872419,0.6837254753647074,0.685305429098543,0.6868823350957322,0.6884562148244697,0.6900270895178361,0.6915949801774007,0.6931599075767539,0.6947218922649698,0.6962809545700033,0.6978371146020198,0.6993903922566621,0.700940807218254,0.7024883789629428,0.7040331267617826,0.7055750696837594,0.7071142265987573,0.7086506161804725,0.7101842569092696,0.711715167074986,0.7132433647796854,0.7147688679403585,0.7162916942915756,0.7178118613880895,0.7193293866073927,0.7208442871522253,0.722356580053041,0.7238662821704261,0.7253734101974754,0.7268779806621274,0.7283800099294562,0.7298795142039225,0.7313765095315877,0.7328710118022846,0.7343630367517535,0.7358525999637414,0.7373397168720605,0.7388244027626161,0.7403066727753963,0.7417865419064283,0.7432640250097023,0.7447391367990607,0.7462118918500561,0.7476823046017786,0.7491503893586513,0.7506161602921952,0.7520796314427666,0.7535408167212627,0.7549997299108013,0.7564563846683713,0.7579107945264567,0.759362972894633,0.7608129330611387,0.7622606881944205,0.7637062513446521,0.7651496354452321,0.7665908533142529,0.7680299176559494,0.7694668410621243,0.7709016360135476,0.7723343148813384,0.773764889928321,0.7751933733103613,0.7766197770776817,0.7780441131761562,0.7794663934485832,0.7808866296359412,0.7823048333786233,0.783721016217652,0.7851351895958769,0.7865473648591539,0.7879575532575038,0.7893657659462574,0.7907720139871792,0.7921763083495761,0.7935786599113898,0.7949790794602711,0.7963775776946385,0.7977741652247232,0.7991688525735946,0.8005616501781734,0.80195256839023,0.8033416174773649,0.804728807623979,0.8061141489322264,0.8074976514229543,0.8088793250366297,0.8102591796342526,0.8116372249982542,0.8130134708333849,0.8143879267675883,0.8157606023528606,0.8171315070661022,0.8185006503099526,0.8198680414136164,0.8212336896336764,0.8225976041548956,0.8239597940910073,0.8253202684854952,0.826679036312362,0.8280361064768857,0.8293914878163701,0.8307451891008781,0.8320972190339608,0.8334475862533745,0.8347962993317855,0.8361433667774695,0.8374887970349987,0.8388325984859192,0.8401747794494219,0.8415153481830012,0.842854312883107,0.8441916816857867,0.8455274626673198,0.8468616638448421,0.848194293176964,0.8495253585643789,0.8508548678504635,0.8521828288218712,0.8535092492091175,0.8548341366871564,0.8561574988759508,0.8574793433410355,0.8587996775940703,0.8601185090933907,0.8614358452445462,0.8627516934008347,0.8640660608638308,0.8653789548839042,0.8666903826607336,0.8680003513438151,0.8693088680329605,0.870615939778793,0.8719215735832349,0.8732257763999883,0.8745285551350125,0.8758299166469927,0.8771298677478033,0.8784284152029675,0.8797255657321087,0.881021326009397,0.8823157026639911,0.8836087022804742,0.8849003313992834,0.8861905965171359,0.887479504087449,0.8887670605207536,0.8900532721851059,0.8913381454064905,0.8926216864692209,0.8939039016163357,0.895184797049987,0.8964643789318268,0.8977426533833894,0.8990196264864654,0.9002953042834757,0.9015696927778382,0.9028427979343306,0.9041146256794508,0.9053851819017702,0.9066544724522845,0.9079225031447609,0.9091892797560794,0.9104548080265719,0.9117190936603564,0.9129821423256679,0.9142439596551842,0.91550455124635,0.9167639226616957,0.9180220794291523,0.9192790270423652,0.9205347709610003,0.9217893166110505,0.9230426693851368,0.9242948346428062,0.9255458177108256,0.926795623883475,0.9280442584228336,0.9292917265590656,0.930538033490702,0.931783184384918,0.9330271843778098,0.9342700385746663,0.9355117520502375,0.9367523298490025,0.937991776985432,0.9392300984442482,0.940467299180684,0.9417033841207363,0.9429383581614188,0.9441722261710115,0.9454049929893066,0.9466366634278526,0.9478672422701961,0.9490967342721202,0.9503251441618797,0.9515524766404369,0.9527787363816898,0.9540039280327027,0.9552280562139324,0.9564511255194506,0.9576731405171662,0.9588941057490449,0.9601140257313243,0.96133290495473,0.9625507478846871,0.9637675589615295,0.9649833426007094,0.9661981031930015,0.9674118451047063,0.968624572677853,0.9698362902303973,0.9710470020564193,0.9722567124263184,0.973465425587007,0.974673145762101,0.9758798771521092,0.9770856239346216,0.9782903902644929,0.9794941802740283,0.980696998073163,0.9818988477496432,0.9830997333692045,0.9842996589757467,0.9854986285915096,0.9866966462172452,0.987893715832388,0.9890898413952256,0.9902850268430652,0.9914792760923997,0.9926725930390725,0.9938649815584398,0.9950564455055313,0.9962469887152099,0.9974366150023303,0.9986253281618938,0.9998131319692045,1.0010000301800226,1.0021860265307143,1.0033711247384052,1.0045553285011262,1.0057386414979628,1.006921067389201,1.0081026098164707,1.0092832724028897,1.0104630587532064,1.0116419724539385,1.0128200170735138,1.013997196162407,1.015173513253276,1.0163489718610987,1.0175235754833052,1.0186973275999112,1.0198702316736497,1.0210422911501005,1.0222135094578197,1.0233838900084677,1.0245534361969353,1.0257221514014683,1.0268900389837936,1.0280571022892415,1.0292233446468664,1.0303887693695692,1.0315533797542171,1.0327171790817602,1.0338801706173515,1.035042357610462,1.036203743294995,1.0373643308894038,1.0385241235968015,1.0396831246050744,1.0408413370869944,1.0419987642003274,1.043155409087944,1.0443112748779266,1.0454663646836777,1.0466206816040255,1.0477742287233294,1.0489270091115845,1.0500790258245254,1.0512302819037285,1.052380780376713,1.0535305242570427,1.054679516544426,1.0558277602248136,1.0569752582704974,1.0581220136402085,1.0592680292792123,1.0604133081194043,1.0615578530794054,1.0627016670646565,1.0638447529675092,1.0649871136673206,1.066128752030543,1.0672696709108154,1.068409873149054,1.0695493615735394,1.070688139000008,1.0718262082317365,1.0729635720596304,1.0741002332623102,1.075236194606196,1.0763714588455928,1.077506028722775,1.0786399069680674,1.0797730962999306,1.0809055994250412,1.082037419038373,1.0831685578232777,1.084299018451565,1.0854288035835815,1.086557915868289,1.0876863579433427,1.0888141324351677,1.0899412419590364,1.0910676891191438,1.0921934765086836,1.093318606709921,1.0944430822942692,1.095566905822361,1.0966900798441221,1.0978126068988439,1.0989344895152546,1.1000557302115905,1.1011763314956662,1.1022962958649447,1.103415625806607,1.1045343237976204,1.105652392304807,1.1067698337849117,1.107886650684669,1.1090028454408694,1.1101184204804255,1.1112333782204387,1.112347721068262,1.113461451421567,1.1145745716684061,1.1156870841872768,1.116798991347184,1.1179102955077043,1.1190209990190447,1.120131104222108,1.1212406134485509,1.122349529020846,1.1234578532523414,1.1245655884473202,1.1256727369010602,1.126779300899892,1.1278852827212575,1.1289906846337683,1.1300955088972615,1.131199757762858,1.1323034334730189,1.1334065382616,1.13450907435391,1.135611043966763,1.1367124493085354,1.1378132925792188,1.1389135759704745,1.1400133016656873,1.1411124718400179,1.1422110886604562,1.1433091542858738,1.1444066708670748,1.1455036405468493,1.1466000654600221,1.1476959477335056,1.1487912894863488,1.1498860928297883,1.1509803598672972,1.152074092694635,1.1531672933998953,1.154259964063557,1.1553521067585288,1.1564437235502003,1.1575348164964878,1.1586253876478814,1.1597154390474929,1.1608049727311012,1.1618939907271988,1.1629824950570375,1.1640704877346746,1.1651579707670165,1.1662449461538646,1.16733141588796,1.1684173819550265,1.1695028463338155,1.1705878109961494,1.171672277906964,1.1727562490243524,1.1738397262996068,1.1749227116772618,1.1760052070951352,1.1770872144843703,1.1781687357694774,1.179249772868375,1.1803303276924304,1.1814104021464997,1.1824899981289694,1.1835691175317948,1.184647762240541,1.1857259341344217,1.1868036350863385,1.1878808669629195,1.1889576316245583,1.1900339309254524,1.19110976671364,1.1921851408310402,1.1932600551134886,1.1943345113907748,1.1954085114866806,1.1964820572190153,1.1975551503996535,1.1986277928345705,1.199699986323879,1.2007717326618645,1.2018430336370205,1.2029138910320847,1.2039843066240739,1.2050542821843178,1.2061238194784953,1.2071929202666676,1.2082615863033122,1.2093298193373583,1.2103976211122187,1.2114649933658252,1.2125319378306596,1.2135984562337887,1.214664550296896,1.2157302217363148,1.2167954722630605,1.2178603035828628,1.2189247173961968,1.2199887153983167,1.2210522992792852,1.2221154707240067,1.2231782314122568,1.2242405830187146,1.2253025272129927,1.2263640656596675,1.2274252000183106,1.228485931943518,1.2295462630849403,1.2306061950873128,1.231665729590485,1.232724868229449,1.2337836126343704,1.2348419644306163,1.2358999252387841,1.2369574966747305,1.2380146803495995,1.239071477869852,1.2401278908372915,1.241183920849095,1.2422395694978385,1.2432948383715252,1.244349729053614,1.2454042431230454,1.2464583821542687,1.24751214771727,1.2485655413775976,1.24961856469639,1.250671219230401,1.2517235065320271,1.2527754281493328,1.2538269856260769,1.254878180501738,1.255929014311541,1.2569794885864813,1.2580296048533517,1.2590793646347656,1.260128769449184,1.2611778208109392,1.2622265202302598,1.2632748692132953,1.2643228692621409,1.265370521874861,1.2664178285455145,1.2674647907641772,1.2685114100169674,1.2695576877860688,1.2706036255497535,1.2716492247824067,1.2726944869545491,1.2737394135328608,1.2747840059802031,1.275828265755643,1.2768721943144752,1.277915793108244,1.2789590635847679,1.2800020071881595,1.2810446253588492,1.2820869195336075,1.2831288911455667,1.2841705416242422,1.2852118723955548,1.2862528848818529,1.2872935805019323,1.2883339606710602,1.2893740268009937,1.290413780300003,1.2914532225728914,1.2924923550210168,1.2935311790423119,1.2945696960313051,1.295607907379142,1.2966458144736044,1.2976834186991315,1.2987207214368401,1.2997577240645446,1.3007944279567771,1.301830834484807,1.3028669450166614,1.3039027609171443,1.3049382835478565,1.3059735142672146,1.3070084544304716,1.3080431053897343,1.3090774684939843,1.3101115450890959,1.3111453365178558,1.3121788441199813,1.3132120692321396,1.3142450131879666,1.3152776773180848,1.3163100629501223,1.3173421714087312,1.318374004015606,1.319405562089501,1.3204368469462495,1.3214678598987812,1.3224986022571399,1.3235290753285018,1.324559280417194,1.3255892188247098,1.3266188918497286,1.3276483007881323,1.3286774469330227,1.3297063315747393,1.3307349560008759,1.3317633214962983,1.3327914293431604,1.3338192808209226,1.3348468772063675,1.3358742197736169,1.336901309794149,1.3379281485368142,1.3389547372678527,1.3399810772509102,1.3410071697470545,1.342033016014791,1.3430586173100814,1.3440839748863562,1.3451090899945344,1.3461339638830367,1.3471585977978033,1.3481829929823084,1.3492071506775765,1.3502310721221988,1.3512547585523478,1.352278211201793,1.3533014313019167,1.3543244200817295,1.3553471787678855,1.3563697085846966,1.35739201075415,1.3584140864959207,1.359435937027388,1.3604575635636509,1.3614789673175416,1.3625001494996414,1.363521111318295,1.3645418539796261,1.36556237868755,1.366582686643791,1.3676027790478942,1.3686226570972426,1.3696423219870686,1.370661774910471,1.3716810170584277,1.37270004961981,1.3737188737813977,1.374737490727892,1.3757559016419305,1.3767741077041005,1.377792110092953,1.3788099099850173,1.3798275085548135,1.3808449069748672,1.3818621064157228,1.3828791080459575,1.3838959130321942,1.3849125225391155,1.3859289377294768,1.3869451597641205,1.387961189801988,1.388977029000134,1.3899926785137398,1.3910081394961256,1.3920234130987648,1.3930385004712955,1.394053402761535,1.3950681211154927,1.3960826566773814,1.397097010589632,1.3981111839929061,1.399125178026107,1.4001389938263944,1.4011526325291968,1.4021660952682227,1.403179383175475,1.4041924973812623,1.405205439014212,1.4062182092012816,1.4072308090677734,1.4082432397373446,1.40925550233202,1.4102675979722055,1.411279527776699,1.4122912928627027,1.4133028943458363,1.4143143333401478,1.415325610958126,1.4163367283107124,1.4173476865073138,1.418358486655813,1.4193691298625812,1.4203796172324907,1.4213899498689255,1.422400128873793,1.4234101553475365,1.4244200303891468,1.4254297550961725,1.4264393305647336,1.4274487578895312,1.4284580381638605,1.429467172479621,1.4304761619273287,1.4314850075961274,1.4324937105737994,1.4335022719467776,1.4345106928001568,1.4355189742177041,1.4365271172818712,1.4375351230738043,1.4385429926733568,1.4395507271590984,1.4405583276083285,1.4415657950970853,1.4425731307001577,1.4435803354910959,1.4445874105422227,1.4455943569246446,1.4466011757082613,1.4476078679617785,1.448614434752717,1.4496208771474244,1.450627196211086,1.4516333930077348,1.452639468600262,1.453645424050429,1.454651260418877,1.4556569787651372,1.4566625801476425,1.457668065623737,1.4586734362496874,1.4596786930806926,1.4606838371708946,1.4616888695733894,1.4626937913402362,1.4636986035224686,1.4647033071701052,1.4657079033321587,1.4667123930566477,1.4677167773906057,1.4687210573800922,1.4697252340702023,1.4707293085050772,1.4717332817279143,1.4727371547809773,1.4737409287056065,1.4747446045422283,1.475748183330366,1.4767516661086495,1.4777550539148252,1.478758347785766,1.4797615487574816,1.480764657865128,1.4817676761430179,1.4827706046246298,1.4837734443426194,1.4847761963288277,1.4857788616142917,1.4867814412292542,1.4877839362031737,1.488786347564734,1.4897886763418535,1.490790923561696,1.4917930902506797,1.4927951774344865,1.493797186138073,1.4947991173856787,1.4958009722008365,1.4968027516063824,1.4978044566244646,1.498806088276553,1.4998076475834496,1.5008091355652977,1.5018105532415906,1.502811901631182,1.5038131817522962,1.5048143946225352,1.505815541258891,1.5068166226777528,1.5078176398949186,1.5088185939256016,1.509819485784443,1.510820316485519,1.5118210870423514,1.5128217984679164,1.5138224517746544,1.5148230479744784,1.5158235880787845,1.516824073098461,1.5178245040438967,1.5188248819249914,1.5198252077511647,1.5208254825313652,1.5218257072740795,1.522825882987342,1.5238260106787445,1.5248260913554434,1.5258261260241717,1.5268261156912462,1.527826061362577,1.5288259640436777,1.5298258247396734,1.5308256444553103,1.5318254241949654,1.532825164962654,1.5338248677620412,1.534824533596449,1.535824163468866,1.5368237583819577,1.537823319338073,1.5388228473392564,1.5398223433872547,1.5408218084835268,1.5418212436292533,1.542820649825345,1.543820028072452,1.5448193793709732,1.5458187047210645,1.5468180051226486,1.5478172815754232,1.5488165350788714,1.5498157666322696,1.5508149772346962,1.5518141678850421,1.552813339582018,1.5538124933241648,1.5548116301098618,1.5558107509373353,1.5568098568046695,1.5578089487098126,1.5588080276505885,1.559807094624704,1.5608061506297586,1.561805196663253,1.5628042337225987,1.5638032628051262,1.5648022849080947,1.5658013010287002,1.5668003121640857,1.5677993193113484,1.5687983234675509,1.569797325629728,1.5707963267948966,1.5717953279600654,1.5727943301222422,1.5737933342784447,1.5747923414257077,1.575791352561093,1.5767903686816986,1.5777893907846672,1.5787884198671944,1.5797874569265402,1.5807865029600348,1.581785558965089,1.5827846259392047,1.5837837048799805,1.5847827967851238,1.5857819026524578,1.5867810234799313,1.5877801602656283,1.5887793140077753,1.589778485704751,1.590777676355097,1.5917768869575237,1.5927761185109217,1.59377537201437,1.5947746484671448,1.5957739488687286,1.5967732742188199,1.5977726255173412,1.5987720037644482,1.59977140996054,1.6007708451062665,1.6017703102025387,1.6027698062505369,1.6037693342517203,1.6047688952078356,1.605768490120927,1.6067681199933441,1.607767785827752,1.6087674886271393,1.6097672293948277,1.6107670091344828,1.61176682885012,1.6127666895461155,1.6137665922272162,1.6147665378985472,1.6157665275656214,1.61676656223435,1.6177666429110489,1.618766770602451,1.6197669463157138,1.6207671710584282,1.6217674458386284,1.622767771664802,1.6237681495458967,1.6247685804913323,1.6257690655110086,1.626769605615315,1.6277702018151388,1.6287708551218767,1.6297715665474417,1.6307723371042742,1.6317731678053504,1.6327740596641915,1.6337750136948748,1.6347760309120403,1.6357771123309022,1.636778258967258,1.6377794718374972,1.638780751958611,1.6397821003482027,1.6407835180244956,1.6417850060063435,1.6427865653132403,1.6437881969653287,1.6447899019834107,1.6457916813889566,1.6467935362041146,1.6477954674517201,1.6487974761553066,1.6497995633391136,1.650801730028097,1.6518039772479396,1.652806306025059,1.6538087173866194,1.654811212360539,1.6558137919755014,1.6568164572609654,1.6578192092471737,1.6588220489651633,1.6598249774467755,1.6608279957246654,1.6618311048323116,1.6628343058040271,1.6638375996749681,1.6648409874811436,1.665844470259427,1.666848049047565,1.6678517248841866,1.6688554988088158,1.669859371861879,1.670863345084716,1.671867419519591,1.6728715962097012,1.6738758761991874,1.6748802605331456,1.6758847502576344,1.6768893464196881,1.6778940500673247,1.6788988622495569,1.6799037840164037,1.6809088164188986,1.6819139605091005,1.6829192173401057,1.6839245879660563,1.6849300734421506,1.685935674824656,1.6869413931709163,1.687947229539364,1.6889531849895312,1.6899592605820586,1.6909654573787072,1.6919717764423687,1.6929782188370766,1.6939847856280148,1.694991477881532,1.6959982966651488,1.6970052430475704,1.6980123180986975,1.6990195228896356,1.7000268584927078,1.7010343259814646,1.7020419264306947,1.7030496609164365,1.7040575305159888,1.705065536307922,1.706073679372089,1.7070819607896366,1.7080903816430155,1.709098943015994,1.710107645993666,1.7111164916624644,1.712125481110172,1.7131346154259328,1.714143895700262,1.7151533230250597,1.716162898493621,1.7171726232006466,1.7181824982422567,1.7191925247160005,1.7202027037208678,1.7212130363573024,1.722223523727212,1.7232341669339803,1.7242449670824795,1.7252559252790807,1.726267042631667,1.7272783202496453,1.7282897592439568,1.7293013607270904,1.7303131258130944,1.7313250556175876,1.7323371512577732,1.7333494138524488,1.7343618445220197,1.7353744443885115,1.7363872145755814,1.7374001562085308,1.7384132704143183,1.7394265583215707,1.7404400210605966,1.741453659763399,1.7424674755636864,1.7434814695968872,1.744495643000161,1.745509996912412,1.7465245324743006,1.7475392508282581,1.7485541531184976,1.7495692404910286,1.7505845140936676,1.7515999750760534,1.7526156245896591,1.7536314637878054,1.7546474938256726,1.7556637158603163,1.7566801310506779,1.757696740557599,1.7587135455438356,1.7597305471740705,1.760747746614926,1.7617651450349798,1.762782743604776,1.76380054349684,1.7648185458856929,1.7658367519478628,1.7668551628619011,1.7678737798083957,1.7688926039699835,1.7699116365313656,1.7709308786793223,1.7719503316027245,1.7729699964925507,1.773989874541899,1.7750099669460022,1.7760302749022432,1.7770507996101674,1.778071542271498,1.7790925040901517,1.7801136862722517,1.7811350900261422,1.7821567165624053,1.7831785670938727,1.7842006428356432,1.7852229450050965,1.7862454748219079,1.7872682335080636,1.7882912222878766,1.7893144423880003,1.7903378950374453,1.7913615814675943,1.7923855029122169,1.793409660607485,1.79443405579199,1.7954586897067564,1.7964835635952587,1.7975086787034371,1.798534036279712,1.799559637575002,1.8005854838427389,1.801611576338883,1.8026379163219404,1.803664505052979,1.8046913437956442,1.8057184338161762,1.8067457763834258,1.8077733727688705,1.808801224246633,1.809829332093495,1.8108576975889172,1.811886322015054,1.8129152066567706,1.813944352801661,1.8149737617400648,1.8160034347650835,1.8170333731725992,1.8180635782612913,1.8190940513326532,1.820124793691012,1.8211558066435438,1.822187091500292,1.8232186495741871,1.824250482181062,1.8252825906396708,1.8263149762717086,1.8273476404018267,1.8283805843576535,1.829413809469812,1.8304473170719375,1.8314811085006972,1.832515185095809,1.833549548200059,1.8345841991593215,1.8356191393225785,1.8366543700419369,1.8376898926726488,1.838725708573132,1.8397618191049863,1.840798225633016,1.8418349295252485,1.842871932152953,1.8439092348906616,1.844946839116189,1.8459847462106511,1.8470229575584882,1.8480614745474817,1.8491002985687763,1.8501394310169017,1.8511788732897902,1.8522186267887994,1.853258692918733,1.8542990730878608,1.8553397687079403,1.8563807811942383,1.8574221119655512,1.8584637624442264,1.8595057340561856,1.8605480282309441,1.8615906464016339,1.8626335900050255,1.863676860481549,1.864720459275318,1.86576438783415,1.86680864760959,1.8678532400569323,1.868898166635244,1.8699434288073864,1.8709890280400396,1.8720349658037245,1.8730812435728257,1.874127862825616,1.875174825044279,1.8762221317149321,1.8772697843276525,1.878317784376498,1.8793661333595335,1.8804148327788541,1.8814638841406093,1.8825132889550276,1.8835630487364416,1.884613165003312,1.8856636392782522,1.8867144730880554,1.8877656679637167,1.8888172254404605,1.8898691470577662,1.890921434359392,1.8919740888934033,1.8930271122121958,1.8940805058725234,1.8951342714355246,1.896188410466748,1.897242924536179,1.898297815218268,1.8993530840919548,1.9004087327406982,1.9014647627525016,1.9025211757199414,1.9035779732401936,1.9046351569150628,1.9056927283510092,1.9067506891591768,1.9078090409554227,1.9088677853603444,1.9099269239993082,1.9109864585024803,1.912046390504853,1.9131067216462752,1.9141674535714828,1.9152285879301256,1.9162901263768006,1.9173520705710785,1.9184144221775363,1.9194771828657866,1.920540354310508,1.9216039381914765,1.9226679361935965,1.9237323500069308,1.9247971813267326,1.9258624318534783,1.9269281032928973,1.9279941973560044,1.9290607157591337,1.930127660223968,1.9311950324775744,1.932262834252435,1.9333310672864812,1.9343997333231258,1.935468834111298,1.9365383714054754,1.9376083469657193,1.9386787625577084,1.9397496199527726,1.9408209209279288,1.9418926672659143,1.9429648607552226,1.9440375031901396,1.945110596370778,1.9461841421031125,1.9472581421990183,1.9483325984763047,1.949407512758753,1.9504828868761532,1.9515587226643412,1.9526350219652349,1.9537117866268736,1.9547890185034549,1.9558667194553714,1.9569448913492522,1.9580235360579987,1.959102655460824,1.9601822514432934,1.961262325897363,1.962342880721418,1.963423917820316,1.964505439105423,1.965587446494658,1.9666699419125315,1.9677529272901864,1.9688364045654407,1.9699203756828292,1.9710048425936437,1.9720898072559776,1.9731752716347668,1.9742612377018331,1.9753477074359285,1.9764346828227768,1.9775221658551185,1.9786101585327556,1.9796986628625945,1.980787680858692,1.9818772145423003,1.982967265941912,1.9840578370933055,1.985148930039593,1.9862405468312645,1.9873326895262362,1.9884253601898978,1.9895185608951587,1.9906122937224962,1.991706560760005,1.9928013641034443,1.9938967058562878,1.9949925881297712,1.9960890130429438,1.9971859827227183,1.9982834993039196,1.999381564929337,2.0004801817497757,2.0015793519241063,2.0026790776193186,2.0037793610105745,2.0048802042812577,2.00598160962303,2.0070835792358834,2.0081861153281935,2.0092892201167745,2.0103928958269353,2.011497144692532,2.012601968956025,2.0137073708685356,2.0148133526899015,2.015919916688733,2.0170270651424733,2.0181348003374517,2.019243124568947,2.0203520401412423,2.021461549367685,2.0225716545707484,2.0236823580820893,2.024793662242609,2.0259055694025165,2.027018081921387,2.0281312021682263,2.0292449325215314,2.0303592753693547,2.0314742331093676,2.032589808148924,2.033706002905124,2.0348228198048814,2.035940261284986,2.037058329792173,2.038177027783186,2.0392963577248486,2.040416322094127,2.0415369233782026,2.0426581640745387,2.0437800466909493,2.044902573745671,2.046025747767432,2.047149571295524,2.048274046879872,2.04939917708111,2.0505249644706494,2.0516514116307567,2.0527785211546257,2.0539062956464504,2.0550347377215044,2.056163850006212,2.0572936351382283,2.0584240957665156,2.0595552345514205,2.060687054164752,2.0618195572898625,2.062952746621726,2.064086624867018,2.0652211947442005,2.0663564589835977,2.067492420327483,2.0686290815301627,2.0697664453580567,2.070904514589785,2.0720432920162537,2.0731827804407392,2.0743229826789777,2.0754639015592504,2.0766055399224728,2.077747900622284,2.0788909865251366,2.0800348005103877,2.081179345470389,2.0823246243105813,2.0834706399495846,2.0846173953192957,2.08576489336498,2.086913137045367,2.0880621293327506,2.0892118732130807,2.090362371686065,2.0915136277652677,2.092665644478209,2.093818424866464,2.0949719719857676,2.0961262889061154,2.0972813787118665,2.0984372445018495,2.0995938893894657,2.100751316502799,2.1019095289847187,2.1030685299929917,2.104228322700389,2.1053889102947982,2.106550295979331,2.107712482972442,2.108875474508033,2.110039273835576,2.111203884220224,2.112369308942927,2.1135355513005516,2.1147026146059993,2.115870502188325,2.117039217392858,2.1182087635813254,2.1193791441319734,2.1205503624396926,2.121722421916144,2.122895325989882,2.124069078106488,2.1252436817286946,2.126419140336517,2.127595457427386,2.1287726365162793,2.1299506811358544,2.1311295948365867,2.1323093811869036,2.133490043773323,2.134671586200592,2.1358540120918303,2.137037325088667,2.138221528851388,2.139406627059079,2.1405926234097707,2.1417795216205886,2.1429673254278994,2.1441560385874627,2.1453456648745832,2.146536208084262,2.1477276720313534,2.148920060550721,2.1501133774973935,2.151307626746728,2.1525028121945677,2.153698937757405,2.154896007372548,2.156094024998284,2.1572929946140462,2.1584929202205885,2.15969380584015,2.1608956555166303,2.1620984733157647,2.1633022633253,2.1645070296551716,2.165712776437684,2.1669195078276924,2.168127228002786,2.1693359411634745,2.170545651533374,2.171756363359396,2.1729680809119403,2.174180808485087,2.175394550396792,2.176609310989084,2.1778250946282633,2.1790419057051063,2.180259748635063,2.1814786278584686,2.182698547840748,2.183919513072627,2.185141528070343,2.186364597375861,2.1875887255570907,2.1888139172081034,2.1900401769493563,2.1912675094279135,2.192495919317673,2.193725411319597,2.194955990161941,2.1961876606004864,2.197420427418782,2.1986542954283745,2.199889269469057,2.2011253544091094,2.202362555145545,2.2036008766043613,2.2048403237407905,2.2060809015395555,2.207322615015127,2.208565469211983,2.209809469204875,2.211054620099091,2.2123009270307277,2.21354839516696,2.214797029706318,2.216046835878968,2.217297818946987,2.2185499842046563,2.219803336978743,2.221057882628793,2.222313626547428,2.223570574160641,2.2248287309280976,2.2260881023434433,2.227348693934609,2.2286105112641255,2.2298735599294366,2.2311378455632216,2.232403373833714,2.2336701504450325,2.2349381811375086,2.236207471688023,2.2374780279103423,2.2387498556554624,2.240022960811955,2.2412973493063175,2.2425730271033277,2.243850000206404,2.2451282746579664,2.2464078565398062,2.2476887519734574,2.2489709671205724,2.2502545081833025,2.2515393814046876,2.2528255930690397,2.254113149502344,2.2554020570726574,2.25669232219051,2.257983951309319,2.259276950925802,2.2605713275803963,2.2618670878576843,2.2631642383868256,2.26446278584199,2.2657627369428006,2.2670640984547807,2.2683668771898047,2.2696710800065585,2.270976713811,2.2722837855568327,2.2735923022459783,2.2749022709290596,2.276213698705889,2.2775265927259625,2.2788409601889588,2.280156808345247,2.2814741444964026,2.282792975995723,2.284113310248758,2.2854351547138423,2.286758516902637,2.288083404380676,2.289409824767922,2.2907377857393296,2.292067295025414,2.293398360412829,2.2947309897449513,2.2960651909224734,2.2974009719040067,2.298738340706686,2.3000773054067922,2.3014178741403715,2.3027600551038736,2.3041038565547947,2.3054492868123235,2.3067963542580077,2.3081450673364188,2.3094954345558323,2.310847464488915,2.3122011657734234,2.3135565471129076,2.314913617277431,2.316272385104298,2.317632859498786,2.3189950494348976,2.320358963956117,2.321724612176177,2.323092003279841,2.3244611465236913,2.3258320512369326,2.327204726822205,2.328579182756408,2.329955428591539,2.3313334739555405,2.3327133285531634,2.3340950021668387,2.3354785046575666,2.336863845965814,2.3382510361124282,2.339640085199563,2.34103100341162,2.3424238010161984,2.34381848836507,2.3452150758951547,2.346613574129522,2.3480139936784035,2.3494163452402175,2.350820639602614,2.352226887643536,2.3536351003322897,2.3550452887306395,2.3564574639939164,2.3578716373721416,2.35928782021117,2.3607060239538518,2.36212626014121,2.363548540413637,2.3649728765121116,2.366399280279432,2.367827763661472,2.369258338708455,2.3706910175762452,2.372125812527669,2.373562735933844,2.37500180027554,2.376443018144561,2.3778864022451414,2.379331965395373,2.3807797205286545,2.3822296806951604,2.3836818590633366,2.385136268921422,2.3865929236789922,2.3880518368685304,2.389513022147027,2.390976493297598,2.392442264231142,2.3939103489880145,2.395380761739737,2.3968535167907326,2.398328628580091,2.3998061116833647,2.401285980814397,2.4027682508271773,2.4042529367177328,2.405740053626052,2.4072296168380394,2.408721641787509,2.4102161440582055,2.4117131393858706,2.413212643660337,2.4147146729276656,2.416219243392318,2.4177263714193673,2.4192360735367524,2.420748366437568,2.4222632669824007,2.4237807922017036,2.4253009592982178,2.4268237856494346,2.428349288810108,2.429877486514807,2.4314083966805238,2.4329420374093207,2.434478426991036,2.436017583906034,2.437559526828011,2.43910427462685,2.440651846371539,2.442202261333131,2.443755538987773,2.44531169901979,2.4468707613248237,2.4484327460130393,2.4499976734123923,2.4515655640719576,2.4531364387653234,2.4547103184940613,2.4562872244912506,2.4578671782250856,2.4594502014025514,2.4610363159731676,2.4626255441328193,2.4642179083276554,2.4658134312580717,2.4674121358827774,2.4690140454229392,2.4706191833664155,2.4722275734720807,2.4738392397742333,2.475454206587102,2.4770724985094468,2.478694140429252,2.4803191575285246,2.4819475752881957,2.4835794194931227,2.4852147162372007,2.4868534919285907,2.4884957732950523,2.4901415873894006,2.4917909615950804,2.4934439236318626,2.4951005015616685,2.4967607237945266,2.498424619094659,2.500092216586706,2.501763545762094,2.503438636485547,2.5051175190017476,2.5068002239421503,2.5084867823319543,2.510177225597237,2.511871585572255,2.513569894506916,2.5152721850744304,2.516978490379137,2.5186888439645236,2.520403279821439,2.5221218323964956,2.523844536600686,2.5255714278182047,2.527302541915483,2.5290379152504543,2.5307775846820437,2.532521587579895,2.534269961834342,2.5360227458666333,2.5377799786394104,2.5395416996674607,2.5413079490287407,2.5430787673756834,2.5448541959468054,2.546634276578605,2.5484190517177847,2.55020856443379,2.552002858431679,2.5538019780653425,2.555605968351072,2.557414874981501,2.559228744339917,2.561047623514975,2.5628715603158065,2.564700603287554,2.5665348017273324,2.568374205700642,2.5702188660582426,2.572068834453508,2.573924163360272,2.575784906091193,2.577651116816646,2.579522850584166,2.5814001633384613,2.5832831119420163,2.585171754196305,2.5870661488636437,2.5889663556896934,2.590872435426649,2.592784449857136,2.594702461818836,2.5966265352298783,2.5985567351150207,2.6004931276326477,2.6024357801026246,2.6043847610350364,2.6063401401598427,2.608301988457493,2.610270378190535,2.6122453829362544,2.614227077620392,2.616215538551981,2.6182108434593436,2.6202130715273073,2.6222223034356777,2.624238621399031,2.6262621092078744,2.62829285227124,2.630330937660761,2.632376454156313,2.6344294922932665,2.63649014441144,2.638558504705816,2.6406346692791067,2.642718736196244,2.6448108055408923,2.6469109794740615,2.64901936229493,2.6511360605039767,2.653261182868519,2.65539484049079,2.6575371468786586,2.6596882180191255,2.661848172454733,2.664017131363026,2.6661952186392117,2.6683825609821867,2.6705792879840935,2.6727855322235823,2.675001429362975,2.6772271182495295,2.6794627410210134,2.6817084432158182,2.683964373887858,2.6862306857264966,2.688507535181793,2.6907950825953364,2.693093492336993,2.695402932947894,2.6977235772900015,2.700055602702645,2.7023991911664207,2.704754529474874,2.707121809414438,2.709501227953108,2.711892987438369,2.7142972958049576,2.716714366793043,2.7191444201774777,2.721587682008818,2.724044384866856,2.7265147681274655,2.728999078243628,2.731497569041573,2.73401050203303,2.7365381467446843,2.739080781066011,2.7416386916167395,2.7442121741353454,2.746801533890032,2.749407086113833,2.7520291564655843,2.7546680815186555,2.757324209279537,2.75999789973852,2.762689525454941,2.7653994721796753,2.7681281395178248,2.7708759416348037,2.7736433080093637,2.7764306842374182,2.779238532890916,2.7820673344364515,2.7849175882187605,2.7877898135147903,2.790684550664646,2.793602362286361,2.7965438345822196,2.799509578745209,2.8025002324751407,2.805516461615068,2.8085589619198905,2.8116284609704114,2.814725720247761,2.8178515373849,2.8210067486140367,2.824192231431213,2.827408907502071,2.8306577458360223,2.833939766259772,2.8372560432254246,2.840607709993412,2.8439959632363605,2.8474220681168387,2.8508873638999837,2.8543932701715344,2.8579412937430306,2.8615330363393205,2.8651702031795017,2.8688546125815653,2.8725882067440525,2.8763730638859677,2.880211411960091,2.8841056441963073,2.888058336782583,2.892072269054204,2.8961504466403714,2.9002961281154374,2.9045128558259483,2.908804491722087,2.9131752592236726,2.9176297924112853,2.9221731941725437,2.9268111053803394,2.931549787774237,2.9363962240160113,2.94135823947975,2.946444651841099,2.9516654566376777,2.957032059973097,2.962557573885255,2.968257196325838,2.9741487074049333,2.9802531285805642,2.9865956153839868,2.993206693537321,3.000124015175135,3.007394930597909,3.015080392498856,3.0232611482004126,3.032048109209716,3.0416009650486693,3.052164825964354,3.0641523385199543,3.078368169597412,3.0968899159295704,3.141592653589793],"x":[0.0,0.000999000999000999,0.001998001998001998,0.002997002997002997,0.003996003996003996,0.004995004995004995,0.005994005994005994,0.006993006993006993,0.007992007992007992,0.008991008991008992,0.00999000999000999,0.01098901098901099,0.011988011988011988,0.012987012987012988,0.013986013986013986,0.014985014985014986,0.015984015984015984,0.016983016983016984,0.017982017982017984,0.01898101898101898,0.01998001998001998,0.02097902097902098,0.02197802197802198,0.022977022977022976,0.023976023976023976,0.024975024975024976,0.025974025974025976,0.026973026973026972,0.027972027972027972,0.028971028971028972,0.029970029970029972,0.030969030969030968,0.03196803196803197,0.03296703296703297,0.03396603396603397,0.03496503496503497,0.03596403596403597,0.03696303696303696,0.03796203796203796,0.03896103896103896,0.03996003996003996,0.04095904095904096,0.04195804195804196,0.04295704295704296,0.04395604395604396,0.04495504495504495,0.04595404595404595,0.04695304695304695,0.04795204795204795,0.04895104895104895,0.04995004995004995,0.05094905094905095,0.05194805194805195,0.052947052947052944,0.053946053946053944,0.054945054945054944,0.055944055944055944,0.056943056943056944,0.057942057942057944,0.058941058941058944,0.059940059940059943,0.060939060939060936,0.061938061938061936,0.06293706293706294,0.06393606393606394,0.06493506493506493,0.06593406593406594,0.06693306693306693,0.06793206793206794,0.06893106893106893,0.06993006993006994,0.07092907092907093,0.07192807192807193,0.07292707292707293,0.07392607392607392,0.07492507492507493,0.07592407592407592,0.07692307692307693,0.07792207792207792,0.07892107892107893,0.07992007992007992,0.08091908091908091,0.08191808191808192,0.08291708291708291,0.08391608391608392,0.08491508491508491,0.08591408591408592,0.08691308691308691,0.08791208791208792,0.08891108891108891,0.0899100899100899,0.09090909090909091,0.0919080919080919,0.09290709290709291,0.0939060939060939,0.09490509490509491,0.0959040959040959,0.0969030969030969,0.0979020979020979,0.0989010989010989,0.0999000999000999,0.1008991008991009,0.1018981018981019,0.1028971028971029,0.1038961038961039,0.1048951048951049,0.10589410589410589,0.1068931068931069,0.10789210789210789,0.1088911088911089,0.10989010989010989,0.1108891108891109,0.11188811188811189,0.11288711288711288,0.11388611388611389,0.11488511488511488,0.11588411588411589,0.11688311688311688,0.11788211788211789,0.11888111888111888,0.11988011988011989,0.12087912087912088,0.12187812187812187,0.12287712287712288,0.12387612387612387,0.12487512487512488,0.1258741258741259,0.12687312687312688,0.12787212787212787,0.12887112887112886,0.12987012987012986,0.13086913086913088,0.13186813186813187,0.13286713286713286,0.13386613386613386,0.13486513486513488,0.13586413586413587,0.13686313686313686,0.13786213786213786,0.13886113886113885,0.13986013986013987,0.14085914085914086,0.14185814185814186,0.14285714285714285,0.14385614385614387,0.14485514485514486,0.14585414585414586,0.14685314685314685,0.14785214785214784,0.14885114885114886,0.14985014985014986,0.15084915084915085,0.15184815184815184,0.15284715284715283,0.15384615384615385,0.15484515484515485,0.15584415584415584,0.15684315684315683,0.15784215784215785,0.15884115884115885,0.15984015984015984,0.16083916083916083,0.16183816183816183,0.16283716283716285,0.16383616383616384,0.16483516483516483,0.16583416583416583,0.16683316683316685,0.16783216783216784,0.16883116883116883,0.16983016983016982,0.17082917082917082,0.17182817182817184,0.17282717282717283,0.17382617382617382,0.17482517482517482,0.17582417582417584,0.17682317682317683,0.17782217782217782,0.17882117882117882,0.1798201798201798,0.18081918081918083,0.18181818181818182,0.18281718281718282,0.1838161838161838,0.1848151848151848,0.18581418581418582,0.18681318681318682,0.1878121878121878,0.1888111888111888,0.18981018981018982,0.19080919080919082,0.1918081918081918,0.1928071928071928,0.1938061938061938,0.19480519480519481,0.1958041958041958,0.1968031968031968,0.1978021978021978,0.19880119880119881,0.1998001998001998,0.2007992007992008,0.2017982017982018,0.20279720279720279,0.2037962037962038,0.2047952047952048,0.2057942057942058,0.20679320679320679,0.2077922077922078,0.2087912087912088,0.2097902097902098,0.21078921078921078,0.21178821178821178,0.2127872127872128,0.2137862137862138,0.21478521478521478,0.21578421578421578,0.21678321678321677,0.2177822177822178,0.21878121878121878,0.21978021978021978,0.22077922077922077,0.2217782217782218,0.22277722277722278,0.22377622377622378,0.22477522477522477,0.22577422577422576,0.22677322677322678,0.22777222777222778,0.22877122877122877,0.22977022977022976,0.23076923076923078,0.23176823176823177,0.23276723276723277,0.23376623376623376,0.23476523476523475,0.23576423576423577,0.23676323676323677,0.23776223776223776,0.23876123876123875,0.23976023976023977,0.24075924075924077,0.24175824175824176,0.24275724275724275,0.24375624375624375,0.24475524475524477,0.24575424575424576,0.24675324675324675,0.24775224775224775,0.24875124875124874,0.24975024975024976,0.25074925074925075,0.2517482517482518,0.25274725274725274,0.25374625374625376,0.2547452547452547,0.25574425574425574,0.25674325674325676,0.25774225774225773,0.25874125874125875,0.2597402597402597,0.26073926073926074,0.26173826173826176,0.2627372627372627,0.26373626373626374,0.2647352647352647,0.26573426573426573,0.26673326673326675,0.2677322677322677,0.26873126873126874,0.26973026973026976,0.2707292707292707,0.27172827172827174,0.2727272727272727,0.27372627372627373,0.27472527472527475,0.2757242757242757,0.27672327672327673,0.2777222777222777,0.2787212787212787,0.27972027972027974,0.2807192807192807,0.2817182817182817,0.2827172827172827,0.2837162837162837,0.28471528471528473,0.2857142857142857,0.2867132867132867,0.28771228771228774,0.2887112887112887,0.2897102897102897,0.2907092907092907,0.2917082917082917,0.29270729270729273,0.2937062937062937,0.2947052947052947,0.2957042957042957,0.2967032967032967,0.2977022977022977,0.2987012987012987,0.2997002997002997,0.3006993006993007,0.3016983016983017,0.3026973026973027,0.3036963036963037,0.3046953046953047,0.30569430569430567,0.3066933066933067,0.3076923076923077,0.3086913086913087,0.3096903096903097,0.3106893106893107,0.3116883116883117,0.3126873126873127,0.31368631368631367,0.3146853146853147,0.3156843156843157,0.3166833166833167,0.3176823176823177,0.31868131868131866,0.3196803196803197,0.3206793206793207,0.32167832167832167,0.3226773226773227,0.32367632367632365,0.3246753246753247,0.3256743256743257,0.32667332667332666,0.3276723276723277,0.32867132867132864,0.32967032967032966,0.3306693306693307,0.33166833166833165,0.33266733266733267,0.3336663336663337,0.33466533466533466,0.3356643356643357,0.33666333666333664,0.33766233766233766,0.3386613386613387,0.33966033966033965,0.34065934065934067,0.34165834165834164,0.34265734265734266,0.3436563436563437,0.34465534465534464,0.34565434565434566,0.34665334665334663,0.34765234765234765,0.34865134865134867,0.34965034965034963,0.35064935064935066,0.3516483516483517,0.35264735264735264,0.35364635364635366,0.3546453546453546,0.35564435564435565,0.35664335664335667,0.35764235764235763,0.35864135864135865,0.3596403596403596,0.36063936063936064,0.36163836163836166,0.3626373626373626,0.36363636363636365,0.3646353646353646,0.36563436563436563,0.36663336663336665,0.3676323676323676,0.36863136863136864,0.3696303696303696,0.3706293706293706,0.37162837162837165,0.3726273726273726,0.37362637362637363,0.37462537462537465,0.3756243756243756,0.37662337662337664,0.3776223776223776,0.3786213786213786,0.37962037962037964,0.3806193806193806,0.38161838161838163,0.3826173826173826,0.3836163836163836,0.38461538461538464,0.3856143856143856,0.3866133866133866,0.3876123876123876,0.3886113886113886,0.38961038961038963,0.3906093906093906,0.3916083916083916,0.3926073926073926,0.3936063936063936,0.3946053946053946,0.3956043956043956,0.3966033966033966,0.39760239760239763,0.3986013986013986,0.3996003996003996,0.4005994005994006,0.4015984015984016,0.4025974025974026,0.4035964035964036,0.4045954045954046,0.40559440559440557,0.4065934065934066,0.4075924075924076,0.4085914085914086,0.4095904095904096,0.41058941058941056,0.4115884115884116,0.4125874125874126,0.41358641358641357,0.4145854145854146,0.4155844155844156,0.4165834165834166,0.4175824175824176,0.41858141858141856,0.4195804195804196,0.4205794205794206,0.42157842157842157,0.4225774225774226,0.42357642357642356,0.4245754245754246,0.4255744255744256,0.42657342657342656,0.4275724275724276,0.42857142857142855,0.42957042957042957,0.4305694305694306,0.43156843156843155,0.4325674325674326,0.43356643356643354,0.43456543456543456,0.4355644355644356,0.43656343656343655,0.43756243756243757,0.4385614385614386,0.43956043956043955,0.4405594405594406,0.44155844155844154,0.44255744255744256,0.4435564435564436,0.44455544455544455,0.44555444555444557,0.44655344655344653,0.44755244755244755,0.4485514485514486,0.44955044955044954,0.45054945054945056,0.4515484515484515,0.45254745254745254,0.45354645354645357,0.45454545454545453,0.45554445554445555,0.4565434565434565,0.45754245754245754,0.45854145854145856,0.4595404595404595,0.46053946053946054,0.46153846153846156,0.46253746253746253,0.46353646353646355,0.4645354645354645,0.46553446553446554,0.46653346653346656,0.4675324675324675,0.46853146853146854,0.4695304695304695,0.47052947052947053,0.47152847152847155,0.4725274725274725,0.47352647352647353,0.4745254745254745,0.4755244755244755,0.47652347652347654,0.4775224775224775,0.4785214785214785,0.47952047952047955,0.4805194805194805,0.48151848151848153,0.4825174825174825,0.4835164835164835,0.48451548451548454,0.4855144855144855,0.4865134865134865,0.4875124875124875,0.4885114885114885,0.48951048951048953,0.4905094905094905,0.4915084915084915,0.4925074925074925,0.4935064935064935,0.4945054945054945,0.4955044955044955,0.4965034965034965,0.4975024975024975,0.4985014985014985,0.4995004995004995,0.5004995004995005,0.5014985014985015,0.5024975024975025,0.5034965034965035,0.5044955044955045,0.5054945054945055,0.5064935064935064,0.5074925074925075,0.5084915084915085,0.5094905094905094,0.5104895104895105,0.5114885114885115,0.5124875124875125,0.5134865134865135,0.5144855144855145,0.5154845154845155,0.5164835164835165,0.5174825174825175,0.5184815184815185,0.5194805194805194,0.5204795204795205,0.5214785214785215,0.5224775224775224,0.5234765234765235,0.5244755244755245,0.5254745254745254,0.5264735264735265,0.5274725274725275,0.5284715284715285,0.5294705294705294,0.5304695304695305,0.5314685314685315,0.5324675324675324,0.5334665334665335,0.5344655344655345,0.5354645354645354,0.5364635364635365,0.5374625374625375,0.5384615384615384,0.5394605394605395,0.5404595404595405,0.5414585414585414,0.5424575424575424,0.5434565434565435,0.5444555444555444,0.5454545454545454,0.5464535464535465,0.5474525474525475,0.5484515484515484,0.5494505494505495,0.5504495504495505,0.5514485514485514,0.5524475524475524,0.5534465534465535,0.5544455544455544,0.5554445554445554,0.5564435564435565,0.5574425574425574,0.5584415584415584,0.5594405594405595,0.5604395604395604,0.5614385614385614,0.5624375624375625,0.5634365634365635,0.5644355644355644,0.5654345654345654,0.5664335664335665,0.5674325674325674,0.5684315684315684,0.5694305694305695,0.5704295704295704,0.5714285714285714,0.5724275724275725,0.5734265734265734,0.5744255744255744,0.5754245754245755,0.5764235764235764,0.5774225774225774,0.5784215784215784,0.5794205794205795,0.5804195804195804,0.5814185814185814,0.5824175824175825,0.5834165834165834,0.5844155844155844,0.5854145854145855,0.5864135864135864,0.5874125874125874,0.5884115884115884,0.5894105894105894,0.5904095904095904,0.5914085914085914,0.5924075924075924,0.5934065934065934,0.5944055944055944,0.5954045954045954,0.5964035964035964,0.5974025974025974,0.5984015984015985,0.5994005994005994,0.6003996003996004,0.6013986013986014,0.6023976023976024,0.6033966033966034,0.6043956043956044,0.6053946053946054,0.6063936063936064,0.6073926073926074,0.6083916083916084,0.6093906093906094,0.6103896103896104,0.6113886113886113,0.6123876123876124,0.6133866133866134,0.6143856143856143,0.6153846153846154,0.6163836163836164,0.6173826173826173,0.6183816183816184,0.6193806193806194,0.6203796203796204,0.6213786213786214,0.6223776223776224,0.6233766233766234,0.6243756243756243,0.6253746253746254,0.6263736263736264,0.6273726273726273,0.6283716283716284,0.6293706293706294,0.6303696303696303,0.6313686313686314,0.6323676323676324,0.6333666333666333,0.6343656343656343,0.6353646353646354,0.6363636363636364,0.6373626373626373,0.6383616383616384,0.6393606393606394,0.6403596403596403,0.6413586413586414,0.6423576423576424,0.6433566433566433,0.6443556443556444,0.6453546453546454,0.6463536463536463,0.6473526473526473,0.6483516483516484,0.6493506493506493,0.6503496503496503,0.6513486513486514,0.6523476523476524,0.6533466533466533,0.6543456543456544,0.6553446553446554,0.6563436563436563,0.6573426573426573,0.6583416583416584,0.6593406593406593,0.6603396603396603,0.6613386613386614,0.6623376623376623,0.6633366633366633,0.6643356643356644,0.6653346653346653,0.6663336663336663,0.6673326673326674,0.6683316683316683,0.6693306693306693,0.6703296703296703,0.6713286713286714,0.6723276723276723,0.6733266733266733,0.6743256743256744,0.6753246753246753,0.6763236763236763,0.6773226773226774,0.6783216783216783,0.6793206793206793,0.6803196803196803,0.6813186813186813,0.6823176823176823,0.6833166833166833,0.6843156843156843,0.6853146853146853,0.6863136863136863,0.6873126873126874,0.6883116883116883,0.6893106893106893,0.6903096903096904,0.6913086913086913,0.6923076923076923,0.6933066933066933,0.6943056943056943,0.6953046953046953,0.6963036963036963,0.6973026973026973,0.6983016983016983,0.6993006993006993,0.7002997002997003,0.7012987012987013,0.7022977022977023,0.7032967032967034,0.7042957042957043,0.7052947052947053,0.7062937062937062,0.7072927072927073,0.7082917082917083,0.7092907092907093,0.7102897102897103,0.7112887112887113,0.7122877122877123,0.7132867132867133,0.7142857142857143,0.7152847152847153,0.7162837162837162,0.7172827172827173,0.7182817182817183,0.7192807192807192,0.7202797202797203,0.7212787212787213,0.7222777222777222,0.7232767232767233,0.7242757242757243,0.7252747252747253,0.7262737262737263,0.7272727272727273,0.7282717282717283,0.7292707292707292,0.7302697302697303,0.7312687312687313,0.7322677322677322,0.7332667332667333,0.7342657342657343,0.7352647352647352,0.7362637362637363,0.7372627372627373,0.7382617382617382,0.7392607392607392,0.7402597402597403,0.7412587412587412,0.7422577422577422,0.7432567432567433,0.7442557442557443,0.7452547452547452,0.7462537462537463,0.7472527472527473,0.7482517482517482,0.7492507492507493,0.7502497502497503,0.7512487512487512,0.7522477522477522,0.7532467532467533,0.7542457542457542,0.7552447552447552,0.7562437562437563,0.7572427572427572,0.7582417582417582,0.7592407592407593,0.7602397602397603,0.7612387612387612,0.7622377622377622,0.7632367632367633,0.7642357642357642,0.7652347652347652,0.7662337662337663,0.7672327672327672,0.7682317682317682,0.7692307692307693,0.7702297702297702,0.7712287712287712,0.7722277722277723,0.7732267732267732,0.7742257742257742,0.7752247752247752,0.7762237762237763,0.7772227772227772,0.7782217782217782,0.7792207792207793,0.7802197802197802,0.7812187812187812,0.7822177822177823,0.7832167832167832,0.7842157842157842,0.7852147852147852,0.7862137862137862,0.7872127872127872,0.7882117882117882,0.7892107892107892,0.7902097902097902,0.7912087912087912,0.7922077922077922,0.7932067932067932,0.7942057942057942,0.7952047952047953,0.7962037962037962,0.7972027972027972,0.7982017982017982,0.7992007992007992,0.8001998001998002,0.8011988011988012,0.8021978021978022,0.8031968031968032,0.8041958041958042,0.8051948051948052,0.8061938061938062,0.8071928071928072,0.8081918081918081,0.8091908091908092,0.8101898101898102,0.8111888111888111,0.8121878121878122,0.8131868131868132,0.8141858141858141,0.8151848151848152,0.8161838161838162,0.8171828171828172,0.8181818181818182,0.8191808191808192,0.8201798201798202,0.8211788211788211,0.8221778221778222,0.8231768231768232,0.8241758241758241,0.8251748251748252,0.8261738261738262,0.8271728271728271,0.8281718281718282,0.8291708291708292,0.8301698301698301,0.8311688311688312,0.8321678321678322,0.8331668331668332,0.8341658341658341,0.8351648351648352,0.8361638361638362,0.8371628371628371,0.8381618381618382,0.8391608391608392,0.8401598401598401,0.8411588411588412,0.8421578421578422,0.8431568431568431,0.8441558441558441,0.8451548451548452,0.8461538461538461,0.8471528471528471,0.8481518481518482,0.8491508491508492,0.8501498501498501,0.8511488511488512,0.8521478521478522,0.8531468531468531,0.8541458541458542,0.8551448551448552,0.8561438561438561,0.8571428571428571,0.8581418581418582,0.8591408591408591,0.8601398601398601,0.8611388611388612,0.8621378621378621,0.8631368631368631,0.8641358641358642,0.8651348651348651,0.8661338661338661,0.8671328671328671,0.8681318681318682,0.8691308691308691,0.8701298701298701,0.8711288711288712,0.8721278721278721,0.8731268731268731,0.8741258741258742,0.8751248751248751,0.8761238761238761,0.8771228771228772,0.8781218781218781,0.8791208791208791,0.8801198801198801,0.8811188811188811,0.8821178821178821,0.8831168831168831,0.8841158841158842,0.8851148851148851,0.8861138861138861,0.8871128871128872,0.8881118881118881,0.8891108891108891,0.8901098901098901,0.8911088911088911,0.8921078921078921,0.8931068931068931,0.8941058941058941,0.8951048951048951,0.8961038961038961,0.8971028971028971,0.8981018981018981,0.8991008991008991,0.9000999000999002,0.9010989010989011,0.9020979020979021,0.903096903096903,0.9040959040959041,0.9050949050949051,0.906093906093906,0.9070929070929071,0.9080919080919081,0.9090909090909091,0.9100899100899101,0.9110889110889111,0.9120879120879121,0.913086913086913,0.9140859140859141,0.9150849150849151,0.916083916083916,0.9170829170829171,0.9180819180819181,0.919080919080919,0.9200799200799201,0.9210789210789211,0.922077922077922,0.9230769230769231,0.9240759240759241,0.9250749250749251,0.926073926073926,0.9270729270729271,0.9280719280719281,0.929070929070929,0.9300699300699301,0.9310689310689311,0.932067932067932,0.9330669330669331,0.9340659340659341,0.935064935064935,0.936063936063936,0.9370629370629371,0.938061938061938,0.939060939060939,0.9400599400599401,0.9410589410589411,0.942057942057942,0.9430569430569431,0.9440559440559441,0.945054945054945,0.9460539460539461,0.9470529470529471,0.948051948051948,0.949050949050949,0.9500499500499501,0.951048951048951,0.952047952047952,0.9530469530469531,0.954045954045954,0.955044955044955,0.9560439560439561,0.957042957042957,0.958041958041958,0.9590409590409591,0.9600399600399601,0.961038961038961,0.962037962037962,0.9630369630369631,0.964035964035964,0.965034965034965,0.9660339660339661,0.967032967032967,0.968031968031968,0.9690309690309691,0.97002997002997,0.971028971028971,0.972027972027972,0.973026973026973,0.974025974025974,0.975024975024975,0.9760239760239761,0.977022977022977,0.978021978021978,0.9790209790209791,0.98001998001998,0.981018981018981,0.9820179820179821,0.983016983016983,0.984015984015984,0.985014985014985,0.986013986013986,0.987012987012987,0.988011988011988,0.989010989010989,0.99000999000999,0.991008991008991,0.9920079920079921,0.993006993006993,0.994005994005994,0.995004995004995,0.996003996003996,0.997002997002997,0.998001998001998,0.999000999000999,1.0,1.000999000999001,1.001998001998002,1.002997002997003,1.003996003996004,1.004995004995005,1.005994005994006,1.006993006993007,1.007992007992008,1.008991008991009,1.00999000999001,1.010989010989011,1.011988011988012,1.0129870129870129,1.013986013986014,1.014985014985015,1.0159840159840159,1.016983016983017,1.017982017982018,1.018981018981019,1.01998001998002,1.020979020979021,1.021978021978022,1.022977022977023,1.023976023976024,1.024975024975025,1.025974025974026,1.026973026973027,1.027972027972028,1.028971028971029,1.02997002997003,1.030969030969031,1.031968031968032,1.032967032967033,1.033966033966034,1.034965034965035,1.0359640359640359,1.036963036963037,1.037962037962038,1.0389610389610389,1.03996003996004,1.040959040959041,1.0419580419580419,1.042957042957043,1.043956043956044,1.0449550449550449,1.045954045954046,1.046953046953047,1.0479520479520479,1.048951048951049,1.04995004995005,1.050949050949051,1.051948051948052,1.052947052947053,1.053946053946054,1.054945054945055,1.055944055944056,1.056943056943057,1.057942057942058,1.0589410589410588,1.05994005994006,1.060939060939061,1.0619380619380618,1.062937062937063,1.063936063936064,1.0649350649350648,1.065934065934066,1.066933066933067,1.0679320679320679,1.068931068931069,1.06993006993007,1.0709290709290709,1.071928071928072,1.072927072927073,1.0739260739260739,1.074925074925075,1.075924075924076,1.0769230769230769,1.077922077922078,1.078921078921079,1.0799200799200799,1.080919080919081,1.0819180819180818,1.0829170829170829,1.083916083916084,1.0849150849150848,1.085914085914086,1.086913086913087,1.0879120879120878,1.088911088911089,1.08991008991009,1.0909090909090908,1.091908091908092,1.092907092907093,1.0939060939060938,1.094905094905095,1.095904095904096,1.0969030969030968,1.097902097902098,1.098901098901099,1.0999000999000998,1.100899100899101,1.101898101898102,1.1028971028971029,1.103896103896104,1.1048951048951048,1.1058941058941059,1.106893106893107,1.1078921078921078,1.1088911088911089,1.10989010989011,1.1108891108891108,1.1118881118881119,1.112887112887113,1.1138861138861138,1.1148851148851149,1.115884115884116,1.1168831168831168,1.1178821178821179,1.118881118881119,1.1198801198801198,1.120879120879121,1.121878121878122,1.1228771228771228,1.123876123876124,1.124875124875125,1.1258741258741258,1.126873126873127,1.127872127872128,1.1288711288711288,1.12987012987013,1.1308691308691308,1.1318681318681318,1.132867132867133,1.1338661338661338,1.1348651348651349,1.135864135864136,1.1368631368631368,1.1378621378621379,1.138861138861139,1.1398601398601398,1.1408591408591409,1.141858141858142,1.1428571428571428,1.1438561438561439,1.144855144855145,1.1458541458541458,1.1468531468531469,1.147852147852148,1.1488511488511488,1.1498501498501499,1.150849150849151,1.1518481518481518,1.152847152847153,1.1538461538461537,1.1548451548451548,1.155844155844156,1.1568431568431568,1.1578421578421578,1.158841158841159,1.1598401598401598,1.1608391608391608,1.161838161838162,1.1628371628371628,1.1638361638361638,1.164835164835165,1.1658341658341658,1.1668331668331668,1.167832167832168,1.1688311688311688,1.1698301698301699,1.170829170829171,1.1718281718281718,1.1728271728271729,1.173826173826174,1.1748251748251748,1.1758241758241759,1.1768231768231767,1.1778221778221778,1.1788211788211789,1.1798201798201797,1.1808191808191808,1.1818181818181819,1.1828171828171827,1.1838161838161838,1.1848151848151849,1.1858141858141857,1.1868131868131868,1.187812187812188,1.1888111888111887,1.1898101898101898,1.190809190809191,1.1918081918081918,1.1928071928071928,1.193806193806194,1.1948051948051948,1.1958041958041958,1.196803196803197,1.1978021978021978,1.1988011988011988,1.1998001998001997,1.2007992007992008,1.2017982017982018,1.2027972027972027,1.2037962037962038,1.2047952047952049,1.2057942057942057,1.2067932067932068,1.2077922077922079,1.2087912087912087,1.2097902097902098,1.2107892107892109,1.2117882117882117,1.2127872127872128,1.2137862137862139,1.2147852147852147,1.2157842157842158,1.2167832167832169,1.2177822177822177,1.2187812187812188,1.2197802197802199,1.2207792207792207,1.2217782217782218,1.2227772227772227,1.2237762237762237,1.2247752247752248,1.2257742257742257,1.2267732267732268,1.2277722277722278,1.2287712287712287,1.2297702297702298,1.2307692307692308,1.2317682317682317,1.2327672327672328,1.2337662337662338,1.2347652347652347,1.2357642357642358,1.2367632367632369,1.2377622377622377,1.2387612387612388,1.2397602397602399,1.2407592407592407,1.2417582417582418,1.2427572427572429,1.2437562437562437,1.2447552447552448,1.2457542457542456,1.2467532467532467,1.2477522477522478,1.2487512487512487,1.2497502497502497,1.2507492507492508,1.2517482517482517,1.2527472527472527,1.2537462537462538,1.2547452547452547,1.2557442557442557,1.2567432567432568,1.2577422577422577,1.2587412587412588,1.2597402597402598,1.2607392607392607,1.2617382617382618,1.2627372627372628,1.2637362637362637,1.2647352647352648,1.2657342657342658,1.2667332667332667,1.2677322677322678,1.2687312687312686,1.2697302697302697,1.2707292707292708,1.2717282717282716,1.2727272727272727,1.2737262737262738,1.2747252747252746,1.2757242757242757,1.2767232767232768,1.2777222777222776,1.2787212787212787,1.2797202797202798,1.2807192807192807,1.2817182817182817,1.2827172827172828,1.2837162837162837,1.2847152847152847,1.2857142857142858,1.2867132867132867,1.2877122877122877,1.2887112887112888,1.2897102897102897,1.2907092907092907,1.2917082917082916,1.2927072927072927,1.2937062937062938,1.2947052947052946,1.2957042957042957,1.2967032967032968,1.2977022977022976,1.2987012987012987,1.2997002997002998,1.3006993006993006,1.3016983016983017,1.3026973026973028,1.3036963036963036,1.3046953046953047,1.3056943056943058,1.3066933066933066,1.3076923076923077,1.3086913086913088,1.3096903096903096,1.3106893106893107,1.3116883116883118,1.3126873126873126,1.3136863136863137,1.3146853146853146,1.3156843156843157,1.3166833166833167,1.3176823176823176,1.3186813186813187,1.3196803196803197,1.3206793206793206,1.3216783216783217,1.3226773226773227,1.3236763236763236,1.3246753246753247,1.3256743256743257,1.3266733266733266,1.3276723276723277,1.3286713286713288,1.3296703296703296,1.3306693306693307,1.3316683316683318,1.3326673326673326,1.3336663336663337,1.3346653346653348,1.3356643356643356,1.3366633366633367,1.3376623376623376,1.3386613386613386,1.3396603396603397,1.3406593406593406,1.3416583416583416,1.3426573426573427,1.3436563436563436,1.3446553446553446,1.3456543456543457,1.3466533466533466,1.3476523476523476,1.3486513486513487,1.3496503496503496,1.3506493506493507,1.3516483516483517,1.3526473526473526,1.3536463536463537,1.3546453546453547,1.3556443556443556,1.3566433566433567,1.3576423576423577,1.3586413586413586,1.3596403596403597,1.3606393606393605,1.3616383616383616,1.3626373626373627,1.3636363636363635,1.3646353646353646,1.3656343656343657,1.3666333666333665,1.3676323676323676,1.3686313686313687,1.3696303696303695,1.3706293706293706,1.3716283716283717,1.3726273726273726,1.3736263736263736,1.3746253746253747,1.3756243756243756,1.3766233766233766,1.3776223776223777,1.3786213786213786,1.3796203796203796,1.3806193806193807,1.3816183816183816,1.3826173826173827,1.3836163836163837,1.3846153846153846,1.3856143856143857,1.3866133866133865,1.3876123876123876,1.3886113886113887,1.3896103896103895,1.3906093906093906,1.3916083916083917,1.3926073926073925,1.3936063936063936,1.3946053946053947,1.3956043956043955,1.3966033966033966,1.3976023976023977,1.3986013986013985,1.3996003996003996,1.4005994005994007,1.4015984015984015,1.4025974025974026,1.4035964035964037,1.4045954045954046,1.4055944055944056,1.4065934065934067,1.4075924075924076,1.4085914085914086,1.4095904095904095,1.4105894105894106,1.4115884115884116,1.4125874125874125,1.4135864135864136,1.4145854145854146,1.4155844155844155,1.4165834165834166,1.4175824175824177,1.4185814185814185,1.4195804195804196,1.4205794205794207,1.4215784215784215,1.4225774225774226,1.4235764235764237,1.4245754245754245,1.4255744255744256,1.4265734265734267,1.4275724275724275,1.4285714285714286,1.4295704295704297,1.4305694305694305,1.4315684315684316,1.4325674325674325,1.4335664335664335,1.4345654345654346,1.4355644355644355,1.4365634365634365,1.4375624375624376,1.4385614385614385,1.4395604395604396,1.4405594405594406,1.4415584415584415,1.4425574425574426,1.4435564435564436,1.4445554445554445,1.4455544455544456,1.4465534465534466,1.4475524475524475,1.4485514485514486,1.4495504495504496,1.4505494505494505,1.4515484515484516,1.4525474525474527,1.4535464535464535,1.4545454545454546,1.4555444555444554,1.4565434565434565,1.4575424575424576,1.4585414585414584,1.4595404595404595,1.4605394605394606,1.4615384615384615,1.4625374625374625,1.4635364635364636,1.4645354645354645,1.4655344655344655,1.4665334665334666,1.4675324675324675,1.4685314685314685,1.4695304695304696,1.4705294705294705,1.4715284715284715,1.4725274725274726,1.4735264735264735,1.4745254745254746,1.4755244755244756,1.4765234765234765,1.4775224775224776,1.4785214785214784,1.4795204795204795,1.4805194805194806,1.4815184815184814,1.4825174825174825,1.4835164835164836,1.4845154845154844,1.4855144855144855,1.4865134865134866,1.4875124875124874,1.4885114885114885,1.4895104895104896,1.4905094905094904,1.4915084915084915,1.4925074925074926,1.4935064935064934,1.4945054945054945,1.4955044955044956,1.4965034965034965,1.4975024975024975,1.4985014985014986,1.4995004995004995,1.5004995004995005,1.5014985014985014,1.5024975024975025,1.5034965034965035,1.5044955044955044,1.5054945054945055,1.5064935064935066,1.5074925074925074,1.5084915084915085,1.5094905094905096,1.5104895104895104,1.5114885114885115,1.5124875124875126,1.5134865134865134,1.5144855144855145,1.5154845154845156,1.5164835164835164,1.5174825174825175,1.5184815184815186,1.5194805194805194,1.5204795204795205,1.5214785214785216,1.5224775224775224,1.5234765234765235,1.5244755244755244,1.5254745254745254,1.5264735264735265,1.5274725274725274,1.5284715284715285,1.5294705294705295,1.5304695304695304,1.5314685314685315,1.5324675324675325,1.5334665334665334,1.5344655344655345,1.5354645354645355,1.5364635364635364,1.5374625374625375,1.5384615384615385,1.5394605394605394,1.5404595404595405,1.5414585414585416,1.5424575424575424,1.5434565434565435,1.5444555444555446,1.5454545454545454,1.5464535464535465,1.5474525474525473,1.5484515484515484,1.5494505494505495,1.5504495504495504,1.5514485514485514,1.5524475524475525,1.5534465534465534,1.5544455544455544,1.5554445554445555,1.5564435564435564,1.5574425574425574,1.5584415584415585,1.5594405594405594,1.5604395604395604,1.5614385614385615,1.5624375624375624,1.5634365634365635,1.5644355644355645,1.5654345654345654,1.5664335664335665,1.5674325674325675,1.5684315684315684,1.5694305694305695,1.5704295704295703,1.5714285714285714,1.5724275724275725,1.5734265734265733,1.5744255744255744,1.5754245754245755,1.5764235764235763,1.5774225774225774,1.5784215784215785,1.5794205794205793,1.5804195804195804,1.5814185814185815,1.5824175824175823,1.5834165834165834,1.5844155844155845,1.5854145854145854,1.5864135864135864,1.5874125874125875,1.5884115884115884,1.5894105894105894,1.5904095904095905,1.5914085914085914,1.5924075924075924,1.5934065934065933,1.5944055944055944,1.5954045954045954,1.5964035964035963,1.5974025974025974,1.5984015984015985,1.5994005994005993,1.6003996003996004,1.6013986013986015,1.6023976023976023,1.6033966033966034,1.6043956043956045,1.6053946053946053,1.6063936063936064,1.6073926073926075,1.6083916083916083,1.6093906093906094,1.6103896103896105,1.6113886113886113,1.6123876123876124,1.6133866133866135,1.6143856143856143,1.6153846153846154,1.6163836163836163,1.6173826173826173,1.6183816183816184,1.6193806193806193,1.6203796203796204,1.6213786213786214,1.6223776223776223,1.6233766233766234,1.6243756243756244,1.6253746253746253,1.6263736263736264,1.6273726273726274,1.6283716283716283,1.6293706293706294,1.6303696303696305,1.6313686313686313,1.6323676323676324,1.6333666333666335,1.6343656343656343,1.6353646353646354,1.6363636363636365,1.6373626373626373,1.6383616383616384,1.6393606393606395,1.6403596403596403,1.6413586413586414,1.6423576423576423,1.6433566433566433,1.6443556443556444,1.6453546453546453,1.6463536463536463,1.6473526473526474,1.6483516483516483,1.6493506493506493,1.6503496503496504,1.6513486513486513,1.6523476523476524,1.6533466533466534,1.6543456543456543,1.6553446553446554,1.6563436563436564,1.6573426573426573,1.6583416583416584,1.6593406593406594,1.6603396603396603,1.6613386613386614,1.6623376623376624,1.6633366633366633,1.6643356643356644,1.6653346653346652,1.6663336663336663,1.6673326673326674,1.6683316683316682,1.6693306693306693,1.6703296703296704,1.6713286713286712,1.6723276723276723,1.6733266733266734,1.6743256743256743,1.6753246753246753,1.6763236763236764,1.6773226773226773,1.6783216783216783,1.6793206793206794,1.6803196803196803,1.6813186813186813,1.6823176823176824,1.6833166833166833,1.6843156843156843,1.6853146853146854,1.6863136863136863,1.6873126873126874,1.6883116883116882,1.6893106893106893,1.6903096903096904,1.6913086913086912,1.6923076923076923,1.6933066933066934,1.6943056943056942,1.6953046953046953,1.6963036963036964,1.6973026973026972,1.6983016983016983,1.6993006993006994,1.7002997002997002,1.7012987012987013,1.7022977022977024,1.7032967032967032,1.7042957042957043,1.7052947052947054,1.7062937062937062,1.7072927072927073,1.7082917082917084,1.7092907092907093,1.7102897102897103,1.7112887112887112,1.7122877122877123,1.7132867132867133,1.7142857142857142,1.7152847152847153,1.7162837162837163,1.7172827172827172,1.7182817182817183,1.7192807192807193,1.7202797202797202,1.7212787212787213,1.7222777222777224,1.7232767232767232,1.7242757242757243,1.7252747252747254,1.7262737262737262,1.7272727272727273,1.7282717282717284,1.7292707292707292,1.7302697302697303,1.7312687312687314,1.7322677322677322,1.7332667332667333,1.7342657342657342,1.7352647352647352,1.7362637362637363,1.7372627372627372,1.7382617382617382,1.7392607392607393,1.7402597402597402,1.7412587412587412,1.7422577422577423,1.7432567432567432,1.7442557442557443,1.7452547452547453,1.7462537462537462,1.7472527472527473,1.7482517482517483,1.7492507492507492,1.7502497502497503,1.7512487512487513,1.7522477522477522,1.7532467532467533,1.7542457542457544,1.7552447552447552,1.7562437562437563,1.7572427572427571,1.7582417582417582,1.7592407592407593,1.7602397602397601,1.7612387612387612,1.7622377622377623,1.7632367632367631,1.7642357642357642,1.7652347652347653,1.7662337662337662,1.7672327672327672,1.7682317682317683,1.7692307692307692,1.7702297702297702,1.7712287712287713,1.7722277722277722,1.7732267732267732,1.7742257742257743,1.7752247752247752,1.7762237762237763,1.7772227772227773,1.7782217782217782,1.7792207792207793,1.7802197802197801,1.7812187812187812,1.7822177822177823,1.7832167832167831,1.7842157842157842,1.7852147852147853,1.7862137862137861,1.7872127872127872,1.7882117882117883,1.7892107892107891,1.7902097902097902,1.7912087912087913,1.7922077922077921,1.7932067932067932,1.7942057942057943,1.7952047952047951,1.7962037962037962,1.7972027972027973,1.7982017982017982,1.7992007992007992,1.8001998001998003,1.8011988011988012,1.8021978021978022,1.803196803196803,1.8041958041958042,1.8051948051948052,1.806193806193806,1.8071928071928072,1.8081918081918082,1.809190809190809,1.8101898101898102,1.8111888111888113,1.812187812187812,1.8131868131868132,1.8141858141858143,1.8151848151848151,1.8161838161838162,1.8171828171828173,1.8181818181818181,1.8191808191808192,1.8201798201798203,1.8211788211788211,1.8221778221778222,1.8231768231768233,1.8241758241758241,1.8251748251748252,1.826173826173826,1.8271728271728271,1.8281718281718282,1.829170829170829,1.8301698301698301,1.8311688311688312,1.832167832167832,1.8331668331668332,1.8341658341658342,1.835164835164835,1.8361638361638362,1.8371628371628372,1.838161838161838,1.8391608391608392,1.8401598401598402,1.841158841158841,1.8421578421578422,1.8431568431568432,1.844155844155844,1.8451548451548452,1.8461538461538463,1.847152847152847,1.8481518481518482,1.849150849150849,1.8501498501498501,1.8511488511488512,1.852147852147852,1.8531468531468531,1.8541458541458542,1.855144855144855,1.8561438561438561,1.8571428571428572,1.858141858141858,1.8591408591408591,1.8601398601398602,1.861138861138861,1.8621378621378621,1.8631368631368632,1.864135864135864,1.8651348651348651,1.8661338661338662,1.867132867132867,1.8681318681318682,1.8691308691308692,1.87012987012987,1.8711288711288712,1.872127872127872,1.873126873126873,1.8741258741258742,1.875124875124875,1.876123876123876,1.8771228771228772,1.878121878121878,1.879120879120879,1.8801198801198802,1.881118881118881,1.8821178821178821,1.8831168831168832,1.884115884115884,1.8851148851148851,1.8861138861138862,1.887112887112887,1.8881118881118881,1.8891108891108892,1.89010989010989,1.8911088911088911,1.8921078921078922,1.893106893106893,1.8941058941058941,1.8951048951048952,1.896103896103896,1.8971028971028971,1.898101898101898,1.899100899100899,1.9000999000999002,1.901098901098901,1.902097902097902,1.9030969030969032,1.904095904095904,1.905094905094905,1.9060939060939062,1.907092907092907,1.908091908091908,1.9090909090909092,1.91008991008991,1.911088911088911,1.9120879120879122,1.913086913086913,1.914085914085914,1.9150849150849152,1.916083916083916,1.9170829170829171,1.9180819180819182,1.919080919080919,1.9200799200799201,1.921078921078921,1.922077922077922,1.9230769230769231,1.924075924075924,1.925074925074925,1.9260739260739261,1.927072927072927,1.928071928071928,1.9290709290709291,1.93006993006993,1.931068931068931,1.9320679320679321,1.933066933066933,1.934065934065934,1.9350649350649352,1.936063936063936,1.937062937062937,1.9380619380619382,1.939060939060939,1.94005994005994,1.9410589410589412,1.942057942057942,1.943056943056943,1.944055944055944,1.945054945054945,1.946053946053946,1.947052947052947,1.948051948051948,1.949050949050949,1.95004995004995,1.951048951048951,1.9520479520479521,1.953046953046953,1.954045954045954,1.9550449550449551,1.956043956043956,1.957042957042957,1.9580419580419581,1.959040959040959,1.96003996003996,1.9610389610389611,1.962037962037962,1.963036963036963,1.9640359640359641,1.965034965034965,1.966033966033966,1.967032967032967,1.968031968031968,1.969030969030969,1.97002997002997,1.971028971028971,1.972027972027972,1.973026973026973,1.974025974025974,1.975024975024975,1.976023976023976,1.977022977022977,1.978021978021978,1.979020979020979,1.98001998001998,1.981018981018981,1.982017982017982,1.983016983016983,1.9840159840159841,1.985014985014985,1.986013986013986,1.9870129870129871,1.988011988011988,1.989010989010989,1.99000999000999,1.991008991008991,1.992007992007992,1.993006993006993,1.994005994005994,1.995004995004995,1.996003996003996,1.997002997002997,1.998001998001998,1.999000999000999,2.0]} diff --git a/base/special/aversinf/test/fixtures/julia/runner.jl b/base/special/aversinf/test/fixtures/julia/runner.jl new file mode 100644 index 000000000..434a91de5 --- /dev/null +++ b/base/special/aversinf/test/fixtures/julia/runner.jl @@ -0,0 +1,70 @@ +#!/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( -1, stop = 1, length = 2001 ); +julia> gen( x, \"data.json\" ); +``` +""" +function gen( domain, name ) + x = collect( domain ); + y = acos.( 1.0 .- 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) ); + write( outfile, "\n" ); + close( outfile ); +end + +# Get the filename: +file = @__FILE__; + +# Extract the directory in which this file resides: +dir = dirname( file ); + +# Generate fixture data for decimal values: +x = range( 0.0, stop = 2.0, length = 2003 ); +gen( x, "data.json" ); + +# Generate fixture data for small positive values: +x = range( 1e-20, stop = 1e-28, length = 2003 ); +gen( x, "small_positive.json" ); diff --git a/base/special/aversinf/test/fixtures/julia/small_positive.json b/base/special/aversinf/test/fixtures/julia/small_positive.json new file mode 100644 index 000000000..aab87774e --- /dev/null +++ b/base/special/aversinf/test/fixtures/julia/small_positive.json @@ -0,0 +1 @@ +{"expected":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"x":[1.0e-20,9.995004995054944e-21,9.99000999010989e-21,9.985014985164834e-21,9.98001998021978e-21,9.975024975274724e-21,9.97002997032967e-21,9.965034965384615e-21,9.960039960439559e-21,9.955044955494505e-21,9.95004995054945e-21,9.945054945604395e-21,9.94005994065934e-21,9.935064935714286e-21,9.93006993076923e-21,9.925074925824176e-21,9.92007992087912e-21,9.915084915934065e-21,9.91008991098901e-21,9.905094906043955e-21,9.900099901098901e-21,9.895104896153845e-21,9.890109891208791e-21,9.885114886263736e-21,9.88011988131868e-21,9.875124876373626e-21,9.87012987142857e-21,9.865134866483516e-21,9.86013986153846e-21,9.855144856593407e-21,9.850149851648351e-21,9.845154846703297e-21,9.840159841758241e-21,9.835164836813186e-21,9.830169831868132e-21,9.825174826923076e-21,9.820179821978022e-21,9.815184817032966e-21,9.810189812087912e-21,9.805194807142857e-21,9.800199802197801e-21,9.795204797252747e-21,9.790209792307691e-21,9.785214787362637e-21,9.780219782417582e-21,9.775224777472528e-21,9.770229772527472e-21,9.765234767582416e-21,9.760239762637362e-21,9.755244757692307e-21,9.750249752747253e-21,9.745254747802197e-21,9.740259742857143e-21,9.735264737912087e-21,9.730269732967033e-21,9.725274728021978e-21,9.720279723076922e-21,9.715284718131868e-21,9.710289713186812e-21,9.705294708241758e-21,9.700299703296703e-21,9.695304698351648e-21,9.690309693406593e-21,9.685314688461537e-21,9.680319683516483e-21,9.675324678571428e-21,9.670329673626373e-21,9.665334668681318e-21,9.660339663736264e-21,9.655344658791208e-21,9.650349653846154e-21,9.645354648901098e-21,9.640359643956043e-21,9.635364639010989e-21,9.630369634065933e-21,9.625374629120879e-21,9.620379624175823e-21,9.61538461923077e-21,9.610389614285714e-21,9.605394609340658e-21,9.600399604395604e-21,9.595404599450548e-21,9.590409594505494e-21,9.585414589560439e-21,9.580419584615385e-21,9.575424579670329e-21,9.570429574725273e-21,9.56543456978022e-21,9.560439564835164e-21,9.55544455989011e-21,9.550449554945054e-21,9.54545455e-21,9.540459545054944e-21,9.53546454010989e-21,9.530469535164835e-21,9.525474530219779e-21,9.520479525274725e-21,9.51548452032967e-21,9.510489515384615e-21,9.50549451043956e-21,9.500499505494506e-21,9.49550450054945e-21,9.490509495604394e-21,9.48551449065934e-21,9.480519485714285e-21,9.47552448076923e-21,9.470529475824175e-21,9.465534470879121e-21,9.460539465934065e-21,9.455544460989011e-21,9.450549456043956e-21,9.4455544510989e-21,9.440559446153846e-21,9.43556444120879e-21,9.430569436263736e-21,9.42557443131868e-21,9.420579426373627e-21,9.415584421428571e-21,9.410589416483515e-21,9.405594411538461e-21,9.400599406593406e-21,9.395604401648352e-21,9.390609396703296e-21,9.385614391758242e-21,9.380619386813186e-21,9.37562438186813e-21,9.370629376923077e-21,9.365634371978021e-21,9.360639367032967e-21,9.355644362087911e-21,9.350649357142857e-21,9.345654352197802e-21,9.340659347252747e-21,9.335664342307692e-21,9.330669337362636e-21,9.325674332417582e-21,9.320679327472527e-21,9.315684322527472e-21,9.310689317582417e-21,9.305694312637363e-21,9.300699307692307e-21,9.295704302747252e-21,9.290709297802197e-21,9.285714292857142e-21,9.280719287912088e-21,9.275724282967032e-21,9.270729278021978e-21,9.265734273076922e-21,9.260739268131868e-21,9.255744263186813e-21,9.250749258241757e-21,9.245754253296703e-21,9.240759248351647e-21,9.235764243406593e-21,9.230769238461538e-21,9.225774233516484e-21,9.220779228571428e-21,9.215784223626372e-21,9.210789218681318e-21,9.205794213736263e-21,9.200799208791209e-21,9.195804203846153e-21,9.190809198901099e-21,9.185814193956043e-21,9.180819189010988e-21,9.175824184065934e-21,9.170829179120878e-21,9.165834174175824e-21,9.160839169230768e-21,9.155844164285714e-21,9.150849159340659e-21,9.145854154395605e-21,9.140859149450549e-21,9.135864144505493e-21,9.13086913956044e-21,9.125874134615384e-21,9.12087912967033e-21,9.115884124725274e-21,9.11088911978022e-21,9.105894114835164e-21,9.100899109890109e-21,9.095904104945055e-21,9.090909099999999e-21,9.085914095054945e-21,9.08091909010989e-21,9.075924085164835e-21,9.07092908021978e-21,9.065934075274725e-21,9.06093907032967e-21,9.055944065384614e-21,9.05094906043956e-21,9.045954055494505e-21,9.04095905054945e-21,9.035964045604395e-21,9.030969040659341e-21,9.025974035714285e-21,9.02097903076923e-21,9.015984025824176e-21,9.01098902087912e-21,9.005994015934066e-21,9.00099901098901e-21,8.996004006043956e-21,8.9910090010989e-21,8.986013996153845e-21,8.981018991208791e-21,8.976023986263735e-21,8.971028981318681e-21,8.966033976373626e-21,8.961038971428571e-21,8.956043966483516e-21,8.951048961538462e-21,8.946053956593406e-21,8.94105895164835e-21,8.936063946703296e-21,8.931068941758241e-21,8.926073936813187e-21,8.921078931868131e-21,8.916083926923077e-21,8.911088921978021e-21,8.906093917032966e-21,8.901098912087912e-21,8.896103907142856e-21,8.891108902197802e-21,8.886113897252746e-21,8.881118892307692e-21,8.876123887362637e-21,8.871128882417583e-21,8.866133877472527e-21,8.861138872527471e-21,8.856143867582417e-21,8.851148862637362e-21,8.846153857692308e-21,8.841158852747252e-21,8.836163847802198e-21,8.831168842857142e-21,8.826173837912087e-21,8.821178832967033e-21,8.816183828021977e-21,8.811188823076923e-21,8.806193818131867e-21,8.801198813186813e-21,8.796203808241758e-21,8.791208803296704e-21,8.786213798351648e-21,8.781218793406592e-21,8.776223788461538e-21,8.771228783516483e-21,8.766233778571429e-21,8.761238773626373e-21,8.756243768681319e-21,8.751248763736263e-21,8.746253758791208e-21,8.741258753846154e-21,8.736263748901098e-21,8.731268743956044e-21,8.726273739010988e-21,8.721278734065934e-21,8.716283729120879e-21,8.711288724175823e-21,8.706293719230769e-21,8.701298714285713e-21,8.696303709340659e-21,8.691308704395604e-21,8.68631369945055e-21,8.681318694505494e-21,8.67632368956044e-21,8.671328684615384e-21,8.666333679670329e-21,8.661338674725274e-21,8.656343669780219e-21,8.651348664835165e-21,8.646353659890109e-21,8.641358654945055e-21,8.63636365e-21,8.631368645054944e-21,8.62637364010989e-21,8.621378635164834e-21,8.61638363021978e-21,8.611388625274725e-21,8.60639362032967e-21,8.601398615384615e-21,8.59640361043956e-21,8.591408605494505e-21,8.58641360054945e-21,8.581418595604395e-21,8.57642359065934e-21,8.571428585714286e-21,8.56643358076923e-21,8.561438575824176e-21,8.55644357087912e-21,8.551448565934065e-21,8.54645356098901e-21,8.541458556043955e-21,8.536463551098901e-21,8.531468546153845e-21,8.526473541208791e-21,8.521478536263736e-21,8.51648353131868e-21,8.511488526373626e-21,8.50649352142857e-21,8.501498516483516e-21,8.49650351153846e-21,8.491508506593407e-21,8.486513501648351e-21,8.481518496703297e-21,8.476523491758241e-21,8.471528486813186e-21,8.466533481868132e-21,8.461538476923076e-21,8.456543471978022e-21,8.451548467032966e-21,8.446553462087912e-21,8.441558457142857e-21,8.436563452197801e-21,8.431568447252747e-21,8.426573442307691e-21,8.421578437362637e-21,8.416583432417582e-21,8.411588427472528e-21,8.406593422527472e-21,8.401598417582418e-21,8.396603412637362e-21,8.391608407692307e-21,8.386613402747253e-21,8.381618397802197e-21,8.376623392857143e-21,8.371628387912087e-21,8.366633382967033e-21,8.361638378021978e-21,8.356643373076922e-21,8.351648368131868e-21,8.346653363186812e-21,8.341658358241758e-21,8.336663353296703e-21,8.331668348351648e-21,8.326673343406593e-21,8.321678338461537e-21,8.316683333516483e-21,8.311688328571428e-21,8.306693323626373e-21,8.301698318681318e-21,8.296703313736264e-21,8.291708308791208e-21,8.286713303846154e-21,8.281718298901098e-21,8.276723293956043e-21,8.271728289010989e-21,8.266733284065933e-21,8.261738279120879e-21,8.256743274175823e-21,8.25174826923077e-21,8.246753264285714e-21,8.241758259340658e-21,8.236763254395604e-21,8.231768249450549e-21,8.226773244505494e-21,8.221778239560439e-21,8.216783234615385e-21,8.211788229670329e-21,8.206793224725275e-21,8.20179821978022e-21,8.196803214835164e-21,8.19180820989011e-21,8.186813204945054e-21,8.1818182e-21,8.176823195054944e-21,8.17182819010989e-21,8.166833185164835e-21,8.161838180219779e-21,8.156843175274725e-21,8.15184817032967e-21,8.146853165384615e-21,8.14185816043956e-21,8.136863155494506e-21,8.13186815054945e-21,8.126873145604394e-21,8.12187814065934e-21,8.116883135714285e-21,8.11188813076923e-21,8.106893125824175e-21,8.101898120879121e-21,8.096903115934065e-21,8.091908110989011e-21,8.086913106043956e-21,8.0819181010989e-21,8.076923096153846e-21,8.07192809120879e-21,8.066933086263736e-21,8.06193808131868e-21,8.056943076373627e-21,8.051948071428571e-21,8.046953066483515e-21,8.041958061538461e-21,8.036963056593406e-21,8.031968051648352e-21,8.026973046703296e-21,8.021978041758242e-21,8.016983036813186e-21,8.011988031868132e-21,8.006993026923077e-21,8.001998021978021e-21,7.997003017032967e-21,7.992008012087911e-21,7.987013007142857e-21,7.982018002197802e-21,7.977022997252747e-21,7.972027992307692e-21,7.967032987362636e-21,7.962037982417582e-21,7.957042977472527e-21,7.952047972527472e-21,7.947052967582417e-21,7.942057962637363e-21,7.937062957692307e-21,7.932067952747252e-21,7.927072947802197e-21,7.922077942857142e-21,7.917082937912088e-21,7.912087932967032e-21,7.907092928021978e-21,7.902097923076922e-21,7.897102918131868e-21,7.892107913186813e-21,7.887112908241757e-21,7.882117903296703e-21,7.877122898351647e-21,7.872127893406593e-21,7.867132888461538e-21,7.862137883516484e-21,7.857142878571428e-21,7.852147873626373e-21,7.847152868681318e-21,7.842157863736263e-21,7.837162858791209e-21,7.832167853846153e-21,7.827172848901099e-21,7.822177843956043e-21,7.81718283901099e-21,7.812187834065934e-21,7.807192829120878e-21,7.802197824175824e-21,7.797202819230768e-21,7.792207814285714e-21,7.787212809340659e-21,7.782217804395605e-21,7.777222799450549e-21,7.772227794505493e-21,7.76723278956044e-21,7.762237784615384e-21,7.75724277967033e-21,7.752247774725274e-21,7.74725276978022e-21,7.742257764835164e-21,7.737262759890109e-21,7.732267754945055e-21,7.727272749999999e-21,7.722277745054945e-21,7.71728274010989e-21,7.712287735164835e-21,7.70729273021978e-21,7.702297725274726e-21,7.69730272032967e-21,7.692307715384614e-21,7.68731271043956e-21,7.682317705494505e-21,7.67732270054945e-21,7.672327695604395e-21,7.667332690659341e-21,7.662337685714285e-21,7.65734268076923e-21,7.652347675824176e-21,7.64735267087912e-21,7.642357665934066e-21,7.63736266098901e-21,7.632367656043956e-21,7.6273726510989e-21,7.622377646153846e-21,7.617382641208791e-21,7.612387636263735e-21,7.607392631318681e-21,7.602397626373626e-21,7.597402621428571e-21,7.592407616483516e-21,7.587412611538462e-21,7.582417606593406e-21,7.57742260164835e-21,7.572427596703296e-21,7.567432591758241e-21,7.562437586813187e-21,7.557442581868131e-21,7.552447576923077e-21,7.547452571978021e-21,7.542457567032966e-21,7.537462562087912e-21,7.532467557142856e-21,7.527472552197802e-21,7.522477547252746e-21,7.517482542307692e-21,7.512487537362637e-21,7.507492532417583e-21,7.502497527472527e-21,7.497502522527471e-21,7.492507517582417e-21,7.487512512637362e-21,7.482517507692308e-21,7.477522502747252e-21,7.472527497802198e-21,7.467532492857142e-21,7.462537487912087e-21,7.457542482967033e-21,7.452547478021977e-21,7.447552473076923e-21,7.442557468131867e-21,7.437562463186813e-21,7.432567458241758e-21,7.427572453296704e-21,7.422577448351648e-21,7.417582443406592e-21,7.412587438461538e-21,7.407592433516483e-21,7.402597428571429e-21,7.397602423626373e-21,7.392607418681319e-21,7.387612413736263e-21,7.382617408791208e-21,7.377622403846154e-21,7.372627398901098e-21,7.367632393956044e-21,7.362637389010988e-21,7.357642384065934e-21,7.352647379120879e-21,7.347652374175823e-21,7.342657369230769e-21,7.337662364285713e-21,7.332667359340659e-21,7.327672354395604e-21,7.32267734945055e-21,7.317682344505494e-21,7.31268733956044e-21,7.307692334615384e-21,7.302697329670329e-21,7.297702324725275e-21,7.292707319780219e-21,7.287712314835165e-21,7.282717309890109e-21,7.277722304945055e-21,7.2727273e-21,7.267732295054944e-21,7.26273729010989e-21,7.257742285164834e-21,7.25274728021978e-21,7.247752275274725e-21,7.24275727032967e-21,7.237762265384615e-21,7.232767260439561e-21,7.227772255494505e-21,7.22277725054945e-21,7.217782245604395e-21,7.21278724065934e-21,7.207792235714286e-21,7.20279723076923e-21,7.197802225824176e-21,7.19280722087912e-21,7.187812215934065e-21,7.182817210989011e-21,7.177822206043955e-21,7.172827201098901e-21,7.167832196153845e-21,7.162837191208791e-21,7.157842186263736e-21,7.15284718131868e-21,7.147852176373626e-21,7.14285717142857e-21,7.137862166483516e-21,7.132867161538461e-21,7.127872156593407e-21,7.122877151648351e-21,7.117882146703297e-21,7.112887141758241e-21,7.107892136813186e-21,7.102897131868132e-21,7.097902126923076e-21,7.092907121978022e-21,7.087912117032966e-21,7.082917112087912e-21,7.077922107142857e-21,7.072927102197801e-21,7.067932097252747e-21,7.062937092307691e-21,7.057942087362637e-21,7.052947082417582e-21,7.047952077472528e-21,7.042957072527472e-21,7.037962067582418e-21,7.032967062637362e-21,7.027972057692307e-21,7.022977052747253e-21,7.017982047802197e-21,7.012987042857143e-21,7.007992037912087e-21,7.002997032967033e-21,6.998002028021978e-21,6.993007023076922e-21,6.988012018131868e-21,6.983017013186812e-21,6.978022008241758e-21,6.973027003296703e-21,6.968031998351649e-21,6.963036993406593e-21,6.958041988461537e-21,6.953046983516483e-21,6.948051978571428e-21,6.943056973626374e-21,6.938061968681318e-21,6.933066963736264e-21,6.928071958791208e-21,6.923076953846154e-21,6.918081948901099e-21,6.913086943956043e-21,6.908091939010989e-21,6.903096934065933e-21,6.898101929120879e-21,6.893106924175824e-21,6.88811191923077e-21,6.883116914285714e-21,6.878121909340658e-21,6.873126904395604e-21,6.868131899450549e-21,6.863136894505494e-21,6.858141889560439e-21,6.853146884615385e-21,6.848151879670329e-21,6.843156874725275e-21,6.83816186978022e-21,6.833166864835164e-21,6.82817185989011e-21,6.823176854945054e-21,6.81818185e-21,6.813186845054944e-21,6.80819184010989e-21,6.803196835164835e-21,6.798201830219779e-21,6.793206825274725e-21,6.78821182032967e-21,6.783216815384615e-21,6.77822181043956e-21,6.773226805494505e-21,6.76823180054945e-21,6.763236795604395e-21,6.7582417906593404e-21,6.7532467857142855e-21,6.748251780769231e-21,6.743256775824175e-21,6.73826177087912e-21,6.7332667659340654e-21,6.7282717609890105e-21,6.723276756043956e-21,6.718281751098901e-21,6.713286746153846e-21,6.708291741208791e-21,6.7032967362637355e-21,6.698301731318681e-21,6.693306726373626e-21,6.688311721428571e-21,6.683316716483516e-21,6.678321711538461e-21,6.6733267065934065e-21,6.6683317016483516e-21,6.663336696703296e-21,6.658341691758241e-21,6.653346686813186e-21,6.6483516818681315e-21,6.6433566769230766e-21,6.638361671978022e-21,6.633366667032967e-21,6.628371662087912e-21,6.6233766571428565e-21,6.6183816521978016e-21,6.613386647252747e-21,6.608391642307692e-21,6.603396637362637e-21,6.598401632417582e-21,6.593406627472527e-21,6.5884116225274725e-21,6.583416617582417e-21,6.578421612637362e-21,6.573426607692307e-21,6.5684316027472524e-21,6.5634365978021975e-21,6.558441592857143e-21,6.553446587912088e-21,6.548451582967032e-21,6.5434565780219774e-21,6.5384615730769225e-21,6.533466568131868e-21,6.528471563186813e-21,6.523476558241758e-21,6.518481553296703e-21,6.513486548351648e-21,6.508491543406593e-21,6.503496538461538e-21,6.498501533516483e-21,6.493506528571428e-21,6.488511523626373e-21,6.4835165186813185e-21,6.4785215137362636e-21,6.473526508791209e-21,6.468531503846153e-21,6.463536498901098e-21,6.4585414939560435e-21,6.4535464890109886e-21,6.448551484065934e-21,6.443556479120879e-21,6.438561474175824e-21,6.433566469230769e-21,6.4285714642857136e-21,6.423576459340659e-21,6.418581454395604e-21,6.413586449450549e-21,6.408591444505494e-21,6.403596439560439e-21,6.3986014346153845e-21,6.39360642967033e-21,6.388611424725274e-21,6.383616419780219e-21,6.3786214148351644e-21,6.3736264098901095e-21,6.368631404945055e-21,6.3636364e-21,6.358641395054945e-21,6.3536463901098894e-21,6.3486513851648345e-21,6.34365638021978e-21,6.338661375274725e-21,6.33366637032967e-21,6.328671365384615e-21,6.32367636043956e-21,6.3186813554945054e-21,6.31368635054945e-21,6.308691345604395e-21,6.30369634065934e-21,6.298701335714285e-21,6.2937063307692305e-21,6.2887113258241756e-21,6.283716320879121e-21,6.278721315934066e-21,6.27372631098901e-21,6.2687313060439555e-21,6.2637363010989006e-21,6.258741296153846e-21,6.253746291208791e-21,6.248751286263736e-21,6.243756281318681e-21,6.238761276373626e-21,6.233766271428571e-21,6.228771266483516e-21,6.223776261538461e-21,6.218781256593406e-21,6.213786251648351e-21,6.2087912467032965e-21,6.203796241758242e-21,6.198801236813187e-21,6.193806231868131e-21,6.1888112269230764e-21,6.1838162219780215e-21,6.178821217032967e-21,6.173826212087912e-21,6.168831207142857e-21,6.163836202197802e-21,6.158841197252747e-21,6.153846192307692e-21,6.148851187362637e-21,6.143856182417582e-21,6.138861177472527e-21,6.133866172527472e-21,6.1288711675824174e-21,6.1238761626373626e-21,6.118881157692307e-21,6.113886152747252e-21,6.108891147802197e-21,6.1038961428571425e-21,6.0989011379120876e-21,6.093906132967033e-21,6.088911128021978e-21,6.083916123076923e-21,6.0789211181318675e-21,6.0739261131868126e-21,6.068931108241758e-21,6.063936103296703e-21,6.058941098351648e-21,6.053946093406593e-21,6.048951088461538e-21,6.0439560835164835e-21,6.038961078571428e-21,6.033966073626373e-21,6.028971068681318e-21,6.023976063736263e-21,6.0189810587912085e-21,6.013986053846154e-21,6.008991048901099e-21,6.003996043956044e-21,5.9990010390109884e-21,5.9940060340659335e-21,5.989011029120879e-21,5.984016024175824e-21,5.979021019230769e-21,5.974026014285714e-21,5.969031009340659e-21,5.9640360043956044e-21,5.959040999450549e-21,5.954045994505494e-21,5.949050989560439e-21,5.944055984615384e-21,5.9390609796703294e-21,5.9340659747252746e-21,5.92907096978022e-21,5.924075964835164e-21,5.919080959890109e-21,5.9140859549450544e-21,5.9090909499999996e-21,5.904095945054945e-21,5.89910094010989e-21,5.894105935164835e-21,5.88911093021978e-21,5.8841159252747246e-21,5.87912092032967e-21,5.874125915384615e-21,5.86913091043956e-21,5.864135905494505e-21,5.85914090054945e-21,5.8541458956043955e-21,5.849150890659341e-21,5.844155885714285e-21,5.83916088076923e-21,5.834165875824175e-21,5.8291708708791205e-21,5.824175865934066e-21,5.819180860989011e-21,5.814185856043956e-21,5.809190851098901e-21,5.8041958461538455e-21,5.799200841208791e-21,5.794205836263736e-21,5.789210831318681e-21,5.784215826373626e-21,5.779220821428571e-21,5.7742258164835164e-21,5.7692308115384616e-21,5.764235806593406e-21,5.759240801648351e-21,5.754245796703296e-21,5.7492507917582414e-21,5.7442557868131866e-21,5.739260781868132e-21,5.734265776923077e-21,5.729270771978021e-21,5.7242757670329664e-21,5.7192807620879116e-21,5.714285757142857e-21,5.709290752197802e-21,5.704295747252747e-21,5.699300742307692e-21,5.694305737362637e-21,5.689310732417582e-21,5.684315727472527e-21,5.679320722527472e-21,5.674325717582417e-21,5.669330712637362e-21,5.6643357076923075e-21,5.659340702747253e-21,5.654345697802198e-21,5.649350692857142e-21,5.644355687912087e-21,5.6393606829670325e-21,5.634365678021978e-21,5.629370673076923e-21,5.624375668131868e-21,5.619380663186813e-21,5.614385658241758e-21,5.609390653296703e-21,5.604395648351648e-21,5.599400643406593e-21,5.594405638461538e-21,5.589410633516483e-21,5.5844156285714284e-21,5.5794206236263736e-21,5.574425618681319e-21,5.569430613736263e-21,5.564435608791208e-21,5.5594406038461534e-21,5.5544455989010986e-21,5.549450593956044e-21,5.544455589010989e-21,5.539460584065934e-21,5.5344655791208784e-21,5.5294705741758236e-21,5.524475569230769e-21,5.519480564285714e-21,5.514485559340659e-21,5.509490554395604e-21,5.504495549450549e-21,5.4995005445054945e-21,5.494505539560439e-21,5.489510534615384e-21,5.484515529670329e-21,5.479520524725274e-21,5.4745255197802195e-21,5.469530514835165e-21,5.46453550989011e-21,5.459540504945055e-21,5.454545499999999e-21,5.4495504950549445e-21,5.44455549010989e-21,5.439560485164835e-21,5.43456548021978e-21,5.429570475274725e-21,5.42457547032967e-21,5.4195804653846154e-21,5.41458546043956e-21,5.409590455494505e-21,5.40459545054945e-21,5.399600445604395e-21,5.3946054406593404e-21,5.3896104357142856e-21,5.384615430769231e-21,5.379620425824176e-21,5.37462542087912e-21,5.3696304159340654e-21,5.3646354109890106e-21,5.359640406043956e-21,5.354645401098901e-21,5.349650396153846e-21,5.344655391208791e-21,5.3396603862637356e-21,5.334665381318681e-21,5.329670376373626e-21,5.324675371428571e-21,5.319680366483516e-21,5.314685361538461e-21,5.3096903565934065e-21,5.304695351648352e-21,5.299700346703296e-21,5.294705341758241e-21,5.289710336813186e-21,5.2847153318681315e-21,5.279720326923077e-21,5.274725321978022e-21,5.269730317032967e-21,5.264735312087912e-21,5.2597403071428565e-21,5.254745302197802e-21,5.249750297252747e-21,5.244755292307692e-21,5.239760287362637e-21,5.234765282417582e-21,5.2297702774725274e-21,5.2247752725274726e-21,5.219780267582417e-21,5.214785262637362e-21,5.209790257692307e-21,5.2047952527472524e-21,5.1998002478021976e-21,5.194805242857143e-21,5.189810237912088e-21,5.184815232967033e-21,5.1798202280219774e-21,5.1748252230769226e-21,5.169830218131868e-21,5.164835213186813e-21,5.159840208241758e-21,5.154845203296703e-21,5.149850198351648e-21,5.1448551934065935e-21,5.139860188461538e-21,5.134865183516483e-21,5.129870178571428e-21,5.124875173626373e-21,5.1198801686813185e-21,5.114885163736264e-21,5.109890158791209e-21,5.104895153846153e-21,5.099900148901098e-21,5.0949051439560435e-21,5.089910139010989e-21,5.084915134065934e-21,5.079920129120879e-21,5.074925124175824e-21,5.069930119230769e-21,5.064935114285714e-21,5.059940109340659e-21,5.054945104395604e-21,5.049950099450549e-21,5.044955094505494e-21,5.0399600895604394e-21,5.0349650846153846e-21,5.02997007967033e-21,5.024975074725274e-21,5.019980069780219e-21,5.0149850648351644e-21,5.0099900598901096e-21,5.004995054945055e-21,5.00000005e-21,4.995005045054945e-21,4.99001004010989e-21,4.9850150351648346e-21,4.98002003021978e-21,4.975025025274725e-21,4.97003002032967e-21,4.965035015384615e-21,4.96004001043956e-21,4.9550450054945055e-21,4.950050000549451e-21,4.945054995604395e-21,4.94005999065934e-21,4.935064985714285e-21,4.9300699807692305e-21,4.925074975824176e-21,4.920079970879121e-21,4.915084965934066e-21,4.91008996098901e-21,4.9050949560439555e-21,4.900099951098901e-21,4.895104946153846e-21,4.890109941208791e-21,4.885114936263736e-21,4.880119931318681e-21,4.8751249263736264e-21,4.870129921428571e-21,4.865134916483516e-21,4.860139911538461e-21,4.855144906593406e-21,4.8501499016483514e-21,4.8451548967032966e-21,4.840159891758242e-21,4.835164886813187e-21,4.830169881868131e-21,4.8251748769230764e-21,4.8201798719780216e-21,4.815184867032967e-21,4.810189862087912e-21,4.805194857142857e-21,4.800199852197802e-21,4.795204847252747e-21,4.790209842307692e-21,4.785214837362637e-21,4.780219832417582e-21,4.775224827472527e-21,4.770229822527472e-21,4.7652348175824175e-21,4.760239812637363e-21,4.755244807692308e-21,4.750249802747252e-21,4.745254797802197e-21,4.7402597928571425e-21,4.735264787912088e-21,4.730269782967033e-21,4.725274778021978e-21,4.720279773076923e-21,4.7152847681318675e-21,4.710289763186813e-21,4.705294758241758e-21,4.700299753296703e-21,4.695304748351648e-21,4.690309743406593e-21,4.6853147384615384e-21,4.6803197335164836e-21,4.675324728571428e-21,4.670329723626373e-21,4.665334718681318e-21,4.6603397137362634e-21,4.6553447087912086e-21,4.650349703846154e-21,4.645354698901099e-21,4.640359693956044e-21,4.6353646890109884e-21,4.6303696840659336e-21,4.625374679120879e-21,4.620379674175824e-21,4.615384669230769e-21,4.610389664285714e-21,4.605394659340659e-21,4.6003996543956045e-21,4.595404649450549e-21,4.590409644505494e-21,4.585414639560439e-21,4.580419634615384e-21,4.5754246296703295e-21,4.570429624725275e-21,4.56543461978022e-21,4.560439614835165e-21,4.555444609890109e-21,4.5504496049450545e-21,4.5454546e-21,4.540459595054945e-21,4.53546459010989e-21,4.530469585164835e-21,4.52547458021978e-21,4.520479575274725e-21,4.51548457032967e-21,4.510489565384615e-21,4.50549456043956e-21,4.500499555494505e-21,4.4955045505494504e-21,4.4905095456043956e-21,4.485514540659341e-21,4.480519535714285e-21,4.47552453076923e-21,4.4705295258241754e-21,4.4655345208791206e-21,4.460539515934066e-21,4.455544510989011e-21,4.450549506043956e-21,4.445554501098901e-21,4.4405594961538456e-21,4.435564491208791e-21,4.430569486263736e-21,4.425574481318681e-21,4.420579476373626e-21,4.415584471428571e-21,4.4105894664835165e-21,4.405594461538462e-21,4.400599456593406e-21,4.395604451648351e-21,4.390609446703296e-21,4.3856144417582415e-21,4.380619436813187e-21,4.375624431868132e-21,4.370629426923077e-21,4.365634421978022e-21,4.3606394170329665e-21,4.355644412087912e-21,4.350649407142857e-21,4.345654402197802e-21,4.340659397252747e-21,4.335664392307692e-21,4.3306693873626374e-21,4.325674382417582e-21,4.320679377472527e-21,4.315684372527472e-21,4.310689367582417e-21,4.3056943626373624e-21,4.3006993576923076e-21,4.295704352747253e-21,4.290709347802198e-21,4.285714342857142e-21,4.2807193379120874e-21,4.2757243329670326e-21,4.270729328021978e-21,4.265734323076923e-21,4.260739318131868e-21,4.255744313186813e-21,4.250749308241758e-21,4.245754303296703e-21,4.240759298351648e-21,4.235764293406593e-21,4.230769288461538e-21,4.225774283516483e-21,4.2207792785714285e-21,4.215784273626374e-21,4.210789268681319e-21,4.205794263736263e-21,4.200799258791208e-21,4.1958042538461535e-21,4.190809248901099e-21,4.185814243956044e-21,4.180819239010989e-21,4.175824234065934e-21,4.170829229120879e-21,4.165834224175824e-21,4.160839219230769e-21,4.155844214285714e-21,4.150849209340659e-21,4.145854204395604e-21,4.1408591994505494e-21,4.1358641945054946e-21,4.13086918956044e-21,4.125874184615384e-21,4.120879179670329e-21,4.1158841747252744e-21,4.1108891697802196e-21,4.105894164835165e-21,4.10089915989011e-21,4.095904154945055e-21,4.0909091499999994e-21,4.0859141450549446e-21,4.08091914010989e-21,4.075924135164835e-21,4.07092913021978e-21,4.065934125274725e-21,4.06093912032967e-21,4.0559441153846155e-21,4.05094911043956e-21,4.045954105494505e-21,4.04095910054945e-21,4.035964095604395e-21,4.0309690906593405e-21,4.025974085714286e-21,4.020979080769231e-21,4.015984075824176e-21,4.01098907087912e-21,4.0059940659340655e-21,4.000999060989011e-21,3.996004056043956e-21,3.991009051098901e-21,3.986014046153846e-21,3.981019041208791e-21,3.9760240362637364e-21,3.971029031318681e-21,3.966034026373626e-21,3.961039021428571e-21,3.956044016483516e-21,3.9510490115384614e-21,3.9460540065934066e-21,3.941059001648352e-21,3.936063996703297e-21,3.931068991758241e-21,3.9260739868131864e-21,3.9210789818681316e-21,3.916083976923077e-21,3.911088971978022e-21,3.906093967032967e-21,3.901098962087912e-21,3.8961039571428566e-21,3.891108952197802e-21,3.886113947252747e-21,3.881118942307692e-21,3.876123937362637e-21,3.871128932417582e-21,3.8661339274725275e-21,3.861138922527473e-21,3.856143917582417e-21,3.851148912637362e-21,3.846153907692307e-21,3.8411589027472525e-21,3.836163897802198e-21,3.831168892857143e-21,3.826173887912088e-21,3.821178882967033e-21,3.8161838780219775e-21,3.811188873076923e-21,3.806193868131868e-21,3.801198863186813e-21,3.796203858241758e-21,3.791208853296703e-21,3.7862138483516484e-21,3.7812188434065935e-21,3.776223838461538e-21,3.771228833516483e-21,3.766233828571428e-21,3.7612388236263734e-21,3.7562438186813186e-21,3.751248813736264e-21,3.746253808791209e-21,3.741258803846154e-21,3.7362637989010984e-21,3.7312687939560436e-21,3.726273789010989e-21,3.721278784065934e-21,3.716283779120879e-21,3.711288774175824e-21,3.706293769230769e-21,3.701298764285714e-21,3.696303759340659e-21,3.691308754395604e-21,3.686313749450549e-21,3.681318744505494e-21,3.6763237395604395e-21,3.671328734615385e-21,3.66633372967033e-21,3.661338724725274e-21,3.656343719780219e-21,3.6513487148351645e-21,3.64635370989011e-21,3.641358704945055e-21,3.6363637e-21,3.631368695054945e-21,3.62637369010989e-21,3.621378685164835e-21,3.61638368021978e-21,3.611388675274725e-21,3.60639367032967e-21,3.601398665384615e-21,3.5964036604395604e-21,3.5914086554945055e-21,3.586413650549451e-21,3.581418645604395e-21,3.57642364065934e-21,3.5714286357142854e-21,3.5664336307692306e-21,3.561438625824176e-21,3.556443620879121e-21,3.551448615934066e-21,3.546453610989011e-21,3.5414586060439556e-21,3.536463601098901e-21,3.531468596153846e-21,3.526473591208791e-21,3.521478586263736e-21,3.516483581318681e-21,3.5114885763736265e-21,3.506493571428571e-21,3.501498566483516e-21,3.496503561538461e-21,3.491508556593406e-21,3.4865135516483515e-21,3.4815185467032966e-21,3.476523541758242e-21,3.471528536813187e-21,3.466533531868131e-21,3.4615385269230765e-21,3.456543521978022e-21,3.451548517032967e-21,3.446553512087912e-21,3.441558507142857e-21,3.436563502197802e-21,3.4315684972527474e-21,3.426573492307692e-21,3.421578487362637e-21,3.416583482417582e-21,3.411588477472527e-21,3.4065934725274724e-21,3.4015984675824175e-21,3.396603462637363e-21,3.391608457692308e-21,3.3866134527472526e-21,3.3816184478021978e-21,3.3766234428571425e-21,3.3716284379120877e-21,3.366633432967033e-21,3.361638428021978e-21,3.3566434230769228e-21,3.351648418131868e-21,3.346653413186813e-21,3.3416584082417582e-21,3.336663403296703e-21,3.331668398351648e-21,3.3266733934065933e-21,3.3216783884615385e-21,3.3166833835164832e-21,3.3116883785714284e-21,3.3066933736263735e-21,3.3016983686813183e-21,3.2967033637362635e-21,3.2917083587912086e-21,3.2867133538461538e-21,3.2817183489010985e-21,3.2767233439560437e-21,3.271728339010989e-21,3.266733334065934e-21,3.2617383291208788e-21,3.256743324175824e-21,3.251748319230769e-21,3.2467533142857142e-21,3.241758309340659e-21,3.236763304395604e-21,3.2317682994505493e-21,3.2267732945054945e-21,3.2217782895604392e-21,3.2167832846153844e-21,3.2117882796703295e-21,3.2067932747252747e-21,3.2017982697802195e-21,3.1968032648351646e-21,3.1918082598901098e-21,3.186813254945055e-21,3.1818182499999997e-21,3.176823245054945e-21,3.17182824010989e-21,3.166833235164835e-21,3.16183823021978e-21,3.156843225274725e-21,3.1518482203296702e-21,3.1468532153846154e-21,3.14185821043956e-21,3.1368632054945053e-21,3.1318682005494505e-21,3.1268731956043956e-21,3.1218781906593404e-21,3.1168831857142855e-21,3.1118881807692307e-21,3.1068931758241755e-21,3.1018981708791206e-21,3.0969031659340658e-21,3.091908160989011e-21,3.0869131560439557e-21,3.081918151098901e-21,3.076923146153846e-21,3.071928141208791e-21,3.066933136263736e-21,3.061938131318681e-21,3.0569431263736262e-21,3.0519481214285714e-21,3.046953116483516e-21,3.0419581115384613e-21,3.0369631065934065e-21,3.0319681016483516e-21,3.0269730967032964e-21,3.0219780917582415e-21,3.0169830868131867e-21,3.011988081868132e-21,3.0069930769230766e-21,3.0019980719780218e-21,2.997003067032967e-21,2.992008062087912e-21,2.987013057142857e-21,2.982018052197802e-21,2.977023047252747e-21,2.9720280423076923e-21,2.967033037362637e-21,2.9620380324175822e-21,2.9570430274725274e-21,2.9520480225274725e-21,2.9470530175824173e-21,2.9420580126373625e-21,2.9370630076923076e-21,2.9320680027472528e-21,2.9270729978021975e-21,2.9220779928571427e-21,2.917082987912088e-21,2.912087982967033e-21,2.9070929780219778e-21,2.902097973076923e-21,2.897102968131868e-21,2.892107963186813e-21,2.887112958241758e-21,2.882117953296703e-21,2.8771229483516483e-21,2.872127943406593e-21,2.8671329384615382e-21,2.8621379335164834e-21,2.8571429285714285e-21,2.8521479236263733e-21,2.8471529186813185e-21,2.8421579137362636e-21,2.8371629087912088e-21,2.8321679038461535e-21,2.8271728989010987e-21,2.822177893956044e-21,2.817182889010989e-21,2.8121878840659338e-21,2.807192879120879e-21,2.802197874175824e-21,2.7972028692307692e-21,2.792207864285714e-21,2.787212859340659e-21,2.7822178543956043e-21,2.7772228494505495e-21,2.7722278445054942e-21,2.7672328395604394e-21,2.7622378346153845e-21,2.7572428296703297e-21,2.7522478247252745e-21,2.7472528197802196e-21,2.7422578148351648e-21,2.73726280989011e-21,2.7322678049450547e-21,2.7272728e-21,2.722277795054945e-21,2.71728279010989e-21,2.712287785164835e-21,2.70729278021978e-21,2.7022977752747252e-21,2.69730277032967e-21,2.692307765384615e-21,2.6873127604395603e-21,2.6823177554945055e-21,2.6773227505494502e-21,2.6723277456043954e-21,2.6673327406593405e-21,2.6623377357142857e-21,2.6573427307692305e-21,2.6523477258241756e-21,2.6473527208791208e-21,2.642357715934066e-21,2.6373627109890107e-21,2.632367706043956e-21,2.627372701098901e-21,2.622377696153846e-21,2.617382691208791e-21,2.612387686263736e-21,2.6073926813186812e-21,2.6023976763736264e-21,2.597402671428571e-21,2.5924076664835163e-21,2.5874126615384615e-21,2.5824176565934066e-21,2.5774226516483514e-21,2.5724276467032965e-21,2.5674326417582417e-21,2.562437636813187e-21,2.5574426318681316e-21,2.5524476269230768e-21,2.547452621978022e-21,2.542457617032967e-21,2.537462612087912e-21,2.532467607142857e-21,2.527472602197802e-21,2.5224775972527473e-21,2.517482592307692e-21,2.5124875873626372e-21,2.5074925824175824e-21,2.502497577472527e-21,2.4975025725274723e-21,2.4925075675824175e-21,2.4875125626373626e-21,2.4825175576923074e-21,2.4775225527472525e-21,2.4725275478021977e-21,2.467532542857143e-21,2.4625375379120876e-21,2.4575425329670328e-21,2.452547528021978e-21,2.447552523076923e-21,2.442557518131868e-21,2.437562513186813e-21,2.432567508241758e-21,2.4275725032967033e-21,2.422577498351648e-21,2.4175824934065932e-21,2.4125874884615384e-21,2.4075924835164835e-21,2.4025974785714283e-21,2.3976024736263735e-21,2.3926074686813186e-21,2.3876124637362638e-21,2.3826174587912085e-21,2.3776224538461537e-21,2.372627448901099e-21,2.367632443956044e-21,2.3626374390109888e-21,2.357642434065934e-21,2.352647429120879e-21,2.3476524241758242e-21,2.342657419230769e-21,2.337662414285714e-21,2.3326674093406593e-21,2.3276724043956044e-21,2.3226773994505492e-21,2.3176823945054944e-21,2.3126873895604395e-21,2.3076923846153847e-21,2.3026973796703295e-21,2.2977023747252746e-21,2.2927073697802198e-21,2.2877123648351645e-21,2.2827173598901097e-21,2.277722354945055e-21,2.27272735e-21,2.2677323450549448e-21,2.26273734010989e-21,2.257742335164835e-21,2.2527473302197802e-21,2.247752325274725e-21,2.24275732032967e-21,2.2377623153846153e-21,2.2327673104395604e-21,2.2277723054945052e-21,2.2227773005494504e-21,2.2177822956043955e-21,2.2127872906593407e-21,2.2077922857142854e-21,2.2027972807692306e-21,2.1978022758241758e-21,2.192807270879121e-21,2.1878122659340657e-21,2.182817260989011e-21,2.177822256043956e-21,2.172827251098901e-21,2.167832246153846e-21,2.162837241208791e-21,2.1578422362637362e-21,2.1528472313186814e-21,2.147852226373626e-21,2.1428572214285713e-21,2.1378622164835164e-21,2.1328672115384616e-21,2.1278722065934064e-21,2.1228772016483515e-21,2.1178821967032967e-21,2.112887191758242e-21,2.1078921868131866e-21,2.1028971818681318e-21,2.097902176923077e-21,2.0929071719780217e-21,2.087912167032967e-21,2.082917162087912e-21,2.077922157142857e-21,2.072927152197802e-21,2.067932147252747e-21,2.0629371423076922e-21,2.0579421373626374e-21,2.052947132417582e-21,2.0479521274725273e-21,2.0429571225274724e-21,2.0379621175824176e-21,2.0329671126373624e-21,2.0279721076923075e-21,2.0229771027472527e-21,2.017982097802198e-21,2.0129870928571426e-21,2.0079920879120878e-21,2.002997082967033e-21,1.998002078021978e-21,1.993007073076923e-21,1.988012068131868e-21,1.983017063186813e-21,1.9780220582417583e-21,1.973027053296703e-21,1.9680320483516482e-21,1.9630370434065934e-21,1.9580420384615385e-21,1.9530470335164833e-21,1.9480520285714284e-21,1.9430570236263736e-21,1.9380620186813187e-21,1.9330670137362635e-21,1.9280720087912087e-21,1.923077003846154e-21,1.918081998901099e-21,1.9130869939560438e-21,1.908091989010989e-21,1.903096984065934e-21,1.898101979120879e-21,1.893106974175824e-21,1.888111969230769e-21,1.8831169642857143e-21,1.878121959340659e-21,1.8731269543956042e-21,1.8681319494505494e-21,1.8631369445054945e-21,1.8581419395604393e-21,1.8531469346153844e-21,1.8481519296703296e-21,1.8431569247252747e-21,1.8381619197802195e-21,1.8331669148351647e-21,1.82817190989011e-21,1.823176904945055e-21,1.8181818999999997e-21,1.813186895054945e-21,1.80819189010989e-21,1.8031968851648352e-21,1.79820188021978e-21,1.793206875274725e-21,1.7882118703296703e-21,1.7832168653846154e-21,1.7782218604395602e-21,1.7732268554945054e-21,1.7682318505494505e-21,1.7632368456043957e-21,1.7582418406593404e-21,1.7532468357142856e-21,1.7482518307692307e-21,1.743256825824176e-21,1.7382618208791207e-21,1.733266815934066e-21,1.728271810989011e-21,1.723276806043956e-21,1.718281801098901e-21,1.713286796153846e-21,1.7082917912087912e-21,1.7032967862637364e-21,1.698301781318681e-21,1.6933067763736263e-21,1.6883117714285712e-21,1.6833167664835164e-21,1.6783217615384614e-21,1.6733267565934065e-21,1.6683317516483515e-21,1.6633367467032966e-21,1.6583417417582416e-21,1.6533467368131867e-21,1.6483517318681317e-21,1.6433567269230769e-21,1.6383617219780218e-21,1.633366717032967e-21,1.628371712087912e-21,1.623376707142857e-21,1.618381702197802e-21,1.6133866972527472e-21,1.6083916923076922e-21,1.6033966873626373e-21,1.5984016824175823e-21,1.5934066774725274e-21,1.5884116725274724e-21,1.5834166675824175e-21,1.5784216626373625e-21,1.5734266576923077e-21,1.5684316527472526e-21,1.5634366478021978e-21,1.5584416428571427e-21,1.5534466379120879e-21,1.5484516329670329e-21,1.543456628021978e-21,1.538461623076923e-21,1.5334666181318681e-21,1.528471613186813e-21,1.5234766082417582e-21,1.5184816032967032e-21,1.5134865983516484e-21,1.5084915934065933e-21,1.5034965884615385e-21,1.4985015835164834e-21,1.4935065785714286e-21,1.4885115736263735e-21,1.4835165686813185e-21,1.4785215637362637e-21,1.4735265587912086e-21,1.4685315538461538e-21,1.4635365489010987e-21,1.4585415439560439e-21,1.4535465390109889e-21,1.448551534065934e-21,1.443556529120879e-21,1.4385615241758241e-21,1.433566519230769e-21,1.4285715142857142e-21,1.4235765093406592e-21,1.4185815043956044e-21,1.4135864994505493e-21,1.4085914945054945e-21,1.4035964895604394e-21,1.3986014846153846e-21,1.3936064796703295e-21,1.3886114747252747e-21,1.3836164697802197e-21,1.3786214648351648e-21,1.3736264598901098e-21,1.368631454945055e-21,1.3636364499999999e-21,1.358641445054945e-21,1.35364644010989e-21,1.3486514351648352e-21,1.3436564302197801e-21,1.3386614252747253e-21,1.3336664203296702e-21,1.3286714153846154e-21,1.3236764104395604e-21,1.3186814054945055e-21,1.3136864005494505e-21,1.3086913956043956e-21,1.3036963906593406e-21,1.2987013857142857e-21,1.2937063807692307e-21,1.2887113758241757e-21,1.2837163708791208e-21,1.2787213659340658e-21,1.273726360989011e-21,1.2687313560439559e-21,1.263736351098901e-21,1.258741346153846e-21,1.2537463412087912e-21,1.2487513362637361e-21,1.2437563313186813e-21,1.2387613263736262e-21,1.2337663214285714e-21,1.2287713164835164e-21,1.2237763115384615e-21,1.2187813065934065e-21,1.2137863016483516e-21,1.2087912967032966e-21,1.2037962917582417e-21,1.1988012868131867e-21,1.1938062818681318e-21,1.1888112769230768e-21,1.183816271978022e-21,1.178821267032967e-21,1.173826262087912e-21,1.168831257142857e-21,1.1638362521978022e-21,1.1588412472527472e-21,1.1538462423076923e-21,1.1488512373626373e-21,1.1438562324175824e-21,1.1388612274725274e-21,1.1338662225274725e-21,1.1288712175824175e-21,1.1238762126373627e-21,1.1188812076923076e-21,1.1138862027472528e-21,1.1088911978021977e-21,1.1038961928571429e-21,1.0989011879120878e-21,1.093906182967033e-21,1.088911178021978e-21,1.083916173076923e-21,1.078921168131868e-21,1.073926163186813e-21,1.0689311582417582e-21,1.0639361532967032e-21,1.0589411483516483e-21,1.0539461434065933e-21,1.0489511384615384e-21,1.0439561335164834e-21,1.0389611285714285e-21,1.0339661236263735e-21,1.0289711186813187e-21,1.0239761137362636e-21,1.0189811087912088e-21,1.0139861038461537e-21,1.0089910989010989e-21,1.0039960939560438e-21,9.99001089010989e-22,9.94006084065934e-22,9.890110791208791e-22,9.84016074175824e-22,9.790210692307692e-22,9.740260642857142e-22,9.690310593406593e-22,9.640360543956043e-22,9.590410494505495e-22,9.540460445054944e-22,9.490510395604396e-22,9.440560346153845e-22,9.390610296703297e-22,9.340660247252747e-22,9.290710197802198e-22,9.240760148351648e-22,9.1908100989011e-22,9.140860049450549e-22,9.09091e-22,9.04095995054945e-22,8.991009901098901e-22,8.941059851648351e-22,8.891109802197803e-22,8.841159752747252e-22,8.791209703296702e-22,8.741259653846153e-22,8.691309604395603e-22,8.641359554945055e-22,8.591409505494504e-22,8.541459456043956e-22,8.491509406593405e-22,8.441559357142857e-22,8.391609307692307e-22,8.341659258241758e-22,8.291709208791209e-22,8.241759159340659e-22,8.19180910989011e-22,8.14185906043956e-22,8.091909010989011e-22,8.0419589615384615e-22,7.992008912087912e-22,7.942058862637363e-22,7.892108813186813e-22,7.842158763736263e-22,7.792208714285713e-22,7.742258664835164e-22,7.692308615384615e-22,7.642358565934065e-22,7.592408516483516e-22,7.542458467032966e-22,7.492508417582417e-22,7.442558368131867e-22,7.392608318681318e-22,7.342658269230769e-22,7.292708219780219e-22,7.24275817032967e-22,7.19280812087912e-22,7.142858071428571e-22,7.092908021978021e-22,7.042957972527472e-22,6.993007923076923e-22,6.943057873626373e-22,6.893107824175824e-22,6.843157774725274e-22,6.793207725274725e-22,6.7432576758241755e-22,6.693307626373626e-22,6.643357576923077e-22,6.593407527472527e-22,6.543457478021978e-22,6.493507428571428e-22,6.443557379120879e-22,6.3936073296703295e-22,6.34365728021978e-22,6.293707230769231e-22,6.243757181318681e-22,6.193807131868132e-22,6.143857082417582e-22,6.093907032967033e-22,6.043956983516484e-22,5.994006934065934e-22,5.944056884615385e-22,5.894106835164835e-22,5.844156785714286e-22,5.7942067362637355e-22,5.744256686813186e-22,5.694306637362637e-22,5.644356587912087e-22,5.594406538461538e-22,5.544456489010988e-22,5.494506439560439e-22,5.4445563901098895e-22,5.39460634065934e-22,5.344656291208791e-22,5.294706241758241e-22,5.244756192307692e-22,5.194806142857142e-22,5.144856093406593e-22,5.094906043956044e-22,5.044955994505494e-22,4.995005945054945e-22,4.945055895604395e-22,4.895105846153846e-22,4.845155796703296e-22,4.795205747252747e-22,4.745255697802198e-22,4.695305648351648e-22,4.645355598901099e-22,4.595405549450549e-22,4.5454555e-22,4.49550545054945e-22,4.445555401098901e-22,4.395605351648352e-22,4.345655302197802e-22,4.295705252747253e-22,4.245755203296703e-22,4.1958051538461534e-22,4.145855104395604e-22,4.0959050549450546e-22,4.045955005494505e-22,3.9960049560439557e-22,3.9460549065934063e-22,3.896104857142857e-22,3.8461548076923075e-22,3.796204758241758e-22,3.7462547087912086e-22,3.696304659340659e-22,3.6463546098901098e-22,3.5964045604395603e-22,3.546454510989011e-22,3.4965044615384615e-22,3.446554412087912e-22,3.3966043626373626e-22,3.346654313186813e-22,3.296704263736264e-22,3.246754214285714e-22,3.1968041648351645e-22,3.146854115384615e-22,3.0969040659340656e-22,3.046954016483516e-22,2.997003967032967e-22,2.9470539175824173e-22,2.897103868131868e-22,2.8471538186813185e-22,2.797203769230769e-22,2.7472537197802196e-22,2.69730367032967e-22,2.647353620879121e-22,2.5974035714285714e-22,2.547453521978022e-22,2.4975034725274725e-22,2.447553423076923e-22,2.3976033736263737e-22,2.3476533241758242e-22,2.297703274725275e-22,2.247753225274725e-22,2.1978031758241755e-22,2.147853126373626e-22,2.097903076923077e-22,2.0479530274725275e-22,1.9980029780219778e-22,1.9480529285714284e-22,1.898102879120879e-22,1.8481528296703295e-22,1.79820278021978e-22,1.7482527307692307e-22,1.6983026813186813e-22,1.6483526318681318e-22,1.5984025824175824e-22,1.548452532967033e-22,1.4985024835164833e-22,1.448552434065934e-22,1.3986023846153845e-22,1.348652335164835e-22,1.2987022857142856e-22,1.2487522362637362e-22,1.1988021868131868e-22,1.1488521373626374e-22,1.098902087912088e-22,1.0489520384615384e-22,9.99001989010989e-23,9.490519395604395e-23,8.991018901098901e-23,8.491518406593406e-23,7.992017912087911e-23,7.492517417582417e-23,6.993016923076923e-23,6.493516428571429e-23,5.994015934065933e-23,5.494515439560439e-23,4.995014945054945e-23,4.4955144505494505e-23,3.9960139560439557e-23,3.4965134615384615e-23,2.9970129670329666e-23,2.4975124725274724e-23,1.9980119780219778e-23,1.4985114835164833e-23,9.990109890109889e-24,4.995104945054945e-24,1.0e-28]} diff --git a/base/special/aversinf/test/test.js b/base/special/aversinf/test/test.js new file mode 100644 index 000000000..8aa3ede40 --- /dev/null +++ b/base/special/aversinf/test/test.js @@ -0,0 +1,122 @@ +/** +* @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 isnanf = require( './../../../../base/assert/is-nanf' ); +var randu = require( '@stdlib/random/base/randu' ); +var absf = require( './../../../../base/special/absf' ); +var EPS = require( '@stdlib/constants/float32/eps' ); +var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' ); +var aversinf = require( './../lib' ); + + +// FIXTURES // + +var data = require( './fixtures/julia/data.json' ); +var smallPositive = require( './fixtures/julia/small_positive.json' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof aversinf, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function computes the inverse versed sine', function test( t ) { + var expected; + var delta; + var tol; + var x; + var y; + var i; + var e; + + x = data.x; + expected = data.expected; + + for ( i = 0; i < x.length; i++ ) { + e = float64ToFloat32( expected[ i ] ); + y = aversinf( x[ i ] ); + if ( y === expected[ i ] ) { + t.strictEqual( y, e, 'x: '+x[ i ]+'. Expected: '+e ); + } else { + delta = absf( y - e ); + tol = 114.0 * EPS * absf( e ); + t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. y: '+y+'. E: '+e+'. tol: '+tol+'. Δ: '+delta+'.' ); + } + } + t.end(); +}); + +tape( 'the function computes the inverse versed sine (small positive numbers)', function test( t ) { + var expected; + var delta; + var tol; + var x; + var y; + var i; + var e; + + x = smallPositive.x; + expected = smallPositive.expected; + + for ( i = 0; i < x.length; i++ ) { + e = float64ToFloat32( expected[ i ] ); + y = aversinf( x[ i ] ); + if ( y === expected[ i ] ) { + t.strictEqual( y, e, 'x: '+x[ i ]+'. Expected: '+e ); + } else { + delta = absf( y - e ); + tol = EPS * absf( e ); + t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. y: '+y+'. E: '+e+'. tol: '+tol+'. Δ: '+delta+'.' ); + } + } + t.end(); +}); + +tape( 'the function returns `NaN` if provided `NaN`', function test( t ) { + var v = aversinf( NaN ); + t.strictEqual( isnanf( v ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `NaN` if provided a value less than `0`', function test( t ) { + var v; + var i; + for ( i = 0; i < 1e4; i++ ) { + v = -( randu() * 1.0e6 ) - ( 0.0 + EPS ); + t.strictEqual( isnanf( aversinf( v ) ), true, 'returns expected value when provided '+v ); + } + t.end(); +}); + +tape( 'the function returns `NaN` if provided a value greater than `2`', function test( t ) { + var v; + var i; + for ( i = 0; i < 1e4; i++ ) { + v = ( randu() * 1.0e6 ) + 2.0 + EPS; + t.strictEqual( isnanf( aversinf( v ) ), true, 'returns expected value when provided '+v ); + } + t.end(); +}); diff --git a/base/special/aversinf/test/test.native.js b/base/special/aversinf/test/test.native.js new file mode 100644 index 000000000..39eea7cda --- /dev/null +++ b/base/special/aversinf/test/test.native.js @@ -0,0 +1,131 @@ +/** +* @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 isnanf = require( './../../../../base/assert/is-nanf' ); +var randu = require( '@stdlib/random/base/randu' ); +var absf = require( './../../../../base/special/absf' ); +var EPS = require( '@stdlib/constants/float32/eps' ); +var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' ); +var tryRequire = require( '@stdlib/utils/try-require' ); + + +// VARIABLES // + +var aversinf = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( aversinf instanceof Error ) +}; + + +// FIXTURES // + +var data = require( './fixtures/julia/data.json' ); +var smallPositive = require( './fixtures/julia/small_positive.json' ); + + +// TESTS // + +tape( 'main export is a function', opts, function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof aversinf, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function computes the inverse versed sine', opts, function test( t ) { + var expected; + var delta; + var tol; + var x; + var y; + var i; + var e; + + x = data.x; + expected = data.expected; + + for ( i = 0; i < x.length; i++ ) { + e = float64ToFloat32( expected[ i ] ); + y = aversinf( x[ i ] ); + if ( y === expected[ i ] ) { + t.strictEqual( y, e, 'x: '+x[ i ]+'. Expected: '+e ); + } else { + delta = absf( y - e ); + tol = 114.0 * EPS * absf( e ); + t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. y: '+y+'. E: '+e+'. tol: '+tol+'. Δ: '+delta+'.' ); + } + } + t.end(); +}); + +tape( 'the function computes the inverse versed sine (small positive numbers)', opts, function test( t ) { + var expected; + var delta; + var tol; + var x; + var y; + var i; + var e; + + x = smallPositive.x; + expected = smallPositive.expected; + + for ( i = 0; i < x.length; i++ ) { + e = float64ToFloat32( expected[ i ] ); + y = aversinf( x[ i ] ); + if ( y === expected[ i ] ) { + t.strictEqual( y, e, 'x: '+x[ i ]+'. Expected: '+e ); + } else { + delta = absf( y - e ); + tol = EPS * absf( e ); + t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. y: '+y+'. E: '+e+'. tol: '+tol+'. Δ: '+delta+'.' ); + } + } + t.end(); +}); + +tape( 'the function returns `NaN` if provided `NaN`', opts, function test( t ) { + var v = aversinf( NaN ); + t.strictEqual( isnanf( v ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `NaN` if provided a value less than `0`', opts, function test( t ) { + var v; + var i; + for ( i = 0; i < 1e4; i++ ) { + v = -( randu() * 1.0e6 ) - ( 0.0 + EPS ); + t.strictEqual( isnanf( aversinf( v ) ), true, 'returns expected value when provided '+v ); + } + t.end(); +}); + +tape( 'the function returns `NaN` if provided a value greater than `2`', opts, function test( t ) { + var v; + var i; + for ( i = 0; i < 1e4; i++ ) { + v = ( randu() * 1.0e6 ) + 2.0 + EPS; + t.strictEqual( isnanf( aversinf( v ) ), true, 'returns expected value when provided '+v ); + } + t.end(); +});