diff --git a/lib/node_modules/@stdlib/math/base/special/asechf/README.md b/lib/node_modules/@stdlib/math/base/special/asechf/README.md new file mode 100644 index 000000000000..94ad1528489f --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/asechf/README.md @@ -0,0 +1,203 @@ + + +# asechf + +> Compute the [hyperbolic arcsecant][hyperbolic-arcsecant] of a single-precision floating-point number. + +
+ +## Usage + +```javascript +var asechf = require( '@stdlib/math/base/special/asechf' ); +``` + +#### asechf( x ) + +Computes the [hyperbolic arcsecant][hyperbolic-arcsecant] of a single-precision floating-point number. + +```javascript +var v = asechf( 1.0 ); +// returns 0.0 + +v = asechf( 0.5 ); +// returns ~1.317 + +v = asechf( 0.0 ); +// returns Infinity +``` + +The domain of `x` is restricted to the interval `[0, 1]`. For `x` outside of this interval, the function returns `NaN`. + +```javascript +var v = asechf( -1.0 ); +// returns NaN + +v = asechf( 2.0 ); +// returns NaN +``` + +
+ + + +
+ +## Examples + + + +```javascript +var uniform = require( '@stdlib/random/array/uniform' ); +var logEachMap = require( '@stdlib/console/log-each-map' ); +var asechf = require( '@stdlib/math/base/special/asechf' ); + +var x = uniform( 100, 0.1, 1.0, { + 'dtype': 'float32' +}); + +logEachMap( 'asechf(%0.4f) = %0.4f', x, asechf ); +``` + +
+ + + + + +* * * + +
+ +## C APIs + + + +
+ +
+ + + + + +
+ +### Usage + +```c +#include "stdlib/math/base/special/asechf.h" +``` + +#### stdlib_base_asechf( x ) + +Computes the [hyperbolic arcsecant][hyperbolic-arcsecant] of a single-precision floating-point number. + +```c +float out = stdlib_base_asechf( 0.5f ); +// returns ~1.317f +``` + +The function accepts the following arguments: + +- **x**: `[in] float` input value. + +```c +float stdlib_base_asechf( const float x ); +``` + +
+ + + + + +
+ +
+ + + + + +
+ +### Examples + +```c +#include "stdlib/math/base/special/asechf.h" +#include + +int main( void ) { + const float x[] = { 0.1f, 0.2f, 0.3f, 0.4f, 0.5f, 0.6f, 0.7f, 0.8f, 0.9f, 1.0f }; + + float v; + int i; + for ( i = 0; i < 10; i++ ) { + v = stdlib_base_asechf( x[ i ] ); + printf( "asechf(%f) = %f\n", x[ i ], v ); + } +} +``` + +
+ + + +
+ + + + + + + + + + + + + + diff --git a/lib/node_modules/@stdlib/math/base/special/asechf/benchmark/benchmark.js b/lib/node_modules/@stdlib/math/base/special/asechf/benchmark/benchmark.js new file mode 100644 index 000000000000..1af0155079de --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/asechf/benchmark/benchmark.js @@ -0,0 +1,54 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 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 isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var uniform = require( '@stdlib/random/array/uniform' ); +var pkg = require( './../package.json' ).name; +var asechf = require( './../lib' ); + + +// MAIN // + +bench( pkg, function benchmark( b ) { + var x; + var y; + var i; + + x = uniform( 100, 0.0, 1.0, { + 'dtype': 'float32' + }); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = asechf( 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/lib/node_modules/@stdlib/math/base/special/asechf/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/math/base/special/asechf/benchmark/benchmark.native.js new file mode 100644 index 000000000000..0fb01e1bca22 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/asechf/benchmark/benchmark.native.js @@ -0,0 +1,62 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 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 isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var tryRequire = require( '@stdlib/utils/try-require' ); +var uniform = require( '@stdlib/random/array/uniform' ); +var pkg = require( './../package.json' ).name; + + +// VARIABLES // + +var asechf = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( asechf instanceof Error ) +}; + + +// MAIN // + +bench( pkg+'::native', opts, function benchmark( b ) { + var x; + var y; + var i; + + x = uniform( 100, 0.0, 1.0, { + 'dtype': 'float32' + }); + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = asechf( 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/lib/node_modules/@stdlib/math/base/special/asechf/benchmark/c/Makefile b/lib/node_modules/@stdlib/math/base/special/asechf/benchmark/c/Makefile new file mode 100644 index 000000000000..928de45a1a06 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/asechf/benchmark/c/Makefile @@ -0,0 +1,127 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2026 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + +# Define the program used for compiling C source files: +ifdef C_COMPILER + CC := $(C_COMPILER) +else + CC := gcc +endif + +# Define the command-line options when compiling C files: +CFLAGS ?= \ + -std=c99 \ + -O3 \ + -Wall \ + -pedantic + +# Determine whether to generate position independent code ([1][1], [2][2]). +# +# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options +# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option +ifeq ($(OS), WINNT) + fPIC ?= +else + fPIC ?= -fPIC +endif + +# List of C targets: +c_targets := benchmark.out + + +# RULES # + +#/ +# Compiles C source files. +# +# @param {string} [C_COMPILER] - C compiler +# @param {string} [CFLAGS] - C compiler flags +# @param {(string|void)} [fPIC] - compiler flag indicating whether to generate position independent code +# +# @example +# make +# +# @example +# make all +#/ +all: $(c_targets) + +.PHONY: all + +#/ +# Compiles C source files. +# +# @private +# @param {string} CC - C compiler +# @param {string} CFLAGS - C compiler flags +# @param {(string|void)} fPIC - compiler flag indicating whether to generate position independent code +#/ +$(c_targets): %.out: %.c + $(QUIET) $(CC) $(CFLAGS) $(fPIC) -o $@ $< -lm + +#/ +# Runs compiled benchmarks. +# +# @example +# make run +#/ +run: $(c_targets) + $(QUIET) ./$< + +.PHONY: run + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/special/asechf/benchmark/c/native/Makefile b/lib/node_modules/@stdlib/math/base/special/asechf/benchmark/c/native/Makefile new file mode 100644 index 000000000000..979768abbcec --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/asechf/benchmark/c/native/Makefile @@ -0,0 +1,146 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2026 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + +# Define the program used for compiling C source files: +ifdef C_COMPILER + CC := $(C_COMPILER) +else + CC := gcc +endif + +# Define the command-line options when compiling C files: +CFLAGS ?= \ + -std=c99 \ + -O3 \ + -Wall \ + -pedantic + +# Determine whether to generate position independent code ([1][1], [2][2]). +# +# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options +# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option +ifeq ($(OS), WINNT) + fPIC ?= +else + fPIC ?= -fPIC +endif + +# List of includes (e.g., `-I /foo/bar -I /beep/boop/include`): +INCLUDE ?= + +# List of source files: +SOURCE_FILES ?= + +# List of libraries (e.g., `-lopenblas -lpthread`): +LIBRARIES ?= + +# List of library paths (e.g., `-L /foo/bar -L /beep/boop`): +LIBPATH ?= + +# List of C targets: +c_targets := benchmark.out + + +# RULES # + +#/ +# Compiles source files. +# +# @param {string} [C_COMPILER] - C compiler (e.g., `gcc`) +# @param {string} [CFLAGS] - C compiler options +# @param {(string|void)} [fPIC] - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} [INCLUDE] - list of includes (e.g., `-I /foo/bar -I /beep/boop/include`) +# @param {string} [SOURCE_FILES] - list of source files +# @param {string} [LIBPATH] - list of library paths (e.g., `-L /foo/bar -L /beep/boop`) +# @param {string} [LIBRARIES] - list of libraries (e.g., `-lopenblas -lpthread`) +# +# @example +# make +# +# @example +# make all +#/ +all: $(c_targets) + +.PHONY: all + +#/ +# Compiles C source files. +# +# @private +# @param {string} CC - C compiler (e.g., `gcc`) +# @param {string} CFLAGS - C compiler options +# @param {(string|void)} fPIC - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} INCLUDE - list of includes (e.g., `-I /foo/bar`) +# @param {string} SOURCE_FILES - list of source files +# @param {string} LIBPATH - list of library paths (e.g., `-L /foo/bar`) +# @param {string} LIBRARIES - list of libraries (e.g., `-lopenblas`) +#/ +$(c_targets): %.out: %.c + $(QUIET) $(CC) $(CFLAGS) $(fPIC) $(INCLUDE) -o $@ $(SOURCE_FILES) $< $(LIBPATH) -lm $(LIBRARIES) + +#/ +# Runs compiled benchmarks. +# +# @example +# make run +#/ +run: $(c_targets) + $(QUIET) ./$< + +.PHONY: run + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/special/asechf/benchmark/c/native/benchmark.c b/lib/node_modules/@stdlib/math/base/special/asechf/benchmark/c/native/benchmark.c new file mode 100644 index 000000000000..14af11c92a47 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/asechf/benchmark/c/native/benchmark.c @@ -0,0 +1,133 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 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/asechf.h" +#include +#include +#include +#include +#include + +#define NAME "asechf" +#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; + float y; + int i; + + t = tic(); + for ( i = 0; i < ITERATIONS; i++ ) { + x = rand_float(); + y = stdlib_base_asechf( x ); + if ( y != y ) { + printf( "should not return NaN\n" ); + break; + } + } + elapsed = tic() - t; + if ( y != y ) { + printf( "should not return NaN\n" ); + } + return elapsed; +} + +/** +* Main execution sequence. +*/ +int main( void ) { + double elapsed; + int i; + + // Use the current time to seed the random number generator: + srand( time( NULL ) ); + + print_version(); + for ( i = 0; i < REPEATS; i++ ) { + printf( "# c::native::%s\n", NAME ); + elapsed = benchmark(); + print_results( elapsed ); + printf( "ok %d benchmark finished\n", i+1 ); + } + print_summary( REPEATS, REPEATS ); +} diff --git a/lib/node_modules/@stdlib/math/base/special/asechf/binding.gyp b/lib/node_modules/@stdlib/math/base/special/asechf/binding.gyp new file mode 100644 index 000000000000..0d6508a12e99 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/asechf/binding.gyp @@ -0,0 +1,170 @@ +# @license Apache-2.0 +# +# Copyright (c) 2026 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# A `.gyp` file for building a Node.js native add-on. +# +# [1]: https://gyp.gsrc.io/docs/InputFormatReference.md +# [2]: https://gyp.gsrc.io/docs/UserDocumentation.md +{ + # List of files to include in this file: + 'includes': [ + './include.gypi', + ], + + # Define variables to be used throughout the configuration for all targets: + 'variables': { + # Target name should match the add-on export name: + 'addon_target_name%': 'addon', + + # Set variables based on the host OS: + 'conditions': [ + [ + 'OS=="win"', + { + # Define the object file suffix: + 'obj': 'obj', + }, + { + # Define the object file suffix: + 'obj': 'o', + } + ], # end condition (OS=="win") + ], # end conditions + }, # end variables + + # Define compile targets: + 'targets': [ + + # Target to generate an add-on: + { + # The target name should match the add-on export name: + 'target_name': '<(addon_target_name)', + + # Define dependencies: + 'dependencies': [], + + # Define directories which contain relevant include headers: + 'include_dirs': [ + # Local include directory: + '<@(include_dirs)', + ], + + # List of source files: + 'sources': [ + '<@(src_files)', + ], + + # Settings which should be applied when a target's object files are used as linker input: + 'link_settings': { + # Define libraries: + 'libraries': [ + '<@(libraries)', + ], + + # Define library directories: + 'library_dirs': [ + '<@(library_dirs)', + ], + }, + + # C/C++ compiler flags: + 'cflags': [ + # Enable commonly used warning options: + '-Wall', + + # Aggressive optimization: + '-O3', + ], + + # C specific compiler flags: + 'cflags_c': [ + # Specify the C standard to which a program is expected to conform: + '-std=c99', + ], + + # C++ specific compiler flags: + 'cflags_cpp': [ + # Specify the C++ standard to which a program is expected to conform: + '-std=c++11', + ], + + # Linker flags: + 'ldflags': [], + + # Apply conditions based on the host OS: + 'conditions': [ + [ + 'OS=="mac"', + { + # Linker flags: + 'ldflags': [ + '-undefined dynamic_lookup', + '-Wl,-no-pie', + '-Wl,-search_paths_first', + ], + }, + ], # end condition (OS=="mac") + [ + 'OS!="win"', + { + # C/C++ flags: + 'cflags': [ + # Generate platform-independent code: + '-fPIC', + ], + }, + ], # end condition (OS!="win") + ], # end conditions + }, # end target <(addon_target_name) + + # Target to copy a generated add-on to a standard location: + { + 'target_name': 'copy_addon', + + # Declare that the output of this target is not linked: + 'type': 'none', + + # Define dependencies: + 'dependencies': [ + # Require that the add-on be generated before building this target: + '<(addon_target_name)', + ], + + # Define a list of actions: + 'actions': [ + { + 'action_name': 'copy_addon', + 'message': 'Copying addon...', + + # Explicitly list the inputs in the command-line invocation below: + 'inputs': [], + + # Declare the expected outputs: + 'outputs': [ + '<(addon_output_dir)/<(addon_target_name).node', + ], + + # Define the command-line invocation: + 'action': [ + 'cp', + '<(PRODUCT_DIR)/<(addon_target_name).node', + '<(addon_output_dir)/<(addon_target_name).node', + ], + }, + ], # end actions + }, # end target copy_addon + ], # end targets +} diff --git a/lib/node_modules/@stdlib/math/base/special/asechf/docs/repl.txt b/lib/node_modules/@stdlib/math/base/special/asechf/docs/repl.txt new file mode 100644 index 000000000000..1d4972df0956 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/asechf/docs/repl.txt @@ -0,0 +1,29 @@ + +{{alias}}( x ) + Computes the hyperbolic arcsecant of a + single-precision floating-point number. + + If `x < 0` or `x > 1`, the function returns `NaN`. + + Parameters + ---------- + x: number + Input value. + + Returns + ------- + y: number + Hyperbolic arcsecant. + + Examples + -------- + > var y = {{alias}}( 1.0 ) + 0.0 + > y = {{alias}}( 0.5 ) + ~1.317 + > y = {{alias}}( NaN ) + NaN + + See Also + -------- + diff --git a/lib/node_modules/@stdlib/math/base/special/asechf/docs/types/index.d.ts b/lib/node_modules/@stdlib/math/base/special/asechf/docs/types/index.d.ts new file mode 100644 index 000000000000..6cb3eb9825cf --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/asechf/docs/types/index.d.ts @@ -0,0 +1,44 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2026 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 hyperbolic arcsecant of a single-precision floating-point number. +* +* @param x - input value +* @returns hyperbolic arcsecant +* +* @example +* var v = asechf( 1.0 ); +* // returns 0.0 +* +* @example +* var v = asechf( 0.5 ); +* // returns ~1.317 +* +* @example +* var v = asechf( NaN ); +* // returns NaN +*/ +declare function asechf( x: number ): number; + + +// EXPORTS // + +export = asechf; diff --git a/lib/node_modules/@stdlib/math/base/special/asechf/docs/types/test.ts b/lib/node_modules/@stdlib/math/base/special/asechf/docs/types/test.ts new file mode 100644 index 000000000000..7e0005444a5e --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/asechf/docs/types/test.ts @@ -0,0 +1,44 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2026 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 asechf = require( './index' ); + + +// TESTS // + +// The function returns a number... +{ + asechf( 0.5 ); // $ExpectType number +} + +// The compiler throws an error if the function is provided a value other than a number... +{ + asechf( true ); // $ExpectError + asechf( false ); // $ExpectError + asechf( null ); // $ExpectError + asechf( undefined ); // $ExpectError + asechf( '5' ); // $ExpectError + asechf( [] ); // $ExpectError + asechf( {} ); // $ExpectError + asechf( ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function is provided insufficient arguments... +{ + asechf(); // $ExpectError +} diff --git a/lib/node_modules/@stdlib/math/base/special/asechf/examples/c/Makefile b/lib/node_modules/@stdlib/math/base/special/asechf/examples/c/Makefile new file mode 100644 index 000000000000..c8f8e9a1517b --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/asechf/examples/c/Makefile @@ -0,0 +1,146 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2026 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + +# Define the program used for compiling C source files: +ifdef C_COMPILER + CC := $(C_COMPILER) +else + CC := gcc +endif + +# Define the command-line options when compiling C files: +CFLAGS ?= \ + -std=c99 \ + -O3 \ + -Wall \ + -pedantic + +# Determine whether to generate position independent code ([1][1], [2][2]). +# +# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options +# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option +ifeq ($(OS), WINNT) + fPIC ?= +else + fPIC ?= -fPIC +endif + +# List of includes (e.g., `-I /foo/bar -I /beep/boop/include`): +INCLUDE ?= + +# List of source files: +SOURCE_FILES ?= + +# List of libraries (e.g., `-lopenblas -lpthread`): +LIBRARIES ?= + +# List of library paths (e.g., `-L /foo/bar -L /beep/boop`): +LIBPATH ?= + +# List of C targets: +c_targets := example.out + + +# RULES # + +#/ +# Compiles source files. +# +# @param {string} [C_COMPILER] - C compiler (e.g., `gcc`) +# @param {string} [CFLAGS] - C compiler options +# @param {(string|void)} [fPIC] - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} [INCLUDE] - list of includes (e.g., `-I /foo/bar -I /beep/boop/include`) +# @param {string} [SOURCE_FILES] - list of source files +# @param {string} [LIBPATH] - list of library paths (e.g., `-L /foo/bar -L /beep/boop`) +# @param {string} [LIBRARIES] - list of libraries (e.g., `-lopenblas -lpthread`) +# +# @example +# make +# +# @example +# make all +#/ +all: $(c_targets) + +.PHONY: all + +#/ +# Compiles C source files. +# +# @private +# @param {string} CC - C compiler (e.g., `gcc`) +# @param {string} CFLAGS - C compiler options +# @param {(string|void)} fPIC - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} INCLUDE - list of includes (e.g., `-I /foo/bar`) +# @param {string} SOURCE_FILES - list of source files +# @param {string} LIBPATH - list of library paths (e.g., `-L /foo/bar`) +# @param {string} LIBRARIES - list of libraries (e.g., `-lopenblas`) +#/ +$(c_targets): %.out: %.c + $(QUIET) $(CC) $(CFLAGS) $(fPIC) $(INCLUDE) -o $@ $(SOURCE_FILES) $< $(LIBPATH) -lm $(LIBRARIES) + +#/ +# Runs compiled examples. +# +# @example +# make run +#/ +run: $(c_targets) + $(QUIET) ./$< + +.PHONY: run + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/special/asechf/examples/c/example.c b/lib/node_modules/@stdlib/math/base/special/asechf/examples/c/example.c new file mode 100644 index 000000000000..7a706be5d5b6 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/asechf/examples/c/example.c @@ -0,0 +1,31 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 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/asechf.h" +#include + +int main( void ) { + const float x[] = { 0.1f, 0.2f, 0.3f, 0.4f, 0.5f, 0.6f, 0.7f, 0.8f, 0.9f, 1.0f }; + + float v; + int i; + for ( i = 0; i < 10; i++ ) { + v = stdlib_base_asechf( x[ i ] ); + printf( "asechf(%f) = %f\n", x[ i ], v ); + } +} diff --git a/lib/node_modules/@stdlib/math/base/special/asechf/examples/index.js b/lib/node_modules/@stdlib/math/base/special/asechf/examples/index.js new file mode 100644 index 000000000000..d6b0ae6eaa7f --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/asechf/examples/index.js @@ -0,0 +1,29 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +var uniform = require( '@stdlib/random/array/uniform' ); +var logEachMap = require( '@stdlib/console/log-each-map' ); +var asechf = require( './../lib' ); + +var x = uniform( 100, 0.1, 1.0, { + 'dtype': 'float32' +}); + +logEachMap( 'asechf(%0.4f) = %0.4f', x, asechf ); diff --git a/lib/node_modules/@stdlib/math/base/special/asechf/include.gypi b/lib/node_modules/@stdlib/math/base/special/asechf/include.gypi new file mode 100644 index 000000000000..bee8d41a2caf --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/asechf/include.gypi @@ -0,0 +1,53 @@ +# @license Apache-2.0 +# +# Copyright (c) 2026 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", + "asechf", + "inverse", + "hyperbolic", + "arc", + "arcsecant", + "secant", + "acosh", + "cosh", + "hyperbolic secant", + "area", + "area hyperbolic secant" + ], + "__stdlib__": { + "scaffold": { + "$schema": "math/base@v1.0", + "base_alias": "asech", + "alias": "asechf", + "pkg_desc": "compute the hyperbolic arcsecant of a single-precision floating-point number", + "desc": "computes the hyperbolic arcsecant of a single-precision floating-point number", + "short_desc": "hyperbolic arcsecant", + "parameters": [ + { + "name": "x", + "desc": "input value", + "type": { + "javascript": "number", + "jsdoc": "number", + "c": "float", + "dtype": "float32" + }, + "domain": [ + { + "min": 0, + "max": 1 + } + ], + "rand": { + "prng": "random/base/uniform", + "parameters": [ + 0.1, + 1 + ] + }, + "example_values": [ + 0.5, + 0.75, + 0.1, + 0.9, + 0.25, + 0.33, + 0.66, + 0.8, + 0.42, + 0.12, + 0.99, + 0.05, + 0.55, + 0.7, + 0.22, + 0.88, + 0.15, + 0.6, + 0.35, + 0.95 + ] + } + ], + "output_policy": "real_floating_point_and_generic", + "returns": { + "desc": "hyperbolic arcsecant", + "type": { + "javascript": "number", + "jsdoc": "number", + "c": "float", + "dtype": "float32" + } + }, + "keywords": [ + "asechf", + "inverse", + "hyperbolic", + "secant", + "arcsecant", + "acosh" + ], + "extra_keywords": [ + "math.acosh" + ] + } + } +} diff --git a/lib/node_modules/@stdlib/math/base/special/asechf/src/Makefile b/lib/node_modules/@stdlib/math/base/special/asechf/src/Makefile new file mode 100644 index 000000000000..2caf905cedbe --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/asechf/src/Makefile @@ -0,0 +1,70 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2026 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + + +# RULES # + +#/ +# Removes generated files for building an add-on. +# +# @example +# make clean-addon +#/ +clean-addon: + $(QUIET) -rm -f *.o *.node + +.PHONY: clean-addon + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: clean-addon + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/special/asechf/src/addon.c b/lib/node_modules/@stdlib/math/base/special/asechf/src/addon.c new file mode 100644 index 000000000000..37144a403a86 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/asechf/src/addon.c @@ -0,0 +1,25 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 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/asechf.h" +#include "stdlib/math/base/napi/unary.h" + +/** +* Initialize the addon. +*/ +STDLIB_MATH_BASE_NAPI_MODULE_F_F( stdlib_base_asechf ) diff --git a/lib/node_modules/@stdlib/math/base/special/asechf/src/main.c b/lib/node_modules/@stdlib/math/base/special/asechf/src/main.c new file mode 100644 index 000000000000..32f3615bddf3 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/asechf/src/main.c @@ -0,0 +1,34 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 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/asechf.h" +#include "stdlib/math/base/special/acoshf.h" + +/** +* Computes the hyperbolic arcsecant of a number (single-precision). +* +* @param x input value +* @return output value +* +* @example +* out = stdlib_base_asechf( 1.0f ); +* // returns 0.0f +*/ +float stdlib_base_asechf( const float x ) { + return stdlib_base_acoshf( 1.0f / x ); +} diff --git a/lib/node_modules/@stdlib/math/base/special/asechf/test/fixtures/julia/REQUIRE b/lib/node_modules/@stdlib/math/base/special/asechf/test/fixtures/julia/REQUIRE new file mode 100644 index 000000000000..308c3be89c85 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/asechf/test/fixtures/julia/REQUIRE @@ -0,0 +1,2 @@ +julia 1.5 +JSON 0.21 diff --git a/lib/node_modules/@stdlib/math/base/special/asechf/test/fixtures/julia/data.json b/lib/node_modules/@stdlib/math/base/special/asechf/test/fixtures/julia/data.json new file mode 100644 index 000000000000..5576c64d8f0d --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/asechf/test/fixtures/julia/data.json @@ -0,0 +1 @@ +{"expected":[12.206072645505174,8.275236644368997,7.591951374506187,7.189795051428717,6.9037712049414655,6.681623610980361,6.499966265175368,6.346289971085316,6.213114187920323,6.095607492092794,5.9904677663896235,5.89533792888281,5.808476518866334,5.72856037837535,5.654560557559083,5.585661077342444,5.521203929811637,5.460650761449272,5.403555512566197,5.349544456084758,5.2983013571094775,5.249556253518817,5.203076846505476,5.158661804765146,5.116135493562808,5.075343779623094,5.036150658649421,4.998435519181628,4.962090903934883,4.927020663876079,4.893138425153256,4.8603663073306285,4.82863384506069,4.797877075635984,4.7680377627114945,4.739062732516806,4.710903303546756,4.683514794365331,4.656856097025726,4.630889305881586,4.605579393376464,4.580893925852503,4.556802813593099,4.533278090267137,4.510293717719891,4.487825412693555,4.4658504925859495,4.444347737791248,4.423297268528423,4.402680434365408,4.382479714900317,4.362678630274339,4.3432616603710485,4.324214171709548,4.305522351168732,4.287173145790721,4.269154208006385,4.251453845707244,4.234060976658112,4.216965086805359,4.200156192088024,4.18362480340443,4.167361894426518,4.151358871988547,4.135607548806959,4.120100118314591,4.104829131415586,4.089787474987736,4.074968351976952,4.060365262944427,4.045971988941103,4.0317825755964956,4.0177913183199925,4.003992748522566,3.990381620775622,3.9769529008315225,3.9637017544373028,3.950623536879403,3.93771378320281,3.9249681990530805,3.912382652094235,3.8999531639596197,3.8876759026964876,3.8755471756684163,3.8635634228826556,3.8517212107122423,3.8400172259851817,3.828448270415242,3.8170112553509368,3.8057031968211246,3.794521210857351,3.78346250907458,3.772524394493381,3.7617042575879047,3.750999572545167,3.7404078937222227,3.729926852288799,3.7195541530438603,3.709287571395399,3.699124950493518,3.6890641985075505,3.6791032860386355,3.669240243659725,3.6594731595755814,3.6498001773957927,3.6402194940143375,3.6307293575896207,3.621328065619334,3.612013963104847,3.6027854408001705,3.5936409335408706,3.5845789186485844,3.5755979144070706,3.566696478605987,3.5578732071488037,3.5491267327215015,3.5404557235188956,3.5318588820256127,3.5233349438489374,3.5148826766008963,3.5065008788271155,3.4981883789801116,3.4899440344348336,3.48176673054438,3.4736553797339402,3.4656089206311194,3.4576263172309094,3.4497065580936574,3.4418486555744847,3.4340516450826875,3.4263145843697216,3.418636552844474,3.411016650914558,3.4034539993524664,3.3959477386854613,3.388497028608139,3.3811010474166725,3.373758991463773,3.36647007463347,3.3592335278348475,3.3520485985139272,3.344914550182919,3.3378306619661013,3.3307962281616392,3.323810557818662,3.316872974328978,3.3099828150328165,3.3031394308380224,3.2963421858521604,3.2895904570270056,3.282883633814919,3.276221117836641,3.269602322560046,3.2630266729894304,3.2564936053649185,3.250002566871595,3.2435530153579912,3.2371444190635636,3.23077625635482,3.2244480154697763,3.2181591942704117,3.2119093000028474,3.2056978490649395,3.199524366781029,3.193388387183573,3.187289452801418,3.1812271144544675,3.175200931054514,3.1692104694120165,3.1632553040486098,3.1573350170151477,3.151449197715076,3.145597442732959,3.1397793556679763,3.1339945469722106,3.1282426337935783,3.122523239823225,3.1168359951472535,3.111180536102619,3.1055565051370655,3.0999635506729626,3.094401326974914,3.0888694940210106,3.0833677173776124,3.077895668077544,3.072453022501584,3.0670394622631587,3.061654674096116,3.0562983497454996,3.050970185861216,3.04566988389451,3.0403971499971534,3.0351516949232673,3.0299332339336966,3.024741486702853,3.0195761772279486,3.0144370337405606,3.0093237886204363,3.004236178311484,2.999173943239883,2.9941368277342377,2.9891245799477324,2.9841369517822094,2.9791736988141264,2.9742345802223307,2.9693193587176,2.9644278004738984,2.9595596750612936,2.954714755380494,2.9498928175989554,2.9450936410885054,2.940317008364462,2.9355627050261788,2.9308305196989988,2.9261202439775595,2.9214316723704252,2.916764602246001,2.912118833779697,2.9074941699023054,2.9028904162495617,2.898307381112852,2.893744875391039,2.8892027125433755,2.884680708543475,2.8801786818343134,2.875696453284233,2.871233846143919,2.8667906860043297,2.862366800755547,2.857962020546532,2.853576177745754,2.849209106902672,2.844860644710055,2.8405306299671023,2.836218903543364,2.8319253083434224,2.827649689272329,2.823391893201768,2.8191517689369343,2.8149291671841055,2.810723940518891,2.80653594335514,2.802365031914495,2.798211064196571,2.7940738999497485,2.789953400642564,2.785849429435681,2.7817618511544318,2.777690532261913,2.7736353408326204,2.7695961465266183,2.7655728205642167,2.7615652357011555,2.757573266204282,2.7535967878277043,2.749635677789416,2.745689814748377,2.7417590787820387,2.7378433513643134,2.7339425153439603,2.730056454923392,2.7261850556378913,2.722328204335218,2.7184857891556113,2.7146576995121667,2.710843826071584,2.7070440607352833,2.703258296620868,2.6994864280439383,2.6957283505002434,2.6919839606481633,2.688253156291515,2.6845358363626763,2.680831900906017,2.6771412510616357,2.6734637890493893,2.669799418153217,2.666148042705745,2.662509568073165,2.6588839006403933,2.6552709477964855,2.6516706179203196,2.6480828203665254,2.64450746545167,2.6409444644406825,2.6373937295335192,2.6338551738520612,2.6303287114272416,2.626814257186395,2.623311726940831,2.619821037373613,2.6163421060275582,2.6128748512934354,2.6094191923983683,2.6059750493944343,2.60254234314746,2.5991209953260026,2.5957109283905186,2.592312065582716,2.5889243309150816,2.585547649160588,2.5821819458425646,2.5788271472247444,2.5754831803014704,2.5721499727880643,2.5688274531113544,2.5655155504003573,2.5622141944771126,2.5589233158476645,2.5556428456931943,2.5523727158612894,2.549112858857359,2.5458632078361845,2.542623696593605,2.5393942595583363,2.53617483178392,2.5329653489407997,2.529765747308523,2.5265759637680643,2.5233959357942717,2.5202256014484288,2.5170648993709333,2.5139137687740916,2.5107721494350215,2.5076399816886683,2.5045172064209247,2.5014037650618612,2.4982995995790533,2.4952046524710187,2.4921188667607477,2.489042185989336,2.485974554209709,2.482915915980449,2.479866216359705,2.4768254008992034,2.4737934156383394,2.470770207098364,2.467755722276653,2.4647499086410622,2.4617527141243647,2.458764087118773,2.4557839764705403,2.4528123314746355,2.4498491018695083,2.4468942378319154,2.443947689971835,2.441009409327445,2.4380793473601816,2.435157455949862,2.4322436873898825,2.429337994382481,2.426440330034072,2.423550647850642,2.4206689017332157,2.417795045973383,2.4149290352488895,2.4120708246192906,2.4092203695216643,2.4063776257663876,2.4035425495329648,2.400715097365923,2.3978952261707565,2.3950828932099344,2.3922780560989545,2.38948067280246,2.3866907016304055,2.383908101234275,2.3811328306033537,2.3783648490610463,2.3756041162612527,2.3728505921847827,2.3701042371358305,2.367365011738485,2.3646328769332965,2.361907793973885,2.3591897244235907,2.3564786301521785,2.3537744733325763,2.3510772164376603,2.3483868222370865,2.3457032537941567,2.343026474462732,2.340356447884183,2.337693137984382,2.3350365089707323,2.332386525329239,2.3297431518216136,2.327106353482421,2.324476095616259,2.3218523437949785,2.3192350638549337,2.3166242218942723,2.3140197842702586,2.3114217175966307,2.3088299887409907,2.306244564822229,2.3036654132079812,2.3010925015121164,2.2985257975922555,2.2959652695473256,2.293410885715139,2.2908626146700066,2.28832042522038,2.2857842864065208,2.2832541674982023,2.2807300379924373,2.278211867611234,2.2756996262993803,2.2731932842222546,2.270692811763663,2.268198179523706,2.2657093583166663,2.263226319168926,2.2607490333169062,2.2582774722050365,2.2558116074837407,2.2533514110074564,2.2508968548326695,2.2484479112159796,2.2460045526121832,2.2435667516723825,2.241134481242115,2.2387077143595073,2.2362864242534495,2.233870584341791,2.231460168229558,2.229055149707191,2.226655502748805,2.2242612015104677,2.2218722203285,2.2194885337177945,2.2171101163701534,2.214736943152648,2.2123689891059932,2.2100062294429472,2.2076486395467207,2.205296194969413,2.2029488714304595,2.200606644815102,2.1982694911728715,2.195937386716094,2.1936103078184064,2.191288231013296,2.1889711329926524,2.1866589906053355,2.1843517808557618,2.1820494809025064,2.179752068056918,2.1774595197817526,2.175171813689821,2.1728889275426497,2.17061083924916,2.16833752686436,2.1660689685880494,2.1638051427635427,2.1615460278764016,2.159291602553185,2.1570418455602125,2.154796735802337,2.1525562523217365,2.1503203742967165,2.148089081040524,2.1458623520001776,2.143640166755306,2.141422505017004,2.1392093466266964,2.1370006715550165,2.1347964599006954,2.132596691889466,2.130401347872973,2.1282104083277025,2.1260238538539133,2.1238416651745884,2.1216638231343925,2.1194903086986434,2.11732110295229,2.1151561870989046,2.1129955424596885,2.110839150472479,2.1086869926907745,2.1065390507827697,2.1043953065303955,2.1022557418283725,2.1001203386832747,2.0979890792126024,2.095861945643862,2.0937389203136596,2.0916199856668016,2.0895051242554024,2.0873943187380064,2.0852875518787153,2.0831848065463237,2.0810860657134667,2.078991312455773,2.0769005299510286,2.0748137014783485,2.0727308104173545,2.070651840247367,2.0685767745465973,2.066505596991354,2.064438291355255,2.0623748415084475,2.060315231416835,2.0582594451413145,2.0562074668370185,2.0541592807525646,2.0521148712293167,2.0500742227006463,2.048037319691209,2.0460041468162204,2.0439746887807466,2.0419489303789953,2.0399268564936173,2.037908452095014,2.0358937022406525,2.0338825920743835,2.031875106825773,2.029871231809433,2.027870952424364,2.0258742541532984,2.023881122562058,2.021891543298911,2.0199055020939354,2.0179229847583953,2.015943977184113,2.0139684653428556,2.0119964352857242,2.010027873142547,2.0080627651212826,2.0061010975074236,2.0041428566634107,2.002188029028049,2.0002366011159327,1.998288559516871,1.996343890895324,1.994402581989841,1.9924646196125049,1.9905299906483807,1.988598682054972,1.986670680861679,1.9847459741692643,1.9828245491493208,1.9809063930437485,1.9789914931642323,1.9770798368917257,1.9751714116759411,1.9732662050348426,1.971364204554143,1.9694653978868093,1.967569772752567,1.9656773169374129,1.9637880182931322,1.961901864736818,1.9600188442503965,1.9581389448801552,1.9562621547362775,1.9543884619923808,1.9525178548850566,1.9506503217134161,1.9487858508386424,1.9469244306835425,1.945066049732106,1.9432106965290659,1.9413583596794652,1.9395090278482268,1.9376626897597258,1.9358193341973673,1.9339789500031668,1.932141526077335,1.9303070513778657,1.9284755149201287,1.9266469057764632,1.9248212130757782,1.9229984260031545,1.9211785337994502,1.9193615257609107,1.91754739123878,1.9157361196389184,1.9139277004214206,1.912122123100239,1.9103193772428089,1.9085194524696782,1.906722338454139,1.904928024921864,1.903136501650544,1.9013477584695297,1.899561785259477,1.8977785719519942,1.8959981085292927,1.89422038502384,1.892445391518018,1.8906731181437804,1.888903555082317,1.8871366925637167,1.8853725208666376,1.8836110303179767,1.8818522112925435,1.880096054212736,1.8783425495482204,1.8765916878156126,1.8748434595781616,1.8730978554454376,1.8713548660730208,1.8696144821621934,1.8678766944596346,1.8661414937571181,1.8644088708912099,1.862678816742973,1.8609513222376703,1.859226378344472,1.857503976076164,1.8557841064888614,1.8540667606817218,1.852351929796661,1.850639605018073,1.8489297775725493,1.8472224387286038,1.845517579796398,1.8438151921274681,1.842115267114454,1.8404177961908343,1.838722770830658,1.837030182548281,1.835340022898106,1.8336522834743214,1.831966955910646,1.830284031880071,1.8286035030946088,1.826925361305041,1.8252495983006687,1.823576205909066,1.8219051759958345,1.8202365004643586,1.8185701712555657,1.8169061803476856,1.8152445197560134,1.8135851815326725,1.811928157766381,1.8102734405822214,1.8086210221414074,1.8069708946410559,1.8053230503139623,1.8036774814283725,1.8020341802877615,1.8003931392306118,1.798754350630192,1.7971178068943396,1.7954835004652454,1.7938514238192376,1.7922215694665673,1.7905939299512001,1.7889684978506033,1.7873452657755395,1.785724226369858,1.7841053723102915,1.7824886963062514,1.7808741910996255,1.7792618494645784,1.7776516642073519,1.7760436281660668,1.7744377342105284,1.7728339752420308,1.7712323441931643,1.769632834027623,1.768035437740016,1.7664401483556766,1.7648469589304774,1.7632558625506416,1.7616668523325607,1.7600799214226104,1.7584950629969678,1.7569122702614322,1.755331536451246,1.7537528548309151,1.7521762186940353,1.7506016213631128,1.7490290561893949,1.747458516552694,1.7458899958612177,1.744323487551398,1.7427589850877228,1.7411964819625676,1.7396359716960303,1.7380774478357641,1.736520903956815,1.734966333661458,1.7334137305790362,1.7318630883657993,1.7303144007047448,1.7287676613054606,1.7272228639039657,1.7256800022625565,1.7241390701696508,1.7226000614396346,1.7210629699127091,1.719527789454739,1.7179945139571025,1.7164631373365418,1.7149336535350146,1.7134060565195475,1.7118803402820884,1.7103564988393622,1.7088345262327274,1.7073144165280314,1.7057961638154693,1.7042797622094419,1.7027652058484173,1.7012524888947895,1.6997416055347419,1.6982325499781095,1.6967253164582419,1.6952198992318694,1.6937162925789677,1.6922144908026246,1.6907144882289074,1.689216279206731,1.687719858107728,1.6862252193261187,1.6847323572785815,1.6832412664041259,1.6817519411639639,1.6802643760413862,1.6787785655416336,1.6772945041917753,1.6758121865405835,1.674331607158411,1.6728527606370698,1.6713756415897085,1.6699002446506939,1.6684265644754899,1.6669545957405392,1.665484333143145,1.6640157714013555,1.6625489052538454,1.6610837294598015,1.6596202387988075,1.6581584280707302,1.656698292095607,1.655239825713532,1.653783023784544,1.652327881188518,1.6508743928250527,1.6494225536133609,1.6479723584921628,1.6465238024195745,1.6450768803730047,1.6436315873490446,1.642187918363364,1.6407458684506049,1.6393054326642778,1.6378666060766571,1.6364293837786785,1.6349937608798362,1.6335597325080804,1.6321272938097175,1.630696439949309,1.6292671661095706,1.6278394674912746,1.62641333931315,1.6249887768117857,1.6235657752415322,1.6221443298744054,1.6207244359999904,1.619306088925346,1.6178892839749113,1.616474016490408,1.6150602818307502,1.613648075371951,1.6122373925070272,1.6108282286459117,1.6094205792153584,1.6080144396588536,1.6066098054365263,1.6052066720250573,1.6038050349175905,1.6024048896236456,1.6010062316690292,1.599609056595748,1.5982133599619215,1.5968191373416967,1.5954263843251622,1.594035096518262,1.5926452695427127,1.5912568990359184,1.5898699806508874,1.5884845100561487,1.5871004829356705,1.5857178949887774,1.5843367419300693,1.5829570194893408,1.5815787234115,1.5802018494564884,1.5788263933992028,1.577452351029415,1.576079718151693,1.5747084905853252,1.57333866416424,1.5719702347369306,1.5706031981663784,1.5692375503299754,1.5678732871194503,1.5665104044407916,1.565148898214175,1.5637887643738875,1.5624299988682524,1.5610725976595599,1.5597165567239892,1.558361872051541,1.55700853964596,1.5556565555246686,1.5543059157186916,1.552956616272588,1.551608653244379,1.5502620227054782,1.5489167207406236,1.5475727434478066,1.5462300869382049,1.5448887473361121,1.5435487207788725,1.542210003416811,1.5408725914131678,1.5395364809440306,1.5382016681982693,1.5368681493774692,1.5355359206958656,1.5342049783802794,1.5328753186700508,1.5315469378169766,1.5302198320852454,1.5288939977513734,1.5275694311041421,1.5262461284445348,1.5249240860856739,1.5236033003527603,1.5222837675830085,1.5209654841255877,1.5196484463415603,1.5183326506038206,1.5170180932970332,1.5157047708175757,1.5143926795734768,1.5130818159843582,1.5117721764813739,1.5104637575071527,1.5091565555157402,1.5078505669725397,1.5065457883542555,1.5052422161488335,1.5039398468554068,1.502638676984237,1.5013387030566592,1.5000399216050238,1.4987423291726434,1.4974459223137342,1.496150697593364,1.4948566515873958,1.4935637808824316,1.4922720820757611,1.490981551775306,1.4896921865995671,1.4884039831775697,1.4871169381488116,1.4858310481632107,1.484546309881051,1.4832627199729314,1.4819802751197135,1.4806989720124708,1.4794188073524353,1.4781397778509484,1.4768618802294096,1.4755851112192249,1.4743094675617585,1.4730349460082806,1.471761543319919,1.4704892562676102,1.4692180816320486,1.467948016203639,1.4666790567824461,1.465411200178149,1.4641444432099908,1.4628787827067309,1.461614215506598,1.4603507384572432,1.4590883484156911,1.4578270422482944,1.4565668168306878,1.4553076690477393,1.4540495957935065,1.4527925939711888,1.4515366604930837,1.4502817922805393,1.4490279862639108,1.4477752393825145,1.4465235485845838,1.4452729108272238,1.444023323076368,1.4427747823067338,1.4415272855017796,1.4402808296536591,1.43903541176318,1.4377910288397604,1.4365476779013855,1.435305355974565,1.4340640600942904,1.4328237873039942,1.4315845346555052,1.4303462992090095,1.4291090780330071,1.4278728682042712,1.4266376668078067,1.4254034709368095,1.4241702776926253,1.42293808418471,1.4217068875305872,1.4204766848558112,1.4192474732939242,1.418019249986418,1.4167920120826938,1.4155657567400235,1.4143404811235092,1.4131161824060463,1.411892857768283,1.4106705043985817,1.4094491194929812,1.4082287002551597,1.407009243896393,1.4057907476355211,1.4045732086989076,1.4033566243204028,1.402140991741307,1.400926308210333,1.3997125709835692,1.3984997773244425,1.3972879245036822,1.3960770097992832,1.39486703049647,1.3936579838876606,1.3924498672724297,1.391242677957475,1.390036413256579,1.3888310704905766,1.3876266469873166,1.3864231400816291,1.3852205471152896,1.3840188654369843,1.3828180924022762,1.3816182253735687,1.380419261720074,1.3792211988177774,1.3780240340494034,1.376827764804382,1.375632388478816,1.3744379024754456,1.3732443042036173,1.3720515910792488,1.3708597605247974,1.3696688099692262,1.3684787368479714,1.3672895386029105,1.366101212682329,1.3649137565408884,1.3637271676395948,1.3625414434457652,1.361356581432997,1.360172579081136,1.358989433876245,1.3578071433105712,1.3566257048825172,1.3554451160966063,1.3542653744634559,1.3530864774997422,1.3519084227281732,1.350731207677455,1.3495548298822637,1.3483792868832134,1.3472045762268272,1.3460306954655055,1.3448576421574974,1.3436854138668712,1.342514008163483,1.3413434226229481,1.3401736548266119,1.3390047023615197,1.3378365628203879,1.3366692338015753,1.3355027129090529,1.3343369977523765,1.3331720859466571,1.3320079751125329,1.3308446628761388,1.3296821468690811,1.3285204247284075,1.3273594940965787,1.3261993526214408,1.3250399979561975,1.3238814277593824,1.3227236396948303,1.3215666314316514,1.3204104006442015,1.3192549450120574,1.3181002622199867,1.3169463499579224,1.3157932059209367,1.3146408278092114,1.3134892133280127,1.3123383601876657,1.3111882661035241,1.310038928795948,1.3088903459902748,1.307742515416792,1.3065954348107154,1.305449101912157,1.3043035144661044,1.303158670222391,1.3020145669356717,1.3008712023653988,1.2997285742757927,1.298586680435819,1.2974455186191634,1.2963050866042036,1.2951653821739877,1.2940264031162056,1.2928881472231661,1.2917506122917717,1.2906137961234925,1.2894776965243426,1.2883423113048555,1.287207638280058,1.2860736752694473,1.2849404200969654,1.2838078705909755,1.282676024584238,1.2815448799138842,1.2804144344213957,1.279284685952577,1.2781556323575332,1.2770272714906468,1.2758996012105512,1.2747726193801114,1.2736463238663955,1.2725207125406546,1.2713957832782983,1.2702715339588706,1.2691479624660276,1.2680250666875144,1.2669028445151402,1.2657812938447583,1.2646604125762397,1.2635401986134522,1.2624206498642374,1.2613017642403872,1.2601835396576229,1.2590659740355687,1.2579490652977339,1.256832811371487,1.255717210188035,1.2546022596823996,1.2534879577933968,1.2523743024636131,1.251261291639384,1.250148923270772,1.2490371953115442,1.247926105719151,1.2468156524547027,1.2457058334829507,1.244596646772262,1.2434880902945993,1.2423801620255015,1.2412728599440574,1.2401661820328889,1.2390601262781262,1.2379546906693881,1.2368498731997604,1.2357456718657747,1.234642084667386,1.2335391096079542,1.2324367446942197,1.2313349879362847,1.2302338373475923,1.2291332909449038,1.2280333467482794,1.2269340027810567,1.2258352570698299,1.2247371076444302,1.223639552537903,1.2225425897864892,1.2214462174296046,1.2203504335098176,1.2192552360728313,1.2181606231674607,1.2170665928456137,1.2159731431622716,1.2148802721754661,1.2137879779462626,1.212696258538737,1.2116051120199576,1.2105145364599637,1.209424529931747,1.2083350905112304,1.2072462162772486,1.2061579053115283,1.2050701556986685,1.2039829655261198,1.2028963328841658,1.2018102558659032,1.2007247325672212,1.1996397610867833,1.198555339526007,1.1974714659890429,1.1963881385827586,1.195305355416716,1.1942231146031534,1.193141414256966,1.1920602524956856,1.1909796274394637,1.189899537211049,1.1888199799357708,1.1877409537415182,1.1866624567587223,1.185584487120336,1.1845070429618152,1.1834301224210992,1.182353723638594,1.1812778447571493,1.1802024839220444,1.1791276392809646,1.1780533089839853,1.1769794911835527,1.1759061840344642,1.1748333856938489,1.1737610943211518,1.1726893080781116,1.171618025128745,1.1705472436393245,1.1694769617783638,1.1684071777165963,1.1673378896269568,1.1662690956845645,1.1652007940667033,1.1641329829528022,1.1630656605244198,1.1619988249652224,1.160932474460968,1.1598666071994872,1.158801221370664,1.1577363151664184,1.1566718867806876,1.1556079344094072,1.1545444562504947,1.1534814505038282,1.1524189153712314,1.1513568490564525,1.1502952497651477,1.1492341157048627,1.1481734450850136,1.1471132361168694,1.1460534870135348,1.1449941959899295,1.1439353612627727,1.142876981050563,1.1418190535735617,1.1407615770537742,1.1397045497149307,1.1386479697824707,1.1375918354835224,1.136536145046886,1.1354808967030159,1.1344260886840012,1.1333717192235493,1.132317786556967,1.1312642889211422,1.1302112245545277,1.1291585916971207,1.1281063885904468,1.1270546134775408,1.1260032646029294,1.1249523402126136,1.1239018385540493,1.122851757876131,1.1218020964291733,1.120752852464892,1.1197040242363876,1.118655609998127,1.117607608005925,1.116560016516927,1.1155128337895903,1.1144660580836674,1.1134196876601872,1.1123737207814373,1.1113281557109453,1.1102829907134637,1.1092382240549477,1.1081938540025411,1.1071498788245562,1.1061062967904565,1.1050631061708394,1.1040203052374165,1.1029778922629982,1.101935865521474,1.1008942232877943,1.0998529638379542,1.098812085448973,1.0977715863988797,1.096731464966692,1.095691719432399,1.0946523480769443,1.0936133491822073,1.092574721030985,1.0915364619069745,1.090498570094754,1.089461043879767,1.0884238815483012,1.0873870813874724,1.0863506416852067,1.0853145607302215,1.0842788368120067,1.0832434682208092,1.0822084532476117,1.0811737901841172,1.080139477322729,1.0791055129565328,1.0780718953792798,1.0770386228853672,1.0760056937698206,1.0749731063282753,1.0739408588569583,1.0729089496526705,1.071877377012767,1.0708461392351407,1.0698152346182026,1.0687846614608636,1.067754418062517,1.0667245027230183,1.0656949137426688,1.0646656494221964,1.063636708062736,1.062608087965813,1.061579787433323,1.0605518047675142,1.059524138270969,1.0584967862465844,1.0574697469975536,1.0564430188273488,1.0554166000397005,1.0543904889385798,1.05336468382818,1.052339183012896,1.051313984797308,1.050289087486161,1.0492644893843461,1.048240188796882,1.0472161840288954,1.046192473385603,1.0451690551722914,1.0441459276942984,1.0431230892569947,1.0421005381657633,1.0410782727259817,1.0400562912430016,1.0390345920221296,1.0380131733686098,1.0369920335876015,1.0359711709841628,1.0349505838632285,1.0339302705295916,1.0329102292878853,1.031890458442562,1.0308709562978724,1.0298517211578488,1.028832751326283,1.027814045106708,1.0267956008023775,1.0257774167162454,1.024759491150948,1.0237418224087815,1.0227244087916845,1.0217072486012158,1.020690340138535,1.0196736817043834,1.018657271599062,1.0176411081224128,1.0166251895737979,1.015609514252078,1.0145940804555942,1.013578886482146,1.0125639306289704,1.0115492111927231,1.0105347264694553,1.0095204747545954,1.008506454342927,1.0074926635285675,1.0064791006049485,1.005465763864794,1.004452651600099,1.0034397621021098,1.002427093661301,1.001414644567356,1.000402413109144,0.9993903975746997,0.9983785962512021,0.9973670074249515,0.9963556293813488,0.9953444604048751,0.9943334987790672,0.9933227427864981,0.9923121907087542,0.9913018408264122,0.9902916914190202,0.9892817407650714,0.9882719871419855,0.9872624288260845,0.9862530640925705,0.9852438912155038,0.9842349084677797,0.9832261141211063,0.982217506445982,0.9812090837116718,0.9802008441861858,0.9791927861362544,0.9781849078273066,0.977177207523447,0.9761696834874312,0.9751623339806439,0.9741551572630748,0.9731481515932944,0.9721413152284322,0.971134646424151,0.9701281434346241,0.9691218045125115,0.9681156279089355,0.9671096118734566,0.9661037546540494,0.9650980544970778,0.9640925096472722,0.9630871183477026,0.9620818788397555,0.9610767893631089,0.960071848155707,0.9590670534537364,0.9580624034915993,0.957057896501889,0.9560535307153659,0.9550493043609297,0.9540452156655961,0.95304126285447,0.9520374441507187,0.9510337577755492,0.9500302019481783,0.94902677488581,0.9480234748036063,0.9470202999146623,0.9460172484299801,0.9450143185584414,0.94401150850678,0.9430088164795571,0.942006240679132,0.9410037793056362,0.9400014305569457,0.9389991926286537,0.9379970637140431,0.9369950420040585,0.9359931256872783,0.9349913129498875,0.9339896019756483,0.9329879909458729,0.9319864780393948,0.9309850614325395,0.9299837392990971,0.9289825098102921,0.9279813711347551,0.9269803214384941,0.9259793588848632,0.9249784816345357,0.9239776878454726,0.9229769756728938,0.921976343269247,0.9209757887841785,0.9199753103645031,0.9189749061541732,0.917974574294247,0.9169743129228601,0.9159741201751923,0.9149739941834386,0.9139739330767752,0.91297393498133,0.9119739980201508,0.9109741203131722,0.9099742999771849,0.9089745351258027,0.9079748238694297,0.9069751643152288,0.9059755545670886,0.9049759927255887,0.9039764768879694,0.9029770051480962,0.9019775755964267,0.9009781863199773,0.899978835402288,0.89897952092339,0.8979802409597696,0.8969809935843348,0.8959817768663798,0.8949825888715496,0.8939834276618059,0.8929842912953909,0.8919851778267913,0.8909860853067031,0.889987011781995,0.8889879552956724,0.88798891388684,0.8869898855906658,0.885990868438344,0.8849918604570571,0.8839928596699388,0.8829938640960362,0.8819948717502715,0.8809958806434044,0.8799968887819922,0.878997894168353,0.8779988948005247,0.8769998886722271,0.8760008737728219,0.8750018480872727,0.8740028095961047,0.8730037562753659,0.8720046860965841,0.8710055970267275,0.8700064870281645,0.8690073540586195,0.868008196071134,0.8670090110140224,0.8660097968308309,0.8650105514602954,0.864011272836297,0.8630119588878206,0.8620126075389098,0.8610132167086243,0.8600137843109956,0.859014308254982,0.858014786444425,0.8570152167780031,0.8560155971491873,0.8550159254461949,0.8540161995519441,0.8530164173440071,0.852016576694564,0.8510166754703554,0.8500167115326354,0.8490166827371237,0.8480165869339571,0.8470164219676429,0.8460161856770084,0.8450158758951521,0.8440154904493954,0.8430150271612311,0.8420144838462751,0.8410138583142148,0.8400131483687574,0.8390123518075806,0.8380114664222796,0.837010489998315,0.8360094203149608,0.8350082551452513,0.8340069922559281,0.8330056294073861,0.8320041643536191,0.8310025948421673,0.8300009186140592,0.8289991334037587,0.8279972369391084,0.8269952269412738,0.8259931011246864,0.8249908571969863,0.8239884928589655,0.8229860058045094,0.8219833937205383,0.8209806542869486,0.819977785176554,0.8189747840550241,0.8179716485808265,0.8169683764051636,0.8159649651719133,0.8149614125175654,0.8139577160711606,0.8129538734542276,0.8119498822807192,0.8109457401569494,0.8099414446815284,0.8089369934452969,0.8079323840312636,0.8069276140145359,0.8059226809622554,0.8049175824335313,0.8039123159793702,0.8029068791426119,0.8019012694578566,0.8008954844513988,0.7998895216411556,0.7988833785365973,0.7978770526386761,0.7968705414397537,0.7958638424235291,0.7948569530649687,0.7938498708302276,0.7928425931765797,0.7918351175523415,0.7908274413967961,0.7898195621401188,0.7888114772032983,0.7878031839980608,0.7867946799267922,0.7857859623824577,0.7847770287485234,0.7837678763988776,0.7827585026977466,0.7817489049996172,0.7807390806491505,0.7797290269811021,0.7787187413202364,0.7777082209812429,0.7766974632686515,0.7756864654767448,0.7746752248894737,0.7736637387803675,0.7726520044124471,0.7716400190381354,0.7706277798991674,0.769615284226499,0.768602529240217,0.7675895121494435,0.7665762301522463,0.7655626804355422,0.7645488601750027,0.7635347665349588,0.7625203966683027,0.7615057477163921,0.7604908168089498,0.7594756010639648,0.7584600975875923,0.7574443034740521,0.7564282158055251,0.755411831652052,0.7543951480714275,0.753378162109095,0.7523608707980415,0.7513432711586886,0.7503253601987858,0.7493071349132994,0.7482885922843038,0.7472697292808687,0.7462505428589473,0.7452310299612614,0.7442111875171884,0.7431910124426439,0.742170501639965,0.7411496519977933,0.7401284603909523,0.7391069236803312,0.7380850387127595,0.737062802320887,0.7360402113230562,0.73501726252318,0.733993952710614,0.7329702786600276,0.7319462371312756,0.7309218248692687,0.7298970386038391,0.72887187504961,0.7278463309058592,0.7268204028563837,0.7257940875693628,0.724767381697219,0.7237402818764779,0.7227127847276271,0.7216848868549718,0.7206565848464922,0.7196278752736958,0.7185987546914713,0.7175692196379378,0.7165392666342958,0.7155088921846742,0.7144780927759763,0.7134468648777249,0.7124152049419047,0.7113831094028039,0.710350574676854,0.7093175971624663,0.7082841732398695,0.7072502992709438,0.7062159715990532,0.705181186548875,0.7041459404262319,0.7031102295179158,0.7020740500915151,0.7010373983952369,0.7000002706577283,0.698962663087898,0.6979245718747296,0.6968859931871012,0.6958469231735963,0.6948073579623159,0.6937672936606881,0.6927267263552739,0.6916856521115731,0.6906440669738279,0.6896019669648216,0.6885593480856778,0.6875162063156574,0.6864725376119497,0.6854283379094667,0.6843836031206307,0.6833383291351608,0.6822925118198573,0.6812461470183828,0.6801992305510431,0.6791517582145623,0.6781037257818564,0.6770551290018064,0.6760059635990261,0.6749562252736281,0.6739059097009871,0.6728550125315006,0.6718035293903475,0.6707514558772409,0.6696987875661825,0.6686455200052096,0.6675916487161426,0.666537169194327,0.6654820769083745,0.6644263672998981,0.6633700357832479,0.6623130777452394,0.661255488544883,0.6601972635131058,0.6591383979524728,0.6580788871369047,0.6570187263113912,0.6559579106917001,0.654896435464086,0.6538342957849907,0.6527714867807455,0.6517080035472633,0.6506438411497332,0.6495789946223068,0.6485134589677828,0.6474472291572875,0.6463803001299496,0.6453126667925732,0.6442443240193051,0.643175266651298,0.6421054894963701,0.6410349873286612,0.6399637548882806,0.638891786880955,0.6378190779776697,0.6367456228143046,0.6356714159912671,0.6345964520731185,0.6335207255881978,0.6324442310282379,0.6313669628479776,0.6302889154647717,0.6292100832581901,0.6281304605696159,0.6270500417018371,0.625968820918633,0.624886792444354,0.6238039504634968,0.6227202891202738,0.6216358025181764,0.6205504847195329,0.6194643297450594,0.6183773315734054,0.617289484140693,0.6162007813400507,0.6151112170211377,0.6140207849896658,0.6129294790069122,0.6118372927892258,0.610744220007527,0.6096502542868,0.608555389205579,0.6074596182954263,0.6063629350404038,0.6052653328765351,0.6041668051912632,0.6030673453228972,0.6019669465600539,0.6008656021410893,0.5997633052535223,0.598660049033452,0.5975558265649634,0.596450630879528,0.5953444549553917,0.5942372917169573,0.5931291340341575,0.5920199747218141,0.5909098065389972,0.5897986221883623,0.5886864143154903,0.5875731755082083,0.5864588982959048,0.5853435751488332,0.5842271984774055,0.5831097606314743,0.5819912538996065,0.5808716705083407,0.5797510026214396,0.5786292423391273,0.5775063816973137,0.5763824126668127,0.5752573271525391,0.5741311169927038,0.5730037739579872,0.571875289750705,0.5707456560039595,0.5696148642807772,0.5684829060732332,0.5673497728015608,0.5662154558132496,0.5650799463821243,0.5639432357074154,0.5628053149128088,0.5616661750454826,0.5605258070751298,0.5593842018929621,0.5582413503107013,0.5570972430595477,0.5559518707891397,0.5548052240664908,0.5536572933749099,0.5525080691129057,0.5513575415930687,0.5502057010409402,0.5490525375938582,0.547898041299783,0.5467422021161077,0.5455850099084439,0.5444264544493885,0.5432665254172709,0.542105212394874,0.5409425048681389,0.5397783922248435,0.5386128637532587,0.537445908640783,0.5362775159725496,0.5351076747300125,0.5339363737895072,0.5327636019207828,0.5315893477855107,0.530413599935768,0.5292363468124892,0.528057576743895,0.5268772779438878,0.5256954385104236,0.5245120464238481,0.5233270895452076,0.5221405556145267,0.5209524322490524,0.5197627069414695,0.5185713670580804,0.5173783998369514,0.5161837923860219,0.5149875316811846,0.5137896045643215,0.5125899977413076,0.5113886977799743,0.510185691108035,0.5089809640109721,0.5077745026298767,0.5065662929592574,0.5053563208447941,0.5041445719810583,0.5029310319091826,0.5017156860144847,0.5004985195240461,0.49927951750424354,0.49805866485822675,0.4968359463233491,0.4956113464685465,0.49438484969165963,0.4931564402167074,0.4919261020910981,0.49069381918278804,0.4894595751773808,0.488223353575163,0.48698513768808394,0.48574491063666625,0.4845026553468546,0.48325835454680016,0.48201199076357004,0.4807635463197942,0.4795130033302341,0.47826034369828224,0.47700554911238413,0.4757486010423802,0.4744894807357738,0.47322816921391014,0.4719646472680747,0.4706988954555084,0.46943089409532585,0.4681606232643488,0.4668880627928467,0.46561319226017234,0.46433599099030987,0.46305643804731306,0.46177451223064,0.460490192070386,0.45920345582239513,0.4579142814632713,0.4566226466852597,0.4553285288910166,0.45403190518825154,0.4527327523842419,0.4514310469802175,0.45012676516561156,0.44881988281216817,0.4475103754679098,0.4461982183509588,0.4448833863432029,0.44356585398380777,0.4422455954625659,0.4409225846130833,0.43959679490578935,0.43826819944077383,0.43693677094044425,0.435602481741988,0.4342653037896501,0.4329252086268039,0.4315821673878216,0.4302361507897274,0.4288871291236346,0.4275350722459552,0.4261799495693773,0.4248217300535954,0.4234603821958016,0.42209587402090876,0.42072817307151417,0.419357246397585,0.4179830605458626,0.41660558154896893,0.41522477491421295,0.41384060561207875,0.4124530380643925,0.4110620361321499,0.409667563102998,0.4082695816783537,0.4068680539601507,0.4054629414372006,0.4040542049711523,0.4026418047820369,0.4012257004333845,0.3998058508168906,0.39838221413662755,0.39695474789277135,0.39552340886483284,0.3940881530943755,0.39264893586719585,0.3912057116949472,0.38975843429619156,0.3883070565768485,0.38685153061002,0.38539180761517616,0.38392783793665786,0.38245957102149314,0.3809869553964746,0.37950993864449045,0.3780284673800619,0.37654248722406564,0.3750519427776039,0.3735567775949805,0.372056934155761,0.3705523538358622,0.3690429768776358,0.36752874235891064,0.3660095881609332,0.3644854509351742,0.3629562660689405,0.36142196764974344,0.35988248842837073,0.3583377597806016,0.35678771166749745,0.35523227259421936,0.35367136956728584,0.3521049280502091,0.35053287191743565,0.3489551234065036,0.3473716030683367,0.3457822297155852,0.34418692036891907,0.34258559020117235,0.3409781524792303,0.3393645185035563,0.3377445975452302,0.3361182967803742,0.33448552122183756,0.33284617364799174,0.3312001545284946,0.32954736194685325,0.3278876915196233,0.3262210363120626,0.3245472867500476,0.32286633052804437,0.3211780525129248,0.31948233464338244,0.3177790558247202,0.31606809181872453,0.31434931512835973,0.3126225948769728,0.3108877966816889,0.30914478252065686,0.30739341059376346,0.30563353517643577,0.3038650064660947,0.3020876704208094,0.3003013685896667,0.29850593793431845,0.29670121064115196,0.2948870139234667,0.29306316981300967,0.29122949494014105,0.289385800301893,0.2875318910170703,0.28566756606751276,0.28379261802454714,0.2819068327595811,0.2800099891376993,0.2781018586930255,0.2761822052845155,0.2742507847307088,0.272307344421851,0.27035162290765213,0.2683833494587902,0.2664022436000666,0.2644080146129708,0.26240036100514585,0.2603789699440391,0.25834351665173083,0.25629366375764157,0.25422906060548184,0.25214934251043286,0.25005412996210574,0.2479430277683884,0.24581562413471342,0.24367148967270344,0.24151017633146593,0.23933121624401718,0.23713412048047666,0.2349183776986355,0.23268345268140375,0.2304287847493156,0.22815378603481595,0.2258578396033202,0.22354029740409806,0.22120047803176432,0.21883766427652981,0.21645110043835367,0.21403998937656243,0.21160348926241512,0.20914070999721002,0.20665070925287352,0.20413248808525128,0.20158498606234626,0.19900707584035032,0.19639755710898574,0.19375514981418082,0.19107848654980386,0.1883661039904768,0.18561643321353133,0.18282778872885935,0.17999835599941766,0.17712617719061433,0.17420913483136916,0.17124493300031213,0.16823107556301306,0.16516484087497074,0.16204325222263036,0.15886304309076602,0.15562061610467773,0.15231199418003136,0.14893276199309247,0.14547799531910088,0.14194217501660608,0.13831908137273355,0.13460166303511983,0.1307818726358591,0.12685045813995308,0.12279669440915898,0.11860803261176411,0.1142696344890869,0.10976374158954526,0.10506880182788604,0.10015822847234195,0.09499858274814496,0.08954681466508473,0.08374588663884452,0.07751744438199387,0.07074866009246657,0.06326633085094707,0.05477883035529455,0.04471740983328495,0.03161339925685066,0.0],"x":[1.0e-5,0.0005094955044955045,0.001008991008991009,0.0015084865134865136,0.002007982017982018,0.0025074775224775223,0.003006973026973027,0.0035064685314685315,0.004005964035964036,0.004505459540459541,0.005004955044955045,0.0055044505494505494,0.006003946053946054,0.006503441558441558,0.0070029370629370626,0.007502432567432568,0.008001928071928071,0.008501423576423577,0.009000919080919082,0.009500414585414585,0.00999991008991009,0.010499405594405594,0.0109989010989011,0.011498396603396603,0.011997892107892108,0.012497387612387612,0.012996883116883117,0.013496378621378622,0.013995874125874126,0.01449536963036963,0.014994865134865134,0.01549436063936064,0.015993856143856143,0.01649335164835165,0.016992847152847153,0.017492342657342657,0.01799183816183816,0.018491333666333667,0.01899082917082917,0.019490324675324674,0.01998982017982018,0.020489315684315685,0.02098881118881119,0.021488306693306692,0.0219878021978022,0.022487297702297702,0.022986793206793206,0.023486288711288713,0.023985784215784216,0.02448527972027972,0.024984775224775223,0.02548427072927073,0.025983766233766234,0.026483261738261737,0.026982757242757244,0.027482252747252748,0.02798174825174825,0.028481243756243755,0.028980739260739262,0.029480234765234765,0.02997973026973027,0.030479225774225776,0.03097872127872128,0.031478216783216786,0.03197771228771229,0.03247720779220779,0.0329767032967033,0.0334761988011988,0.033975694305694304,0.03447518981018981,0.03497468531468532,0.03547418081918082,0.035973676323676325,0.03647317182817183,0.03697266733266733,0.037472162837162835,0.03797165834165834,0.03847115384615385,0.03897064935064935,0.039470144855144856,0.03996964035964036,0.04046913586413586,0.04096863136863137,0.04146812687312687,0.04196762237762238,0.042467117882117884,0.04296661338661339,0.04346610889110889,0.043965604395604395,0.0444650999000999,0.0449645954045954,0.04546409090909091,0.045963586413586416,0.04646308191808192,0.04696257742257742,0.047462072927072926,0.04796156843156843,0.04846106393606393,0.048960559440559444,0.04946005494505495,0.04995955044955045,0.050459045954045954,0.05095854145854146,0.05145803696303696,0.051957532467532465,0.052457027972027975,0.05295652347652348,0.05345601898101898,0.053955514485514486,0.05445500999000999,0.05495450549450549,0.055454000999000996,0.05595349650349651,0.05645299200799201,0.056952487512487514,0.05745198301698302,0.05795147852147852,0.058450974025974024,0.05895046953046953,0.05944996503496504,0.05994946053946054,0.060448956043956045,0.06094845154845155,0.06144794705294705,0.061947442557442556,0.06244693806193806,0.06294643356643356,0.06344592907092907,0.06394542457542457,0.06444492007992007,0.06494441558441559,0.0654439110889111,0.0659434065934066,0.0664429020979021,0.0669423976023976,0.06744189310689311,0.06794138861138861,0.06844088411588412,0.06894037962037962,0.06943987512487512,0.06993937062937063,0.07043886613386613,0.07093836163836163,0.07143785714285714,0.07193735264735265,0.07243684815184816,0.07293634365634366,0.07343583916083916,0.07393533466533467,0.07443483016983017,0.07493432567432567,0.07543382117882118,0.07593331668331668,0.07643281218781219,0.07693230769230769,0.07743180319680319,0.0779312987012987,0.0784307942057942,0.07893028971028972,0.07942978521478522,0.07992928071928072,0.08042877622377623,0.08092827172827173,0.08142776723276723,0.08192726273726274,0.08242675824175824,0.08292625374625374,0.08342574925074925,0.08392524475524475,0.08442474025974026,0.08492423576423576,0.08542373126873126,0.08592322677322678,0.08642272227772228,0.08692221778221779,0.08742171328671329,0.0879212087912088,0.0884207042957043,0.0889201998001998,0.0894196953046953,0.08991919080919081,0.09041868631368631,0.09091818181818181,0.09141767732267732,0.09191717282717282,0.09241666833166833,0.09291616383616384,0.09341565934065935,0.09391515484515485,0.09441465034965035,0.09491414585414586,0.09541364135864136,0.09591313686313686,0.09641263236763237,0.09691212787212787,0.09741162337662337,0.09791111888111888,0.09841061438561438,0.09891010989010988,0.09940960539460539,0.0999091008991009,0.10040859640359641,0.10090809190809191,0.10140758741258742,0.10190708291708292,0.10240657842157842,0.10290607392607393,0.10340556943056943,0.10390506493506493,0.10440456043956044,0.10490405594405594,0.10540355144855144,0.10590304695304695,0.10640254245754245,0.10690203796203797,0.10740153346653347,0.10790102897102898,0.10840052447552448,0.10890001998001998,0.10939951548451549,0.10989901098901099,0.11039850649350649,0.110898001998002,0.1113974975024975,0.111896993006993,0.11239648851148851,0.11289598401598401,0.11339547952047951,0.11389497502497503,0.11439447052947053,0.11489396603396604,0.11539346153846154,0.11589295704295705,0.11639245254745255,0.11689194805194805,0.11739144355644356,0.11789093906093906,0.11839043456543456,0.11888993006993007,0.11938942557442557,0.11988892107892107,0.12038841658341658,0.1208879120879121,0.1213874075924076,0.1218869030969031,0.1223863986013986,0.12288589410589411,0.12338538961038961,0.12388488511488512,0.12438438061938062,0.12488387612387612,0.12538337162837163,0.12588286713286714,0.12638236263736263,0.12688185814185815,0.12738135364635364,0.12788084915084916,0.12838034465534465,0.12887984015984016,0.12937933566433565,0.12987883116883117,0.13037832667332666,0.13087782217782218,0.1313773176823177,0.13187681318681319,0.1323763086913087,0.1328758041958042,0.1333752997002997,0.1338747952047952,0.13437429070929072,0.1348737862137862,0.13537328171828172,0.1358727772227772,0.13637227272727273,0.13687176823176822,0.13737126373626374,0.13787075924075923,0.13837025474525474,0.13886975024975026,0.13936924575424575,0.13986874125874127,0.14036823676323676,0.14086773226773228,0.14136722777222777,0.14186672327672328,0.14236621878121877,0.1428657142857143,0.14336520979020978,0.1438647052947053,0.1443642007992008,0.1448636963036963,0.14536319180819182,0.1458626873126873,0.14636218281718283,0.14686167832167832,0.14736117382617384,0.14786066933066933,0.14836016483516484,0.14885966033966033,0.14935915584415585,0.14985865134865134,0.15035814685314686,0.15085764235764235,0.15135713786213786,0.15185663336663335,0.15235612887112887,0.1528556243756244,0.15335511988011988,0.1538546153846154,0.15435411088911088,0.1548536063936064,0.1553531018981019,0.1558525974025974,0.1563520929070929,0.15685158841158842,0.1573510839160839,0.15785057942057942,0.1583500749250749,0.15884957042957043,0.15934906593406595,0.15984856143856144,0.16034805694305695,0.16084755244755244,0.16134704795204796,0.16184654345654345,0.16234603896103897,0.16284553446553446,0.16334502997002998,0.16384452547452547,0.16434402097902098,0.16484351648351647,0.165343011988012,0.16584250749250748,0.166342002997003,0.16684149850149851,0.167340994005994,0.16784048951048952,0.168339985014985,0.16883948051948053,0.16933897602397602,0.16983847152847154,0.17033796703296702,0.17083746253746254,0.17133695804195803,0.17183645354645355,0.17233594905094904,0.17283544455544456,0.17333494005994007,0.17383443556443556,0.17433393106893108,0.17483342657342657,0.1753329220779221,0.17583241758241758,0.1763319130869131,0.17683140859140858,0.1773309040959041,0.1778303996003996,0.1783298951048951,0.1788293906093906,0.17932888611388612,0.1798283816183816,0.18032787712287712,0.18082737262737264,0.18132686813186813,0.18182636363636365,0.18232585914085914,0.18282535464535465,0.18332485014985014,0.18382434565434566,0.18432384115884115,0.18482333666333667,0.18532283216783216,0.18582232767232768,0.18632182317682316,0.18682131868131868,0.1873208141858142,0.1878203096903097,0.1883198051948052,0.1888193006993007,0.1893187962037962,0.1898182917082917,0.19031778721278722,0.1908172827172827,0.19131677822177823,0.19181627372627372,0.19231576923076923,0.19281526473526472,0.19331476023976024,0.19381425574425573,0.19431375124875125,0.19481324675324677,0.19531274225774226,0.19581223776223777,0.19631173326673326,0.19681122877122878,0.19731072427572427,0.1978102197802198,0.19830971528471528,0.1988092107892108,0.19930870629370628,0.1998082017982018,0.2003076973026973,0.2008071928071928,0.20130668831168833,0.20180618381618382,0.20230567932067933,0.20280517482517482,0.20330467032967034,0.20380416583416583,0.20430366133866135,0.20480315684315684,0.20530265234765235,0.20580214785214784,0.20630164335664336,0.20680113886113885,0.20730063436563437,0.20780012987012986,0.20829962537462537,0.2087991208791209,0.20929861638361638,0.2097981118881119,0.2102976073926074,0.2107971028971029,0.2112965984015984,0.2117960939060939,0.2122955894105894,0.21279508491508492,0.2132945804195804,0.21379407592407593,0.21429357142857142,0.21479306693306693,0.21529256243756245,0.21579205794205794,0.21629155344655346,0.21679104895104895,0.21729054445554447,0.21779003996003996,0.21828953546453547,0.21878903096903096,0.21928852647352648,0.21978802197802197,0.2202875174825175,0.22078701298701298,0.2212865084915085,0.22178600399600398,0.2222854995004995,0.22278499500499502,0.2232844905094905,0.22378398601398602,0.22428348151848151,0.22478297702297703,0.22528247252747252,0.22578196803196804,0.22628146353646353,0.22678095904095905,0.22728045454545454,0.22777995004995005,0.22827944555444554,0.22877894105894106,0.22927843656343658,0.22977793206793207,0.23027742757242758,0.23077692307692307,0.2312764185814186,0.23177591408591408,0.2322754095904096,0.2327749050949051,0.2332744005994006,0.2337738961038961,0.2342733916083916,0.2347728871128871,0.23527238261738262,0.2357718781218781,0.23627137362637363,0.23677086913086914,0.23727036463536463,0.23776986013986015,0.23826935564435564,0.23876885114885116,0.23926834665334665,0.23976784215784216,0.24026733766233765,0.24076683316683317,0.24126632867132866,0.24176582417582418,0.24226531968031967,0.24276481518481519,0.24326431068931068,0.2437638061938062,0.2442633016983017,0.2447627972027972,0.24526229270729272,0.2457617882117882,0.24626128371628372,0.24676077922077921,0.24726027472527473,0.24775977022977022,0.24825926573426574,0.24875876123876123,0.24925825674325675,0.24975775224775223,0.2502572477522477,0.25075674325674324,0.25125623876123876,0.2517557342657343,0.2522552297702298,0.25275472527472526,0.2532542207792208,0.2537537162837163,0.2542532117882118,0.25475270729270727,0.2552522027972028,0.2557516983016983,0.2562511938061938,0.2567506893106893,0.2572501848151848,0.2577496803196803,0.25824917582417584,0.25874867132867135,0.2592481668331668,0.25974766233766233,0.26024715784215785,0.26074665334665337,0.26124614885114883,0.26174564435564435,0.26224513986013986,0.2627446353646354,0.26324413086913084,0.26374362637362636,0.2642431218781219,0.2647426173826174,0.2652421128871129,0.2657416083916084,0.2662411038961039,0.2667405994005994,0.2672400949050949,0.2677395904095904,0.2682390859140859,0.2687385814185814,0.26923807692307694,0.2697375724275724,0.2702370679320679,0.27073656343656344,0.27123605894105896,0.2717355544455545,0.27223504995004993,0.27273454545454545,0.27323404095904097,0.2737335364635365,0.27423303196803195,0.27473252747252747,0.275232022977023,0.2757315184815185,0.27623101398601396,0.2767305094905095,0.277230004995005,0.2777295004995005,0.278228996003996,0.2787284915084915,0.279227987012987,0.27972748251748253,0.28022697802197805,0.2807264735264735,0.281225969030969,0.28172546453546454,0.28222496003996006,0.2827244555444555,0.28322395104895104,0.28372344655344656,0.2842229420579421,0.28472243756243754,0.28522193306693305,0.28572142857142857,0.2862209240759241,0.2867204195804196,0.28721991508491507,0.2877194105894106,0.2882189060939061,0.2887184015984016,0.2892178971028971,0.2897173926073926,0.2902168881118881,0.29071638361638363,0.2912158791208791,0.2917153746253746,0.29221487012987013,0.29271436563436565,0.29321386113886116,0.2937133566433566,0.29421285214785214,0.29471234765234766,0.2952118431568432,0.29571133866133864,0.29621083416583416,0.2967103296703297,0.2972098251748252,0.29770932067932065,0.29820881618381617,0.2987083116883117,0.2992078071928072,0.2997073026973027,0.3002067982017982,0.3007062937062937,0.3012057892107892,0.30170528471528474,0.3022047802197802,0.3027042757242757,0.30320377122877123,0.30370326673326675,0.3042027622377622,0.30470225774225773,0.30520175324675325,0.30570124875124877,0.30620074425574423,0.30670023976023975,0.30719973526473526,0.3076992307692308,0.3081987262737263,0.30869822177822176,0.3091977172827173,0.3096972127872128,0.3101967082917083,0.3106962037962038,0.3111956993006993,0.3116951948051948,0.3121946903096903,0.3126941858141858,0.3131936813186813,0.3136931768231768,0.31419267232767234,0.31469216783216786,0.3151916633366633,0.31569115884115884,0.31619065434565435,0.31669014985014987,0.31718964535464533,0.31768914085914085,0.31818863636363637,0.3186881318681319,0.31918762737262735,0.31968712287712286,0.3201866183816184,0.3206861138861139,0.3211856093906094,0.3216851048951049,0.3221846003996004,0.3226840959040959,0.32318359140859143,0.3236830869130869,0.3241825824175824,0.3246820779220779,0.32518157342657344,0.3256810689310689,0.3261805644355644,0.32668005994005994,0.32717955544455546,0.327679050949051,0.32817854645354644,0.32867804195804196,0.3291775374625375,0.329677032967033,0.33017652847152845,0.33067602397602397,0.3311755194805195,0.331675014985015,0.33217451048951047,0.332674005994006,0.3331735014985015,0.333672997002997,0.3341724925074925,0.334671988011988,0.3351714835164835,0.33567097902097903,0.33617047452547455,0.33666997002997,0.33716946553446553,0.33766896103896105,0.33816845654345656,0.338667952047952,0.33916744755244754,0.33966694305694306,0.3401664385614386,0.34066593406593404,0.34116542957042956,0.3416649250749251,0.3421644205794206,0.3426639160839161,0.34316341158841157,0.3436629070929071,0.3441624025974026,0.3446618981018981,0.3451613936063936,0.3456608891108891,0.3461603846153846,0.34665988011988014,0.3471593756243756,0.3476588711288711,0.34815836663336663,0.34865786213786215,0.34915735764235767,0.34965685314685313,0.35015634865134865,0.35065584415584417,0.3511553396603397,0.35165483516483514,0.35215433066933066,0.3526538261738262,0.3531533216783217,0.35365281718281716,0.3541523126873127,0.3546518081918082,0.3551513036963037,0.35565079920079923,0.3561502947052947,0.3566497902097902,0.3571492857142857,0.35764878121878124,0.3581482767232767,0.3586477722277722,0.35914726773226774,0.35964676323676326,0.3601462587412587,0.36064575424575424,0.36114524975024975,0.36164474525474527,0.36214424075924073,0.36264373626373625,0.36314323176823177,0.3636427272727273,0.3641422227772228,0.36464171828171826,0.3651412137862138,0.3656407092907093,0.3661402047952048,0.3666397002997003,0.3671391958041958,0.3676386913086913,0.36813818681318683,0.3686376823176823,0.3691371778221778,0.3696366733266733,0.37013616883116884,0.37063566433566436,0.3711351598401598,0.37163465534465534,0.37213415084915086,0.3726336463536464,0.37313314185814184,0.37363263736263735,0.37413213286713287,0.3746316283716284,0.37513112387612385,0.37563061938061937,0.3761301148851149,0.3766296103896104,0.3771291058941059,0.3776286013986014,0.3781280969030969,0.3786275924075924,0.37912708791208793,0.3796265834165834,0.3801260789210789,0.38062557442557443,0.38112506993006995,0.3816245654345654,0.3821240609390609,0.38262355644355645,0.38312305194805196,0.3836225474525475,0.38412204295704294,0.38462153846153846,0.385121033966034,0.3856205294705295,0.38612002497502496,0.3866195204795205,0.387119015984016,0.3876185114885115,0.38811800699300697,0.3886175024975025,0.389116998001998,0.3896164935064935,0.390115989010989,0.3906154845154845,0.39111498001998,0.39161447552447554,0.39211397102897105,0.3926134665334665,0.39311296203796203,0.39361245754245755,0.39411195304695307,0.39461144855144853,0.39511094405594405,0.39561043956043956,0.3961099350649351,0.39660943056943054,0.39710892607392606,0.3976084215784216,0.3981079170829171,0.3986074125874126,0.3991069080919081,0.3996064035964036,0.4001058991008991,0.4006053946053946,0.4011048901098901,0.4016043856143856,0.4021038811188811,0.40260337662337664,0.4031028721278721,0.4036023676323676,0.40410186313686314,0.40460135864135865,0.4051008541458542,0.40560034965034963,0.40609984515484515,0.40659934065934067,0.4070988361638362,0.40759833166833165,0.40809782717282717,0.4085973226773227,0.4090968181818182,0.40959631368631366,0.4100958091908092,0.4105953046953047,0.4110948001998002,0.41159429570429573,0.4120937912087912,0.4125932867132867,0.41309278221778223,0.41359227772227775,0.4140917732267732,0.4145912687312687,0.41509076423576424,0.41559025974025976,0.4160897552447552,0.41658925074925074,0.41708874625374626,0.4175882417582418,0.41808773726273724,0.41858723276723275,0.41908672827172827,0.4195862237762238,0.4200857192807193,0.42058521478521477,0.4210847102897103,0.4215842057942058,0.4220837012987013,0.4225831968031968,0.4230826923076923,0.4235821878121878,0.42408168331668333,0.4245811788211788,0.4250806743256743,0.42558016983016983,0.42607966533466535,0.42657916083916086,0.4270786563436563,0.42757815184815184,0.42807764735264736,0.4285771428571429,0.42907663836163834,0.42957613386613386,0.4300756293706294,0.4305751248751249,0.43107462037962035,0.43157411588411587,0.4320736113886114,0.4325731068931069,0.4330726023976024,0.4335720979020979,0.4340715934065934,0.4345710889110889,0.43507058441558444,0.4355700799200799,0.4360695754245754,0.43656907092907093,0.43706856643356645,0.4375680619380619,0.43806755744255743,0.43856705294705295,0.43906654845154847,0.439566043956044,0.44006553946053945,0.44056503496503496,0.4410645304695305,0.441564025974026,0.44206352147852146,0.442563016983017,0.4430625124875125,0.443562007992008,0.4440615034965035,0.444560999000999,0.4450604945054945,0.44555999000999,0.4460594855144855,0.446558981018981,0.4470584765234765,0.44755797202797204,0.44805746753246756,0.448556963036963,0.44905645854145854,0.44955595404595405,0.45005544955044957,0.45055494505494503,0.45105444055944055,0.45155393606393607,0.4520534315684316,0.45255292707292705,0.45305242257742256,0.4535519180819181,0.4540514135864136,0.4545509090909091,0.4550504045954046,0.4555499000999001,0.4560493956043956,0.45654889110889113,0.4570483866133866,0.4575478821178821,0.4580473776223776,0.45854687312687314,0.4590463686313686,0.4595458641358641,0.46004535964035964,0.46054485514485516,0.4610443506493507,0.46154384615384614,0.46204334165834166,0.4625428371628372,0.4630423326673327,0.46354182817182815,0.46404132367632367,0.4645408191808192,0.4650403146853147,0.46553981018981017,0.4660393056943057,0.4665388011988012,0.4670382967032967,0.46753779220779224,0.4680372877122877,0.4685367832167832,0.46903627872127873,0.46953577422577425,0.4700352697302697,0.47053476523476523,0.47103426073926075,0.47153375624375626,0.4720332517482517,0.47253274725274724,0.47303224275724276,0.4735317382617383,0.47403123376623374,0.47453072927072926,0.4750302247752248,0.4755297202797203,0.4760292157842158,0.47652871128871127,0.4770282067932068,0.4775277022977023,0.4780271978021978,0.4785266933066933,0.4790261888111888,0.4795256843156843,0.48002517982017984,0.4805246753246753,0.4810241708291708,0.48152366633366633,0.48202316183816185,0.48252265734265737,0.48302215284715283,0.48352164835164835,0.48402114385614387,0.4845206393606394,0.48502013486513484,0.48551963036963036,0.4860191258741259,0.4865186213786214,0.48701811688311686,0.4875176123876124,0.4880171078921079,0.4885166033966034,0.48901609890109893,0.4895155944055944,0.4900150899100899,0.4905145854145854,0.49101408091908094,0.4915135764235764,0.4920130719280719,0.49251256743256744,0.49301206293706296,0.4935115584415584,0.49401105394605394,0.49451054945054945,0.49501004495504497,0.49550954045954043,0.49600903596403595,0.49650853146853147,0.497008026973027,0.4975075224775225,0.49800701798201796,0.4985065134865135,0.499006008991009,0.4995055044955045,0.500005,0.5005044955044955,0.501003991008991,0.5015034865134865,0.502002982017982,0.5025024775224776,0.503001973026973,0.5035014685314685,0.5040009640359641,0.5045004595404595,0.5049999550449551,0.5054994505494506,0.505998946053946,0.5064984415584416,0.506997937062937,0.5074974325674325,0.5079969280719281,0.5084964235764236,0.5089959190809191,0.5094954145854146,0.50999491008991,0.5104944055944056,0.5109939010989011,0.5114933966033967,0.5119928921078921,0.5124923876123876,0.5129918831168832,0.5134913786213786,0.5139908741258741,0.5144903696303696,0.5149898651348651,0.5154893606393607,0.5159888561438561,0.5164883516483516,0.5169878471528472,0.5174873426573426,0.5179868381618382,0.5184863336663337,0.5189858291708291,0.5194853246753247,0.5199848201798202,0.5204843156843156,0.5209838111888112,0.5214833066933067,0.5219828021978022,0.5224822977022977,0.5229817932067932,0.5234812887112887,0.5239807842157842,0.5244802797202798,0.5249797752247752,0.5254792707292707,0.5259787662337663,0.5264782617382617,0.5269777572427572,0.5274772527472528,0.5279767482517482,0.5284762437562438,0.5289757392607393,0.5294752347652347,0.5299747302697303,0.5304742257742258,0.5309737212787213,0.5314732167832168,0.5319727122877123,0.5324722077922078,0.5329717032967033,0.5334711988011988,0.5339706943056943,0.5344701898101898,0.5349696853146854,0.5354691808191808,0.5359686763236763,0.5364681718281719,0.5369676673326673,0.5374671628371628,0.5379666583416584,0.5384661538461538,0.5389656493506494,0.5394651448551449,0.5399646403596403,0.5404641358641359,0.5409636313686313,0.5414631268731269,0.5419626223776224,0.5424621178821178,0.5429616133866134,0.5434611088911089,0.5439606043956043,0.5444600999000999,0.5449595954045954,0.545459090909091,0.5459585864135864,0.5464580819180819,0.5469575774225774,0.5474570729270729,0.5479565684315685,0.5484560639360639,0.5489555594405594,0.549455054945055,0.5499545504495504,0.5504540459540459,0.5509535414585415,0.5514530369630369,0.5519525324675325,0.552452027972028,0.5529515234765234,0.553451018981019,0.5539505144855145,0.55445000999001,0.5549495054945055,0.555449000999001,0.5559484965034965,0.556447992007992,0.5569474875124875,0.557446983016983,0.5579464785214785,0.5584459740259741,0.5589454695304695,0.559444965034965,0.5599444605394606,0.560443956043956,0.5609434515484516,0.5614429470529471,0.5619424425574425,0.5624419380619381,0.5629414335664336,0.563440929070929,0.5639404245754246,0.56443992007992,0.5649394155844156,0.5654389110889111,0.5659384065934066,0.5664379020979021,0.5669373976023976,0.5674368931068932,0.5679363886113886,0.5684358841158841,0.5689353796203797,0.5694348751248751,0.5699343706293706,0.5704338661338662,0.5709333616383616,0.5714328571428572,0.5719323526473526,0.5724318481518481,0.5729313436563437,0.5734308391608391,0.5739303346653347,0.5744298301698302,0.5749293256743256,0.5754288211788212,0.5759283166833167,0.5764278121878121,0.5769273076923077,0.5774268031968032,0.5779262987012987,0.5784257942057942,0.5789252897102897,0.5794247852147852,0.5799242807192807,0.5804237762237763,0.5809232717282717,0.5814227672327672,0.5819222627372628,0.5824217582417582,0.5829212537462537,0.5834207492507493,0.5839202447552447,0.5844197402597403,0.5849192357642358,0.5854187312687312,0.5859182267732268,0.5864177222777223,0.5869172177822178,0.5874167132867133,0.5879162087912088,0.5884157042957043,0.5889151998001998,0.5894146953046953,0.5899141908091908,0.5904136863136863,0.5909131818181819,0.5914126773226773,0.5919121728271728,0.5924116683316684,0.5929111638361638,0.5934106593406593,0.5939101548451549,0.5944096503496503,0.5949091458541459,0.5954086413586414,0.5959081368631368,0.5964076323676324,0.5969071278721279,0.5974066233766234,0.5979061188811189,0.5984056143856143,0.5989051098901099,0.5994046053946054,0.5999041008991008,0.6004035964035964,0.6009030919080919,0.6014025874125875,0.6019020829170829,0.6024015784215784,0.602901073926074,0.6034005694305694,0.603900064935065,0.6043995604395604,0.6048990559440559,0.6053985514485515,0.6058980469530469,0.6063975424575424,0.606897037962038,0.6073965334665334,0.607896028971029,0.6083955244755245,0.6088950199800199,0.6093945154845155,0.609894010989011,0.6103935064935065,0.610893001998002,0.6113924975024975,0.611891993006993,0.6123914885114885,0.612890984015984,0.6133904795204795,0.613889975024975,0.6143894705294706,0.614888966033966,0.6153884615384615,0.6158879570429571,0.6163874525474525,0.6168869480519481,0.6173864435564436,0.617885939060939,0.6183854345654346,0.6188849300699301,0.6193844255744255,0.6198839210789211,0.6203834165834166,0.6208829120879121,0.6213824075924076,0.621881903096903,0.6223813986013986,0.6228808941058941,0.6233803896103897,0.6238798851148851,0.6243793806193806,0.6248788761238762,0.6253783716283716,0.6258778671328671,0.6263773626373627,0.6268768581418581,0.6273763536463537,0.6278758491508492,0.6283753446553446,0.6288748401598402,0.6293743356643356,0.6298738311688312,0.6303733266733267,0.6308728221778221,0.6313723176823177,0.6318718131868132,0.6323713086913086,0.6328708041958042,0.6333702997002997,0.6338697952047952,0.6343692907092907,0.6348687862137862,0.6353682817182817,0.6358677772227772,0.6363672727272728,0.6368667682317682,0.6373662637362637,0.6378657592407593,0.6383652547452547,0.6388647502497502,0.6393642457542458,0.6398637412587412,0.6403632367632368,0.6408627322677323,0.6413622277722277,0.6418617232767233,0.6423612187812188,0.6428607142857143,0.6433602097902098,0.6438597052947053,0.6443592007992008,0.6448586963036963,0.6453581918081918,0.6458576873126873,0.6463571828171828,0.6468566783216784,0.6473561738261738,0.6478556693306693,0.6483551648351649,0.6488546603396603,0.6493541558441558,0.6498536513486514,0.6503531468531468,0.6508526423576424,0.6513521378621379,0.6518516333666333,0.6523511288711289,0.6528506243756244,0.6533501198801199,0.6538496153846154,0.6543491108891109,0.6548486063936064,0.6553481018981019,0.6558475974025973,0.6563470929070929,0.6568465884115884,0.657346083916084,0.6578455794205794,0.6583450749250749,0.6588445704295705,0.6593440659340659,0.6598435614385615,0.660343056943057,0.6608425524475524,0.661342047952048,0.6618415434565434,0.6623410389610389,0.6628405344655345,0.6633400299700299,0.6638395254745255,0.664339020979021,0.6648385164835164,0.665338011988012,0.6658375074925075,0.666337002997003,0.6668364985014985,0.667335994005994,0.6678354895104895,0.668334985014985,0.6688344805194805,0.669333976023976,0.6698334715284715,0.6703329670329671,0.6708324625374625,0.671331958041958,0.6718314535464536,0.672330949050949,0.6728304445554446,0.6733299400599401,0.6738294355644355,0.6743289310689311,0.6748284265734266,0.675327922077922,0.6758274175824176,0.6763269130869131,0.6768264085914086,0.6773259040959041,0.6778253996003996,0.6783248951048951,0.6788243906093906,0.6793238861138862,0.6798233816183816,0.6803228771228771,0.6808223726273727,0.6813218681318681,0.6818213636363636,0.6823208591408592,0.6828203546453546,0.6833198501498502,0.6838193456543457,0.6843188411588411,0.6848183366633367,0.6853178321678322,0.6858173276723277,0.6863168231768232,0.6868163186813186,0.6873158141858142,0.6878153096903097,0.6883148051948051,0.6888143006993007,0.6893137962037962,0.6898132917082918,0.6903127872127872,0.6908122827172827,0.6913117782217783,0.6918112737262737,0.6923107692307693,0.6928102647352647,0.6933097602397602,0.6938092557442558,0.6943087512487512,0.6948082467532467,0.6953077422577423,0.6958072377622377,0.6963067332667333,0.6968062287712288,0.6973057242757242,0.6978052197802198,0.6983047152847153,0.6988042107892108,0.6993037062937063,0.6998032017982018,0.7003026973026973,0.7008021928071928,0.7013016883116883,0.7018011838161838,0.7023006793206793,0.7028001748251749,0.7032996703296703,0.7037991658341658,0.7042986613386614,0.7047981568431568,0.7052976523476523,0.7057971478521479,0.7062966433566433,0.7067961388611389,0.7072956343656344,0.7077951298701298,0.7082946253746254,0.7087941208791209,0.7092936163836164,0.7097931118881119,0.7102926073926074,0.7107921028971029,0.7112915984015984,0.7117910939060939,0.7122905894105894,0.7127900849150849,0.7132895804195805,0.7137890759240759,0.7142885714285714,0.714788066933067,0.7152875624375624,0.715787057942058,0.7162865534465535,0.7167860489510489,0.7172855444555445,0.71778503996004,0.7182845354645354,0.718784030969031,0.7192835264735264,0.719783021978022,0.7202825174825175,0.7207820129870129,0.7212815084915085,0.721781003996004,0.7222804995004996,0.722779995004995,0.7232794905094905,0.723778986013986,0.7242784815184815,0.724777977022977,0.7252774725274725,0.725776968031968,0.7262764635364636,0.726775959040959,0.7272754545454545,0.7277749500499501,0.7282744455544455,0.7287739410589411,0.7292734365634366,0.729772932067932,0.7302724275724276,0.7307719230769231,0.7312714185814185,0.7317709140859141,0.7322704095904096,0.7327699050949051,0.7332694005994006,0.7337688961038961,0.7342683916083916,0.7347678871128871,0.7352673826173827,0.7357668781218781,0.7362663736263736,0.7367658691308692,0.7372653646353646,0.7377648601398601,0.7382643556443557,0.7387638511488511,0.7392633466533467,0.7397628421578422,0.7402623376623376,0.7407618331668332,0.7412613286713287,0.7417608241758242,0.7422603196803197,0.7427598151848152,0.7432593106893107,0.7437588061938062,0.7442583016983016,0.7447577972027972,0.7452572927072927,0.7457567882117883,0.7462562837162837,0.7467557792207792,0.7472552747252748,0.7477547702297702,0.7482542657342658,0.7487537612387613,0.7492532567432567,0.7497527522477523,0.7502522477522477,0.7507517432567432,0.7512512387612388,0.7517507342657342,0.7522502297702298,0.7527497252747253,0.7532492207792207,0.7537487162837163,0.7542482117882118,0.7547477072927072,0.7552472027972028,0.7557466983016983,0.7562461938061938,0.7567456893106893,0.7572451848151848,0.7577446803196803,0.7582441758241758,0.7587436713286714,0.7592431668331668,0.7597426623376623,0.7602421578421579,0.7607416533466533,0.7612411488511488,0.7617406443556444,0.7622401398601398,0.7627396353646354,0.7632391308691309,0.7637386263736263,0.7642381218781219,0.7647376173826174,0.7652371128871129,0.7657366083916084,0.7662361038961039,0.7667355994005994,0.7672350949050949,0.7677345904095904,0.7682340859140859,0.7687335814185814,0.769233076923077,0.7697325724275724,0.7702320679320679,0.7707315634365635,0.7712310589410589,0.7717305544455545,0.77223004995005,0.7727295454545454,0.773229040959041,0.7737285364635365,0.7742280319680319,0.7747275274725275,0.775227022977023,0.7757265184815185,0.776226013986014,0.7767255094905094,0.777225004995005,0.7777245004995005,0.778223996003996,0.7787234915084915,0.779222987012987,0.7797224825174826,0.780221978021978,0.7807214735264735,0.781220969030969,0.7817204645354645,0.7822199600399601,0.7827194555444555,0.783218951048951,0.7837184465534466,0.784217942057942,0.7847174375624376,0.7852169330669331,0.7857164285714285,0.7862159240759241,0.7867154195804196,0.787214915084915,0.7877144105894106,0.7882139060939061,0.7887134015984016,0.7892128971028971,0.7897123926073926,0.7902118881118881,0.7907113836163836,0.7912108791208792,0.7917103746253746,0.7922098701298701,0.7927093656343657,0.7932088611388611,0.7937083566433566,0.7942078521478522,0.7947073476523476,0.7952068431568432,0.7957063386613387,0.7962058341658341,0.7967053296703297,0.7972048251748252,0.7977043206793207,0.7982038161838162,0.7987033116883117,0.7992028071928072,0.7997023026973027,0.8002017982017982,0.8007012937062937,0.8012007892107892,0.8017002847152848,0.8021997802197802,0.8026992757242757,0.8031987712287713,0.8036982667332667,0.8041977622377623,0.8046972577422578,0.8051967532467532,0.8056962487512488,0.8061957442557443,0.8066952397602397,0.8071947352647353,0.8076942307692307,0.8081937262737263,0.8086932217782218,0.8091927172827172,0.8096922127872128,0.8101917082917083,0.8106912037962037,0.8111906993006993,0.8116901948051948,0.8121896903096903,0.8126891858141858,0.8131886813186813,0.8136881768231768,0.8141876723276723,0.8146871678321679,0.8151866633366633,0.8156861588411588,0.8161856543456544,0.8166851498501498,0.8171846453546453,0.8176841408591409,0.8181836363636363,0.8186831318681319,0.8191826273726274,0.8196821228771228,0.8201816183816184,0.8206811138861139,0.8211806093906094,0.8216801048951049,0.8221796003996004,0.8226790959040959,0.8231785914085914,0.8236780869130869,0.8241775824175824,0.8246770779220779,0.8251765734265735,0.8256760689310689,0.8261755644355644,0.82667505994006,0.8271745554445554,0.827674050949051,0.8281735464535465,0.8286730419580419,0.8291725374625375,0.829672032967033,0.8301715284715284,0.830671023976024,0.8311705194805195,0.831670014985015,0.8321695104895105,0.832669005994006,0.8331685014985015,0.833667997002997,0.8341674925074926,0.834666988011988,0.8351664835164835,0.835665979020979,0.8361654745254745,0.83666497002997,0.8371644655344656,0.837663961038961,0.8381634565434566,0.838662952047952,0.8391624475524475,0.8396619430569431,0.8401614385614385,0.8406609340659341,0.8411604295704296,0.841659925074925,0.8421594205794206,0.8426589160839161,0.8431584115884115,0.8436579070929071,0.8441574025974026,0.8446568981018981,0.8451563936063936,0.8456558891108891,0.8461553846153846,0.8466548801198801,0.8471543756243757,0.8476538711288711,0.8481533666333666,0.8486528621378622,0.8491523576423576,0.8496518531468531,0.8501513486513487,0.8506508441558441,0.8511503396603397,0.8516498351648352,0.8521493306693306,0.8526488261738262,0.8531483216783217,0.8536478171828172,0.8541473126873127,0.8546468081918082,0.8551463036963037,0.8556457992007992,0.8561452947052947,0.8566447902097902,0.8571442857142857,0.8576437812187813,0.8581432767232767,0.8586427722277722,0.8591422677322678,0.8596417632367632,0.8601412587412588,0.8606407542457543,0.8611402497502497,0.8616397452547453,0.8621392407592408,0.8626387362637362,0.8631382317682318,0.8636377272727273,0.8641372227772228,0.8646367182817183,0.8651362137862137,0.8656357092907093,0.8661352047952048,0.8666347002997002,0.8671341958041958,0.8676336913086913,0.8681331868131869,0.8686326823176823,0.8691321778221778,0.8696316733266733,0.8701311688311688,0.8706306643356644,0.8711301598401598,0.8716296553446553,0.8721291508491509,0.8726286463536463,0.8731281418581418,0.8736276373626374,0.8741271328671328,0.8746266283716284,0.8751261238761239,0.8756256193806193,0.8761251148851149,0.8766246103896104,0.8771241058941059,0.8776236013986014,0.8781230969030969,0.8786225924075924,0.8791220879120879,0.8796215834165834,0.8801210789210789,0.8806205744255744,0.88112006993007,0.8816195654345654,0.8821190609390609,0.8826185564435565,0.8831180519480519,0.8836175474525475,0.884117042957043,0.8846165384615384,0.885116033966034,0.8856155294705295,0.8861150249750249,0.8866145204795205,0.887114015984016,0.8876135114885115,0.888113006993007,0.8886125024975025,0.889111998001998,0.8896114935064935,0.8901109890109891,0.8906104845154845,0.89110998001998,0.8916094755244756,0.892108971028971,0.8926084665334665,0.893107962037962,0.8936074575424575,0.8941069530469531,0.8946064485514486,0.895105944055944,0.8956054395604396,0.896104935064935,0.8966044305694306,0.8971039260739261,0.8976034215784215,0.8981029170829171,0.8986024125874126,0.899101908091908,0.8996014035964036,0.9001008991008991,0.9006003946053946,0.9010998901098901,0.9015993856143856,0.9020988811188811,0.9025983766233766,0.9030978721278722,0.9035973676323676,0.9040968631368631,0.9045963586413587,0.9050958541458541,0.9055953496503496,0.9060948451548452,0.9065943406593406,0.9070938361638362,0.9075933316683317,0.9080928271728271,0.9085923226773227,0.9090918181818182,0.9095913136863137,0.9100908091908092,0.9105903046953047,0.9110898001998002,0.9115892957042957,0.9120887912087912,0.9125882867132867,0.9130877822177822,0.9135872777222778,0.9140867732267732,0.9145862687312687,0.9150857642357643,0.9155852597402597,0.9160847552447553,0.9165842507492508,0.9170837462537462,0.9175832417582418,0.9180827372627373,0.9185822327672327,0.9190817282717283,0.9195812237762238,0.9200807192807193,0.9205802147852148,0.9210797102897103,0.9215792057942058,0.9220787012987013,0.9225781968031967,0.9230776923076923,0.9235771878121878,0.9240766833166834,0.9245761788211788,0.9250756743256743,0.9255751698301699,0.9260746653346653,0.9265741608391609,0.9270736563436563,0.9275731518481518,0.9280726473526474,0.9285721428571428,0.9290716383616383,0.9295711338661339,0.9300706293706293,0.9305701248751249,0.9310696203796204,0.9315691158841158,0.9320686113886114,0.9325681068931069,0.9330676023976024,0.9335670979020979,0.9340665934065934,0.9345660889110889,0.9350655844155844,0.9355650799200799,0.9360645754245754,0.9365640709290709,0.9370635664335665,0.9375630619380619,0.9380625574425574,0.938562052947053,0.9390615484515484,0.939561043956044,0.9400605394605395,0.9405600349650349,0.9410595304695305,0.941559025974026,0.9420585214785214,0.942558016983017,0.9430575124875125,0.943557007992008,0.9440565034965035,0.944555999000999,0.9450554945054945,0.94555499000999,0.9460544855144856,0.946553981018981,0.9470534765234765,0.9475529720279721,0.9480524675324675,0.948551963036963,0.9490514585414586,0.949550954045954,0.9500504495504496,0.9505499450549451,0.9510494405594405,0.9515489360639361,0.9520484315684316,0.9525479270729271,0.9530474225774226,0.953546918081918,0.9540464135864136,0.9545459090909091,0.9550454045954045,0.9555449000999001,0.9560443956043956,0.9565438911088912,0.9570433866133866,0.9575428821178821,0.9580423776223776,0.9585418731268731,0.9590413686313687,0.9595408641358641,0.9600403596403596,0.9605398551448552,0.9610393506493506,0.9615388461538461,0.9620383416583417,0.9625378371628371,0.9630373326673327,0.9635368281718282,0.9640363236763236,0.9645358191808192,0.9650353146853147,0.9655348101898102,0.9660343056943057,0.9665338011988012,0.9670332967032967,0.9675327922077922,0.9680322877122877,0.9685317832167832,0.9690312787212787,0.9695307742257743,0.9700302697302697,0.9705297652347652,0.9710292607392608,0.9715287562437562,0.9720282517482518,0.9725277472527473,0.9730272427572427,0.9735267382617383,0.9740262337662338,0.9745257292707292,0.9750252247752248,0.9755247202797203,0.9760242157842158,0.9765237112887113,0.9770232067932068,0.9775227022977023,0.9780221978021978,0.9785216933066933,0.9790211888111888,0.9795206843156843,0.9800201798201799,0.9805196753246753,0.9810191708291708,0.9815186663336664,0.9820181618381618,0.9825176573426574,0.9830171528471529,0.9835166483516483,0.9840161438561439,0.9845156393606393,0.9850151348651348,0.9855146303696304,0.9860141258741258,0.9865136213786214,0.9870131168831169,0.9875126123876123,0.9880121078921079,0.9885116033966034,0.989011098901099,0.9895105944055944,0.9900100899100899,0.9905095854145854,0.9910090809190809,0.9915085764235764,0.9920080719280719,0.9925075674325674,0.993007062937063,0.9935065584415584,0.9940060539460539,0.9945055494505495,0.9950050449550449,0.9955045404595405,0.996004035964036,0.9965035314685314,0.997003026973027,0.9975025224775225,0.9980020179820179,0.9985015134865135,0.999001008991009,0.9995005044955045,1.0]} diff --git a/lib/node_modules/@stdlib/math/base/special/asechf/test/fixtures/julia/runner.jl b/lib/node_modules/@stdlib/math/base/special/asechf/test/fixtures/julia/runner.jl new file mode 100755 index 000000000000..20bc0c5234b4 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/asechf/test/fixtures/julia/runner.jl @@ -0,0 +1,58 @@ +#!/usr/bin/env julia +# +# @license Apache-2.0 +# +# Copyright (c) 2026 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 +import Base: asech + +""" +gen( domain, name ) + +Generate fixture data and write to file. + +# Arguments + +* `domain`: domain +* `name::AbstractString`: output filename +""" +function gen( domain, name ) + x = collect( domain ); + + y = Float32.( asech.( x ) ) + data = Dict( + "x" => x, + "expected" => y + ) + + filepath = joinpath( dir, name ) + + open( filepath, "w" ) do io + write( io, JSON.json( data ) ) + write( io, "\n" ) + end +end + +# Get the filename: +file = @__FILE__ + +# Extract the directory in which this file resides: +dir = dirname( file ) + +# Generate values over the function domain: +x = range( 1.0e-7, stop = 1.0, length = 2003 ) +gen( x, "data.json" ) diff --git a/lib/node_modules/@stdlib/math/base/special/asechf/test/test.js b/lib/node_modules/@stdlib/math/base/special/asechf/test/test.js new file mode 100644 index 000000000000..5a443bd74b82 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/asechf/test/test.js @@ -0,0 +1,112 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var absf = require( '@stdlib/math/base/special/absf' ); +var EPS = require( '@stdlib/constants/float32/eps' ); +var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' ); +var max = require( '@stdlib/math/base/special/max' ); +var asechf = require( './../lib' ); + + +// FIXTURES // + +var data = require( './fixtures/julia/data.json' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof asechf, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function computes the hyperbolic arcsecant on the interval (0, 1]', 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++ ) { + y = asechf( x[i] ); + if ( y === expected[ i ] ) { + t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i] ); + } else { + e = float64ToFloat32( expected[i] ); + delta = absf( y - e ); + tol = max( 10.0 * EPS * absf( e ), 2.0e-6 ); + t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); + } + } + t.end(); +}); + +tape( 'the function computes the hyperbolic arcsecant of 1', function test( t ) { + var v = asechf( 1.0 ); + t.strictEqual( v, 0.0, 'returns expected value' ); + t.end(); +}); + +tape( 'the function computes the hyperbolic arcsecant of 0.5', function test( t ) { + var expected = float64ToFloat32( 1.3169578969248166 ); + var delta; + var tol; + var v; + + v = asechf( 0.5 ); + delta = absf( v - expected ); + tol = 10.0 * EPS; + t.ok( delta <= tol, 'within tolerance. v: ' + v + '. expected: ' + expected + '. Δ: ' + delta + '. tol: ' + tol + '.' ); + t.end(); +}); + +tape( 'the function returns `Infinity` for `x = 0`', function test( t ) { + var v = asechf( 0.0 ); + t.strictEqual( v, Infinity, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns `NaN` for negative values', function test( t ) { + var v = asechf( -1.0 ); + t.strictEqual( isnanf( v ), true, 'returns NaN' ); + t.end(); +}); + +tape( 'the function returns `NaN` for values greater than 1', function test( t ) { + var v = asechf( 2.0 ); + t.strictEqual( isnanf( v ), true, 'returns NaN' ); + t.end(); +}); + +tape( 'the function returns `NaN` if provided `NaN`', function test( t ) { + var v = asechf( NaN ); + t.strictEqual( isnanf( v ), true, 'returns NaN' ); + t.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/asechf/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/asechf/test/test.native.js new file mode 100644 index 000000000000..236f35316d7d --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/asechf/test/test.native.js @@ -0,0 +1,114 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var resolve = require( 'path' ).resolve; +var tape = require( 'tape' ); +var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var absf = require( '@stdlib/math/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' ); +var max = require( '@stdlib/math/base/special/max' ); +var data = require( './fixtures/julia/data.json' ); + + +// VARIABLES // + +var asechf = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( asechf instanceof Error ) +}; + + +// TESTS // + +tape( 'main export is a function', opts, function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof asechf, 'function', 'main export is a function' ); + t.end(); +}); + +tape('the function computes the hyperbolic arcsecant on the interval (0, 1]', opts, function test( t ) { + var expected; + var delta; + var tol; + var x; + var y; + var e; + var i; + + x = data.x; + expected = data.expected; + + for ( i = 0; i < x.length; i++ ) { + y = asechf( x[i] ); + e = float64ToFloat32( expected[i] ); + delta = absf( y - e ); + tol = max( 10.0 * EPS * absf( e ), 2.0e-6 ); + + t.ok(delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); + } + t.end(); +}); + +tape( 'the function computes the hyperbolic arcsecant of 1', opts, function test( t ) { + var v = asechf( 1.0 ); + t.strictEqual( v, 0.0, 'returns expected value' ); + t.end(); +}); + +tape( 'the function computes the hyperbolic arcsecant of 0.5', opts, function test( t ) { + var expected = float64ToFloat32( 1.3169578969248166 ); + var delta; + var tol; + var v; + + v = asechf( 0.5 ); + delta = absf( v - expected ); + tol = 10.0 * EPS; + t.ok( delta <= tol, 'within tolerance. v: ' + v + '. expected: ' + expected + '. Δ: ' + delta + '. tol: ' + tol + '.' ); + t.end(); +}); + +tape( 'the function returns `Infinity` for `x = 0`', opts, function test( t ) { + var v = asechf( 0.0 ); + t.strictEqual( v, Infinity, 'returns Infinity' ); + t.end(); +}); + +tape( 'the function returns `NaN` for negative values', opts, function test( t ) { + var v = asechf( -1.0 ); + t.strictEqual( isnanf( v ), true, 'returns NaN' ); + t.end(); +}); + +tape( 'the function returns `NaN` for values greater than 1', opts, function test( t ) { + var v = asechf( 2.0 ); + t.strictEqual( isnanf( v ), true, 'returns NaN' ); + t.end(); +}); + +tape( 'the function returns `NaN` if provided `NaN`', opts, function test( t ) { + var v = asechf( NaN ); + t.strictEqual( isnanf( v ), true, 'returns NaN' ); + t.end(); +});