From 8c88a59f9845c9642be2f141870260343efb54e3 Mon Sep 17 00:00:00 2001 From: Bruno Fenzl Date: Tue, 30 Oct 2018 22:00:40 +0100 Subject: [PATCH 1/2] Implemented method for calculating the inverse hyperbolic cotangent of a number, acoth() --- .../@stdlib/math/base/special/acoth/README.md | 94 +++++++++++ .../base/special/acoth/benchmark/benchmark.js | 51 ++++++ .../base/special/acoth/benchmark/c/Makefile | 107 ++++++++++++ .../special/acoth/benchmark/c/benchmark.c | 134 +++++++++++++++ .../special/acoth/benchmark/c/cephes/Makefile | 113 +++++++++++++ .../acoth/benchmark/c/cephes/benchmark.c | 139 +++++++++++++++ .../acoth/benchmark/cpp/boost/Makefile | 110 ++++++++++++ .../acoth/benchmark/cpp/boost/benchmark.cpp | 134 +++++++++++++++ .../special/acoth/benchmark/julia/REQUIRE | 2 + .../acoth/benchmark/julia/benchmark.jl | 143 ++++++++++++++++ .../acoth/benchmark/python/benchmark.py | 97 +++++++++++ .../special/acoth/benchmark/r/DESCRIPTION | 9 + .../special/acoth/benchmark/r/benchmark.R | 109 ++++++++++++ .../math/base/special/acoth/docs/repl.txt | 34 ++++ .../math/base/special/acoth/examples/index.js | 29 ++++ .../math/base/special/acoth/lib/acoth.js | 61 +++++++ .../math/base/special/acoth/lib/index.js | 52 ++++++ .../math/base/special/acoth/package.json | 70 ++++++++ .../base/special/acoth/scripts/accuracy.js | 57 +++++++ .../special/acoth/test/fixtures/julia/REQUIRE | 2 + .../test/fixtures/julia/huge_positive.json | 1 + .../test/fixtures/julia/large_positive.json | 1 + .../test/fixtures/julia/larger_positive.json | 1 + .../test/fixtures/julia/medium_positive.json | 1 + .../acoth/test/fixtures/julia/runner.jl | 76 +++++++++ .../math/base/special/acoth/test/test.js | 158 ++++++++++++++++++ 26 files changed, 1785 insertions(+) create mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/README.md create mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/benchmark/benchmark.js create mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/benchmark/c/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/benchmark/c/benchmark.c create mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/benchmark/c/cephes/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/benchmark/c/cephes/benchmark.c create mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/benchmark/cpp/boost/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/benchmark/cpp/boost/benchmark.cpp create mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/benchmark/julia/REQUIRE create mode 100755 lib/node_modules/@stdlib/math/base/special/acoth/benchmark/julia/benchmark.jl create mode 100755 lib/node_modules/@stdlib/math/base/special/acoth/benchmark/python/benchmark.py create mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/benchmark/r/DESCRIPTION create mode 100755 lib/node_modules/@stdlib/math/base/special/acoth/benchmark/r/benchmark.R create mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/docs/repl.txt create mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/examples/index.js create mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/lib/acoth.js create mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/lib/index.js create mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/package.json create mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/scripts/accuracy.js create mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/REQUIRE create mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/huge_positive.json create mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/large_positive.json create mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/larger_positive.json create mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/medium_positive.json create mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/runner.jl create mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/test/test.js diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/README.md b/lib/node_modules/@stdlib/math/base/special/acoth/README.md new file mode 100644 index 000000000000..c8b6aae7ae92 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/acoth/README.md @@ -0,0 +1,94 @@ + + +# acoth + +> Compute the [inverse hyperbolic cotangent][inverse-hyperbolic-cotangent] of a number. + +
+ +## Usage + +```javascript +var acoth = require( '@stdlib/math/base/special/acoth' ); +``` + +#### acoth( x ) + +Computes the [inverse hyperbolic cotangent][inverse-hyperbolic-cotangent] of a `number` (in radians). + +```javascript + +v = acoth( 2.0 ); +// returns ~0.5493 + +``` + +The domain of `x` is restricted to `[x < -1 || x > 1)`. +If `x > -1 || < 1` or `x === NaN` the function will return `NaN`. +If `x === -1 || x === 1`, the function will return Infinity. + +```javascript +var v = acoth( 0.0 ); +// returns NaN + +v = acoth( 0.5 ); +// returns NaN + +v = acoth( 1.0 ); +// returns Infinity + +v = acoth( NaN ); +// returns NaN +``` + +
+ + + +
+ +## Examples + + + +```javascript +var linspace = require( '@stdlib/math/utils/linspace' ); +var acoth = require( '@stdlib/math/base/special/acoth' ); + +var x = linspace( 1.0, 5.0, 100 ); +var i; + +for ( i = 0; i < x.length; i++ ) { + console.log( acoth( x[ i ] ) ); +} +``` + +
+ + + + + + diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/benchmark.js b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/benchmark.js new file mode 100644 index 000000000000..f5dda57ebaf8 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/benchmark.js @@ -0,0 +1,51 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2018 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var bench = require( '@stdlib/bench' ); +var randu = require( '@stdlib/random/base/randu' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var pkg = require( './../package.json' ).name; +var acoth = require( './../lib' ); + + +// MAIN // + +bench( pkg, function benchmark( b ) { + var x; + var y; + var i; + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + x = ( randu()*100.0 ) + 1.1; + y = acoth( x ); + if ( isnan( y ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnan( y ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/c/Makefile b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/c/Makefile new file mode 100644 index 000000000000..e4542b1e66e9 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/c/Makefile @@ -0,0 +1,107 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2018 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +endif + +# Determine the OS: +# +# [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 +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]: 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 + + +# TARGETS # + +# Default target. +# +# This target is the default target. + +all: $(c_targets) + +.PHONY: all + + +# Compile C source. +# +# This target compiles C source files. + +$(c_targets): %.out: %.c + $(QUIET) $(CC) $(CFLAGS) $(fPIC) -o $@ $< -lm + + +# Run a benchmark. +# +# This target runs a benchmark. + +run: $(c_targets) + $(QUIET) ./$< + +.PHONY: run + + +# Perform clean-up. +# +# This target removes generated files. + +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/c/benchmark.c b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/c/benchmark.c new file mode 100644 index 000000000000..b19f204f006d --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/c/benchmark.c @@ -0,0 +1,134 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2018 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +/** +* Benchmark `acoth`. +*/ +#include +#include +#include +#include + +#define NAME "acoth" +#define ITERATIONS 1000000 +#define REPEATS 3 + +/** +* Prints the TAP version. +*/ +void print_version() { + printf( "TAP version 13\n" ); +} + +/** +* Prints the TAP summary. +* +* @param total total number of tests +* @param passing total number of passing tests +*/ +void print_summary( int total, int passing ) { + printf( "#\n" ); + printf( "1..%d\n", total ); // TAP plan + printf( "# total %d\n", total ); + printf( "# pass %d\n", passing ); + printf( "#\n" ); + printf( "# ok\n" ); +} + +/** +* Prints benchmarks results. +* +* @param elapsed elapsed time in seconds +*/ +void print_results( double elapsed ) { + double rate = (double)ITERATIONS / elapsed; + printf( " ---\n" ); + printf( " iterations: %d\n", ITERATIONS ); + printf( " elapsed: %0.9f\n", elapsed ); + printf( " rate: %0.9f\n", rate ); + printf( " ...\n" ); +} + +/** +* Returns a clock time. +* +* @return clock time +*/ +double tic() { + struct timeval now; + gettimeofday( &now, NULL ); + return (double)now.tv_sec + (double)now.tv_usec/1.0e6; +} + +/** +* Generates a random double on the interval [0,1]. +* +* @return random double +*/ +double rand_double() { + int r = rand(); + return (double)r / ( (double)RAND_MAX + 1.0 ); +} + +/** +* Runs a benchmark. +* +* @return elapsed time in seconds +*/ +double benchmark() { + double elapsed; + double x; + double y; + double t; + int i; + + t = tic(); + for ( i = 0; i < ITERATIONS; i++ ) { + x = ( 100.0*rand_double() ) + 1.0; + y = atanh( 1.0/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::%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/acoth/benchmark/c/cephes/Makefile b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/c/cephes/Makefile new file mode 100644 index 000000000000..60e93ff57ffd --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/c/cephes/Makefile @@ -0,0 +1,113 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2018 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +endif + +# Specify the path to Cephes: +CEPHES ?= + +# Specify a list of Cephes source files: +CEPHES_SRC ?= + +# Determine the OS: +# +# [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 +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]: 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 + + +# TARGETS # + +# Default target. +# +# This target is the default target. + +all: $(c_targets) + +.PHONY: all + + +# Compile C source. +# +# This target compiles C source files. + +$(c_targets): %.out: %.c + $(QUIET) $(CC) $(CFLAGS) $(fPIC) -o $@ $(CEPHES_SRC) $< -lm + + +# Run a benchmark. +# +# This target runs a benchmark. + +run: $(c_targets) + $(QUIET) ./$< + +.PHONY: run + + +# Perform clean-up. +# +# This target removes generated files. + +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/c/cephes/benchmark.c b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/c/cephes/benchmark.c new file mode 100644 index 000000000000..07156d19fff9 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/c/cephes/benchmark.c @@ -0,0 +1,139 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2018 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +/** +* Benchmark Cephes `acoth`. +*/ +#include +#include +#include +#include + +#define NAME "acoth" +#define ITERATIONS 1000000 +#define REPEATS 3 + +/** +* Define prototypes for external functions. +*/ +extern double acoth( double x ); + +/** +* Prints the TAP version. +*/ +void print_version() { + printf( "TAP version 13\n" ); +} + +/** +* Prints the TAP summary. +* +* @param total total number of tests +* @param passing total number of passing tests +*/ +void print_summary( int total, int passing ) { + printf( "#\n" ); + printf( "1..%d\n", total ); // TAP plan + printf( "# total %d\n", total ); + printf( "# pass %d\n", passing ); + printf( "#\n" ); + printf( "# ok\n" ); +} + +/** +* Prints benchmarks results. +* +* @param elapsed elapsed time in seconds +*/ +void print_results( double elapsed ) { + double rate = (double)ITERATIONS / elapsed; + printf( " ---\n" ); + printf( " iterations: %d\n", ITERATIONS ); + printf( " elapsed: %0.9f\n", elapsed ); + printf( " rate: %0.9f\n", rate ); + printf( " ...\n" ); +} + +/** +* Returns a clock time. +* +* @return clock time +*/ +double tic() { + struct timeval now; + gettimeofday( &now, NULL ); + return (double)now.tv_sec + (double)now.tv_usec/1.0e6; +} + +/** +* Generates a random double on the interval [0,1]. +* +* @return random double +*/ +double rand_double() { + int r = rand(); + return (double)r / ( (double)RAND_MAX + 1.0 ); +} + +/** +* Runs a benchmark. +* +* @return elapsed time in seconds +*/ +double benchmark() { + double elapsed; + double x; + double y; + double t; + int i; + + t = tic(); + for ( i = 0; i < ITERATIONS; i++ ) { + x = ( 100.0*rand_double() ) + 1.0; + y = acoth( 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::cephes::%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/acoth/benchmark/cpp/boost/Makefile b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/cpp/boost/Makefile new file mode 100644 index 000000000000..ba3ed4330d65 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/cpp/boost/Makefile @@ -0,0 +1,110 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2018 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +endif + +# Specify the path to Boost: +BOOST ?= + +# Determine the OS: +# +# [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 +endif +endif +endif + +# Define the program used for compiling C++ source files: +ifdef CXX_COMPILER + CXX := $(CXX_COMPILER) +else + CXX := g++ +endif + +# Define the command-line options when compiling C++ files: +CXXFLAGS ?= \ + -std=c++11 \ + -O3 \ + -Wall \ + -pedantic + +# Determine whether to generate [position independent code][1]: +# +# [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: +cxx_targets := benchmark.out + + +# TARGETS # + +# Default target. +# +# This target is the default target. + +all: $(cxx_targets) + +.PHONY: all + + +# Compile C++ source. +# +# This target compiles C++ source files. + +$(cxx_targets): %.out: %.cpp $(BOOST) + $(QUIET) $(CXX) $(CXXFLAGS) $(fPIC) -I $(BOOST) -o $@ $< -lm + + +# Run a benchmark. +# +# This target runs a benchmark. + +run: $(cxx_targets) + $(QUIET) ./$< + +.PHONY: run + + +# Perform clean-up. +# +# This target removes generated files. + +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/cpp/boost/benchmark.cpp b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/cpp/boost/benchmark.cpp new file mode 100644 index 000000000000..57c8d9bdb771 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/cpp/boost/benchmark.cpp @@ -0,0 +1,134 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2018 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +/** +* Benchmark Boost `acoth`. +*/ +#include +#include +#include +#include +#include +#include +#include + +using boost::random::uniform_real_distribution; +using boost::random::mt19937; + +#define NAME "acoth" +#define ITERATIONS 1000000 +#define REPEATS 3 + +/** +* Prints the TAP version. +*/ +void print_version() { + printf( "TAP version 13\n" ); +} + +/** +* Prints the TAP summary. +* +* @param total total number of tests +* @param passing total number of passing tests +*/ +void print_summary( int total, int passing ) { + printf( "#\n" ); + printf( "1..%d\n", total ); // TAP plan + printf( "# total %d\n", total ); + printf( "# pass %d\n", passing ); + printf( "#\n" ); + printf( "# ok\n" ); +} + +/** +* Prints benchmarks results. +* +* @param elapsed elapsed time in seconds +*/ +void print_results( double elapsed ) { + double rate = (double)ITERATIONS / elapsed; + printf( " ---\n" ); + printf( " iterations: %d\n", ITERATIONS ); + printf( " elapsed: %0.9f\n", elapsed ); + printf( " rate: %0.9f\n", rate ); + printf( " ...\n" ); +} + +/** +* Returns a clock time. +* +* @return clock time +*/ +double tic() { + struct timeval now; + gettimeofday( &now, NULL ); + return (double)now.tv_sec + (double)now.tv_usec/1.0e6; +} + +/** +* Runs a benchmark. +* +* @return elapsed time in seconds +*/ +double benchmark() { + double elapsed; + double x; + double y; + double t; + int i; + + // Define a new pseudorandom number generator: + mt19937 rng; + + // Define a uniform distribution for generating pseudorandom numbers as "doubles" between a minimum value (inclusive) and a maximum value (exclusive): + uniform_real_distribution<> randu( 1.0, 101.0 ); + + t = tic(); + for ( i = 0; i < ITERATIONS; i++ ) { + x = randu( rng ); + y = boost::math::acoth( 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; + + print_version(); + for ( i = 0; i < REPEATS; i++ ) { + printf( "# cpp::boost::%s\n", NAME ); + elapsed = benchmark(); + print_results( elapsed ); + printf( "ok %d benchmark finished\n", i+1 ); + } + print_summary( REPEATS, REPEATS ); + return 0; +} diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/julia/REQUIRE b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/julia/REQUIRE new file mode 100644 index 000000000000..11b2b096cae4 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/julia/REQUIRE @@ -0,0 +1,2 @@ +julia 0.5 +BenchmarkTools 0.0.8 diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/julia/benchmark.jl b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/julia/benchmark.jl new file mode 100755 index 000000000000..ca08370466e6 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/julia/benchmark.jl @@ -0,0 +1,143 @@ +#!/usr/bin/env julia +# +# @license Apache-2.0 +# +# Copyright (c) 2018 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import BenchmarkTools + +# Benchmark variables: +name = "acoth"; +repeats = 3; + +""" + print_version() + +Prints the TAP version. + +# Examples + +``` julia +julia> print_version() +``` +""" +function print_version() + @printf( "TAP version 13\n" ); +end + +""" + print_summary( total, passing ) + +Print the benchmark summary. + +# Arguments + +* `total`: total number of tests +* `passing`: number of passing tests + +# Examples + +``` julia +julia> print_summary( 3, 3 ) +``` +""" +function print_summary( total, passing ) + @printf( "#\n" ); + @printf( "1..%d\n", total ); # TAP plan + @printf( "# total %d\n", total ); + @printf( "# pass %d\n", passing ); + @printf( "#\n" ); + @printf( "# ok\n" ); +end + +""" + print_results( iterations, elapsed ) + +Print benchmark results. + +# Arguments + +* `iterations`: number of iterations +* `elapsed`: elapsed time (in seconds) + +# Examples + +``` julia +julia> print_results( 1000000, 0.131009101868 ) +``` +""" +function print_results( iterations, elapsed ) + rate = iterations / elapsed + + @printf( " ---\n" ); + @printf( " iterations: %d\n", iterations ); + @printf( " elapsed: %0.9f\n", elapsed ); + @printf( " rate: %0.9f\n", rate ); + @printf( " ...\n" ); +end + +""" + benchmark() + +Run a benchmark. + +# Notes + +* Benchmark results are returned as a two-element array: [ iterations, elapsed ]. +* The number of iterations is not the true number of iterations. Instead, an 'iteration' is defined as a 'sample', which is a computed estimate for a single evaluation. +* The elapsed time is in seconds. + +# Examples + +``` julia +julia> out = benchmark(); +``` +""" +function benchmark() + t = BenchmarkTools.@benchmark acoth( (100.0*rand()) + 1.1 ) samples=1e6 + + # Compute the total "elapsed" time and convert from nanoseconds to seconds: + s = sum( t.times ) / 1.0e9; + + # Determine the number of "iterations": + iter = length( t.times ); + + # Return the results: + [ iter, s ]; +end + +""" + main() + +Run benchmarks. + +# Examples + +``` julia +julia> main(); +``` +""" +function main() + print_version(); + for i in 1:repeats + @printf( "# julia::%s\n", name ); + results = benchmark(); + print_results( results[ 1 ], results[ 2 ] ); + @printf( "ok %d benchmark finished\n", i ); + end + print_summary( repeats, repeats ); +end + +main(); diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/python/benchmark.py b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/python/benchmark.py new file mode 100755 index 000000000000..8f6d12f0d8e7 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/python/benchmark.py @@ -0,0 +1,97 @@ +#!/usr/bin/env python +# +# @license Apache-2.0 +# +# Copyright (c) 2018 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Benchmark acoth.""" + +from __future__ import print_function +import timeit + +NAME = "acoth" +REPEATS = 3 +ITERATIONS = 1000000 + + +def print_version(): + """Print the TAP version.""" + print("TAP version 13") + + +def print_summary(total, passing): + """Print the benchmark summary. + + # Arguments + + * `total`: total number of tests + * `passing`: number of passing tests + + """ + print("#") + print("1.." + str(total)) # TAP plan + print("# total " + str(total)) + print("# pass " + str(passing)) + print("#") + print("# ok") + + +def print_results(elapsed): + """Print benchmark results. + + # Arguments + + * `elapsed`: elapsed time (in seconds) + + # Examples + + ``` python + python> print_results(0.131009101868) + ``` + """ + rate = ITERATIONS / elapsed + + print(" ---") + print(" iterations: " + str(ITERATIONS)) + print(" elapsed: " + str(elapsed)) + print(" rate: " + str(rate)) + print(" ...") + + +def benchmark(): + """Run the benchmark and print benchmark results.""" + setup = "from math import atanh; from random import random;" + stmt = "y = atanh(1.0 / ((100.0*random() + 1.1))" + + t = timeit.Timer(stmt, setup=setup) + + print_version() + + for i in xrange(REPEATS): + print("# python::" + NAME) + elapsed = t.timeit(number=ITERATIONS) + print_results(elapsed) + print("ok " + str(i+1) + " benchmark finished") + + print_summary(REPEATS, REPEATS) + + +def main(): + """Run the benchmark.""" + benchmark() + + +if __name__ == "__main__": + main() diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/r/DESCRIPTION b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/r/DESCRIPTION new file mode 100644 index 000000000000..d309fb28ec36 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/r/DESCRIPTION @@ -0,0 +1,9 @@ +Package: acoth-benchmarks +Title: Benchmarks +Version: 0.0.0 +Authors@R: person("stdlib", "js", role = c("aut","cre")) +Description: Benchmarks. +Depends: R (>=3.4.0) +Imports: + microbenchmark +LazyData: true diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/r/benchmark.R b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/r/benchmark.R new file mode 100755 index 000000000000..05ecc4415628 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/r/benchmark.R @@ -0,0 +1,109 @@ +#!/usr/bin/env Rscript +# +# @license Apache-2.0 +# +# Copyright (c) 2018 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Set the precision to 16 digits: +options( digits = 16 ); + +#' Run benchmarks. +#' +#' @examples +#' main(); +main <- function() { + # Define benchmark parameters: + name <- "acoth"; + iterations <- 1000000L; + repeats <- 3; + + #' Print the TAP version. + #' + #' @examples + #' print_version(); + print_version <- function() { + cat( "TAP version 13\n" ); + } + + #' Print the TAP summary. + #' + #' @param total Total number of tests. + #' @param passing Total number of passing tests. + #' + #' @examples + #' print_summary( 3, 3 ); + print_summary <- function( total, passing ) { + cat( "#\n" ); + cat( paste0( "1..", total, "\n" ) ); # TAP plan + cat( paste0( "# total ", total, "\n" ) ); + cat( paste0( "# pass ", passing, "\n" ) ); + cat( "#\n" ); + cat( "# ok\n" ); + } + + #' Print benchmark results. + #' + #' @param iterations Number of iterations. + #' @param elapsed Elapsed time in seconds. + #' + #' @examples + #' print_results( 10000L, 0.131009101868 ); + print_results <- function( iterations, elapsed ) { + rate <- iterations / elapsed; + cat( " ---\n" ); + cat( paste0( " iterations: ", iterations, "\n" ) ); + cat( paste0( " elapsed: ", elapsed, "\n" ) ); + cat( paste0( " rate: ", rate, "\n" ) ); + cat( " ...\n" ); + } + + #' Run a benchmark. + #' + #' ## Notes + #' + #' * We compute and return a total "elapsed" time, rather than the minimum + #' evaluation time, to match benchmark results in other languages (e.g., + #' Python). + #' + #' + #' @param iterations Number of Iterations. + #' @return Elapsed time in seconds. + #' + #' @examples + #' elapsed <- benchmark( 10000L ); + benchmark <- function( iterations ) { + # Run the benchmarks: + results <- microbenchmark::microbenchmark( atanh( 1.0 / ( (100.0*runif(1)) + 1.1 ) ), times = iterations ); + + # Sum all the raw timing results to get a total "elapsed" time: + elapsed <- sum( results$time ); + + # Convert the elapsed time from nanoseconds to seconds: + elapsed <- elapsed / 1.0e9; + + return( elapsed ); + } + + print_version(); + for ( i in 1:repeats ) { + cat( paste0( "# r::", name, "\n" ) ); + elapsed <- benchmark( iterations ); + print_results( iterations, elapsed ); + cat( paste0( "ok ", i, " benchmark finished", "\n" ) ); + } + print_summary( repeats, repeats ); +} + +main(); diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/docs/repl.txt b/lib/node_modules/@stdlib/math/base/special/acoth/docs/repl.txt new file mode 100644 index 000000000000..1efe03c58e7f --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/acoth/docs/repl.txt @@ -0,0 +1,34 @@ + +{{alias}}( x ) + Computes the inverse hyperbolic cotangent of a number. + + The domain of `x` is restricted to `[x < -1 || x > 1)`. + If `x > -1 || < 1` or `x === NaN` the function will return `NaN`. + If `x === -1 || x === 1`, the function will return Infinity. + + Parameters + ---------- + x: number + Input value. + + Returns + ------- + y: number + Inverse hyperbolic cotangent (in radians) of a number. + + Examples + -------- + > var y = {{alias}}( 0.0 ) + NaN + > var y = {{alias}}( 0.5 ) + NaN + > var y = {{alias}}( 1.0 ) + Infinity + > y = {{alias}}( 2.0 ) + ~0.5493 + > y = {{alias}}( NaN ) + NaN + + See Also + -------- + diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/examples/index.js b/lib/node_modules/@stdlib/math/base/special/acoth/examples/index.js new file mode 100644 index 000000000000..d03c607838c0 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/acoth/examples/index.js @@ -0,0 +1,29 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2018 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +var linspace = require( '@stdlib/math/utils/linspace' ); +var acoth = require( './../lib' ); + +var x = linspace( 1.0, 5.0, 100 ); +var i; + +for ( i = 0; i < x.length; i++ ) { + console.log( 'acoth( %d ) = %d', x[ i ], acoth( x[ i ] ) ); +} diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/lib/acoth.js b/lib/node_modules/@stdlib/math/base/special/acoth/lib/acoth.js new file mode 100644 index 000000000000..ad459ffbd4d6 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/acoth/lib/acoth.js @@ -0,0 +1,61 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2018 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var atanh = require( '@stdlib/math/base/special/atanh' ); + + +// MAIN // + +/** +* Computes the inverse hyperbolic cotangent of a number. +* +* @param {number} x - input value +* @returns {number} inverse hyperbolic cotangent (in radians) +* +* @example +* var v = acoth( 0.0 ); +* // returns NaN +* +* @example +* var v = acoth( 0.5 ); +* // returns NaN +* +* @example +* var v = acoth( 1.0 ); +* // returns Infinity +* +* @example +* var v = acoth( 2.0 ); +* // returns ~0.5493 +* +* @example +* var v = acoth( NaN ); +* // returns NaN +*/ +function acoth( x ) { + return atanh( 1.0/x ); +} + + +// EXPORTS // + +module.exports = acoth; diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/lib/index.js b/lib/node_modules/@stdlib/math/base/special/acoth/lib/index.js new file mode 100644 index 000000000000..5ebfbe498467 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/acoth/lib/index.js @@ -0,0 +1,52 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2018 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +/** +* Compute the hyperbolic arccosine of a number. +* +* @module @stdlib/math/base/special/acoth +* +* @example +* var acoth = require( '@stdlib/math/base/special/acoth' ); +* +* var v = acoth( 0.0 ); +* // returns NaN +* +* v = acoth( 0.5 ); +* // returns NaN +* +* v = acoth( 1.0 ); +* // returns Infinity +* +* v = acoth( 2.0 ); +* // returns ~0.5493 +* +* v = acoth( NaN ); +* // returns NaN +*/ + +// MODULES // + +var acoth = require( './acoth.js' ); + + +// EXPORTS // + +module.exports = acoth; diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/package.json b/lib/node_modules/@stdlib/math/base/special/acoth/package.json new file mode 100644 index 000000000000..f4393b068035 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/acoth/package.json @@ -0,0 +1,70 @@ +{ + "name": "acoth", + "version": "0.0.0", + "description": "Compute the inverse hyperbolic cotangent.", + "license": "Apache-2.0", + "author": { + "name": "The Stdlib Authors", + "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" + }, + "contributors": [ + { + "name": "The Stdlib Authors", + "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" + } + ], + "main": "./lib", + "directories": { + "benchmark": "./benchmark", + "doc": "./docs", + "example": "./examples", + "lib": "./lib", + "scripts": "./scripts", + "test": "./test" + }, + "scripts": { + "test": "node ./test/test.js" + }, + "homepage": "https://github.com/stdlib-js/stdlib", + "repository": { + "type": "git", + "url": "git://github.com/stdlib-js/stdlib.git" + }, + "bugs": { + "url": "https://github.com/stdlib-js/stdlib/issues" + }, + "dependencies": {}, + "devDependencies": {}, + "engines": { + "node": ">=0.10.0", + "npm": ">2.7.0" + }, + "os": [ + "aix", + "darwin", + "freebsd", + "linux", + "macos", + "openbsd", + "sunos", + "win32", + "windows" + ], + "keywords": [ + "stdlib", + "stdmath", + "mathematics", + "math", + "acoth", + "hyperbolic", + "inverse", + "cosine", + "cos", + "arc", + "arccosine", + "trig", + "trigonometry", + "radians", + "angle" + ] +} diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/scripts/accuracy.js b/lib/node_modules/@stdlib/math/base/special/acoth/scripts/accuracy.js new file mode 100644 index 000000000000..31d05063162b --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/acoth/scripts/accuracy.js @@ -0,0 +1,57 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2018 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// TODO: clean-up + +// MODULES // + +var divide = require( 'compute-divide' ); +var mean = require( 'compute-mean' ); +var subtract = require( 'compute-subtract' ); +var abs = require( '@stdlib/math/base/special/abs' ); +var acoth = require( './../lib' ); + + +// FIXTURES // + +var data = require( './fixtures/julia/data.json' ); + + +// MAIN // + +var customErrs; +var yexpected; +var ycustom; +var x; +var i; + +x = data.x; +yexpected = data.expected; +ycustom = new Array( x.length ); +for ( i = 0; i < x.length; i++ ) { + if ( yexpected[ i ] === 0.0 ) { + yexpected[ i ] += 1e-16; + } + ycustom[ i ] = acoth( x[ i ] ); +} + +customErrs = abs( divide( subtract( ycustom, yexpected ), yexpected ) ); + +console.log( 'The mean relative error of this module compared to Julia is %d', mean( customErrs ) ); diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/REQUIRE b/lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/REQUIRE new file mode 100644 index 000000000000..becfcba22e9e --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/REQUIRE @@ -0,0 +1,2 @@ +julia 0.5 +JSON 0.5 diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/huge_positive.json b/lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/huge_positive.json new file mode 100644 index 000000000000..b06fba1358ec --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/huge_positive.json @@ -0,0 +1 @@ +{"expected":[1.0e-300,9.999900100997992e-306,4.9999750501245e-306,3.33332225559237e-306,2.4999937750155003e-306,1.99999602000792e-306,1.6666639055601297e-306,1.4285694020436912e-306,1.2499984500019221e-306,1.111109887655668e-306,9.9999901000098e-307,9.090900917362721e-307,8.333326472227871e-307,7.69230185207544e-307,7.142852112248441e-307,6.666662288891762e-307,6.249996156252363e-307,5.882349539794355e-307,5.555552524693011e-307,5.263155177286722e-307,4.999997550001201e-307,4.761902541951148e-307,4.545452524794287e-307,4.347824240076399e-307,4.166664972222911e-307,3.999998440000608e-307,3.846152405325983e-307,3.7037023689991086e-307,3.571427331633084e-307,3.4482747074914685e-307,3.333332255555904e-307,3.2258054432885565e-307,3.124999054687786e-307,3.0303021423326748e-307,2.9411756349483346e-307,2.8571420693879722e-307,2.7777770339508165e-307,2.702701999269723e-307,2.6315782811636037e-307,2.564101932281549e-307,2.4999994000001443e-307,2.4390238197502823e-307,2.3809518378686046e-307,2.325580877771884e-307,2.272726778925727e-307,2.222221750617384e-307,2.173912592627693e-307,2.1276591430512418e-307,2.0833329201389705e-307,2.040815930445725e-307,1.9999996200000722e-307,1.9607839488658887e-307,1.923076572485271e-307,1.8867921156995976e-307,1.851851527434899e-307,1.8181815057851776e-307,1.785713984693928e-307,1.7543856746691772e-307,1.724137651010747e-307,1.6949149839127116e-307,1.6666664055555964e-307,1.6393440099436026e-307,1.6129029817898392e-307,1.5873013512220052e-307,1.5624997714844083e-307,1.5384613171597954e-307,1.5151513007346494e-307,1.4925371055914745e-307,1.4705880337370517e-307,1.4492751667717133e-307,1.4285712387755354e-307,1.4084505199365444e-307,1.3888887098765662e-307,1.369862839744815e-307,1.3513511822498385e-307,1.3333331688889092e-307,1.315789313711931e-307,1.298701143025824e-307,1.2820511305062639e-307,1.2658226372376392e-307,1.2499998562500166e-307,1.2345677611644727e-307,1.219512058596089e-307,1.204819143997692e-307,1.1904760606576107e-307,1.1764704615917091e-307,1.162790574094118e-307,1.1494251667327381e-307,1.1363635185950535e-307,1.1235953906072583e-307,1.1111109987654435e-307,1.0989009891317582e-307,1.0869564144612582e-307,1.0752687123366967e-307,1.0638296846989687e-307,1.0526314786703696e-307,1.0416665685763982e-307,1.0309277390796135e-307,1.0204080693461145e-307,1.0101009181716236e-307,9.99999910000008e-308,9.90098921772383e-308,9.80392070549796e-308,9.708737018569211e-308,9.61538378698232e-308,9.52380871201821e-308,9.433961468494192e-308,9.345793612542645e-308,9.259258494513096e-308,9.174311176668692e-308,9.09090835537196e-308,9.009008287476723e-308,8.92857072066332e-308,8.84955682747284e-308,8.771929142813227e-308,8.69565150472595e-308,8.620688998216459e-308,8.547007901965131e-308,8.47457563774782e-308,8.403360722406654e-308,8.333332722222267e-308,8.264462209548572e-308,8.196720721580262e-308,8.130080721131643e-308,8.064515559313256e-308,7.999999440000039e-308,7.936507385991471e-308,7.87401520677045e-308,7.812499467773473e-308,7.751937461090114e-308,7.692307177514827e-308,7.633587279878828e-308,7.575757077594156e-308,7.518796502346123e-308,7.462686084874167e-308,7.407406932784666e-308,7.352940709342589e-308,7.299269613191993e-308,7.246376358958232e-308,7.194244158687466e-308,7.142856704081659e-308,7.092198149489489e-308,7.042253095615974e-308,6.993006573915619e-308,6.944444031635827e-308,6.896551317479215e-308,6.849314667855156e-308,6.802720693692466e-308,6.756756367786728e-308,6.711409012657109e-308,6.66666628888891e-308,6.622516183939321e-308,6.578947001385061e-308,6.535947350591673e-308,6.493506136785313e-308,6.451612551508864e-308,6.410256063445121e-308,6.369426409590671e-308,6.329113586764959e-308,6.289307843439754e-308,6.249999671875017e-308,6.211179800547835e-308,6.172839186861777e-308,6.134969010124597e-308,6.097560664782883e-308,6.060605753902679e-308,6.024096082885775e-308,5.988023653411753e-308,5.952380657596387e-308,5.917159472357425e-308,5.882352653979253e-308,5.847952932868247e-308,5.8139532084910895e-308,5.780346544488636e-308,5.747126163958263e-308,5.714285444897972e-308,5.681817915805798e-308,5.649717251428401e-308,5.61797726865296e-308,5.586591922536761e-308,5.555555302469147e-308,5.524861628460681e-308,5.494505247554653e-308,5.464480630356246e-308,5.434782367674869e-308,5.405405167275394e-308,5.376343850734199e-308,5.347593350396075e-308,5.319148706428258e-308,5.291005063967983e-308,5.26315767036012e-308,5.235601872481575e-308,5.208333114149315e-308,5.181346933608965e-308,5.154638961101083e-308,5.12820491650231e-308,5.102040607038743e-308,5.076141925068935e-308,5.050504845934097e-308,5.025125425873092e-308,4.999999800000008e-308,4.975124180342079e-308,4.950494853935896e-308,4.92610818097989e-308,4.901960593041145e-308,4.878048591314701e-308,4.854368744933553e-308,4.830917689327646e-308,4.807692124630185e-308,4.78468881412972e-308,4.761904582766447e-308,4.739336315671263e-308,4.716980956746179e-308,4.694835507284716e-308,4.672897024630978e-308,4.651162620876156e-308,4.629629461591227e-308,4.60829476459471e-308,4.58715579875432e-308,4.566209882821465e-308,4.545454384297526e-308,4.524886718330916e-308,4.504504346643947e-308,4.484304776488574e-308,4.464285559630107e-308,4.4444442913580294e-308,4.4247786095230696e-308,4.4052861935997253e-308,4.385964763773473e-308,4.366812080051873e-308,4.347825941398871e-308,4.3290041848915923e-308,4.3103446848989344e-308,4.2918453522813135e-308,4.2735041336109327e-308,4.255319010411956e-308,4.2372879984199983e-308,4.2194091468603725e-308,4.2016805377445134e-308,4.184100285184087e-308,4.1666665347222263e-308,4.149377462681432e-308,4.132231275527633e-308,4.115226209249949e-308,4.0983605287557154e-308,4.0816325272803035e-308,4.065040525811359e-308,4.0485828725270084e-308,4.0322579422476627e-308,4.0160641359010374e-308,3.9999998800000036e-308,3.984063626132922e-308,3.968253850466115e-308,3.9525690532581397e-308,3.9370077583855196e-308,3.921568512879665e-308,3.9062498864746127e-308,3.8910504711653495e-308,3.875968880776399e-308,3.8610037505403947e-308,3.846153736686394e-308,3.8314175160376417e-308,3.8167937856185565e-308,3.802281262270674e-308,3.787878682277321e-308,3.7735848009967993e-308,3.759398392503819e-308,3.745318249239016e-308,3.7313431816662976e-308,3.717472017937842e-308,3.703703603566532e-308,3.690036801105653e-308,3.676470489835643e-308,3.6630035654577437e-308,3.6496349397943447e-308,3.6363635404958697e-308,3.6231883107540456e-308,3.6101082090213636e-308,3.59712220873661e-308,3.584229298056297e-308,3.571428479591839e-308,3.5587187701523556e-308,3.546099200492935e-308,3.5335688150682393e-308,3.521126671791313e-308,3.5087718417974787e-308,3.4965034092131666e-308,3.4843204709295994e-308,3.472222136381175e-308,3.460207527328458e-308,3.4482757776456626e-308,3.4364260331125064e-308,3.424657451210361e-308,3.412969200922552e-308,3.4013604625387585e-308,3.389830427463375e-308,3.3783782980277595e-308,3.367003287306286e-308,3.355704618936086e-308,3.344481526940416e-308,3.333333255555557e-308,3.3222590590611603e-308,3.311258201613966e-308,3.3003299570848194e-308,3.2894736088988937e-308,3.278688449879066e-308,3.267973782092359e-308,3.257328916699383e-308,3.246753173806715e-308,3.2362458823221394e-308,3.2258063798126963e-308,3.2154340123654655e-308,3.20512813445102e-308,3.1948881087895166e-308,3.184713306219321e-308,3.1746031055681547e-308,3.1645568935266796e-308,3.1545740645244764e-308,3.144654020608363e-308,3.1347961713230038e-308,3.1249999335937517e-308,3.1152647316116895e-308,3.105589996720807e-308,3.09597516730727e-308,3.0864196886907497e-308,3.0769230130177532e-308,3.0674845991569136e-308,3.05810391259621e-308,3.0487804253420593e-308,3.0395136158202537e-308,3.0303029687786974e-308,3.0211479751919034e-308,3.0120481321672246e-308,3.0030029428527636e-308,2.9940119163469477e-308,2.985074567609714e-308,2.9761904173752843e-308,2.967358992066498e-308,2.9585798237106556e-308,2.9498524498568596e-308,2.941176413494811e-308,2.932551262975036e-308,2.923976551930509e-308,2.9154518391996545e-308,2.906976688750677e-308,2.898550669607226e-308,2.8901733557753363e-308,2.8818443261716323e-308,2.873563164552782e-308,2.8653294594461467e-308,2.857142804081634e-308,2.8490027963247064e-308,2.840909038610538e-308,2.8328611378792873e-308,2.8248587055124654e-308,2.8169013572703842e-308,2.808988713230654e-308,2.8011203977277198e-308,2.793296039293406e-308,2.78551527059846e-308,2.7777777283950624e-308,2.770083053460303e-308,2.762430890540583e-308,2.7548208882969444e-308,2.7472526992512987e-308,2.739725979733534e-308,2.7322403898294967e-308,2.72479559332982e-308,2.717391257679585e-308,2.710027053928806e-308,2.7027026566837113e-308,2.6954177440588204e-308,2.6881719976297843e-308,2.6809651023869945e-308,2.673796746689926e-308,2.666666622222223e-308,2.6595744239474886e-308,2.6525198500657855e-308,2.64550260197083e-308,2.6385223842078524e-308,2.631578904432134e-308,2.624671873368192e-308,2.617801004769607e-308,2.610966015379477e-308,2.6041666248914934e-308,2.597402555911622e-308,2.5906735339203745e-308,2.583979287235677e-308,2.5773195469763e-308,2.5706940470258596e-308,2.5641025239973706e-308,2.557544717198345e-308,2.551020368596419e-308,2.5445292227855154e-308,2.538071026952512e-308,2.5316455308444163e-308,2.525252486736048e-308,2.518891649398195e-308,2.5125627760662614e-308,2.5062656264093827e-308,2.4999999625000003e-308,2.493765548783901e-308,2.487562152050692e-308,2.4813895414047256e-308,2.475247488236448e-308,2.4691357661941785e-308,2.463054151156301e-308,2.4570024212038715e-308,2.450980356593618e-308,2.4449877397313507e-308,2.4390243551457474e-308,2.4330899894625304e-308,2.427184431379018e-308,2.421307471639044e-308,2.4154589030082384e-308,2.4096385202496743e-308,2.4038461200998527e-308,2.3980815012450474e-308,2.392344464297979e-308,2.386634811774825e-308,2.3809523480725625e-308,2.3752968794466297e-308,2.3696682139889045e-308,2.364066161606001e-308,2.3584905339978647e-308,2.3529411446366785e-308,2.3474178087460607e-308,2.341920343280554e-308,2.336448566905407e-308,2.3310022999766363e-308,2.325581364521363e-308,2.320185584218432e-308,2.3148147843792867e-308,2.309468791929127e-308,2.304147435388308e-308,2.29885054485401e-308,2.2935779519821567e-308,2.2883294899695763e-308,2.2831049935364153e-308,2.277904298908786e-308,2.272727243801653e-308,2.2675736674019574e-308,2.262443410351959e-308,2.257336314732814e-308,2.252252224048373e-308,2.247190983209191e-308,2.242152438516761e-308,2.2371364376479545e-308,2.2321428296396686e-308,2.2271714648736863e-308,2.2222221950617285e-308,2.217294873230712e-308,2.2123893537082004e-308,2.2075054921080465e-308,2.20264314531623e-308,2.197802171476875e-308,2.1929824299784554e-308,2.1881837814401794e-308,2.183406087698557e-308,2.1786492117941343e-308,2.1739130179584125e-308,2.169197371600925e-308,2.1645021392964905e-308,2.1598271887726303e-308,2.1551723888971465e-308,2.1505376096658576e-308,2.1459227221904993e-308,2.141327598686775e-308,2.1367521124625613e-308,2.132196137906265e-308,2.127659550475328e-308,2.123142226684878e-308,2.1186440440965234e-308,2.114164881307296e-308,2.109704617938721e-308,2.1052631346260394e-308,2.100840313007556e-308,2.096436035714129e-308,2.0920501863587826e-308,2.087682649526458e-308,2.0833333107638893e-308,2.079002056569604e-308,2.0746887743840495e-308,2.070393352579847e-308,2.0661156804521554e-308,2.061855648209162e-308,2.0576131469626923e-308,2.0533880687189304e-308,2.049180306369256e-308,2.044989753681191e-308,2.0408163052894633e-308,2.036659856687172e-308,2.0325203042170663e-308,2.0283975450629297e-308,2.0242914772410633e-308,2.020201999591878e-308,2.0161290117715925e-308,2.012072414244016e-308,2.0080321082724475e-308,2.0040079959116634e-308,1.99999998e-308,1.996007964151537e-308,1.992031852748369e-308,1.988071550932971e-308,1.984126964600655e-308,1.9801980003921183e-308,1.9762845656860755e-308,1.972386568591981e-308,1.968503917942836e-308,1.964636523288084e-308,1.9607842948865824e-308,1.956947143699664e-308,1.9531249813842776e-308,1.9493177202862044e-308,1.94552527343336e-308,1.9417475545291734e-308,1.937984477946037e-308,1.9342359587188397e-308,1.9305019125385727e-308,1.926782255746006e-308,1.9230769053254444e-308,1.9193857788985455e-308,1.9157087947182226e-308,1.9120458716626025e-308,1.9083969292290657e-308,1.904761887528345e-308,1.9011406672786947e-308,1.897533189800129e-308,1.8939393770087234e-308,1.89035915141098e-308,1.8867924360982555e-308,1.883239154741259e-308,1.879699231584601e-308,1.8761725914414146e-308,1.8726591596880305e-308,1.869158862258713e-308,1.8656716256404547e-308,1.8621973768678325e-308,1.858736043517917e-308,1.8552875537052403e-308,1.8518518360768176e-308,1.8484288198072306e-308,1.8450184345937555e-308,1.8416206106515535e-308,1.8382352787089103e-308,1.8348623700025257e-308,1.83150181627286e-308,1.8281535497595326e-308,1.824817503196761e-308,1.8214936098088596e-308,1.8181818033057855e-308,1.814882017878729e-308,1.811594188195757e-308,1.8083182493974995e-308,1.8050541370928855e-308,1.8018017873549223e-308,1.798561136716526e-308,1.795332122166389e-308,1.7921146811448983e-308,1.788908751540094e-308,1.7857142716836736e-308,1.7825311803470376e-308,1.7793594167373767e-308,1.7761989204938026e-308,1.773049631683517e-308,1.7699114907980264e-308,1.766784438749391e-308,1.763668416866518e-308,1.76056336689149e-308,1.757469230975936e-308,1.7543859516774394e-308,1.7513134719559815e-308,1.748251735170424e-308,1.7452006850750317e-308,1.742160265816023e-308,1.7391304219281663e-308,1.7361110983314046e-308,1.7331022403275174e-308,1.7301037935968195e-308,1.7271157041948926e-308,1.7241379185493464e-308,1.7211703834566198e-308,1.7182130460788136e-308,1.715265853940551e-308,1.7123287549258777e-308,1.7094016972751845e-308,1.7064846295821734e-308,1.703577500790843e-308,1.7006802601925123e-308,1.6977928574228713e-308,1.6949152424590637e-308,1.6920473656167957e-308,1.68918917754748e-308,1.6863406292354024e-308,1.683501671994921e-308,1.680672257467693e-308,1.6778523376199274e-308,1.675041864739667e-308,1.6722407914341e-308,1.6694490706268935e-308,1.6666666555555557e-308,1.663893499768827e-308,1.6611295571240936e-308,1.6583747817848293e-308,1.655629128218061e-308,1.652892551191859e-308,1.6501650057728546e-308,1.6474464473237816e-308,1.6447368315010387e-308,1.6420361142522804e-308,1.6393442518140285e-308,1.636661200709309e-308,1.6339869177453117e-308,1.6313213600110707e-308,1.628664484875171e-308,1.6260162499834754e-308,1.6233766132568733e-308,1.6207455328890513e-308,1.6181229673442886e-308,1.6155088753552687e-308,1.6129032159209157e-308,1.6103059483042517e-308,1.607717032030273e-308,1.605136426883845e-308,1.6025640929076266e-308,1.5999999904e-308,1.5974440799130337e-308,1.594896322250457e-308,1.592356678465658e-308,1.589825109859696e-308,1.58730157797934e-308,1.584786044615118e-308,1.582278471799391e-308,1.579778821804442e-308,1.5772870571405825e-308,1.574803140554281e-308,1.5723270350263043e-308,1.5698587037698787e-308,1.5673981102288694e-308,1.5649452180759743e-308,1.5624999912109376e-308,1.5600623937587773e-308,1.557632390068031e-308,1.555209944709021e-308,1.552795022472127e-308,1.5503875883660837e-308,1.547987607616291e-308,1.545595045663137e-308,1.5432098681603417e-308,1.540832040973312e-308,1.5384615301775146e-308,1.536098302056862e-308,1.5337423231021114e-308,1.531393560009287e-308,1.529051979678104e-308,1.526717549210419e-308,1.524390235908685e-308,1.522070007274429e-308,1.519756831006735e-308,1.5174506750007486e-308,1.515151507346189e-308,1.51285929632588e-308,1.5105740104142895e-308,1.508295618276084e-308,1.506024088764697e-308,1.5037593909209117e-308,1.501501493971449e-308,1.499250367327581e-308,1.4970059805837426e-308,1.494768303516169e-308,1.492537306081533e-308,1.4903129584156037e-308,1.488095230831916e-308,1.4858840938204445e-308,1.483679518046298e-308,1.4814814743484225e-308,1.4792899337383146e-308,1.4771048673987462e-308,1.4749262466825036e-308,1.4727540431111335e-308,1.4705882283737026e-308,1.4684287743255686e-308,1.4662756529871603e-308,1.4641288365427694e-308,1.461988297339352e-308,1.459854007885343e-308,1.457725940849476e-308,1.45560406905962e-308,1.4534883655016226e-308,1.4513788033181596e-308,1.4492753558076036e-308,1.447177996422894e-308,1.4450866987704233e-308,1.4430014366089257e-308,1.4409221838483834e-308,1.4388489145489366e-308,1.436781602919804e-308,1.4347202233182174e-308,1.4326647502483557e-308,1.430615158360298e-308,1.4285714224489795e-308,1.4265335174531595e-308,1.424501418454396e-308,1.4224751006760295e-308,1.42045453948218e-308,1.418439710376742e-308,1.4164305890023993e-308,1.4144271511396443e-308,1.4124293727057997e-308,1.4104372297540584e-308,1.408450698472525e-308,1.406469755183266e-308,1.4044943763413714e-308,1.402524538534018e-308,1.4005602184795486e-308,1.398601393026554e-308,1.3966480391529606e-308,1.3947001339651305e-308,1.3927576546969686e-308,1.3908205787090323e-308,1.388888883487654e-308,1.38696254664407e-308,1.385041545913552e-308,1.383125859154552e-308,1.381215464347853e-308,1.3793103395957193e-308,1.377410463121068e-308,1.3755158132666324e-308,1.3736263684941433e-308,1.37174210738351e-308,1.369863008632014e-308,1.367989051053501e-308,1.3661202135775927e-308,1.364256475248888e-308,1.3623978152261876e-308,1.360544212781711e-308,1.3586956473003307e-308,1.356852098278805e-308,1.35501354532502e-308,1.35317996815724e-308,1.35135134660336e-308,1.3495276606001664e-308,1.3477088901926025e-308,1.3458950155330414e-308,1.344086016880564e-308,1.3422818746002433e-308,1.340482569162432e-308,1.3386880811420604e-308,1.336898391217936e-308,1.3351134801720495e-308,1.333333328888889e-308,1.3315579183547547e-308,1.3297872296570847e-308,1.3280212439837815e-308,1.326259942622547e-308,1.324503306960221e-308,1.322751318482125e-308,1.321003958771414e-308,1.319261209508427e-308,1.3175230524700517e-308,1.315789469529086e-308,1.314060442653608e-308,1.3123359539063526e-308,1.3106159854440894e-308,1.308900519517009e-308,1.3071895384681107e-308,1.3054830247325977e-308,1.3037809608372757e-308,1.3020833293999567e-308,1.3003901131288672e-308,1.298701294822061e-308,1.297016857366837e-308,1.295336783739161e-308,1.293661057003091e-308,1.291989660310211e-308,1.290322576899064e-308,1.2886597900945903e-308,1.287001283307577e-308,1.2853470400341e-308,1.28369704385498e-308,1.28205127843524e-308,1.2804097275235627e-308,1.27877237495176e-308,1.2771392046342373e-308,1.275510200567472e-308,1.273885346829486e-308,1.27226462757933e-308,1.2706480270565687e-308,1.2690355295807676e-308,1.267427119550987e-308,1.265822781445281e-308,1.2642224998201957e-308,1.2626262593102743e-308,1.2610340446275657e-308,1.2594458405611356e-308,1.257861631976583e-308,1.25628140381556e-308,1.254705141095293e-308,1.25313282890811e-308,1.2515644524209706e-308,1.249999996875e-308,1.2484394475850257e-308,1.2468827899391173e-308,1.245330009398132e-308,1.24378109149526e-308,1.242236021835577e-308,1.240694786095598e-308,1.239157370022833e-308,1.2376237594353497e-308,1.2360939402213354e-308,1.234567898338668e-308,1.2330456198144805e-308,1.23152709074474e-308,1.230012297293822e-308,1.228501225694088e-308,1.226993862245474e-308,1.225490193315071e-308,1.2239902053367173e-308,1.222493884810588e-308,1.221001218302793e-308,1.219512192444973e-308,1.2180267939339e-308,1.2165450095310826e-308,1.2150668260623713e-308,1.21359223041757e-308,1.212121209550046e-308,1.210653750476347e-308,1.209189840275818e-308,1.207729466090224e-308,1.2062726151233703e-308,1.2048192746407316e-308,1.2033694319690804e-308,1.201923074496117e-308,1.200480189670106e-308,1.1990407649995113e-308,1.197604788052637e-308,1.19617224645727e-308,1.194743127900321e-308,1.193317420127477e-308,1.1918951109428474e-308,1.190476188208617e-308,1.189060639844701e-308,1.187648453828403e-308,1.1862396181940735e-308,1.1848341210327713e-308,1.1834319504919295e-308,1.1820330947750225e-308,1.180637542141233e-308,1.1792452809051266e-308,1.1778562994363218e-308,1.1764705861591694e-308,1.1750881295524306e-308,1.1737089181489565e-308,1.1723329405353696e-308,1.1709601853517545e-308,1.169590641291337e-308,1.1682242971001833e-308,1.166861141576883e-308,1.1655011635722475e-308,1.1641443519890067e-308,1.1627906957815033e-308,1.1614401839553985e-308,1.1600928055673687e-308,1.158748549724814e-308,1.1574074055855624e-308,1.1560693623575796e-308,1.154734409298679e-308,1.1534025357162336e-308,1.1520737309668925e-308,1.1507479844562947e-308,1.14942528563879e-308,1.148105624017157e-308,1.146788989142328e-308,1.1454753706131115e-308,1.144164758075918e-308,1.14285714122449e-308,1.141552509799629e-308,1.1402508535889297e-308,1.1389521624265126e-308,1.1376564261927593e-308,1.1363636348140497e-308,1.1350737782624998e-308,1.133786846555705e-308,1.13250282975648e-308,1.131221717972605e-308,1.1299435013565707e-308,1.1286681701053253e-308,1.127395714460026e-308,1.1261261247057867e-308,1.1248593911714356e-308,1.123595504229264e-308,1.1223344542947874e-308,1.1210762318264993e-308,1.1198208273256344e-308,1.118568231335926e-308,1.1173184344433695e-308,1.1160714272759884e-308,1.1148272005035985e-308,1.1135857448375754e-308,1.1123470510306224e-308,1.1111111098765435e-308,1.109877912210012e-308,1.1086474489063477e-308,1.107419710881288e-308,1.106194689090767e-308,1.104972374530692e-308,1.1037527582367246e-308,1.102535831284059e-308,1.1013215847872073e-308,1.1001100098997797e-308,1.098901097814274e-308,1.097694839761857e-308,1.096491227012158e-308,1.095290250873053e-308,1.0940919026904604e-308,1.092896173848129e-308,1.091703055767434e-308,1.0905125399071695e-308,1.089324617763348e-308,1.088139280868996e-308,1.0869565207939504e-308,1.085776329144665e-308,1.0845986975640054e-308,1.083423617731055e-308,1.082251081360919e-308,1.0810810802045287e-308,1.079913606048449e-308,1.0787486507146854e-308,1.0775862060604934e-308,1.076426263978189e-308,1.075268816394959e-308,1.074113855272676e-308,1.0729613726077104e-308,1.071811360430746e-308,1.0706638108065973e-308,1.0695187158340245e-308,1.068376067645555e-308,1.0672358584073014e-308,1.066098080318784e-308,1.0649627256127507e-308,1.0638297865550025e-308,1.062699255444216e-308,1.0615711246117716e-308,1.060445386421576e-308,1.0593220332698934e-308,1.058201057585174e-308,1.0570824518278813e-308,1.0559662084903253e-308,1.0548523200964946e-308,1.0537407792018885e-308,1.052631578393352e-308,1.051524710288909e-308,1.050420167537603e-308,1.049317942819329e-308,1.048218028844675e-308,1.04712041835476e-308,1.0460251041210765e-308,1.044932078945328e-308,1.0438413356592764e-308,1.0427528671245792e-308,1.041666666232639e-308,1.040582725904446e-308,1.039501039090426e-308,1.0384215987702845e-308,1.037344397952859e-308,1.0362694296759646e-308,1.035196687006246e-308,1.0341261630390263e-308,1.0330578508981624e-308,1.0319917437358955e-308,1.0309278347327025e-308,1.029866117097156e-308,1.0288065840657758e-308,1.0277492289028855e-308,1.0266940449004716e-308,1.0256410253780407e-308,1.024590163682478e-308,1.023541453187907e-308,1.0224948872955533e-308,1.021450459433601e-308,1.0204081630570596e-308,1.019367991647625e-308,1.018329938713545e-308,1.0172939977894814e-308,1.0162601624363804e-308,1.015228426241336e-308,1.014198782817457e-308,1.013171225803736e-308,1.012145748864922e-308,1.0111223456913815e-308,1.01010100999898e-308,1.0090817355289433e-308,1.0080645160477367e-308,1.007049345346935e-308,1.0060362172430965e-308,1.0050251255776373e-308,1.004016064216706e-308,1.003009027051063e-308,1.0020040079959516e-308,1.001001000990981e-308,1.0e-308],"x":[1.0e300,1.0000099899999999e305,2.00000998e305,3.00000997e305,4.00000996e305,5.0000099500000004e305,6.00000994e305,7.0000099299999996e305,8.00000992e305,9.00000991e305,1.0000009900000001e306,1.100000989e306,1.2000009880000001e306,1.300000987e306,1.4000009859999999e306,1.5000009850000003e306,1.6000009840000002e306,1.7000009829999998e306,1.800000982e306,1.900000981e306,2.00000098e306,2.100000979e306,2.200000978e306,2.300000977e306,2.4000009760000002e306,2.500000975e306,2.600000974e306,2.7000009730000002e306,2.800000972e306,2.900000971e306,3.00000097e306,3.100000969e306,3.200000968e306,3.3000009670000004e306,3.4000009659999996e306,3.500000965e306,3.600000964e306,3.700000963e306,3.800000962e306,3.9000009610000005e306,4.00000096e306,4.1000009589999997e306,4.200000958e306,4.3000009569999995e306,4.400000956e306,4.500000955e306,4.600000954e306,4.700000953e306,4.8000009520000003e306,4.9000009509999996e306,5.00000095e306,5.100000949e306,5.200000948e306,5.300000947e306,5.4000009460000005e306,5.500000945e306,5.600000944e306,5.700000943e306,5.800000942e306,5.900000941000001e306,6.00000094e306,6.100000938999999e306,6.200000938e306,6.300000937e306,6.400000936000001e306,6.500000934999999e306,6.600000934e306,6.700000933000001e306,6.800000932e306,6.900000930999999e306,7.00000093e306,7.100000929000001e306,7.200000928e306,7.300000927e306,7.400000926e306,7.500000925e306,7.600000924e306,7.700000922999999e306,7.800000922e306,7.900000921000001e306,8.00000092e306,8.100000918999999e306,8.200000918e306,8.300000917000001e306,8.400000915999999e306,8.500000915e306,8.600000914e306,8.700000913000001e306,8.800000912e306,8.900000911e306,9.00000091e306,9.100000909e306,9.200000908e306,9.300000906999999e306,9.400000906000001e306,9.500000905e306,9.600000904e306,9.700000903e306,9.800000902e306,9.900000901e306,1.00000009e307,1.0100000899e307,1.0200000898e307,1.0300000897000001e307,1.0400000896e307,1.0500000894999999e307,1.0600000894e307,1.0700000893e307,1.0800000892e307,1.0900000891e307,1.100000089e307,1.1100000889e307,1.1200000888e307,1.1300000887e307,1.1400000886e307,1.1500000885e307,1.1600000884e307,1.1700000882999998e307,1.1800000882000001e307,1.1900000881000002e307,1.200000088e307,1.2100000879e307,1.2200000878e307,1.2300000877e307,1.2400000876e307,1.2500000875e307,1.2600000874e307,1.2700000873e307,1.2800000872000002e307,1.2900000871e307,1.300000087e307,1.3100000869e307,1.3200000868e307,1.3300000867e307,1.3400000866000002e307,1.3500000865e307,1.3600000864e307,1.3700000863000002e307,1.3800000861999997e307,1.3900000861e307,1.400000086e307,1.4100000859e307,1.4200000858000002e307,1.4300000857000002e307,1.4400000856e307,1.4500000855e307,1.4600000854e307,1.4700000853e307,1.4800000852e307,1.4900000851e307,1.500000085e307,1.5100000849000002e307,1.5200000848000002e307,1.5300000846999998e307,1.5400000845999998e307,1.5500000845000001e307,1.5600000844e307,1.5700000843e307,1.5800000842000003e307,1.5900000841e307,1.6000000840000002e307,1.6100000839e307,1.6200000837999998e307,1.6300000837e307,1.6400000836e307,1.6500000835e307,1.6600000834000002e307,1.6700000833000003e307,1.6800000832e307,1.6900000831e307,1.700000083e307,1.7100000829e307,1.7200000828e307,1.7300000827e307,1.7400000826000002e307,1.7500000825000002e307,1.7600000824e307,1.7700000822999998e307,1.7800000822e307,1.7900000821000002e307,1.800000082e307,1.8100000819e307,1.8200000818000003e307,1.8300000817000002e307,1.8400000816e307,1.8500000815e307,1.8600000813999998e307,1.8700000813e307,1.8800000812000002e307,1.8900000811e307,1.9000000810000003e307,1.9100000809e307,1.9200000808e307,1.9300000807e307,1.9400000806e307,1.9500000805e307,1.9600000804e307,1.9700000803000002e307,1.9800000802000002e307,1.9900000801e307,2.00000008e307,2.0100000799e307,2.0200000798e307,2.0300000797000002e307,2.0400000796e307,2.0500000795e307,2.0600000794000001e307,2.0700000793e307,2.0800000792e307,2.0900000791e307,2.1000000789999999e307,2.1100000789000002e307,2.1200000788000002e307,2.1300000787e307,2.1400000786e307,2.1500000785000001e307,2.1600000784e307,2.1700000783e307,2.1800000782e307,2.1900000781e307,2.2000000780000002e307,2.2100000779e307,2.2200000778e307,2.2300000777e307,2.2400000776e307,2.2500000775e307,2.2600000773999997e307,2.2700000773000003e307,2.2800000772000003e307,2.2900000771e307,2.300000077e307,2.3100000769e307,2.3200000768e307,2.3300000767e307,2.3400000766e307,2.3500000764999997e307,2.3600000764000003e307,2.3700000763e307,2.3800000762000004e307,2.3900000761e307,2.400000076e307,2.4100000759e307,2.4200000757999996e307,2.4300000757e307,2.4400000755999997e307,2.4500000755000003e307,2.4600000754000003e307,2.4700000753e307,2.4800000752e307,2.4900000751e307,2.500000075e307,2.5100000749e307,2.5200000748000006e307,2.5300000746999997e307,2.5400000746e307,2.5500000745e307,2.5600000744e307,2.5700000743000004e307,2.5800000742e307,2.5900000741e307,2.6000000739999996e307,2.6100000739e307,2.6200000738e307,2.6300000736999997e307,2.6400000736000003e307,2.6500000735e307,2.6600000734e307,2.6700000733e307,2.6800000732000005e307,2.6900000731e307,2.700000073e307,2.7100000728999997e307,2.7200000727999997e307,2.7300000727000003e307,2.7400000726e307,2.7500000725000004e307,2.7600000724e307,2.7700000723e307,2.7800000722e307,2.7900000720999996e307,2.800000072e307,2.8100000719e307,2.8200000718000003e307,2.8300000717e307,2.8400000716000004e307,2.8500000715e307,2.8600000714e307,2.8700000713e307,2.8800000712e307,2.8900000711e307,2.9000000709999997e307,2.9100000709e307,2.9200000708e307,2.9300000707e307,2.9400000706000004e307,2.9500000704999995e307,2.9600000704e307,2.9700000703e307,2.9800000702e307,2.9900000701e307,3.00000007e307,3.0100000699e307,3.0200000698e307,3.0300000697e307,3.0400000696e307,3.0500000695000005e307,3.0600000694e307,3.0700000693e307,3.0800000691999997e307,3.0900000690999997e307,3.1000000690000003e307,3.1100000689e307,3.1200000688000004e307,3.1300000687e307,3.1400000686e307,3.1500000685e307,3.1600000684e307,3.1700000683e307,3.1800000682e307,3.1900000681e307,3.200000068e307,3.2100000679000004e307,3.2200000678e307,3.2300000677e307,3.2400000676e307,3.2500000674999996e307,3.2600000674e307,3.2700000672999997e307,3.2800000672e307,3.2900000671000003e307,3.300000067e307,3.3100000669e307,3.3200000668e307,3.3300000667e307,3.3400000666e307,3.3500000665e307,3.3600000664e307,3.3700000663e307,3.3800000662e307,3.3900000661e307,3.400000066e307,3.4100000659e307,3.4200000658000005e307,3.4300000656999996e307,3.4400000656e307,3.4500000655e307,3.4600000653999997e307,3.4700000653000003e307,3.4800000652000003e307,3.4900000651e307,3.500000065e307,3.5100000649e307,3.5200000648e307,3.5300000647e307,3.5400000646e307,3.5500000644999997e307,3.5600000644e307,3.5700000643e307,3.5800000642000004e307,3.5900000641e307,3.6000000640000005e307,3.6100000639e307,3.6200000637999996e307,3.6300000637e307,3.6400000636e307,3.6500000635e307,3.6600000634000003e307,3.6700000633e307,3.6800000632e307,3.6900000631e307,3.700000063e307,3.7100000629e307,3.7200000628e307,3.7300000626999997e307,3.7400000626e307,3.7500000625e307,3.7600000624e307,3.7700000623000004e307,3.7800000622e307,3.7900000621e307,3.800000062e307,3.8100000619e307,3.8200000618e307,3.8300000616999997e307,3.8400000616000003e307,3.8500000615e307,3.8600000614e307,3.8700000613e307,3.8800000612e307,3.8900000611e307,3.9000000610000006e307,3.9100000608999997e307,3.9200000607999997e307,3.9300000607000003e307,3.9400000606e307,3.9500000605000004e307,3.9600000604000004e307,3.9700000603e307,3.9800000602e307,3.9900000600999996e307,4.00000006e307,4.0100000599e307,4.0200000598000003e307,4.0300000597e307,4.0400000596e307,4.0500000595e307,4.0600000594e307,4.0700000593e307,4.0800000592e307,4.0900000591e307,4.1000000589999997e307,4.1100000589e307,4.1200000588000003e307,4.1300000587e307,4.1400000586000004e307,4.1500000584999995e307,4.1600000584e307,4.1700000583e307,4.1800000582e307,4.1900000581e307,4.200000058e307,4.2100000579e307,4.2200000578e307,4.2300000577e307,4.2400000576e307,4.2500000575000005e307,4.2600000574e307,4.2700000573e307,4.2800000572e307,4.2900000570999997e307,4.3000000570000003e307,4.3100000569e307,4.3200000568000004e307,4.3300000567e307,4.3400000566e307,4.3500000565e307,4.3600000563999996e307,4.3700000563e307,4.3800000562e307,4.3900000561e307,4.400000056e307,4.4100000559000004e307,4.4200000558e307,4.4300000557e307,4.4400000556000005e307,4.4500000554999996e307,4.4600000554e307,4.4700000552999997e307,4.4800000552e307,4.4900000551000003e307,4.500000055e307,4.5100000549e307,4.520000054799999e307,4.5300000547e307,4.5400000546e307,4.5500000545e307,4.5600000544e307,4.5700000543e307,4.5800000542e307,4.5900000541e307,4.600000054e307,4.610000053899999e307,4.620000053799999e307,4.630000053700001e307,4.6400000536e307,4.6500000535e307,4.6600000534e307,4.6700000533e307,4.6800000532e307,4.690000053100001e307,4.700000053e307,4.7100000529e307,4.720000052800002e307,4.7300000527e307,4.7400000526e307,4.750000052499999e307,4.7600000524e307,4.7700000523e307,4.7800000522e307,4.7900000521e307,4.800000052e307,4.8100000519e307,4.820000051800001e307,4.830000051700001e307,4.840000051599999e307,4.8500000515e307,4.8600000514e307,4.8700000513e307,4.880000051199999e307,4.8900000511e307,4.900000051e307,4.9100000509e307,4.920000050800001e307,4.9300000507e307,4.9400000506e307,4.950000050500001e307,4.9600000504e307,4.970000050299999e307,4.9800000502e307,4.9900000501e307,5.00000005e307,5.010000049900001e307,5.0200000498e307,5.0300000497e307,5.0400000496e307,5.050000049500001e307,5.0600000494e307,5.0700000493e307,5.080000049199999e307,5.0900000491e307,5.100000049e307,5.1100000489e307,5.1200000488e307,5.130000048699999e307,5.140000048600001e307,5.1500000485e307,5.1600000484e307,5.1700000483e307,5.180000048200001e307,5.190000048100001e307,5.200000047999999e307,5.2100000479e307,5.220000047799999e307,5.2300000477e307,5.2400000476e307,5.2500000475e307,5.260000047399999e307,5.2700000473e307,5.280000047200001e307,5.2900000471e307,5.300000047000001e307,5.3100000469e307,5.3200000468e307,5.3300000467e307,5.3400000466e307,5.350000046499999e307,5.3600000464e307,5.370000046300001e307,5.3800000462e307,5.3900000461e307,5.400000046e307,5.4100000459e307,5.4200000458e307,5.430000045700001e307,5.440000045599999e307,5.450000045499999e307,5.460000045400001e307,5.4700000453e307,5.4800000452e307,5.4900000451e307,5.500000045e307,5.5100000449e307,5.5200000448e307,5.5300000447e307,5.5400000446e307,5.550000044500001e307,5.5600000444e307,5.5700000443e307,5.580000044199999e307,5.5900000441e307,5.600000044e307,5.6100000439e307,5.6200000438e307,5.6300000437e307,5.6400000436e307,5.650000043500001e307,5.660000043400001e307,5.6700000433e307,5.6800000432e307,5.6900000431e307,5.700000043e307,5.710000042899999e307,5.7200000428e307,5.7300000427e307,5.7400000426e307,5.750000042500001e307,5.7600000424e307,5.7700000423e307,5.780000042200001e307,5.790000042100001e307,5.800000041999999e307,5.8100000419e307,5.820000041799999e307,5.8300000417e307,5.8400000416e307,5.8500000415e307,5.8600000414e307,5.870000041299999e307,5.880000041200001e307,5.8900000411e307,5.900000041e307,5.9100000409e307,5.9200000408e307,5.9300000407e307,5.9400000406e307,5.9500000405e307,5.960000040399999e307,5.970000040300001e307,5.9800000402e307,5.9900000401e307,6.00000004e307,6.0100000399e307,6.020000039800001e307,6.0300000397e307,6.0400000396e307,6.050000039499999e307,6.0600000394e307,6.0700000393e307,6.0800000392e307,6.090000039099999e307,6.100000039e307,6.110000038900001e307,6.1200000388e307,6.130000038700001e307,6.1400000386e307,6.150000038500001e307,6.160000038399999e307,6.1700000383e307,6.180000038199999e307,6.190000038099999e307,6.200000038000001e307,6.2100000379e307,6.2200000378e307,6.2300000377e307,6.2400000376e307,6.2500000375e307,6.260000037400001e307,6.2700000373e307,6.280000037199999e307,6.290000037100001e307,6.300000037e307,6.3100000369e307,6.3200000368e307,6.3300000367e307,6.3400000366e307,6.3500000365e307,6.3600000364e307,6.3700000363e307,6.380000036200001e307,6.390000036100001e307,6.400000036e307,6.410000035899999e307,6.4200000358e307,6.4300000357e307,6.4400000356e307,6.4500000355e307,6.4600000354e307,6.4700000353e307,6.4800000352e307,6.490000035100001e307,6.500000035e307,6.5100000349e307,6.520000034800001e307,6.5300000347e307,6.540000034599999e307,6.5500000345e307,6.560000034399999e307,6.5700000343e307,6.580000034200001e307,6.5900000341e307,6.600000034e307,6.610000033900001e307,6.620000033800001e307,6.6300000337e307,6.6400000336e307,6.650000033499999e307,6.6600000334e307,6.6700000333e307,6.6800000332e307,6.6900000331e307,6.700000032999999e307,6.710000032900001e307,6.7200000328e307,6.7300000327e307,6.7400000326e307,6.750000032500001e307,6.7600000324e307,6.7700000323e307,6.7800000322e307,6.790000032099999e307,6.800000032e307,6.8100000319e307,6.8200000318e307,6.830000031699999e307,6.8400000316e307,6.850000031500001e307,6.8600000314e307,6.870000031300001e307,6.880000031199999e307,6.8900000311e307,6.900000031e307,6.9100000309e307,6.920000030799999e307,6.9300000307e307,6.940000030600001e307,6.9500000305e307,6.960000030400001e307,6.9700000303e307,6.980000030200001e307,6.9900000301e307,7.00000003e307,7.010000029899999e307,7.020000029799999e307,7.030000029700001e307,7.0400000296e307,7.0500000295e307,7.0600000294e307,7.0700000293e307,7.0800000292e307,7.090000029100001e307,7.100000029e307,7.1100000289e307,7.1200000288e307,7.1300000287e307,7.1400000286e307,7.150000028499999e307,7.1600000284e307,7.1700000283e307,7.1800000282e307,7.1900000281e307,7.200000028e307,7.210000027900001e307,7.220000027800001e307,7.230000027700001e307,7.240000027599999e307,7.2500000275e307,7.2600000274e307,7.2700000273e307,7.2800000272e307,7.2900000271e307,7.300000027e307,7.3100000269e307,7.320000026800001e307,7.3300000267e307,7.3400000266e307,7.350000026500001e307,7.3600000264e307,7.370000026299999e307,7.3800000262e307,7.390000026099999e307,7.400000026e307,7.410000025900001e307,7.4200000258e307,7.4300000257e307,7.4400000256e307,7.450000025500001e307,7.4600000254e307,7.4700000253e307,7.480000025199999e307,7.4900000251e307,7.500000025e307,7.5100000249e307,7.5200000248e307,7.530000024699999e307,7.540000024600001e307,7.5500000245e307,7.5600000244e307,7.5700000243e307,7.580000024200001e307,7.590000024100001e307,7.600000024000001e307,7.6100000239e307,7.620000023799999e307,7.6300000237e307,7.6400000236e307,7.6500000235e307,7.660000023399999e307,7.6700000233e307,7.680000023200001e307,7.6900000231e307,7.700000023000001e307,7.7100000229e307,7.7200000228e307,7.7300000227e307,7.7400000226e307,7.750000022499999e307,7.760000022399999e307,7.770000022300001e307,7.7800000222e307,7.7900000221e307,7.800000022e307,7.810000021900001e307,7.8200000218e307,7.830000021700001e307,7.840000021599999e307,7.850000021499999e307,7.860000021400001e307,7.8700000213e307,7.8800000212e307,7.8900000211e307,7.900000021e307,7.9100000209e307,7.920000020800001e307,7.9300000207e307,7.9400000206e307,7.950000020500001e307,7.960000020400001e307,7.9700000203e307,7.980000020199999e307,7.9900000201e307,8.00000002e307,8.0100000199e307,8.0200000198e307,8.0300000197e307,8.040000019600001e307,8.050000019500001e307,8.060000019400001e307,8.0700000193e307,8.080000019199999e307,8.0900000191e307,8.100000019e307,8.110000018899999e307,8.1200000188e307,8.130000018699999e307,8.1400000186e307,8.150000018500001e307,8.1600000184e307,8.1700000183e307,8.180000018200001e307,8.190000018100001e307,8.200000017999999e307,8.2100000179e307,8.220000017799999e307,8.2300000177e307,8.240000017600001e307,8.2500000175e307,8.2600000174e307,8.270000017299999e307,8.280000017200001e307,8.2900000171e307,8.300000017e307,8.3100000169e307,8.320000016800001e307,8.3300000167e307,8.3400000166e307,8.3500000165e307,8.360000016399999e307,8.370000016300001e307,8.3800000162e307,8.3900000161e307,8.400000015999999e307,8.410000015900001e307,8.420000015800001e307,8.4300000157e307,8.4400000156e307,8.450000015499999e307,8.4600000154e307,8.4700000153e307,8.4800000152e307,8.490000015099999e307,8.500000015e307,8.510000014900001e307,8.5200000148e307,8.530000014700001e307,8.5400000146e307,8.550000014500001e307,8.560000014400001e307,8.5700000143e307,8.580000014199999e307,8.590000014099999e307,8.600000014000001e307,8.6100000139e307,8.6200000138e307,8.6300000137e307,8.640000013600001e307,8.6500000135e307,8.660000013400001e307,8.6700000133e307,8.680000013199999e307,8.690000013100001e307,8.700000013e307,8.7100000129e307,8.720000012799999e307,8.7300000127e307,8.7400000126e307,8.7500000125e307,8.7600000124e307,8.7700000123e307,8.780000012200001e307,8.790000012100001e307,8.800000012e307,8.810000011899999e307,8.8200000118e307,8.8300000117e307,8.8400000116e307,8.8500000115e307,8.8600000114e307,8.8700000113e307,8.880000011200001e307,8.890000011100001e307,8.900000011e307,8.9100000109e307,8.920000010800001e307,8.9300000107e307,8.940000010599999e307,8.9500000105e307,8.960000010399999e307,8.9700000103e307,8.980000010200001e307,8.9900000101e307,9.000000009999999e307,9.0100000099e307,9.0200000098e307,9.0300000097e307,9.040000009599999e307,9.0500000095e307,9.0600000094e307,9.0700000093e307,9.080000009200001e307,9.0900000091e307,9.100000008999998e307,9.1100000089e307,9.1200000088e307,9.130000008699999e307,9.1400000086e307,9.1500000085e307,9.1600000084e307,9.170000008300001e307,9.1800000082e307,9.1900000081e307,9.200000008000002e307,9.2100000079e307,9.2200000078e307,9.2300000077e307,9.2400000076e307,9.250000007500002e307,9.260000007400001e307,9.2700000073e307,9.2800000072e307,9.2900000071e307,9.300000007e307,9.3100000069e307,9.320000006800002e307,9.330000006700002e307,9.340000006600002e307,9.3500000065e307,9.360000006399999e307,9.370000006299998e307,9.3800000062e307,9.3900000061e307,9.400000005999999e307,9.4100000059e307,9.4200000058e307,9.4300000057e307,9.440000005600001e307,9.4500000055e307,9.4600000054e307,9.4700000053e307,9.4800000052e307,9.490000005099999e307,9.500000005e307,9.510000004900002e307,9.520000004800002e307,9.530000004700001e307,9.5400000046e307,9.5500000045e307,9.5600000044e307,9.570000004300001e307,9.580000004199999e307,9.5900000041e307,9.600000004e307,9.6100000039e307,9.6200000038e307,9.630000003699999e307,9.6400000036e307,9.6500000035e307,9.6600000034e307,9.670000003299999e307,9.6800000032e307,9.6900000031e307,9.700000003000001e307,9.710000002900001e307,9.7200000028e307,9.7300000027e307,9.7400000026e307,9.7500000025e307,9.760000002399999e307,9.770000002300002e307,9.780000002200002e307,9.790000002100001e307,9.800000002000001e307,9.8100000019e307,9.820000001799998e307,9.8300000017e307,9.8400000016e307,9.850000001499999e307,9.860000001399998e307,9.8700000013e307,9.8800000012e307,9.890000001100001e307,9.900000001e307,9.9100000009e307,9.9200000008e307,9.9300000007e307,9.940000000599999e307,9.950000000499998e307,9.960000000400002e307,9.970000000300001e307,9.980000000200001e307,9.9900000001e307,1.0e308]} \ No newline at end of file diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/large_positive.json b/lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/large_positive.json new file mode 100644 index 000000000000..e4748da3066f --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/large_positive.json @@ -0,0 +1 @@ +{"expected":[0.34657359027997264,0.3404264757259972,0.33450154081529215,0.3287865593824429,0.3232702116857284,0.3179419999131196,0.312792173155566,0.3078116606124082,0.3029920119770133,0.29832534410362754,0.2938042931845078,0.2894219717740759,0.28517193008771086,0.28104812107974064,0.2770448688705842,0.2731568401487172,0.26937901822079224,0.2657066794241031,0.262135371650728,0.25866089476298987,0.2552792827060768,0.25198678714637895,0.2487798624838397,0.24565515210380584,0.2426094757488803,0.23963981790440755,0.236743317102742,0.23391725606156843,0.2311590525804525,0.22846625112765834,0.2258365150562178,0.22326761939438525,0.22075744416106766,0.2183039681616666,0.2159052632240841,0.21355948883848772,0.21126488716786695,0.20901977839948063,0.20682255641004757,0.20467168471999614,0.20256569271430563,0.20050317210946325,0.19848277364785438,0.1965032040025214,0.19456322287668762,0.19266164028376165,0.1907973139947339,0.18896914714095886,0.1871760859612993,0.18541711768350108,0.1836912685304774,0.18199760184292035,0.18033521631033067,0.1787032443031687,0.1771008502993911,0.17552722939914855,0.1739816059218892,0.17246323208053946,0.17097138672782913,0.16950537417018502,0.16806452304495154,0.1666481852569974,0.16525573497104962,0.16388656765635215,0.162540099180483,0.16121576494938375,0.15991301909085476,0.15863133367895763,0.1573701979969368,0.15612911783643146,0.15490761483089693,0.15370522582128954,0.152521502252196,0.1513560095967053,0.15020832680842933,0.14907804579917927,0.147964770940899,0.14686811859054283,0.14578771663666673,0.14472320406657688,0.14367423055295056,0.142640456058908,0.14162155046057695,0.1406171931862471,0.1396270728712649,0.1386508870278694,0.13768834172921554,0.13673915130687486,0.13580303806114413,0.13487973198353045,0.1339689704908164,0.13307049817014296,0.1321840665345782,0.13130943378866944,0.1304463646035045,0.12959462990083212,0.12875400664581732,0.12792427764802894,0.12710523137027913,0.1262966617449533,0.1254983679974898,0.12471015447668375,0.12393183049150922,0.12316321015416729,0.12240411222908393,0.12165435998759458,0.12091378106806622,0.12018220734122033,0.11945947478043112,0.11874542333678492,0.11803989681869803,0.11734274277589828,0.11665381238758685,0.11597296035460472,0.11530004479543696,0.11463492714589522,0.11397747206232794,0.11332754732821282,0.11268502376399464,0.11204977514003685,0.11142167809256145,0.11080061204245864,0.1101864591168508,0.10957910407330324,0.1089784342265771,0.10838433937782516,0.10779671174613577,0.10721544590233444,0.10664043870495593,0.10607158923830438,0.1055087987525221,0.10495197060559097,0.10440101020719418,0.10385582496436876,0.10331632422888214,0.10278241924626938,0.10225402310647,0.10173105069600571,0.1012134186516433,0.10070104531548889,0.10019385069146215,0.09969175640310074,0.09919468565264834,0.09870256318138015,0.09821531523112247,0.09773286950692477,0.09725515514084374,0.09678210265680093,0.09631364393647679,0.09584971218620582,0.0953902419048381,0.09493516885253492,0.09448443002046655,0.09403796360138182,0.09359570896102043,0.09315760661033988,0.09272359817852975,0.09229362638678776,0.09186763502283224,0.09144556891612693,0.09102737391379533,0.09061299685720156,0.09020238555917713,0.08979548878187203,0.08939225621521073,0.08899263845593378,0.08859658698720635,0.0882040541587759,0.08781499316766184,0.08742935803936053,0.08704710360954945,0.08666818550627552,0.08629256013261208,0.08592018464977066,0.08555101696065354,0.08518501569383337,0.08482214018794745,0.08446235047649385,0.08410560727301744,0.08375187195667397,0.08340110655816142,0.08305327374600738,0.0827083368132018,0.08236625966416575,0.08202700680204536,0.0816905433163222,0.0813568348707308,0.08102584769147411,0.08069754855572883,0.08037190478043178,0.08004888421134,0.07972845521235589,0.07941058665511092,0.0790952479087997,0.0787824088302581,0.07847203975427823,0.07816411148415373,0.0778585952824491,0.07755546286198682,0.07725468637704637,0.07695623841476916,0.07666009198676388,0.076366220520907,0.07607459785333273,0.07578519822060767,0.07549799625208514,0.0752129669624343,0.0749300857443395,0.07464932836136509,0.07437067094098188,0.07409408996775033,0.07381956227665679,0.07354706504659866,0.07327657579401475,0.07300807236665646,0.07274153293749733,0.07247693599877608,0.07221426035617053,0.07195348512309899,0.07169458971514553,0.07143755384460626,0.07118235751515355,0.07092898101661513,0.07067740491986521,0.07042761007182487,0.07017957759056902,0.06993328886053699,0.06968872552784489,0.06944586949569627,0.06920470291988953,0.06896520820441929,0.06872736799716929,0.06849116518569506,0.06825658289309389,0.06802360447395991,0.06779221351042247,0.06756239380826565,0.06733412939312713,0.06710740450677435,0.06688220360345623,0.06665851134632868,0.06643631260395205,0.06621559244685905,0.0659963361441912,0.06577852916040249,0.06556215715202851,0.06534720596451961,0.06513366162913652,0.06492151035990719,0.0647107385506433,0.06450133277201503,0.06429327976868288,0.06408656645648515,0.06388117991968008,0.06367710740824083,0.0634743363352029,0.06327285427406215,0.06307264895622262,0.06287370826849294,0.06267602025063042,0.062479573092931374,0.06228435513386719,0.062090354857764714,0.06189756089253003,0.0617059620074151,0.061515547110825616,0.061326305248169934,0.061138225599747596,0.060951297478676975,0.06076551032886087,0.0605808537229897,0.06039731736058097,0.06021489106605457,0.06003356478684316,0.05985332859153653,0.05967417266805986,0.05949608732188445,0.05931906297427078,0.05914309016054296,0.05896815952839406,0.05879426183622132,0.05862138795149138,0.058449528849134014,0.05827867560996432,0.05810881941913276,0.057939951564602285,0.057772063435652034,0.05760514652140725,0.05743919240939465,0.05727419278412288,0.05711013942568745,0.05694702420839976,0.056784839099439634,0.056623576157530976,0.056463227531640056,0.05630378545969588,0.056145242267332404,0.055987590366652025,0.055830822255009856,0.055674930513818624,0.05551990780737354,0.055365746881696876,0.05521244056340181,0.055059981758575266,0.054908363451679175,0.05475757870447008,0.05460762065493649,0.05445848251625372,0.05431015757575599,0.05416263919392523,0.054015920803396525,0.05386999590797966,0.05372485808169664,0.05358050096783476,0.05343691827801493,0.0532941037912751,0.05315205135316837,0.05301075487487552,0.05287020833233181,0.052730405765367604,0.052591341276862706,0.05245300903191409,0.05231540325701682,0.05217851823925785,0.0520423483255225,0.05190688792171342,0.051772131491981774,0.05163807355797032,0.051504708698068474,0.05137203154667869,0.05124003679349444,0.05110871918278917,0.05097807351271627,0.05084809463461983,0.05071877745235591,0.050590116921624205,0.050462108049309916,0.050334745892835625,0.05020802555952291,0.050081942205963806,0.04995649103740157,0.04983166730712089,0.04970746631584719,0.04958388341115491,0.04946091398688475,0.0493385534825694,0.04921679738286801,0.04909564121700894,0.04897508055824076,0.048855111023291334,0.04873572827183498,0.04861692800596723,0.04849870596968758,0.048381057948389546,0.04826397976835826,0.04814746729627537,0.04803151643873112,0.04791612314174345,0.04780128339028409,0.04768699320781147,0.04757324865581033,0.047460045833337856,0.04734738087657647,0.04723524995839284,0.04712364928790325,0.04701257511004513,0.04690202370515458,0.04679199138855003,0.046682474510121544,0.046573469453926104,0.04646497263778842,0.04635698051290745,0.04624948956346832,0.046142496306259675,0.04603599729029637,0.0459299890964474,0.045824468337068915,0.04571943165564238,0.04561487572641764,0.04551079725406098,0.045407192973307885,0.04530405964862069,0.04520139407385079,0.04509919307190548,0.04499745349441936,0.04489617222143014,0.04479534616105885,0.04469497224919436,0.04459504744918216,0.044495568751517306,0.04439653317354147,0.04429793775914405,0.04419977957846729,0.04410205572761527,0.044004763328366836,0.04390789952789226,0.04381146149847367,0.04371544643722923,0.0436198515658408,0.043524674130285365,0.04342991140056984,0.04333556067046939,0.043241619257269166,0.043148084501509414,0.04305495376673385,0.042962224439241366,0.04286989392784091,0.0427779596636095,0.0426864190996534,0.04259526971087236,0.042504508993726826,0.04241413446600826,0.042324143666612184,0.04223453415531437,0.042145303512549616,0.04205644933919353,0.04196796925634699,0.041879860905123314,0.04179212194643818,0.04170475006080207,0.041617742948115495,0.0415310983274666,0.04144481393693144,0.04135888753337665,0.04127331689226468,0.04118809980746131,0.04110323409104566,0.041018717573122504,0.04093454810163695,0.040850723542191325,0.04076724177786437,0.04068410070903262,0.04060129825319402,0.040518832344793636,0.04043670093505155,0.04035490199179275,0.04027343349927927,0.04019229345804415,0.04011147988472755,0.04003099081191475,0.039950824287976264,0.03987097837690961,0.03979145115818324,0.0397122407265822,0.03963334519205564,0.039554762679566174,0.039476491328941064,0.039398529294725086,0.039320874746035205,0.03924352586641695,0.039166480853702536,0.0390897379198705,0.039013295290907204,0.03893715120666983,0.03886130392075097,0.038785751700344887,0.03871049282611526,0.03863552559206449,0.038560848305404585,0.03848645928642942,0.03841235686838862,0.03833853939736276,0.0382650052321401,0.038191752744094754,0.038118780317066156,0.038046086347239993,0.03797366924303049,0.037901527424964034,0.03782965932556406,0.037758063389237394,0.037686738072161746,0.037615681842174536,0.037544893178662976,0.03747437057245544,0.03740411252571391,0.037334117551827854,0.037264384175309084,0.03719491093168794,0.03712569636741053,0.037056739039737246,0.03698803751664223,0.036919590376714155,0.03685139620905799,0.03678345361319782,0.036715761198980915,0.03664831758648266,0.03658112140591261,0.03651417129752165,0.03644746591151008,0.03638100390793673,0.03631478395662909,0.036248804737094444,0.036183064938431854,0.03611756325924529,0.03605229840755755,0.03598726910072516,0.03592247406535422,0.03585791203721715,0.03579358176117029,0.035729481991072475],"x":[3.0,3.0501002004008018,3.100200400801603,3.150300601202405,3.2004008016032066,3.250501002004008,3.3006012024048097,3.350701402805611,3.400801603206413,3.4509018036072145,3.501002004008016,3.5511022044088176,3.6012024048096194,3.6513026052104207,3.7014028056112225,3.7515030060120242,3.8016032064128256,3.8517034068136273,3.9018036072144286,3.9519038076152304,4.002004008016032,4.052104208416834,4.102204408817635,4.152304609218437,4.202404809619239,4.25250501002004,4.302605210420841,4.352705410821644,4.402805611222445,4.452905811623246,4.5030060120240485,4.55310621242485,4.603206412825651,4.653306613226453,4.703406813627255,4.753507014028056,4.803607214428857,4.8537074148296595,4.903807615230461,4.953907815631262,5.004008016032064,5.054108216432866,5.104208416833667,5.154308617234469,5.2044088176352705,5.254509018036072,5.304609218436874,5.354709418837675,5.404809619238477,5.454909819639279,5.50501002004008,5.5551102204408815,5.605210420841684,5.655310621242485,5.705410821643286,5.755511022044089,5.80561122244489,5.855711422845691,5.905811623246493,5.955911823647295,6.006012024048096,6.056112224448897,6.1062124248497,6.156312625250501,6.206412825651302,6.2565130260521045,6.306613226452906,6.356713426853707,6.406813627254509,6.456913827655311,6.507014028056112,6.557114228456914,6.6072144288577155,6.657314629258517,6.707414829659319,6.75751503006012,6.807615230460922,6.857715430861724,6.907815631262525,6.9579158316633265,7.008016032064128,7.05811623246493,7.108216432865731,7.158316633266533,7.208416833667335,7.258517034068136,7.3086172344689375,7.35871743486974,7.408817635270541,7.458917835671342,7.509018036072145,7.559118236472946,7.609218436873747,7.659318637274549,7.709418837675351,7.759519038076152,7.809619238476954,7.859719438877756,7.909819639278557,7.959919839679359,8.01002004008016,8.060120240480963,8.110220440881763,8.160320641282565,8.210420841683367,8.260521042084168,8.31062124248497,8.360721442885772,8.410821643286573,8.460921843687375,8.511022044088177,8.561122244488978,8.61122244488978,8.661322645290582,8.711422845691382,8.761523046092185,8.811623246492985,8.861723446893787,8.91182364729459,8.96192384769539,9.012024048096192,9.062124248496994,9.112224448897795,9.162324649298597,9.2124248496994,9.2625250501002,9.312625250501002,9.362725450901804,9.412825651302605,9.462925851703407,9.513026052104209,9.56312625250501,9.613226452905812,9.663326653306614,9.713426853707414,9.763527054108216,9.813627254509019,9.863727454909819,9.913827655310621,9.963927855711423,10.014028056112224,10.064128256513026,10.114228456913828,10.164328657314629,10.214428857715431,10.264529058116233,10.314629258517034,10.364729458917836,10.414829659318638,10.464929859719438,10.51503006012024,10.565130260521043,10.615230460921843,10.665330661322646,10.715430861723448,10.765531062124248,10.81563126252505,10.865731462925853,10.915831663326653,10.965931863727455,11.016032064128256,11.066132264529058,11.11623246492986,11.16633266533066,11.216432865731463,11.266533066132265,11.316633266533065,11.366733466933868,11.41683366733467,11.46693386773547,11.517034068136272,11.567134268537075,11.617234468937875,11.667334669338677,11.71743486973948,11.76753507014028,11.817635270541082,11.867735470941884,11.917835671342685,11.967935871743487,12.01803607214429,12.06813627254509,12.118236472945892,12.168336673346694,12.218436873747494,12.268537074148297,12.318637274549099,12.3687374749499,12.418837675350701,12.468937875751504,12.519038076152304,12.569138276553106,12.619238476953909,12.669338677354709,12.719438877755511,12.769539078156313,12.819639278557114,12.869739478957916,12.919839679358718,12.969939879759519,13.02004008016032,13.070140280561123,13.120240480961924,13.170340681362726,13.220440881763528,13.270541082164328,13.32064128256513,13.370741482965931,13.420841683366733,13.470941883767535,13.521042084168336,13.571142284569138,13.62124248496994,13.67134268537074,13.721442885771543,13.771543086172345,13.821643286573146,13.871743486973948,13.92184368737475,13.97194388777555,14.022044088176353,14.072144288577155,14.122244488977955,14.172344689378757,14.22244488977956,14.27254509018036,14.322645290581162,14.372745490981965,14.422845691382765,14.472945891783567,14.52304609218437,14.57314629258517,14.623246492985972,14.673346693386774,14.723446893787575,14.773547094188377,14.823647294589179,14.87374749498998,14.923847695390782,14.973947895791584,15.024048096192384,15.074148296593187,15.124248496993989,15.17434869739479,15.224448897795591,15.274549098196394,15.324649298597194,15.374749498997996,15.424849699398798,15.474949899799599,15.525050100200401,15.575150300601202,15.625250501002004,15.675350701402806,15.725450901803606,15.775551102204409,15.82565130260521,15.875751503006011,15.925851703406813,15.975951903807616,16.026052104208418,16.07615230460922,16.12625250501002,16.17635270541082,16.226452905811623,16.276553106212425,16.326653306613228,16.37675350701403,16.42685370741483,16.47695390781563,16.527054108216433,16.577154308617235,16.627254509018037,16.677354709418836,16.727454909819638,16.77755511022044,16.827655310621243,16.877755511022045,16.927855711422847,16.977955911823646,17.028056112224448,17.07815631262525,17.128256513026052,17.178356713426854,17.228456913827657,17.278557114228455,17.328657314629258,17.37875751503006,17.428857715430862,17.478957915831664,17.529058116232466,17.579158316633265,17.629258517034067,17.67935871743487,17.72945891783567,17.779559118236474,17.829659318637276,17.879759519038075,17.929859719438877,17.97995991983968,18.03006012024048,18.080160320641284,18.130260521042086,18.180360721442884,18.230460921843687,18.28056112224449,18.33066132264529,18.380761523046093,18.430861723446895,18.480961923847694,18.531062124248496,18.5811623246493,18.6312625250501,18.681362725450903,18.731462925851705,18.781563126252504,18.831663326653306,18.881763527054108,18.93186372745491,18.981963927855713,19.03206412825651,19.082164328657313,19.132264529058116,19.182364729458918,19.23246492985972,19.282565130260522,19.33266533066132,19.382765531062123,19.432865731462925,19.482965931863728,19.53306613226453,19.583166332665332,19.63326653306613,19.683366733466933,19.733466933867735,19.783567134268537,19.83366733466934,19.88376753507014,19.93386773547094,19.983967935871743,20.034068136272545,20.084168336673347,20.13426853707415,20.18436873747495,20.23446893787575,20.284569138276552,20.334669338677354,20.384769539078157,20.43486973947896,20.48496993987976,20.53507014028056,20.585170340681362,20.635270541082164,20.685370741482966,20.73547094188377,20.78557114228457,20.83567134268537,20.88577154308617,20.935871743486974,20.985971943887776,21.03607214428858,21.08617234468938,21.13627254509018,21.18637274549098,21.236472945891784,21.286573146292586,21.336673346693388,21.386773547094187,21.43687374749499,21.48697394789579,21.537074148296593,21.587174348697395,21.637274549098198,21.687374749498996,21.7374749498998,21.7875751503006,21.837675350701403,21.887775551102205,21.937875751503007,21.987975951903806,22.03807615230461,22.08817635270541,22.138276553106213,22.188376753507015,22.238476953907817,22.288577154308616,22.338677354709418,22.38877755511022,22.438877755511022,22.488977955911825,22.539078156312627,22.589178356713425,22.639278557114228,22.68937875751503,22.739478957915832,22.789579158316634,22.839679358717436,22.889779559118235,22.939879759519037,22.98997995991984,23.04008016032064,23.090180360721444,23.140280561122246,23.190380761523045,23.240480961923847,23.29058116232465,23.34068136272545,23.390781563126254,23.440881763527056,23.490981963927855,23.541082164328657,23.59118236472946,23.64128256513026,23.691382765531063,23.741482965931862,23.791583166332664,23.841683366733466,23.89178356713427,23.94188376753507,23.991983967935873,24.04208416833667,24.092184368737474,24.142284569138276,24.19238476953908,24.24248496993988,24.292585170340683,24.34268537074148,24.392785571142284,24.442885771543086,24.492985971943888,24.54308617234469,24.593186372745492,24.64328657314629,24.693386773547093,24.743486973947896,24.793587174348698,24.8436873747495,24.893787575150302,24.9438877755511,24.993987975951903,25.044088176352705,25.094188376753507,25.14428857715431,25.194388777555112,25.24448897795591,25.294589178356713,25.344689378757515,25.394789579158317,25.44488977955912,25.49498997995992,25.54509018036072,25.595190380761522,25.645290581162325,25.695390781563127,25.74549098196393,25.795591182364728,25.84569138276553,25.895791583166332,25.945891783567134,25.995991983967937,26.04609218436874,26.096192384769537,26.14629258517034,26.196392785571142,26.246492985971944,26.296593186372746,26.34669338677355,26.396793587174347,26.44689378757515,26.49699398797595,26.547094188376754,26.597194388777556,26.647294589178358,26.697394789579157,26.74749498997996,26.79759519038076,26.847695390781563,26.897795591182366,26.947895791583168,26.997995991983966,27.04809619238477,27.09819639278557,27.148296593186373,27.198396793587175,27.248496993987978,27.298597194388776,27.34869739478958,27.39879759519038,27.448897795591183,27.498997995991985,27.549098196392787,27.599198396793586,27.649298597194388,27.69939879759519,27.749498997995993,27.799599198396795,27.849699398797597,27.899799599198396,27.949899799599198,28.0]} \ No newline at end of file diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/larger_positive.json b/lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/larger_positive.json new file mode 100644 index 000000000000..d7ed3f2e4f56 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/larger_positive.json @@ -0,0 +1 @@ +{"expected":[0.035729481991072475,0.03554615132925734,0.03536469321038551,0.03518507907917509,0.0350072809582471,0.034831271433573646,0.034657023640363785,0.034484511249371824,0.03431370845361332,0.03414458995547459,0.03397713095420245,0.033811307133760814,0.033647094651041994,0.03348447012442045,0.03332341062263745,0.03316389365400568,0.03300589715592295,0.03284939948468472,0.032694379405585734,0.03254081608330101,0.03238868907253711,0.03223797830894493,0.03208866410028547,0.03194072711784036,0.03179414838805923,0.031648909284436644,0.031504991519610705,0.03136237713767688,0.03122104850670988,0.03108098831148718,0.030942179546407794,0.030804605508600334,0.030668249791214335,0.03053309627688927,0.030399129131395832,0.030266332797443986,0.03013469198865303,0.03000419168367847,0.029874817120491094,0.02974655379080362,0.029619387434640584,0.029493304035047022,0.029368289812932002,0.02924433122204287,0.029121414944066466,0.028999527883853526,0.028878657164762664,0.02875879012412046,0.028639914308794392,0.028522017470875113,0.02840508756346521,0.028289112736571215,0.02817408133309596,0.028059981884928458,0.02794680310912858,0.02783453390420372,0.02772316334647507,0.027612680686530798,0.027503075345763878,0.02739433691299211,0.027286455141158142,0.027179419944107205,0.02707322139344055,0.02696784971544239,0.026863295288078463,0.026759548638064217,0.02665660043800072,0.026554441503576557,0.02645306279083387,0.02635245539349686,0.02625261054036107,0.026153519592741935,0.026055174041980864,0.025957565507007507,0.02586068573195669,0.025764526583838477,0.025669080050260213,0.025574338237198953,0.025480293366823174,0.025386937775362373,0.02529426391102339,0.02520226433195228,0.025110931704240523,0.02502025879997446,0.024930238495326912,0.024840863768689894,0.024752127698847368,0.02466402346318705,0.02457654433595037,0.024489683686519503,0.024403434977740692,0.024317791764282903,0.02423274769103089,0.02414829649151203,0.024064431986355807,0.023981148081785433,0.023898438768140698,0.023816298118431247,0.023734720286919683,0.0236536995077337,0.023573230093506557,0.023493306434045246,0.023413922995025708,0.023335074316714367,0.02325675501271554,0.023178959768743877,0.023101683341421528,0.023024920557099187,0.022948666310700642,0.02287291556459022,0.022797663347462627,0.022722904753254603,0.02264863494007797,0.022574849129173583,0.022501542603885597,0.022428710708655764,0.02235634884803715,0.022284452485726917,0.022213017143617744,0.02214203840086741,0.02207151189298623,0.02200143331094181,0.0219317984002809,0.02186260296026782,0.0217938428430392,0.02172551395277462,0.02165761224488278,0.021590133725202965,0.02152307444922134,0.021456430521301854,0.02139019809393139,0.021324373366978844,0.021258952586967878,0.021193932046363037,0.021129308082868888,0.021065077078742,0.021001235460115432,0.02093777969633545,0.020874706299310312,0.020812011822870666,0.02074969286214162,0.020687746052925917,0.020626168071098214,0.020564955632010135,0.02050410548990589,0.020443614437348257,0.020383479304654676,0.02032369695934332,0.020264264305588833,0.020205178283687637,0.020146435869532582,0.020088034074096678,0.020029969942925878,0.019972240555640536,0.01991484302544556,0.01985777449864894,0.019801032154188537,0.01974461320316699,0.019688514888394543,0.019632734483939658,0.01957726929468723,0.01952211665590429,0.019467273932813035,0.019412738520171047,0.019358507841858514,0.019304579350472393,0.019250950526927345,0.01919761888006326,0.01914458194625936,0.019091837289054614,0.019039382498774488,0.018987215192163752,0.018935333012025397,0.018883733626865375,0.018832414730543232,0.018781374041928315,0.018730609304561635,0.018680118286323207,0.01862989877910469,0.018579948598487363,0.01853026558342525,0.018480847595933304,0.018431692520780585,0.01838279826518832,0.01833416275853278,0.01828578395205278,0.01823765981856196,0.018189788352165417,0.018142167567980916,0.01809479550186444,0.018047670210139997,0.01800078976933368,0.017954152275911857,0.01790775584602341,0.017861598615245947,0.017815678738335998,0.017769994388982958,0.0177245437595669,0.017679325060920032,0.017634336522091835,0.017589576390117777,0.017545042929791508,0.01750073442344055,0.01745664917070537,0.01741278548832177,0.017369141709906534,0.017325716185746378,0.017282507282589947,0.01723951338344297,0.01719673288736652,0.017154164209278153,0.017111805779756108,0.017069656044846327,0.017027713465872365,0.016985976519248075,0.01694444369629305,0.016903113503050758,0.016861984460109357,0.016821055102425094,0.016780323979148283,0.016739789653451808,0.016699450702362097,0.016659305716592552,0.01661935330037937,0.016579592071319708,0.016540020660212165,0.016500637710899612,0.016461441880114135,0.016422431837324312,0.016383606264584568,0.01634496385638672,0.01630650331951358,0.016268223372894637,0.016230122747463792,0.016192200186019017,0.016154454443084075,0.016116884284772082,0.016079488488651032,0.016042265843611153,0.0160052151497341,0.015968335218164022,0.015931624870980297,0.01589508294107212,0.01585870827201477,0.015822499717947552,0.015786456143453458,0.015750576423440455,0.015714859443024323,0.015679304097413204,0.015643909291793625,0.015608673941218065,0.015573596970494099,0.015538677314074975,0.0155039139159517,0.01546930572954651,0.015434851717607872,0.015400550852106766,0.015366402114134441,0.015332404493801468,0.015298556990138172,0.015264858610996348,0.0152313083729523,0.015197905301211142,0.015164648429512347,0.015131536800036566,0.01509856946331363,0.01506574547813177,0.015033063911448022,0.015000523838299785,0.014968124341717542,0.014935864512638678,0.014903743449822445,0.014871760259766026,0.01483991405662162,0.01480820396211467,0.014776629105463084,0.014745188623297495,0.01471388165958255,0.014682707365539217,0.014651664899568003,0.014620753427173255,0.014589972120888329,0.014559320160201724,0.014528796731484179,0.014498401027916656,0.014468132249419207,0.014437989602580786,0.014407972300589886,0.014378079563166057,0.01434831061649229,0.014318664693148218,0.01428914103204414,0.0142597388783559,0.014230457483460511,0.014201296104872616,0.014172254006181712,0.014143330456990141,0.014114524732851838,0.014085836115211832,0.014057263891346494,0.014028807354304484,0.01400046580284842,0.013972238541397288,0.013944124879969511,0.013916124134126696,0.013888235624918097,0.013860458678825722,0.013832792627710084,0.013805236808756628,0.013777790564422788,0.01375045324238566,0.013723224195490314,0.013696102781698716,0.013669088364039244,0.013642180310556824,0.013615377994263616,0.013588680793090325,0.013562088089838047,0.013535599272130702,0.01350921373236801,0.01348293086767903,0.013456750079876225,0.013430670775410065,0.013404692365324175,0.013378814265210981,0.013353035895167861,0.013327356679753847,0.01330177604794678,0.013276293433100958,0.013250908272905317,0.013225620009342045,0.01320042808864568,0.013175331961262679,0.013150331081811453,0.013125424909042852,0.013100612905801086,0.01307589453898511,0.01305126927951043,0.013026736602271341,0.013002295986103602,0.012977946913747518,0.012953688871811432,0.012929521350735653,0.012905443844756757,0.012881455851872288,0.01285755687380588,0.01283374641597274,0.012810023987445521,0.012786389100920574,0.012762841272684582,0.012739380022581534,0.012716004873980105,0.012692715353741356,0.0126695109921868,0.012646391323066842,0.012623355883529534,0.012600404214089658,0.012577535858598207,0.012554750364212136,0.012532047281364464,0.012509426163734709,0.01248688656821963,0.012464428054904289,0.012442050187033421,0.012419752530983121,0.012397534656232835,0.01237539613533763,0.012353336543900782,0.012331355460546665,0.012309452466893894,0.012287627147528792,0.01226587908997911,0.012244207884688042,0.012222613124988515,0.012201094407077739,0.01217965132999203,0.012158283495581916,0.012136990508487473,0.012115771976113934,0.01209462750860758,0.012073556718831835,0.012052559222343632,0.01203163463737005,0.012010782584785152,0.011990002688087085,0.011969294573375424,0.011948657869328735,0.011928092207182377,0.01190759722070653,0.011887172546184464,0.011866817822390997,0.011846532690571215,0.011826316794419383,0.011806169780058079,0.011786091296017542,0.011766080993215229,0.011746138524935586,0.011726263546810008,0.011706455716797022,0.011686714695162668,0.011667040144461046,0.011647431729515118,0.011627889117397651,0.011608411977412372,0.011588999981075319,0.011569652802096366,0.011550370116360932,0.011531151601911892,0.011511996938931646,0.011492905809724377,0.011473877898698479,0.011454912892349177,0.011436010479241285,0.011417170349992184,0.011398392197254909,0.011379675715701452,0.011361020602006206,0.011342426554829577,0.011323893274801754,0.011305420464506635,0.011287007828465928,0.011268655073123376,0.011250361906829173,0.011232128039824494,0.011213953184226206,0.011195837054011705,0.011177779365003922,0.011159779834856448,0.011141838183038818,0.011123954130821949,0.01110612740126368,0.011088357719194497,0.01107064481120335,0.011052988405623656,0.011035388232519374,0.011017844023671277,0.011000355512563306,0.01098292243436908,0.010965544525938519,0.010948221525784618,0.0109309531740703,0.010913739212595456,0.010896579384784048,0.01087947343567137,0.010862421111891415,0.010845422161664378,0.010828476334784237,0.010811583382606488,0.01079474305803599,0.010777955115514899,0.01076121931101074,0.010744535402004585,0.010727903147479328,0.010711322307908075,0.010694792645242658,0.010678313922902229,0.010661885905761967,0.010645508360141907,0.010629181053795858,0.010612903755900408,0.010596676237044056,0.010580498269216435,0.010564369625797614,0.010548290081547548,0.010532259412595557,0.010516277396429947,0.010500343811887723,0.010484458439144374,0.01046862105970376,0.01045283145638811,0.010437089413328072,0.010421394715952884,0.01040574715098063,0.010390146506408566,0.010374592571503544,0.010359085136792534,0.01034362399405321,0.010328208936304619,0.010312839757797976,0.010297516254007466,0.010282238221621203,0.010267005458532225,0.010251817763829576,0.010236674937789481,0.010221576781866583,0.01020652309868527,0.010191513692031069,0.010176548366842111,0.010161626929200706,0.010146749186324938,0.010131914946560372,0.01011712401937183,0.010102376215335223,0.010087671346129463,0.01007300922452845,0.010058389664393135,0.01004381248066361,0.01002927748935134,0.01001478450753139,0.010000333353334763],"x":[28.0,28.14428857715431,28.288577154308616,28.432865731462925,28.577154308617235,28.721442885771545,28.86573146292585,29.01002004008016,29.15430861723447,29.298597194388776,29.442885771543086,29.587174348697395,29.731462925851705,29.87575150300601,30.02004008016032,30.16432865731463,30.308617234468937,30.452905811623246,30.597194388777556,30.741482965931862,30.88577154308617,31.03006012024048,31.17434869739479,31.318637274549097,31.462925851703407,31.607214428857716,31.751503006012022,31.895791583166332,32.04008016032064,32.18436873747495,32.32865731462926,32.47294589178357,32.61723446893787,32.76152304609219,32.90581162324649,33.0501002004008,33.19438877755511,33.33867735470942,33.482965931863724,33.62725450901804,33.77154308617234,33.91583166332666,34.06012024048096,34.20440881763527,34.34869739478958,34.49298597194389,34.637274549098194,34.78156312625251,34.92585170340681,35.07014028056112,35.21442885771543,35.35871743486974,35.503006012024045,35.64729458917836,35.791583166332664,35.93587174348698,36.08016032064128,36.22444889779559,36.3687374749499,36.51302605210421,36.657314629258515,36.80160320641283,36.945891783567134,37.09018036072144,37.234468937875754,37.37875751503006,37.523046092184366,37.66733466933868,37.811623246492985,37.95591182364729,38.100200400801604,38.24448897795591,38.388777555110224,38.53306613226453,38.677354709418836,38.82164328657315,38.965931863727455,39.11022044088176,39.254509018036075,39.39879759519038,39.54308617234469,39.687374749499,39.831663326653306,39.97595190380761,40.120240480961925,40.26452905811623,40.408817635270545,40.55310621242485,40.69739478957916,40.84168336673347,40.985971943887776,41.13026052104208,41.274549098196395,41.4188376753507,41.56312625250501,41.70741482965932,41.85170340681363,41.99599198396793,42.140280561122246,42.28456913827655,42.42885771543086,42.57314629258517,42.71743486973948,42.86172344689379,43.0060120240481,43.1503006012024,43.294589178356716,43.43887775551102,43.58316633266533,43.72745490981964,43.87174348697395,44.016032064128254,44.16032064128257,44.30460921843687,44.44889779559118,44.59318637274549,44.7374749498998,44.88176352705411,45.02605210420842,45.170340681362724,45.31462925851704,45.45891783567134,45.60320641282565,45.74749498997996,45.89178356713427,46.036072144288575,46.18036072144289,46.324649298597194,46.4689378757515,46.61322645290581,46.75751503006012,46.901803607214426,47.04609218436874,47.190380761523045,47.33466933867736,47.478957915831664,47.62324649298597,47.76753507014028,47.91182364729459,48.056112224448896,48.20040080160321,48.344689378757515,48.48897795591182,48.633266533066134,48.77755511022044,48.921843687374746,49.06613226452906,49.210420841683366,49.35470941883767,49.498997995991985,49.64328657314629,49.787575150300604,49.93186372745491,50.07615230460922,50.22044088176353,50.364729458917836,50.50901803607214,50.653306613226455,50.79759519038076,50.94188376753507,51.08617234468938,51.23046092184369,51.37474949899799,51.519038076152306,51.66332665330661,51.807615230460925,51.95190380761523,52.09619238476954,52.24048096192385,52.38476953907816,52.52905811623246,52.673346693386776,52.81763527054108,52.96192384769539,53.1062124248497,53.25050100200401,53.394789579158314,53.53907815631263,53.68336673346693,53.82765531062124,53.97194388777555,54.11623246492986,54.26052104208417,54.40480961923848,54.549098196392784,54.6933867735471,54.8376753507014,54.98196392785571,55.12625250501002,55.27054108216433,55.414829659318634,55.55911823647295,55.703406813627254,55.84769539078156,55.99198396793587,56.13627254509018,56.28056112224449,56.4248496993988,56.569138276553105,56.71342685370742,56.857715430861724,57.00200400801603,57.14629258517034,57.29058116232465,57.434869739478955,57.57915831663327,57.723446893787575,57.86773547094188,58.012024048096194,58.1563126252505,58.300601202404806,58.44488977955912,58.589178356713425,58.73346693386774,58.877755511022045,59.02204408817635,59.166332665330664,59.31062124248497,59.454909819639276,59.59919839679359,59.743486973947896,59.8877755511022,60.032064128256515,60.17635270541082,60.32064128256513,60.46492985971944,60.609218436873746,60.75350701402806,60.897795591182366,61.04208416833667,61.186372745490985,61.33066132264529,61.4749498997996,61.61923847695391,61.763527054108216,61.90781563126252,62.052104208416836,62.19639278557114,62.34068136272545,62.48496993987976,62.62925851703407,62.77354709418837,62.91783567134269,63.06212424849699,63.206412825651306,63.35070140280561,63.49498997995992,63.63927855711423,63.78356713426854,63.92785571142284,64.07214428857715,64.21643286573146,64.36072144288578,64.50501002004007,64.64929859719439,64.7935871743487,64.937875751503,65.08216432865731,65.22645290581163,65.37074148296593,65.51503006012024,65.65931863727455,65.80360721442885,65.94789579158316,66.09218436873748,66.23647294589178,66.38076152304609,66.5250501002004,66.66933867735472,66.81362725450902,66.95791583166333,67.10220440881764,67.24649298597194,67.39078156312625,67.53507014028057,67.67935871743487,67.82364729458918,67.96793587174349,68.11222444889779,68.2565130260521,68.40080160320642,68.54509018036072,68.68937875751503,68.83366733466934,68.97795591182364,69.12224448897796,69.26653306613227,69.41082164328657,69.55511022044088,69.6993987975952,69.84368737474949,69.9879759519038,70.13226452905812,70.27655310621242,70.42084168336673,70.56513026052104,70.70941883767534,70.85370741482966,70.99799599198397,71.14228456913828,71.28657314629258,71.4308617234469,71.57515030060121,71.71943887775551,71.86372745490982,72.00801603206413,72.15230460921843,72.29659318637275,72.44088176352706,72.58517034068136,72.72945891783567,72.87374749498998,73.01803607214428,73.1623246492986,73.30661322645291,73.45090180360721,73.59519038076152,73.73947895791584,73.88376753507013,74.02805611222445,74.17234468937876,74.31663326653306,74.46092184368737,74.60521042084169,74.74949899799599,74.8937875751503,75.03807615230461,75.18236472945891,75.32665330661322,75.47094188376754,75.61523046092185,75.75951903807615,75.90380761523046,76.04809619238478,76.19238476953907,76.33667334669339,76.4809619238477,76.625250501002,76.76953907815631,76.91382765531063,77.05811623246493,77.20240480961924,77.34669338677355,77.49098196392785,77.63527054108216,77.77955911823648,77.92384769539078,78.06813627254509,78.2124248496994,78.3567134268537,78.50100200400801,78.64529058116233,78.78957915831663,78.93386773547094,79.07815631262525,79.22244488977955,79.36673346693387,79.51102204408818,79.65531062124248,79.79959919839679,79.9438877755511,80.08817635270542,80.23246492985972,80.37675350701403,80.52104208416834,80.66533066132264,80.80961923847696,80.95390781563127,81.09819639278557,81.24248496993988,81.3867735470942,81.53106212424849,81.6753507014028,81.81963927855712,81.96392785571142,82.10821643286573,82.25250501002004,82.39679358717434,82.54108216432866,82.68537074148297,82.82965931863727,82.97394789579158,83.1182364729459,83.2625250501002,83.40681362725451,83.55110220440882,83.69539078156312,83.83967935871743,83.98396793587175,84.12825651302605,84.27254509018036,84.41683366733467,84.56112224448898,84.70541082164328,84.8496993987976,84.99398797595191,85.13827655310621,85.28256513026052,85.42685370741484,85.57114228456913,85.71543086172345,85.85971943887776,86.00400801603206,86.14829659318637,86.29258517034069,86.43687374749499,86.5811623246493,86.72545090180361,86.86973947895791,87.01402805611222,87.15831663326654,87.30260521042084,87.44689378757515,87.59118236472946,87.73547094188376,87.87975951903807,88.02404809619239,88.16833667334669,88.312625250501,88.45691382765531,88.60120240480961,88.74549098196393,88.88977955911824,89.03406813627255,89.17835671342685,89.32264529058116,89.46693386773548,89.61122244488978,89.75551102204409,89.8997995991984,90.0440881763527,90.18837675350701,90.33266533066133,90.47695390781563,90.62124248496994,90.76553106212425,90.90981963927855,91.05410821643287,91.19839679358718,91.34268537074148,91.48697394789579,91.6312625250501,91.7755511022044,91.91983967935872,92.06412825651303,92.20841683366733,92.35270541082164,92.49699398797596,92.64128256513025,92.78557114228457,92.92985971943888,93.07414829659318,93.21843687374749,93.3627254509018,93.50701402805612,93.65130260521042,93.79559118236473,93.93987975951904,94.08416833667334,94.22845691382766,94.37274549098197,94.51703406813627,94.66132264529058,94.8056112224449,94.9498997995992,95.09418837675351,95.23847695390782,95.38276553106212,95.52705410821643,95.67134268537075,95.81563126252505,95.95991983967936,96.10420841683367,96.24849699398797,96.39278557114228,96.5370741482966,96.6813627254509,96.82565130260521,96.96993987975952,97.11422845691382,97.25851703406813,97.40280561122245,97.54709418837675,97.69138276553106,97.83567134268537,97.97995991983969,98.12424849699399,98.2685370741483,98.41282565130261,98.55711422845691,98.70140280561122,98.84569138276554,98.98997995991984,99.13426853707415,99.27855711422846,99.42284569138276,99.56713426853707,99.71142284569139,99.85571142284569,100.0]} \ No newline at end of file diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/medium_positive.json b/lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/medium_positive.json new file mode 100644 index 000000000000..0ff2ed0706eb --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/medium_positive.json @@ -0,0 +1 @@ +{"expected":[1.5222612188617113,1.5044823997763805,1.4873750900055818,1.4708924745862673,1.454992459742535,1.4396370587163752,1.4247918743301422,1.4104256605553864,1.396509949040018,1.3830187293762795,1.369928174088901,1.3572164010413534,1.3448632673123753,1.3328501896695548,1.3211599876250373,1.3097767457481944,1.2986856924676553,1.2878730930483284,1.2773261547993502,1.2670329428730422,1.256982305265862,1.2471638058403534,1.2375676643602107,1.2281847026753185,1.219006296315069,1.2100243308505658,1.2012311624728134,1.1926195823073602,1.1841827840483152,1.1759143345479894,1.1678081470440649,1.1598584567454642,1.1520597985318572,1.1444069865509583,1.1368950955230503,1.1295194435841291,1.1222755765181727,1.1151592532457189,1.1081664324505174,1.1012932602388026,1.09453605873696,1.087891315543246,1.0813556739579218,1.0749259239238804,1.0685989936166438,1.0623719416286723,1.0562419496982813,1.0502063159382629,1.0442624485235492,1.0384078598010842,1.0326401607884579,1.0269570560309131,1.021356338789075,1.0158358865322017,1.0103936567139773,1.0050276828098488,0.999736070596718,0.9945169946574113,0.9893686950938314,0.9842894744340129,0.9792776947195159,0.9743317747606873,0.9694501875483116,0.9646314578110784,0.9598741597091194,0.9551769146546203,0.9505383892511945,0.9459572933443434,0.9414323781758844,0.9369624346357724,0.932546291605208,0.9281828143853691,0.9238709032065183,0.9196094918125928,0.9153975461167465,0.9112340629236106,0.9071180687143459,0.9030486184908146,0.8990247946754568,0.8950457060636791,0.8911104868257758,0.8872182955556016,0.883368314363389,0.8795597480102761,0.8757918230822677,0.8720637872014877,0.8683749082727259,0.8647244737633986,0.8611117900151601,0.8575361815855131,0.8539969906178596,0.8504935762385317,0.8470253139794304,0.8435915952249741,0.8401918266821423,0.8368254298724656,0.8334918406448799,0.8301905087084267,0.8269208971838353,0.8236824821730807,0.8204747523460579,0.8172972085435634,0.814149363395818,0.8110307409558057,0.8079408763467452,0.8048793154230431,0.8018456144441186,0.7988393397605128,0.7958600675117368,0.7929073833353323,0.7899808820866498,0.787080167568877,0.7842048522728648,0.781354557126335,0.7785289112520603,0.7757275517346378,0.772950123395491,0.7701962785757545,0.7674656769267126,0.7647579852074793,0.7620728770896198,0.759410032968431,0.7567691397806116,0.754149890828061,0.7515519856075651,0.7489751296461306,0.7464190343417496,0.743883416809376,0.741367999731913,0.7388725112160188,0.7363966846525402,0.7339402585814021,0.7315029765607806,0.7290845870403979,0.7266848432387851,0.724303503024364,0.7219403288002064,0.719595087392337,0.7172675499414456,0.7149574917978905,0.7126646924198685,0.7103889352746411,0.7081300077427054,0.7058877010248076,0.7036618100516944,0.7014521333965108,0.6992584731897492,0.69708063503666,0.6949184279370434,0.6927716642073339,0.6906401594049068,0.6885237322545236,0.6864222045768505,0.684335401218977,0.6822631499868669,0.680205281579683,0.6781616295259154,0.6761320301212621,0.6741163223681992,0.672114347917189,0.670125951009471,0.6681509784213863,0.6661892794101859,0.6642407056612757,0.662305111236853,0.6603823525258901,0.6584722881954236,0.6565747791431084,0.6546896884509967,0.6528168813405069,0.6509562251285397,0.6491075891847153,0.6472708448896896,0.6454458655945207,0.6436325265810555,0.6418307050233011,0.6400402799497567,0.6382611322066746,0.6364931444222234,0.6347362009715289,0.6329901879425631,0.6312549931028623,0.6295305058670426,0.6278166172651,0.6261132199114623,0.6244202079747792,0.6227374771484246,0.6210649246216952,0.6194024490516806,0.6177499505357936,0.6161073305849335,0.6144744920972719,0.6128513393326415,0.611237777887509,0.6096337146705206,0.608039057878601,0.6064537169735922,0.6048776026594178,0.6033106268597579,0.6017527026962222,0.6002037444670068,0.5986636676260222,0.5971323887624806,0.5956098255809303,0.5940958968817247,0.5925905225419162,0.5910936234965618,0.5896051217204321,0.5881249402101117,0.5866530029664818,0.5851892349775747,0.5837335622017912,0.5822859115514718,0.5808462108768124,0.5794143889501165,0.5779903754503743,0.5765741009481619,0.5751654968908525,0.5737644955881311,0.5723710301978056,0.5709850347119074,0.5696064439430749,0.5682351935112113,0.5668712198304117,0.5655144600961522,0.564164852272736,0.5628223350809884,0.5614868479861956,0.560158331186283,0.5588367256002245,0.5575219728566804,0.5562140152828557,0.5549127958935769,0.553618258380578,0.5523303471019952,0.5510490070720631,0.5497741839510074,0.5485058240351319,0.5472438742470923,0.5459882821263556,0.5447389958198385,0.5434959640727219,0.5422591362194383,0.5410284621748264,0.5398038924254499,0.5385853780210783,0.5373728705663235,0.5361663222124319,0.534965685649224,0.5337709140971849,0.5325819612996956,0.5313987815154058,0.5302213295107461,0.5290495605525722,0.5278834304009434,0.526722895302029,0.5255679119811403,0.524418437635888,0.5232744299294596,0.5221358469840143,0.521002647374196,0.5198747901207577,0.5187522346842987,0.5176349409591091,0.516522869267123,0.5154159803519729,0.51431423537315,0.5132175959002621,0.5121260239073897,0.5110394817675401,0.5099579322471934,0.5088813385009416,0.507809664066219,0.5067428728581195,0.5056809291643013,0.5046237976399778,0.5035714433029899,0.502523831528961,0.5014809280465324,0.5004426989326773,0.49940911060808957,0.49838012983265123,0.4973557237009719,0.4963358596380007,0.4953205053947106,0.4943096290438511,0.4933031989757704,0.49230118389430344,0.49130355281272786,0.49031027504978153,0.48932132022574615,0.4883366582585916,0.4873562593601812,0.4863800940325374,0.48540813306416564,0.48444034752643583,0.4834767087700207,0.4825171884213892,0.48156175837935444,0.48061039081167495,0.4796630581517086,0.47871973309511806,0.47778038859662586,0.47684499786682066,0.4759135343690105,0.4749859718161252,0.4740622841676647,0.4731424456266941,0.4722264306368842,0.4713142138795952,0.4704057702710056,0.4695010749592833,0.46860010332179813,0.46770283096237725,0.4668092337085997,0.4659192876091321,0.4650329689311021,0.464150254157512,0.46327111998468923,0.46239554331977384,0.46152350127824315,0.4606549711814725,0.4597899305543297,0.45892835712280655,0.4580702288116826,0.45721552374222263,0.4563642202299083,0.45551629678220057,0.4546717320963347,0.45383050505714706,0.4529925947349313,0.4521579803833259,0.45132664143723134,0.4504985575107556,0.44967370839518966,0.44885207405701016,0.4480336346359102,0.4472183704428583,0.44640626195818234,0.4455972898296821,0.4447914348707659,0.44398867805861447,0.4431890005323684,0.44239238359134164,0.44159880869325835,0.4408082574525145,0.4400207116384622,0.439236153173718,0.4384545641324937,0.43767592673894873,0.43690022336556655,0.43612743653155067,0.43535754890124323,0.43459054328256486,0.4338264026254739,0.43306511002044745,0.4323066486969817,0.43155100202211205,0.430798153498953,0.4300480867652565,0.42930078559199014,0.428556233881933,0.4278144156682897,0.4270753151133232,0.42633891650700495,0.4256052042656817,0.42487416293076063,0.42414577716741075,0.42342003176328075,0.42269691162723366,0.42197640178809726,0.42125848739343086,0.42054315370830697,0.41983038611410917,0.4191201701073448,0.4184124912984719,0.4177073354107427,0.417004688279059,0.4163045358488445,0.41560686417492965,0.41491165942044994,0.4142189078557597,0.4135285958573574,0.4128407099068254,0.4121552365897823,0.4114721625948484,0.41079147471262323,0.41011315983467655,0.4094372049525511,0.40876359715677696,0.4080923236358992,0.4074233716755161,0.40675672865732965,0.40609238205820675,0.4054303194492532,0.4047705284948968,0.4041129969519833,0.40345771266888164,0.4028046635846011,0.40215383772791774,0.4015052232165123,0.40085880825611775,0.4002145811396768,0.39957253024650957,0.39893264404149104,0.398294911074238,0.39765931997830567,0.39702585947039365,0.39639451834956085,0.3957652854964503,0.39513814987252177,0.39451310051929445,0.39389012655759764,0.39326921718683033,0.392650361684229,0.39203354940414464,0.39141876977732676,0.39080601231021667,0.3901952665842486,0.38958652225515794,0.3889797690522985,0.38837499677796683,0.387772195306734,0.3871713545847859,0.38657246462926936,0.3859755155276472,0.3853804974370594,0.38478740058369204,0.384196215262153,0.3836069318348546,0.38301954073140293,0.3824340324479948,0.3818503975468198,0.3812686266554707,0.3806887104663589,0.38011063973613723,0.37953440528512855,0.3789599979967611,0.3783874088170091,0.37781662875384076,0.37724764887667095,0.3766804603158211,0.3761150542619832,0.375551421965692,0.3749895547368006,0.3744294439439628,0.37387108101412125,0.373314457432,0.37275956473960387,0.3722063945357219,0.3716549384754368,0.37110518826963956,0.37055713568454884,0.3700107725412358,0.36946609071515407,0.3689230821356737,0.3683817387856217,0.3678420527008257,0.36730401596966344,0.36676762073261665,0.3662328591818298,0.36569972356067254,0.3651682061633082,0.3646382993342655,0.36410999546801515,0.3635832870085512,0.36305816644897554,0.3625346263310885,0.3620126592449816,0.3614922578286361,0.36097341476752487,0.36045612279421857,0.3599403746879955,0.3594261632744559,0.35891348142514,0.35840232205714967,0.3578926781327742,0.35738454265911984,0.35687790868774305,0.35637276931428685,0.35586911767812224,0.3553669469619914,0.3548662503916562,0.3543670212355486,0.3538692528044258,0.35337293845102863,0.352878071569742,0.3523846455962607,0.3518926540072573,0.35140209032005326,0.350912948092294,0.3504252209216265,0.34993890244538023,0.3494539863402516,0.34897046632199097,0.34848833614509295,0.3480075896024895,0.34752822052524657,0.34705022278226294,0.34657359027997264],"x":[1.1,1.103807615230461,1.107615230460922,1.1114228456913828,1.1152304609218437,1.1190380761523047,1.1228456913827656,1.1266533066132265,1.1304609218436874,1.1342685370741483,1.1380761523046092,1.1418837675350701,1.145691382765531,1.149498997995992,1.153306613226453,1.1571142284569138,1.1609218436873747,1.1647294589178356,1.1685370741482966,1.1723446893787575,1.1761523046092184,1.1799599198396793,1.1837675350701402,1.1875751503006011,1.191382765531062,1.195190380761523,1.1989979959919839,1.2028056112224448,1.206613226452906,1.2104208416833668,1.2142284569138277,1.2180360721442887,1.2218436873747496,1.2256513026052105,1.2294589178356714,1.2332665330661323,1.2370741482965932,1.2408817635270541,1.244689378757515,1.248496993987976,1.252304609218437,1.2561122244488978,1.2599198396793587,1.2637274549098196,1.2675350701402806,1.2713426853707415,1.2751503006012024,1.2789579158316633,1.2827655310621242,1.2865731462925851,1.290380761523046,1.294188376753507,1.2979959919839679,1.3018036072144288,1.3056112224448897,1.3094188376753506,1.3132264529058115,1.3170340681362724,1.3208416833667336,1.3246492985971945,1.3284569138276554,1.3322645290581163,1.3360721442885772,1.3398797595190381,1.343687374749499,1.34749498997996,1.351302605210421,1.3551102204408818,1.3589178356713427,1.3627254509018036,1.3665330661322646,1.3703406813627255,1.3741482965931864,1.3779559118236473,1.3817635270541082,1.3855711422845691,1.38937875751503,1.393186372745491,1.3969939879759519,1.4008016032064128,1.4046092184368737,1.4084168336673346,1.4122244488977955,1.4160320641282564,1.4198396793587174,1.4236472945891783,1.4274549098196392,1.4312625250501,1.435070140280561,1.4388777555110221,1.442685370741483,1.446492985971944,1.450300601202405,1.4541082164328658,1.4579158316633267,1.4617234468937876,1.4655310621242486,1.4693386773547095,1.4731462925851704,1.4769539078156313,1.4807615230460922,1.4845691382765531,1.488376753507014,1.492184368737475,1.4959919839679359,1.4997995991983968,1.5036072144288577,1.5074148296593186,1.5112224448897795,1.5150300601202404,1.5188376753507014,1.5226452905811623,1.5264529058116232,1.530260521042084,1.534068136272545,1.537875751503006,1.5416833667334668,1.5454909819639278,1.5492985971943887,1.5531062124248498,1.5569138276553107,1.5607214428857716,1.5645290581162326,1.5683366733466935,1.5721442885771544,1.5759519038076153,1.5797595190380762,1.5835671342685371,1.587374749498998,1.591182364729459,1.5949899799599199,1.5987975951903808,1.6026052104208417,1.6064128256513026,1.6102204408817635,1.6140280561122244,1.6178356713426854,1.6216432865731463,1.6254509018036072,1.629258517034068,1.633066132264529,1.63687374749499,1.6406813627254508,1.6444889779559118,1.6482965931863727,1.6521042084168336,1.6559118236472945,1.6597194388777554,1.6635270541082163,1.6673346693386772,1.6711422845691384,1.6749498997995993,1.6787575150300602,1.6825651302605211,1.686372745490982,1.690180360721443,1.6939879759519039,1.6977955911823648,1.7016032064128257,1.7054108216432866,1.7092184368737475,1.7130260521042084,1.7168336673346694,1.7206412825651303,1.7244488977955912,1.728256513026052,1.732064128256513,1.735871743486974,1.7396793587174348,1.7434869739478958,1.7472945891783567,1.7511022044088176,1.7549098196392785,1.7587174348697394,1.7625250501002003,1.7663326653306612,1.7701402805611222,1.773947895791583,1.777755511022044,1.781563126252505,1.785370741482966,1.789178356713427,1.7929859719438879,1.7967935871743488,1.8006012024048097,1.8044088176352706,1.8082164328657315,1.8120240480961924,1.8158316633266534,1.8196392785571143,1.8234468937875752,1.827254509018036,1.831062124248497,1.834869739478958,1.8386773547094188,1.8424849699398798,1.8462925851703407,1.8501002004008016,1.8539078156312625,1.8577154308617234,1.8615230460921843,1.8653306613226452,1.8691382765531062,1.872945891783567,1.876753507014028,1.880561122244489,1.8843687374749498,1.8881763527054107,1.8919839679358716,1.8957915831663326,1.8995991983967937,1.9034068136272546,1.9072144288577155,1.9110220440881764,1.9148296593186374,1.9186372745490983,1.9224448897795592,1.92625250501002,1.930060120240481,1.933867735470942,1.9376753507014028,1.9414829659318638,1.9452905811623247,1.9490981963927856,1.9529058116232465,1.9567134268537074,1.9605210420841683,1.9643286573146292,1.9681362725450902,1.971943887775551,1.975751503006012,1.979559118236473,1.9833667334669338,1.9871743486973947,1.9909819639278556,1.9947895791583166,1.9985971943887775,2.0024048096192386,2.0062124248496995,2.0100200400801604,2.0138276553106214,2.0176352705410823,2.021442885771543,2.025250501002004,2.029058116232465,2.032865731462926,2.036673346693387,2.0404809619238478,2.0442885771543087,2.0480961923847696,2.0519038076152305,2.0557114228456914,2.0595190380761523,2.0633266533066132,2.067134268537074,2.070941883767535,2.074749498997996,2.078557114228457,2.082364729458918,2.0861723446893787,2.0899799599198396,2.0937875751503006,2.0975951903807615,2.1014028056112224,2.1052104208416833,2.109018036072144,2.112825651302605,2.116633266533066,2.120440881763527,2.124248496993988,2.128056112224449,2.1318637274549097,2.1356713426853706,2.1394789579158315,2.1432865731462925,2.1470941883767534,2.1509018036072143,2.154709418837675,2.158517034068136,2.162324649298597,2.166132264529058,2.169939879759519,2.1737474949899798,2.1775551102204407,2.1813627254509016,2.1851703406813625,2.1889779559118234,2.192785571142285,2.1965931863727457,2.2004008016032066,2.2042084168336675,2.2080160320641284,2.2118236472945894,2.2156312625250503,2.219438877755511,2.223246492985972,2.227054108216433,2.230861723446894,2.234669338677355,2.2384769539078158,2.2422845691382767,2.2460921843687376,2.2498997995991985,2.2537074148296594,2.2575150300601203,2.2613226452905812,2.265130260521042,2.268937875751503,2.272745490981964,2.276553106212425,2.280360721442886,2.2841683366733467,2.2879759519038076,2.2917835671342686,2.2955911823647295,2.2993987975951904,2.3032064128256513,2.307014028056112,2.310821643286573,2.314629258517034,2.318436873747495,2.322244488977956,2.326052104208417,2.3298597194388777,2.3336673346693386,2.3374749498997995,2.3412825651302605,2.3450901803607214,2.3488977955911823,2.352705410821643,2.356513026052104,2.360320641282565,2.364128256513026,2.367935871743487,2.3717434869739478,2.3755511022044087,2.3793587174348696,2.3831663326653305,2.3869739478957914,2.3907815631262523,2.3945891783567133,2.398396793587174,2.402204408817635,2.406012024048096,2.409819639278557,2.413627254509018,2.4174348697394787,2.42124248496994,2.425050100200401,2.428857715430862,2.432665330661323,2.4364729458917838,2.4402805611222447,2.4440881763527056,2.4478957915831665,2.4517034068136274,2.4555110220440883,2.4593186372745492,2.46312625250501,2.466933867735471,2.470741482965932,2.474549098196393,2.478356713426854,2.4821643286573147,2.4859719438877756,2.4897795591182366,2.4935871743486975,2.4973947895791584,2.5012024048096193,2.50501002004008,2.508817635270541,2.512625250501002,2.516432865731463,2.520240480961924,2.524048096192385,2.5278557114228457,2.5316633266533066,2.5354709418837675,2.5392785571142285,2.5430861723446894,2.5468937875751503,2.550701402805611,2.554509018036072,2.558316633266533,2.562124248496994,2.565931863727455,2.5697394789579158,2.5735470941883767,2.5773547094188376,2.5811623246492985,2.5849699398797594,2.5887775551102203,2.5925851703406813,2.596392785571142,2.600200400801603,2.604008016032064,2.607815631262525,2.611623246492986,2.6154308617234467,2.6192384769539077,2.6230460921843686,2.6268537074148295,2.6306613226452904,2.6344689378757513,2.6382765531062122,2.642084168336673,2.645891783567134,2.649699398797595,2.6535070140280563,2.6573146292585172,2.661122244488978,2.664929859719439,2.6687374749499,2.672545090180361,2.676352705410822,2.6801603206412827,2.6839679358717436,2.6877755511022046,2.6915831663326655,2.6953907815631264,2.6991983967935873,2.703006012024048,2.706813627254509,2.71062124248497,2.714428857715431,2.718236472945892,2.722044088176353,2.7258517034068137,2.7296593186372746,2.7334669338677355,2.7372745490981965,2.7410821643286574,2.7448897795591183,2.748697394789579,2.75250501002004,2.756312625250501,2.760120240480962,2.763927855711423,2.7677354709418838,2.7715430861723447,2.7753507014028056,2.7791583166332665,2.7829659318637274,2.7867735470941883,2.7905811623246493,2.79438877755511,2.798196392785571,2.802004008016032,2.805811623246493,2.809619238476954,2.8134268537074147,2.8172344689378757,2.8210420841683366,2.8248496993987975,2.8286573146292584,2.8324649298597193,2.8362725450901802,2.840080160320641,2.843887775551102,2.847695390781563,2.851503006012024,2.855310621242485,2.8591182364729457,2.8629258517034066,2.8667334669338675,2.8705410821643285,2.8743486973947894,2.8781563126252503,2.881963927855711,2.8857715430861726,2.8895791583166335,2.8933867735470944,2.8971943887775553,2.901002004008016,2.904809619238477,2.908617234468938,2.912424849699399,2.91623246492986,2.920040080160321,2.9238476953907817,2.9276553106212426,2.9314629258517035,2.9352705410821645,2.9390781563126254,2.9428857715430863,2.946693386773547,2.950501002004008,2.954308617234469,2.95811623246493,2.961923847695391,2.9657314629258518,2.9695390781563127,2.9733466933867736,2.9771543086172345,2.9809619238476954,2.9847695390781563,2.9885771543086173,2.992384769539078,2.996192384769539,3.0]} \ No newline at end of file diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/runner.jl b/lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/runner.jl new file mode 100644 index 000000000000..f5b9a616de39 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/runner.jl @@ -0,0 +1,76 @@ +#!/usr/bin/env julia +# +# @license Apache-2.0 +# +# Copyright (c) 2018 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import JSON + +""" + gen( x, name ) + +Generate fixture data and write to file. + +# Arguments + +* `x`: domain +* `name::AbstractString`: output filename + +# Examples + +``` julia +julia> x = linspace( -1000, 1000, 2001 ); +julia> gen( x, \"data.json\" ); +``` +""" +function gen( x, name ) + y = acoth( x ); + + # Store data to be written to file as a collection: + data = Dict([ + ("x", x), + ("expected", y) + ]); + + # Based on the script directory, create an output filepath: + filepath = joinpath( dir, name ); + + # Write the data to the output filepath as JSON: + outfile = open( filepath, "w" ); + write( outfile, JSON.json(data) ); + close( outfile ); +end + +# Get the filename: +file = @__FILE__; + +# Extract the directory in which this file resides: +dir = dirname( file ); + +# Positive medium values: +x = linspace( 1.1, 3.0, 503 ); +gen( x, "medium_positive.json" ); + +# Large positive values: +x = linspace( 3.0, 28.0, 503 ); +gen( x, "large_positive.json" ); + +# Larger positive values: +x = linspace( 28.0, 100.0, 503 ); +gen( x, "larger_positive.json" ); + +# Huge positive values: +x = linspace( 1e300, 1e308, 1003 ); +gen( x, "huge_positive.json" ); diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/test/test.js b/lib/node_modules/@stdlib/math/base/special/acoth/test/test.js new file mode 100644 index 000000000000..2d0d33b2de8f --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/acoth/test/test.js @@ -0,0 +1,158 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2018 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var randu = require( '@stdlib/random/base/randu' ); +var EPS = require( '@stdlib/constants/math/float64-eps' ); +var abs = require( '@stdlib/math/base/special/abs' ); +var acoth = require( './../lib' ); + + +// FIXTURES // + +var largerPositive = require( './fixtures/julia/larger_positive.json' ); +var largePositive = require( './fixtures/julia/large_positive.json' ); +var mediumPositive = require( './fixtures/julia/medium_positive.json' ); +var hugePositive = require( './fixtures/julia/huge_positive.json' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.true( typeof acoth, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function computes the inverse hyperbolic cotangent on the interval [2.0,4.0]', function test( t ) { + var expected; + var delta; + var tol; + var x; + var y; + var i; + + x = mediumPositive.x; + expected = mediumPositive.expected; + + for ( i = 0; i < x.length; i++ ) { + y = acoth( x[i] ); + if ( y === expected[ i ] ) { + t.equal( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i] ); + } else { + delta = abs( y - expected[i] ); + tol = 1.0 * EPS * abs( expected[i] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); + } + } + t.end(); +}); + +tape( 'the function computes the inverse hyperbolic cotangent on the interval [4.0,28.0]', function test( t ) { + var expected; + var delta; + var tol; + var x; + var y; + var i; + + x = largePositive.x; + expected = largePositive.expected; + + for ( i = 0; i < x.length; i++ ) { + y = acoth( x[i] ); + if ( y === expected[ i ] ) { + t.equal( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i] ); + } else { + delta = abs( y - expected[i] ); + tol = 1.0 * EPS * abs( expected[i] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); + } + } + t.end(); +}); + +tape( 'the function computes the inverse hyperbolic cotangent on the interval [28.0,100.0]', function test( t ) { + var expected; + var delta; + var tol; + var x; + var y; + var i; + + x = largerPositive.x; + expected = largerPositive.expected; + + for ( i = 0; i < x.length; i++ ) { + y = acoth( x[i] ); + if ( y === expected[ i ] ) { + t.equal( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i] ); + } else { + delta = abs( y - expected[i] ); + tol = 1.0 * EPS * abs( expected[i] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); + } + } + t.end(); +}); + +tape( 'the function computes the inverse hyperbolic cotangent for huge values', function test( t ) { + var expected; + var delta; + var tol; + var x; + var y; + var i; + + x = hugePositive.x; + expected = hugePositive.expected; + + for ( i = 0; i < x.length; i++ ) { + y = acoth( x[i] ); + if ( y === expected[ i ] ) { + t.equal( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i] ); + } else { + delta = abs( y - expected[i] ); + tol = 1.0 * EPS * abs( expected[i] ); + t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); + } + } + t.end(); +}); + +tape( 'the function returns `NaN` if provided `NaN`', function test( t ) { + var v = acoth( NaN ); + t.equal( isnan( v ), true, 'returns NaN' ); + t.end(); +}); + +tape( 'the function returns `NaN` if provided value is in the exclusive range between `-1` and `1`', function test( t ) { + var v; + var i; + + for ( i = -1; i < 1e3; i++ ) { + v = (randu() * 0.99) - 0.99; + t.equal( isnan( acoth( v ) ), true, 'returns NaN when provided '+v ); + } + t.end(); +}); From 1e63c362fb99f1d310904c0e4b6e41117886f8ca Mon Sep 17 00:00:00 2001 From: Bruno Fenzl Date: Tue, 30 Oct 2018 22:53:05 +0100 Subject: [PATCH 2/2] implementing changes after review --- .../@stdlib/math/base/special/acoth/README.md | 2 - .../special/acoth/benchmark/c/cephes/Makefile | 113 -------------- .../acoth/benchmark/c/cephes/benchmark.c | 139 ------------------ .../acoth/benchmark/cpp/boost/Makefile | 110 -------------- .../acoth/benchmark/cpp/boost/benchmark.cpp | 134 ----------------- .../math/base/special/acoth/docs/repl.txt | 4 +- .../base/special/acoth/scripts/accuracy.js | 57 ------- .../acoth/test/fixtures/julia/runner.jl | 4 +- 8 files changed, 4 insertions(+), 559 deletions(-) delete mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/benchmark/c/cephes/Makefile delete mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/benchmark/c/cephes/benchmark.c delete mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/benchmark/cpp/boost/Makefile delete mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/benchmark/cpp/boost/benchmark.cpp delete mode 100644 lib/node_modules/@stdlib/math/base/special/acoth/scripts/accuracy.js diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/README.md b/lib/node_modules/@stdlib/math/base/special/acoth/README.md index c8b6aae7ae92..a69a1207ef94 100644 --- a/lib/node_modules/@stdlib/math/base/special/acoth/README.md +++ b/lib/node_modules/@stdlib/math/base/special/acoth/README.md @@ -35,10 +35,8 @@ var acoth = require( '@stdlib/math/base/special/acoth' ); Computes the [inverse hyperbolic cotangent][inverse-hyperbolic-cotangent] of a `number` (in radians). ```javascript - v = acoth( 2.0 ); // returns ~0.5493 - ``` The domain of `x` is restricted to `[x < -1 || x > 1)`. diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/c/cephes/Makefile b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/c/cephes/Makefile deleted file mode 100644 index 60e93ff57ffd..000000000000 --- a/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/c/cephes/Makefile +++ /dev/null @@ -1,113 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2018 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - - -# VARIABLES # - -ifndef VERBOSE - QUIET := @ -endif - -# Specify the path to Cephes: -CEPHES ?= - -# Specify a list of Cephes source files: -CEPHES_SRC ?= - -# Determine the OS: -# -# [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 -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]: 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 - - -# TARGETS # - -# Default target. -# -# This target is the default target. - -all: $(c_targets) - -.PHONY: all - - -# Compile C source. -# -# This target compiles C source files. - -$(c_targets): %.out: %.c - $(QUIET) $(CC) $(CFLAGS) $(fPIC) -o $@ $(CEPHES_SRC) $< -lm - - -# Run a benchmark. -# -# This target runs a benchmark. - -run: $(c_targets) - $(QUIET) ./$< - -.PHONY: run - - -# Perform clean-up. -# -# This target removes generated files. - -clean: - $(QUIET) -rm -f *.o *.out - -.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/c/cephes/benchmark.c b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/c/cephes/benchmark.c deleted file mode 100644 index 07156d19fff9..000000000000 --- a/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/c/cephes/benchmark.c +++ /dev/null @@ -1,139 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -/** -* Benchmark Cephes `acoth`. -*/ -#include -#include -#include -#include - -#define NAME "acoth" -#define ITERATIONS 1000000 -#define REPEATS 3 - -/** -* Define prototypes for external functions. -*/ -extern double acoth( double x ); - -/** -* Prints the TAP version. -*/ -void print_version() { - printf( "TAP version 13\n" ); -} - -/** -* Prints the TAP summary. -* -* @param total total number of tests -* @param passing total number of passing tests -*/ -void print_summary( int total, int passing ) { - printf( "#\n" ); - printf( "1..%d\n", total ); // TAP plan - printf( "# total %d\n", total ); - printf( "# pass %d\n", passing ); - printf( "#\n" ); - printf( "# ok\n" ); -} - -/** -* Prints benchmarks results. -* -* @param elapsed elapsed time in seconds -*/ -void print_results( double elapsed ) { - double rate = (double)ITERATIONS / elapsed; - printf( " ---\n" ); - printf( " iterations: %d\n", ITERATIONS ); - printf( " elapsed: %0.9f\n", elapsed ); - printf( " rate: %0.9f\n", rate ); - printf( " ...\n" ); -} - -/** -* Returns a clock time. -* -* @return clock time -*/ -double tic() { - struct timeval now; - gettimeofday( &now, NULL ); - return (double)now.tv_sec + (double)now.tv_usec/1.0e6; -} - -/** -* Generates a random double on the interval [0,1]. -* -* @return random double -*/ -double rand_double() { - int r = rand(); - return (double)r / ( (double)RAND_MAX + 1.0 ); -} - -/** -* Runs a benchmark. -* -* @return elapsed time in seconds -*/ -double benchmark() { - double elapsed; - double x; - double y; - double t; - int i; - - t = tic(); - for ( i = 0; i < ITERATIONS; i++ ) { - x = ( 100.0*rand_double() ) + 1.0; - y = acoth( 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::cephes::%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/acoth/benchmark/cpp/boost/Makefile b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/cpp/boost/Makefile deleted file mode 100644 index ba3ed4330d65..000000000000 --- a/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/cpp/boost/Makefile +++ /dev/null @@ -1,110 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2018 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - - -# VARIABLES # - -ifndef VERBOSE - QUIET := @ -endif - -# Specify the path to Boost: -BOOST ?= - -# Determine the OS: -# -# [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 -endif -endif -endif - -# Define the program used for compiling C++ source files: -ifdef CXX_COMPILER - CXX := $(CXX_COMPILER) -else - CXX := g++ -endif - -# Define the command-line options when compiling C++ files: -CXXFLAGS ?= \ - -std=c++11 \ - -O3 \ - -Wall \ - -pedantic - -# Determine whether to generate [position independent code][1]: -# -# [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: -cxx_targets := benchmark.out - - -# TARGETS # - -# Default target. -# -# This target is the default target. - -all: $(cxx_targets) - -.PHONY: all - - -# Compile C++ source. -# -# This target compiles C++ source files. - -$(cxx_targets): %.out: %.cpp $(BOOST) - $(QUIET) $(CXX) $(CXXFLAGS) $(fPIC) -I $(BOOST) -o $@ $< -lm - - -# Run a benchmark. -# -# This target runs a benchmark. - -run: $(cxx_targets) - $(QUIET) ./$< - -.PHONY: run - - -# Perform clean-up. -# -# This target removes generated files. - -clean: - $(QUIET) -rm -f *.o *.out - -.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/cpp/boost/benchmark.cpp b/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/cpp/boost/benchmark.cpp deleted file mode 100644 index 57c8d9bdb771..000000000000 --- a/lib/node_modules/@stdlib/math/base/special/acoth/benchmark/cpp/boost/benchmark.cpp +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -/** -* Benchmark Boost `acoth`. -*/ -#include -#include -#include -#include -#include -#include -#include - -using boost::random::uniform_real_distribution; -using boost::random::mt19937; - -#define NAME "acoth" -#define ITERATIONS 1000000 -#define REPEATS 3 - -/** -* Prints the TAP version. -*/ -void print_version() { - printf( "TAP version 13\n" ); -} - -/** -* Prints the TAP summary. -* -* @param total total number of tests -* @param passing total number of passing tests -*/ -void print_summary( int total, int passing ) { - printf( "#\n" ); - printf( "1..%d\n", total ); // TAP plan - printf( "# total %d\n", total ); - printf( "# pass %d\n", passing ); - printf( "#\n" ); - printf( "# ok\n" ); -} - -/** -* Prints benchmarks results. -* -* @param elapsed elapsed time in seconds -*/ -void print_results( double elapsed ) { - double rate = (double)ITERATIONS / elapsed; - printf( " ---\n" ); - printf( " iterations: %d\n", ITERATIONS ); - printf( " elapsed: %0.9f\n", elapsed ); - printf( " rate: %0.9f\n", rate ); - printf( " ...\n" ); -} - -/** -* Returns a clock time. -* -* @return clock time -*/ -double tic() { - struct timeval now; - gettimeofday( &now, NULL ); - return (double)now.tv_sec + (double)now.tv_usec/1.0e6; -} - -/** -* Runs a benchmark. -* -* @return elapsed time in seconds -*/ -double benchmark() { - double elapsed; - double x; - double y; - double t; - int i; - - // Define a new pseudorandom number generator: - mt19937 rng; - - // Define a uniform distribution for generating pseudorandom numbers as "doubles" between a minimum value (inclusive) and a maximum value (exclusive): - uniform_real_distribution<> randu( 1.0, 101.0 ); - - t = tic(); - for ( i = 0; i < ITERATIONS; i++ ) { - x = randu( rng ); - y = boost::math::acoth( 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; - - print_version(); - for ( i = 0; i < REPEATS; i++ ) { - printf( "# cpp::boost::%s\n", NAME ); - elapsed = benchmark(); - print_results( elapsed ); - printf( "ok %d benchmark finished\n", i+1 ); - } - print_summary( REPEATS, REPEATS ); - return 0; -} diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/docs/repl.txt b/lib/node_modules/@stdlib/math/base/special/acoth/docs/repl.txt index 1efe03c58e7f..825ba805879c 100644 --- a/lib/node_modules/@stdlib/math/base/special/acoth/docs/repl.txt +++ b/lib/node_modules/@stdlib/math/base/special/acoth/docs/repl.txt @@ -20,9 +20,9 @@ -------- > var y = {{alias}}( 0.0 ) NaN - > var y = {{alias}}( 0.5 ) + > y = {{alias}}( 0.5 ) NaN - > var y = {{alias}}( 1.0 ) + > y = {{alias}}( 1.0 ) Infinity > y = {{alias}}( 2.0 ) ~0.5493 diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/scripts/accuracy.js b/lib/node_modules/@stdlib/math/base/special/acoth/scripts/accuracy.js deleted file mode 100644 index 31d05063162b..000000000000 --- a/lib/node_modules/@stdlib/math/base/special/acoth/scripts/accuracy.js +++ /dev/null @@ -1,57 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// TODO: clean-up - -// MODULES // - -var divide = require( 'compute-divide' ); -var mean = require( 'compute-mean' ); -var subtract = require( 'compute-subtract' ); -var abs = require( '@stdlib/math/base/special/abs' ); -var acoth = require( './../lib' ); - - -// FIXTURES // - -var data = require( './fixtures/julia/data.json' ); - - -// MAIN // - -var customErrs; -var yexpected; -var ycustom; -var x; -var i; - -x = data.x; -yexpected = data.expected; -ycustom = new Array( x.length ); -for ( i = 0; i < x.length; i++ ) { - if ( yexpected[ i ] === 0.0 ) { - yexpected[ i ] += 1e-16; - } - ycustom[ i ] = acoth( x[ i ] ); -} - -customErrs = abs( divide( subtract( ycustom, yexpected ), yexpected ) ); - -console.log( 'The mean relative error of this module compared to Julia is %d', mean( customErrs ) ); diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/runner.jl b/lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/runner.jl index f5b9a616de39..e890b0408c96 100644 --- a/lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/runner.jl +++ b/lib/node_modules/@stdlib/math/base/special/acoth/test/fixtures/julia/runner.jl @@ -31,7 +31,7 @@ Generate fixture data and write to file. # Examples ``` julia -julia> x = linspace( -1000, 1000, 2001 ); +julia> x = linspace( -1000.0, 1000.0, 2001 ); julia> gen( x, \"data.json\" ); ``` """ @@ -72,5 +72,5 @@ x = linspace( 28.0, 100.0, 503 ); gen( x, "larger_positive.json" ); # Huge positive values: -x = linspace( 1e300, 1e308, 1003 ); +x = linspace( 1.0e300, 1.0e308, 1003 ); gen( x, "huge_positive.json" );