diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/LICENSE b/lib/node_modules/@stdlib/math/base/special/exp2f/LICENSE new file mode 100644 index 000000000000..3e825d2f4fbe --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/LICENSE @@ -0,0 +1,196 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + +DEPENDENCIES & ATTRIBUTION + +The library links against the following external libraries or contains +implementations from the following external libraries, which have their own +licenses: + +* Cephes + +Copyright (c) 1984-2000 Stephen L. Moshier + +Some software in this archive may be from the book _Methods and Programs for +Mathematical Functions_ (Prentice-Hall or Simon & Schuster International, 1989) +or from the Cephes Mathematical Library, a commercial product. In either event, +it is copyrighted by the author. What you see here may be used freely but it +comes with no support or guarantee. + +Stephen L. Moshier +moshier@na-net.ornl.gov diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/README.md b/lib/node_modules/@stdlib/math/base/special/exp2f/README.md new file mode 100644 index 000000000000..5d9ec32db50a --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/README.md @@ -0,0 +1,187 @@ + + +# exp2f + +> Base `2` [exponential function][exponential-function] in single-precision floating-point format. + +
+ +## Usage + +```javascript +var exp2f = require( '@stdlib/math/base/special/exp2f' ); +``` + +#### exp2f( x ) + +Evaluates the base `2` [exponential function][exponential-function] in single-precision floating-point format. + +```javascript +var v = exp2f( 3.0 ); +// returns 8.0 + +v = exp2f( -9.0 ); +// returns ~0.002 + +v = exp2f( 0.0 ); +// returns 1.0 + +v = exp2f( NaN ); +// returns NaN +``` + +
+ + + +
+ +## Examples + + + +```javascript +var logEachMap = require( '@stdlib/console/log-each-map' ); +var randu = require( '@stdlib/random/array/uniform' ); +var exp2f = require( '@stdlib/math/base/special/exp2f' ); + +var x = randu( 100, -50.0, 50.0, { + 'dtype': 'float32' +}); + +logEachMap( '2^%d = %d', x, exp2f ); +``` + +
+ + + + + +* * * + +
+ +## C APIs + + + +
+ +
+ + + + + +
+ +### Usage + +```c +#include "stdlib/math/base/special/exp2f.h" +``` + +#### stdlib_base_exp2f( x ) + +Evaluates the base `2` [exponential function][exponential-function] in single-precision floating-point format. + +```c +float out = stdlib_base_exp2f( 3.0f ); +// returns 8.0f + +out = stdlib_base_exp2f( -9.0f ); +// returns ~0.002f +``` + +The function accepts the following arguments: + +- **x**: `[in] float` input value. + +```c +float stdlib_base_exp2f( const float x ); +``` + +
+ + + + + +
+ +
+ + + + + +
+ +### Examples + +```c +#include "stdlib/math/base/special/exp2f.h" +#include +#include + +int main( void ) { + float x; + float v; + int i; + + for ( i = 0; i < 100; i++ ) { + x = ( ( (float)rand() / (float)RAND_MAX ) * 100.0f ) - 50.0f; + v = stdlib_base_exp2f( x ); + printf( "2^%f = %f\n", x, v ); + } +} +``` + +
+ + + +
+ + + + + + + + + + + + + + diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/benchmark/benchmark.js b/lib/node_modules/@stdlib/math/base/special/exp2f/benchmark/benchmark.js new file mode 100644 index 000000000000..a9c12f43aff6 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/benchmark/benchmark.js @@ -0,0 +1,54 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var bench = require( '@stdlib/bench' ); +var uniform = require( '@stdlib/random/array/uniform' ); +var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var pkg = require( './../package.json' ).name; +var exp2f = require( './../lib' ); + + +// MAIN // + +bench( pkg, function benchmark( b ) { + var x; + var y; + var i; + + x = uniform( 10, -120.0, 120.0, { + 'dtype': 'generic' + }); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = exp2f( x[ i % x.length ] ); + if ( isnanf( y ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnanf( y ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/math/base/special/exp2f/benchmark/benchmark.native.js new file mode 100644 index 000000000000..d8322e0bb5c1 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/benchmark/benchmark.native.js @@ -0,0 +1,63 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var resolve = require( 'path' ).resolve; +var bench = require( '@stdlib/bench' ); +var uniform = require( '@stdlib/random/array/uniform' ); +var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var tryRequire = require( '@stdlib/utils/try-require' ); +var pkg = require( './../package.json' ).name; + + +// VARIABLES // + +var exp2f = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( exp2f instanceof Error ) +}; + + +// MAIN // + +bench( pkg+'::native', opts, function benchmark( b ) { + var x; + var y; + var i; + + x = uniform( 10, -1022.0, 1022.0, { + 'dtype': 'generic' + }); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = exp2f( x[ i%x.length ] ); + if ( isnanf( y ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnanf( y ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/benchmark/c/Makefile b/lib/node_modules/@stdlib/math/base/special/exp2f/benchmark/c/Makefile new file mode 100644 index 000000000000..d564e8b2d6f9 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/benchmark/c/Makefile @@ -0,0 +1,127 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2025 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + +# Define the program used for compiling C source files: +ifdef C_COMPILER + CC := $(C_COMPILER) +else + CC := gcc +endif + +# Define the command-line options when compiling C files: +CFLAGS ?= \ + -std=c99 \ + -O3 \ + -Wall \ + -pedantic + +# Determine whether to generate position independent code ([1][1], [2][2]). +# +# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options +# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option +ifeq ($(OS), WINNT) + fPIC ?= +else + fPIC ?= -fPIC +endif + +# List of C targets: +c_targets := benchmark.out + + +# RULES # + +#/ +# Compiles C source files. +# +# @param {string} [C_COMPILER] - C compiler +# @param {string} [CFLAGS] - C compiler flags +# @param {(string|void)} [fPIC] - compiler flag indicating whether to generate position independent code +# +# @example +# make +# +# @example +# make all +#/ +all: $(c_targets) + +.PHONY: all + +#/ +# Compiles C source files. +# +# @private +# @param {string} CC - C compiler +# @param {string} CFLAGS - C compiler flags +# @param {(string|void)} fPIC - compiler flag indicating whether to generate position independent code +#/ +$(c_targets): %.out: %.c + $(QUIET) $(CC) $(CFLAGS) $(fPIC) -o $@ $< -lm + +#/ +# Runs compiled benchmarks. +# +# @example +# make run +#/ +run: $(c_targets) + $(QUIET) ./$< + +.PHONY: run + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/benchmark/c/benchmark.c b/lib/node_modules/@stdlib/math/base/special/exp2f/benchmark/c/benchmark.c new file mode 100644 index 000000000000..9c8a7f4726fa --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/benchmark/c/benchmark.c @@ -0,0 +1,134 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include +#include +#include +#include +#include + +#define NAME "exp2f" +#define ITERATIONS 1000000 +#define REPEATS 3 + +/** +* Prints the TAP version. +*/ +static void print_version( void ) { + printf( "TAP version 13\n" ); +} + +/** +* Prints the TAP summary. +* +* @param total total number of tests +* @param passing total number of passing tests +*/ +static void print_summary( int total, int passing ) { + printf( "#\n" ); + printf( "1..%d\n", total ); // TAP plan + printf( "# total %d\n", total ); + printf( "# pass %d\n", passing ); + printf( "#\n" ); + printf( "# ok\n" ); +} + +/** +* Prints benchmarks results. +* +* @param elapsed elapsed time in seconds +*/ +static void print_results( double elapsed ) { + double rate = (double)ITERATIONS / elapsed; + printf( " ---\n" ); + printf( " iterations: %d\n", ITERATIONS ); + printf( " elapsed: %0.9f\n", elapsed ); + printf( " rate: %0.9f\n", rate ); + printf( " ...\n" ); +} + +/** +* Returns a clock time. +* +* @return clock time +*/ +static double tic( void ) { + struct timeval now; + gettimeofday( &now, NULL ); + return (double)now.tv_sec + (double)now.tv_usec/1.0e6; +} + +/** +* Generates a random number on the interval [0,1). +* +* @return random number +*/ +static float rand_float( void ) { + int r = rand(); + return (float)r / ( (float)RAND_MAX + 1.0f ); +} + +/** +* Runs a benchmark. +* +* @return elapsed time in seconds +*/ +static double benchmark( void ) { + double elapsed; + float x[ 10 ]; + double t; + float y; + int i; + + for ( i = 0; i < 10; i++ ) { + x[ i ] = ( 240.0f * rand_float() ) - 120.0f; + } + t = tic(); + for ( i = 0; i < ITERATIONS; i++ ) { + y = exp2f( x[ i % 10 ] ); + 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/exp2f/benchmark/c/native/Makefile b/lib/node_modules/@stdlib/math/base/special/exp2f/benchmark/c/native/Makefile new file mode 100644 index 000000000000..a4bd7b38fd74 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/benchmark/c/native/Makefile @@ -0,0 +1,146 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2025 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + +# Define the program used for compiling C source files: +ifdef C_COMPILER + CC := $(C_COMPILER) +else + CC := gcc +endif + +# Define the command-line options when compiling C files: +CFLAGS ?= \ + -std=c99 \ + -O3 \ + -Wall \ + -pedantic + +# Determine whether to generate position independent code ([1][1], [2][2]). +# +# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options +# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option +ifeq ($(OS), WINNT) + fPIC ?= +else + fPIC ?= -fPIC +endif + +# List of includes (e.g., `-I /foo/bar -I /beep/boop/include`): +INCLUDE ?= + +# List of source files: +SOURCE_FILES ?= + +# List of libraries (e.g., `-lopenblas -lpthread`): +LIBRARIES ?= + +# List of library paths (e.g., `-L /foo/bar -L /beep/boop`): +LIBPATH ?= + +# List of C targets: +c_targets := benchmark.out + + +# RULES # + +#/ +# Compiles source files. +# +# @param {string} [C_COMPILER] - C compiler (e.g., `gcc`) +# @param {string} [CFLAGS] - C compiler options +# @param {(string|void)} [fPIC] - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} [INCLUDE] - list of includes (e.g., `-I /foo/bar -I /beep/boop/include`) +# @param {string} [SOURCE_FILES] - list of source files +# @param {string} [LIBPATH] - list of library paths (e.g., `-L /foo/bar -L /beep/boop`) +# @param {string} [LIBRARIES] - list of libraries (e.g., `-lopenblas -lpthread`) +# +# @example +# make +# +# @example +# make all +#/ +all: $(c_targets) + +.PHONY: all + +#/ +# Compiles C source files. +# +# @private +# @param {string} CC - C compiler (e.g., `gcc`) +# @param {string} CFLAGS - C compiler options +# @param {(string|void)} fPIC - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} INCLUDE - list of includes (e.g., `-I /foo/bar`) +# @param {string} SOURCE_FILES - list of source files +# @param {string} LIBPATH - list of library paths (e.g., `-L /foo/bar`) +# @param {string} LIBRARIES - list of libraries (e.g., `-lopenblas`) +#/ +$(c_targets): %.out: %.c + $(QUIET) $(CC) $(CFLAGS) $(fPIC) $(INCLUDE) -o $@ $(SOURCE_FILES) $< $(LIBPATH) -lm $(LIBRARIES) + +#/ +# Runs compiled benchmarks. +# +# @example +# make run +#/ +run: $(c_targets) + $(QUIET) ./$< + +.PHONY: run + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/benchmark/c/native/benchmark.c b/lib/node_modules/@stdlib/math/base/special/exp2f/benchmark/c/native/benchmark.c new file mode 100644 index 000000000000..1857ebd5fa25 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/benchmark/c/native/benchmark.c @@ -0,0 +1,135 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "stdlib/math/base/special/exp2f.h" +#include +#include +#include +#include +#include + +#define NAME "exp2f" +#define ITERATIONS 1000000 +#define REPEATS 3 + +/** +* Prints the TAP version. +*/ +static void print_version( void ) { + printf( "TAP version 13\n" ); +} + +/** +* Prints the TAP summary. +* +* @param total total number of tests +* @param passing total number of passing tests +*/ +static void print_summary( int total, int passing ) { + printf( "#\n" ); + printf( "1..%d\n", total ); // TAP plan + printf( "# total %d\n", total ); + printf( "# pass %d\n", passing ); + printf( "#\n" ); + printf( "# ok\n" ); +} + +/** +* Prints benchmarks results. +* +* @param elapsed elapsed time in seconds +*/ +static void print_results( double elapsed ) { + double rate = (double)ITERATIONS / elapsed; + printf( " ---\n" ); + printf( " iterations: %d\n", ITERATIONS ); + printf( " elapsed: %0.9f\n", elapsed ); + printf( " rate: %0.9f\n", rate ); + printf( " ...\n" ); +} + +/** +* Returns a clock time. +* +* @return clock time +*/ +static double tic( void ) { + struct timeval now; + gettimeofday( &now, NULL ); + return (double)now.tv_sec + (double)now.tv_usec/1.0e6; +} + +/** +* Generates a random number on the interval [0,1). +* +* @return random number +*/ +static float rand_float( void ) { + int r = rand(); + return (float)r / ( (float)RAND_MAX + 1.0f ); +} + +/** +* Runs a benchmark. +* +* @return elapsed time in seconds +*/ +static double benchmark( void ) { + double elapsed; + float x[ 10 ]; + double t; + float y; + int i; + + for ( i = 0; i < 10; i++ ) { + x[ i ] = ( 240.0f * rand_float() ) - 120.0f; + } + t = tic(); + for ( i = 0; i < ITERATIONS; i++ ) { + y = stdlib_base_exp2f( x[ i % 10 ] ); + if ( y != y ) { + printf( "should not return NaN\n" ); + break; + } + } + elapsed = tic() - t; + if ( y != y ) { + printf( "should not return NaN\n" ); + } + return elapsed; +} + +/** +* Main execution sequence. +*/ +int main( void ) { + double elapsed; + int i; + + // Use the current time to seed the random number generator: + srand( time( NULL ) ); + + print_version(); + for ( i = 0; i < REPEATS; i++ ) { + printf( "# c::native::%s\n", NAME ); + elapsed = benchmark(); + print_results( elapsed ); + printf( "ok %d benchmark finished\n", i+1 ); + } + print_summary( REPEATS, REPEATS ); +} diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/benchmark/julia/REQUIRE b/lib/node_modules/@stdlib/math/base/special/exp2f/benchmark/julia/REQUIRE new file mode 100644 index 000000000000..98645e192e41 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/benchmark/julia/REQUIRE @@ -0,0 +1,2 @@ +julia 1.5 +BenchmarkTools 0.5.0 diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/benchmark/julia/benchmark.jl b/lib/node_modules/@stdlib/math/base/special/exp2f/benchmark/julia/benchmark.jl new file mode 100755 index 000000000000..8a0cf794c69e --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/benchmark/julia/benchmark.jl @@ -0,0 +1,144 @@ +#!/usr/bin/env julia +# +# @license Apache-2.0 +# +# Copyright (c) 2025 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import BenchmarkTools +using Printf + +# Benchmark variables: +name = "exp2f"; +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 Float32.( exp2( Float32.((240.0*rand())) - 120.0 ) ) samples=1e6 + + # Compute the total "elapsed" time and convert from nanoseconds to seconds: + s = sum( t.times ) / 1.0e9; + + # Determine the number of "iterations": + iter = length( t.times ); + + # Return the results: + [ iter, s ]; +end + +""" + main() + +Run benchmarks. + +# Examples + +``` julia +julia> main(); +``` +""" +function main() + print_version(); + for i in 1:repeats + @printf( "# julia::%s\n", name ); + results = benchmark(); + print_results( results[ 1 ], results[ 2 ] ); + @printf( "ok %d benchmark finished\n", i ); + end + print_summary( repeats, repeats ); +end + +main(); diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/binding.gyp b/lib/node_modules/@stdlib/math/base/special/exp2f/binding.gyp new file mode 100644 index 000000000000..68a1ca11d160 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/binding.gyp @@ -0,0 +1,170 @@ +# @license Apache-2.0 +# +# Copyright (c) 2025 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# A `.gyp` file for building a Node.js native add-on. +# +# [1]: https://gyp.gsrc.io/docs/InputFormatReference.md +# [2]: https://gyp.gsrc.io/docs/UserDocumentation.md +{ + # List of files to include in this file: + 'includes': [ + './include.gypi', + ], + + # Define variables to be used throughout the configuration for all targets: + 'variables': { + # Target name should match the add-on export name: + 'addon_target_name%': 'addon', + + # Set variables based on the host OS: + 'conditions': [ + [ + 'OS=="win"', + { + # Define the object file suffix: + 'obj': 'obj', + }, + { + # Define the object file suffix: + 'obj': 'o', + } + ], # end condition (OS=="win") + ], # end conditions + }, # end variables + + # Define compile targets: + 'targets': [ + + # Target to generate an add-on: + { + # The target name should match the add-on export name: + 'target_name': '<(addon_target_name)', + + # Define dependencies: + 'dependencies': [], + + # Define directories which contain relevant include headers: + 'include_dirs': [ + # Local include directory: + '<@(include_dirs)', + ], + + # List of source files: + 'sources': [ + '<@(src_files)', + ], + + # Settings which should be applied when a target's object files are used as linker input: + 'link_settings': { + # Define libraries: + 'libraries': [ + '<@(libraries)', + ], + + # Define library directories: + 'library_dirs': [ + '<@(library_dirs)', + ], + }, + + # C/C++ compiler flags: + 'cflags': [ + # Enable commonly used warning options: + '-Wall', + + # Aggressive optimization: + '-O3', + ], + + # C specific compiler flags: + 'cflags_c': [ + # Specify the C standard to which a program is expected to conform: + '-std=c99', + ], + + # C++ specific compiler flags: + 'cflags_cpp': [ + # Specify the C++ standard to which a program is expected to conform: + '-std=c++11', + ], + + # Linker flags: + 'ldflags': [], + + # Apply conditions based on the host OS: + 'conditions': [ + [ + 'OS=="mac"', + { + # Linker flags: + 'ldflags': [ + '-undefined dynamic_lookup', + '-Wl,-no-pie', + '-Wl,-search_paths_first', + ], + }, + ], # end condition (OS=="mac") + [ + 'OS!="win"', + { + # C/C++ flags: + 'cflags': [ + # Generate platform-independent code: + '-fPIC', + ], + }, + ], # end condition (OS!="win") + ], # end conditions + }, # end target <(addon_target_name) + + # Target to copy a generated add-on to a standard location: + { + 'target_name': 'copy_addon', + + # Declare that the output of this target is not linked: + 'type': 'none', + + # Define dependencies: + 'dependencies': [ + # Require that the add-on be generated before building this target: + '<(addon_target_name)', + ], + + # Define a list of actions: + 'actions': [ + { + 'action_name': 'copy_addon', + 'message': 'Copying addon...', + + # Explicitly list the inputs in the command-line invocation below: + 'inputs': [], + + # Declare the expected outputs: + 'outputs': [ + '<(addon_output_dir)/<(addon_target_name).node', + ], + + # Define the command-line invocation: + 'action': [ + 'cp', + '<(PRODUCT_DIR)/<(addon_target_name).node', + '<(addon_output_dir)/<(addon_target_name).node', + ], + }, + ], # end actions + }, # end target copy_addon + ], # end targets +} diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/docs/repl.txt b/lib/node_modules/@stdlib/math/base/special/exp2f/docs/repl.txt new file mode 100644 index 000000000000..97e31055ecb7 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/docs/repl.txt @@ -0,0 +1,29 @@ + +{{alias}}( x ) + Evaluates the base 2 exponential function in single-precision + floating-point format. + + Parameters + ---------- + x: number + Input value. + + Returns + ------- + y: number + Function value. + + Examples + -------- + > var y = {{alias}}( 3.0 ) + 8.0 + > y = {{alias}}( -9.0 ) + ~0.002 + > y = {{alias}}( 0.0 ) + 1.0 + > y = {{alias}}( NaN ) + NaN + + See Also + -------- + diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/docs/types/index.d.ts b/lib/node_modules/@stdlib/math/base/special/exp2f/docs/types/index.d.ts new file mode 100644 index 000000000000..4bfa74e943cf --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/docs/types/index.d.ts @@ -0,0 +1,48 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +// TypeScript Version: 4.1 + +/** +* Evaluates the base 2 exponential function in single-precision floating-point format. +* +* @param x - input value +* @returns function value +* +* @example +* var v = exp2f( 3.0 ); +* // returns 8.0 +* +* @example +* var v = exp2f( -9.0 ); +* // returns ~0.002 +* +* @example +* var v = exp2f( 0.0 ); +* // returns 1.0 +* +* @example +* var v = exp2f( NaN ); +* // returns NaN +*/ +declare function exp2f( x: number ): number; + + +// EXPORTS // + +export = exp2f; diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/docs/types/test.ts b/lib/node_modules/@stdlib/math/base/special/exp2f/docs/types/test.ts new file mode 100644 index 000000000000..4e21aa59d8f6 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/docs/types/test.ts @@ -0,0 +1,44 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* 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 exp2f = require( './index' ); + + +// TESTS // + +// The function returns a number... +{ + exp2f( 0.5 ); // $ExpectType number +} + +// The compiler throws an error if the function is provided a value other than a number... +{ + exp2f( true ); // $ExpectError + exp2f( false ); // $ExpectError + exp2f( null ); // $ExpectError + exp2f( undefined ); // $ExpectError + exp2f( '5' ); // $ExpectError + exp2f( [] ); // $ExpectError + exp2f( {} ); // $ExpectError + exp2f( ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function is provided insufficient arguments... +{ + exp2f(); // $ExpectError +} diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/examples/c/Makefile b/lib/node_modules/@stdlib/math/base/special/exp2f/examples/c/Makefile new file mode 100644 index 000000000000..25ced822f96a --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/examples/c/Makefile @@ -0,0 +1,146 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2025 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + +# Define the program used for compiling C source files: +ifdef C_COMPILER + CC := $(C_COMPILER) +else + CC := gcc +endif + +# Define the command-line options when compiling C files: +CFLAGS ?= \ + -std=c99 \ + -O3 \ + -Wall \ + -pedantic + +# Determine whether to generate position independent code ([1][1], [2][2]). +# +# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options +# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option +ifeq ($(OS), WINNT) + fPIC ?= +else + fPIC ?= -fPIC +endif + +# List of includes (e.g., `-I /foo/bar -I /beep/boop/include`): +INCLUDE ?= + +# List of source files: +SOURCE_FILES ?= + +# List of libraries (e.g., `-lopenblas -lpthread`): +LIBRARIES ?= + +# List of library paths (e.g., `-L /foo/bar -L /beep/boop`): +LIBPATH ?= + +# List of C targets: +c_targets := example.out + + +# RULES # + +#/ +# Compiles source files. +# +# @param {string} [C_COMPILER] - C compiler (e.g., `gcc`) +# @param {string} [CFLAGS] - C compiler options +# @param {(string|void)} [fPIC] - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} [INCLUDE] - list of includes (e.g., `-I /foo/bar -I /beep/boop/include`) +# @param {string} [SOURCE_FILES] - list of source files +# @param {string} [LIBPATH] - list of library paths (e.g., `-L /foo/bar -L /beep/boop`) +# @param {string} [LIBRARIES] - list of libraries (e.g., `-lopenblas -lpthread`) +# +# @example +# make +# +# @example +# make all +#/ +all: $(c_targets) + +.PHONY: all + +#/ +# Compiles C source files. +# +# @private +# @param {string} CC - C compiler (e.g., `gcc`) +# @param {string} CFLAGS - C compiler options +# @param {(string|void)} fPIC - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} INCLUDE - list of includes (e.g., `-I /foo/bar`) +# @param {string} SOURCE_FILES - list of source files +# @param {string} LIBPATH - list of library paths (e.g., `-L /foo/bar`) +# @param {string} LIBRARIES - list of libraries (e.g., `-lopenblas`) +#/ +$(c_targets): %.out: %.c + $(QUIET) $(CC) $(CFLAGS) $(fPIC) $(INCLUDE) -o $@ $(SOURCE_FILES) $< $(LIBPATH) -lm $(LIBRARIES) + +#/ +# Runs compiled examples. +# +# @example +# make run +#/ +run: $(c_targets) + $(QUIET) ./$< + +.PHONY: run + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/examples/c/example.c b/lib/node_modules/@stdlib/math/base/special/exp2f/examples/c/example.c new file mode 100644 index 000000000000..699d66ff8019 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/examples/c/example.c @@ -0,0 +1,33 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "stdlib/math/base/special/exp2f.h" +#include +#include + +int main( void ) { + float x; + float v; + int i; + + for ( i = 0; i < 100; i++ ) { + x = ( ( (float)rand() / (float)RAND_MAX ) * 100.0f ) - 50.0f; + v = stdlib_base_exp2f( x ); + printf( "2^%f = %f\n", x, v ); + } +} diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/examples/index.js b/lib/node_modules/@stdlib/math/base/special/exp2f/examples/index.js new file mode 100644 index 000000000000..f56db6ba5e93 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/examples/index.js @@ -0,0 +1,29 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* 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 logEachMap = require( '@stdlib/console/log-each-map' ); +var randu = require( '@stdlib/random/array/uniform' ); +var exp2f = require( './../lib' ); + +var x = randu( 100, -50.0, 50.0, { + 'dtype': 'float32' +}); + +logEachMap( '2^%d = %d', x, exp2f ); diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/include.gypi b/lib/node_modules/@stdlib/math/base/special/exp2f/include.gypi new file mode 100644 index 000000000000..ecfaf82a3279 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/include.gypi @@ -0,0 +1,53 @@ +# @license Apache-2.0 +# +# Copyright (c) 2025 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# A GYP include file for building a Node.js native add-on. +# +# Main documentation: +# +# [1]: https://gyp.gsrc.io/docs/InputFormatReference.md +# [2]: https://gyp.gsrc.io/docs/UserDocumentation.md +{ + # Define variables to be used throughout the configuration for all targets: + 'variables': { + # Source directory: + 'src_dir': './src', + + # Include directories: + 'include_dirs': [ + ' FLOAT32_MAX_BASE2_EXPONENT ) { + return PINF; + } + if ( x < FLOAT32_MIN_BASE2_EXPONENT ) { + return 0.0; + } + + if ( x === 0.0 ) { + return 1.0; + } + + // Separate into integer and fractional parts... + n = float64ToFloat32( roundf( x ) ); + x -= float64ToFloat32( n ); + + xx = float64ToFloat32( x * x ); + px = float64ToFloat32( x * polyvalP( xx ) ); + x = float64ToFloat32( px / float64ToFloat32( ( polyvalQ( xx ) - px ) ) ); + x = float64ToFloat32( 1.0 ) + ldexpf( x, 1 ); + + // Scale by power of 2: + return float64ToFloat32( ldexpf( x, n ) ); +} + + +// EXPORTS // + +module.exports = exp2f; diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/lib/native.js b/lib/node_modules/@stdlib/math/base/special/exp2f/lib/native.js new file mode 100644 index 000000000000..fe35c26bd9e0 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/lib/native.js @@ -0,0 +1,58 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* 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 addon = require( './../src/addon.node' ); + + +// MAIN // + +/** +* Evaluates the base `2` exponential function. +* +* @private +* @param {number} x - input value +* @returns {number} function value +* +* @example +* var v = exp2f( 3.0 ); +* // returns 8.0 +* +* @example +* var v = exp2f( -9.0 ); +* // returns ~0.002 +* +* @example +* var v = exp2f( 0.0 ); +* // returns 1.0 +* +* @example +* var v = exp2f( NaN ); +* // returns NaN +*/ +function exp2f( x ) { + return addon( x ); +} + + +// EXPORTS // + +module.exports = exp2f; diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/lib/polyval_p.js b/lib/node_modules/@stdlib/math/base/special/exp2f/lib/polyval_p.js new file mode 100644 index 000000000000..c6249538df2d --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/lib/polyval_p.js @@ -0,0 +1,47 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* 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. +*/ + +/* This is a generated file. Do not edit directly. */ +'use strict'; + +// MAIN // + +/** +* Evaluates a polynomial. +* +* ## Notes +* +* - The implementation uses [Horner's rule][horners-method] for efficient computation. +* +* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method +* +* @private +* @param {number} x - value at which to evaluate the polynomial +* @returns {number} evaluated polynomial +*/ +function evalpoly( x ) { + if ( x === 0.0 ) { + return 1513.906801156151; + } + return 1513.906801156151 + (x * (20.202065669316532 + (x * 0.023093347705734523))); // eslint-disable-line max-len +} + + +// EXPORTS // + +module.exports = evalpoly; diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/lib/polyval_q.js b/lib/node_modules/@stdlib/math/base/special/exp2f/lib/polyval_q.js new file mode 100644 index 000000000000..6fe233153725 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/lib/polyval_q.js @@ -0,0 +1,47 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* 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. +*/ + +/* This is a generated file. Do not edit directly. */ +'use strict'; + +// MAIN // + +/** +* Evaluates a polynomial. +* +* ## Notes +* +* - The implementation uses [Horner's rule][horners-method] for efficient computation. +* +* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method +* +* @private +* @param {number} x - value at which to evaluate the polynomial +* @returns {number} evaluated polynomial +*/ +function evalpoly( x ) { + if ( x === 0.0 ) { + return 4368.211668792106; + } + return 4368.211668792106 + (x * (233.1842117223149 + (x * 1.0))); +} + + +// EXPORTS // + +module.exports = evalpoly; diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/manifest.json b/lib/node_modules/@stdlib/math/base/special/exp2f/manifest.json new file mode 100644 index 000000000000..13a36410b49e --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/manifest.json @@ -0,0 +1,111 @@ +{ + "options": { + "task": "build", + "wasm": false + }, + "fields": [ + { + "field": "src", + "resolve": true, + "relative": true + }, + { + "field": "include", + "resolve": true, + "relative": true + }, + { + "field": "libraries", + "resolve": false, + "relative": false + }, + { + "field": "libpath", + "resolve": true, + "relative": false + } + ], + "confs": [ + { + "task": "build", + "wasm": false, + "src": [ + "./src/main.c" + ], + "include": [ + "./include" + ], + "libraries": [], + "libpath": [], + "dependencies": [ + "@stdlib/math/base/napi/unary", + "@stdlib/math/base/assert/is-nanf", + "@stdlib/constants/float32/max-base2-exponent", + "@stdlib/constants/float32/pinf", + "@stdlib/math/base/special/roundf", + "@stdlib/math/base/special/ldexpf", + "@stdlib/constants/float32/min-base2-exponent" + ] + }, + { + "task": "benchmark", + "wasm": false, + "src": [ + "./src/main.c" + ], + "include": [ + "./include" + ], + "libraries": [], + "libpath": [], + "dependencies": [ + "@stdlib/math/base/assert/is-nanf", + "@stdlib/constants/float32/max-base2-exponent", + "@stdlib/constants/float32/pinf", + "@stdlib/math/base/special/roundf", + "@stdlib/math/base/special/ldexpf", + "@stdlib/constants/float32/min-base2-exponent" + ] + }, + { + "task": "examples", + "wasm": false, + "src": [ + "./src/main.c" + ], + "include": [ + "./include" + ], + "libraries": [], + "libpath": [], + "dependencies": [ + "@stdlib/math/base/assert/is-nanf", + "@stdlib/constants/float32/max-base2-exponent", + "@stdlib/constants/float32/pinf", + "@stdlib/math/base/special/roundf", + "@stdlib/math/base/special/ldexpf", + "@stdlib/constants/float32/min-base2-exponent" + ] + }, + { + "task": "build", + "wasm": true, + "src": [ + "./src/main.c" + ], + "include": [ + "./include" + ], + "libraries": [], + "libpath": [], + "dependencies": [ + "@stdlib/math/base/assert/is-nanf", + "@stdlib/constants/float32/max-base2-exponent", + "@stdlib/constants/float32/pinf", + "@stdlib/math/base/special/roundf", + "@stdlib/math/base/special/ldexpf", + "@stdlib/constants/float32/min-base2-exponent" + ] + } + ] +} diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/package.json b/lib/node_modules/@stdlib/math/base/special/exp2f/package.json new file mode 100644 index 000000000000..a2f9444cf512 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/package.json @@ -0,0 +1,70 @@ +{ + "name": "@stdlib/math/base/special/exp2f", + "version": "0.0.0", + "description": "Base 2 exponential function in single-precision floating-point format.", + "license": "Apache-2.0", + "author": { + "name": "The Stdlib Authors", + "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" + }, + "contributors": [ + { + "name": "The Stdlib Authors", + "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" + } + ], + "main": "./lib", + "gypfile": true, + "directories": { + "benchmark": "./benchmark", + "doc": "./docs", + "example": "./examples", + "include": "./include", + "lib": "./lib", + "scripts": "./scripts", + "src": "./src", + "test": "./test" + }, + "types": "./docs/types", + "scripts": {}, + "homepage": "https://github.com/stdlib-js/stdlib", + "repository": { + "type": "git", + "url": "git://github.com/stdlib-js/stdlib.git" + }, + "bugs": { + "url": "https://github.com/stdlib-js/stdlib/issues" + }, + "dependencies": {}, + "devDependencies": {}, + "engines": { + "node": ">=0.10.0", + "npm": ">2.7.0" + }, + "os": [ + "aix", + "darwin", + "freebsd", + "linux", + "macos", + "openbsd", + "sunos", + "win32", + "windows" + ], + "keywords": [ + "stdlib", + "stdmath", + "mathematics", + "math", + "special", + "function", + "math.exp", + "exp", + "exp2", + "base 2", + "exponential", + "power", + "number" + ] +} diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/scripts/evalpoly.js b/lib/node_modules/@stdlib/math/base/special/exp2f/scripts/evalpoly.js new file mode 100644 index 000000000000..88e2452ee3b4 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/scripts/evalpoly.js @@ -0,0 +1,133 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* 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. +*/ + +/* +* This script compiles modules for evaluating polynomial functions. If any polynomial coefficients change, this script should be rerun to update the compiled files. +*/ +'use strict'; + +// MODULES // + +var resolve = require( 'path' ).resolve; +var readFileSync = require( '@stdlib/fs/read-file' ).sync; +var writeFileSync = require( '@stdlib/fs/write-file' ).sync; +var currentYear = require( '@stdlib/time/current-year' ); +var substringBefore = require( '@stdlib/string/substring-before' ); +var substringAfter = require( '@stdlib/string/substring-after' ); +var format = require( '@stdlib/string/format' ); +var licenseHeader = require( '@stdlib/_tools/licenses/header' ); +var compile = require( '@stdlib/math/base/tools/evalpoly-compile' ); +var compileC = require( '@stdlib/math/base/tools/evalpoly-compile-c' ); + + +// VARIABLES // + +// Polynomial coefficients ordered in ascending degree... +var P = [ + 1.51390680115615096133e3, + 2.02020656693165307700e1, + 2.30933477057345225087e-2 +]; +var Q = [ + 4.36821166879210612817e3, + 2.33184211722314911771e2, + 1.0 +]; + +// Header to add to output files: +var header = licenseHeader( 'Apache-2.0', 'js', { + 'year': currentYear(), + 'copyright': 'The Stdlib Authors' +}); +header += '\n/* This is a generated file. Do not edit directly. */\n'; + + +// FUNCTIONS // + +/** +* Inserts a compiled function into file content. +* +* @private +* @param {string} text - source content +* @param {string} id - function identifier +* @param {string} str - function string +* @returns {string} updated content +*/ +function insert( text, id, str ) { + var before; + var after; + var begin; + var end; + + begin = '// BEGIN: '+id; + end = '// END: '+id; + + before = substringBefore( text, begin ); + after = substringAfter( text, end ); + + return format( '%s// BEGIN: %s\n\n%s\n%s%s', before, id, str, end, after ); +} + + +// MAIN // + +/** +* Main execution sequence. +* +* @private +*/ +function main() { + var fpath; + var copts; + var opts; + var file; + var str; + + opts = { + 'dtype': 'float32', + 'encoding': 'utf8' + }; + + fpath = resolve( __dirname, '..', 'lib', 'polyval_p.js' ); + str = header + compile( P ); + writeFileSync( fpath, str, opts ); + + fpath = resolve( __dirname, '..', 'lib', 'polyval_q.js' ); + str = header + compile( Q ); + writeFileSync( fpath, str, opts ); + + copts = { + 'dtype': 'float', + 'name': '' + }; + + fpath = resolve( __dirname, '..', 'src', 'main.c' ); + file = readFileSync( fpath, opts ); + + copts.name = 'polyval_p'; + str = compileC( P, copts ); + file = insert( file, copts.name, str ); + + copts.name = 'polyval_q'; + str = compileC( Q, copts ); + file = insert( file, copts.name, str ); + + writeFileSync( fpath, file, opts ); +} + +main(); diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/src/Makefile b/lib/node_modules/@stdlib/math/base/special/exp2f/src/Makefile new file mode 100644 index 000000000000..7733b6180cb4 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/src/Makefile @@ -0,0 +1,70 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2025 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + + +# RULES # + +#/ +# Removes generated files for building an add-on. +# +# @example +# make clean-addon +#/ +clean-addon: + $(QUIET) -rm -f *.o *.node + +.PHONY: clean-addon + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: clean-addon + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/src/addon.c b/lib/node_modules/@stdlib/math/base/special/exp2f/src/addon.c new file mode 100644 index 000000000000..a230d0724755 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/src/addon.c @@ -0,0 +1,23 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "stdlib/math/base/napi/unary.h" +#include "stdlib/math/base/special/exp2f.h" + +// cppcheck-suppress shadowFunction +STDLIB_MATH_BASE_NAPI_MODULE_F_F( stdlib_base_exp2f ) diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/src/main.c b/lib/node_modules/@stdlib/math/base/special/exp2f/src/main.c new file mode 100644 index 000000000000..609d133a634f --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/src/main.c @@ -0,0 +1,150 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* 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. +* +* +* ## Notice +* +* The original C code, long comment, copyright, license, and constants are from [Cephes]{@link http://www.netlib.org/cephes}. The implementation follows the original, but has been modified for JavaScript. +* +* ```text +* Copyright 1984, 1995, 2000 by Stephen L. Moshier +* +* Some software in this archive may be from the book _Methods and Programs for Mathematical Functions_ (Prentice-Hall or Simon & Schuster International, 1989) or from the Cephes Mathematical Library, a commercial product. In either event, it is copyrighted by the author. What you see here may be used freely but it comes with no support or guarantee. +* +* Stephen L. Moshier +* moshier@na-net.ornl.gov +* ``` +*/ + +#include "stdlib/math/base/special/exp2f.h" +#include "stdlib/constants/float32/max_base2_exponent.h" +#include "stdlib/constants/float32/min_base2_exponent.h" +#include "stdlib/math/base/special/roundf.h" +#include "stdlib/math/base/special/ldexpf.h" +#include "stdlib/math/base/assert/is_nanf.h" +#include "stdlib/constants/float32/pinf.h" + +/* Begin auto-generated functions. The following functions are auto-generated. Do not edit directly. */ + +// BEGIN: polyval_p + +/** +* Evaluates a polynomial. +* +* ## Notes +* +* - The implementation uses [Horner's rule][horners-method] for efficient computation. +* +* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method +* +* @param x value at which to evaluate the polynomial +* @return evaluated polynomial +*/ +static float polyval_p( const float x ) { + return 1513.906801156151f + (x * (20.202065669316532f + (x * 0.023093347705734523f))); +} + +// END: polyval_p + +// BEGIN: polyval_q + +/** +* Evaluates a polynomial. +* +* ## Notes +* +* - The implementation uses [Horner's rule][horners-method] for efficient computation. +* +* [horners-method]: https://en.wikipedia.org/wiki/Horner%27s_method +* +* @param x value at which to evaluate the polynomial +* @return evaluated polynomial +*/ +static float polyval_q( const float x ) { + return 4368.211668792106f + (x * (233.1842117223149f + (x * 1.0f))); +} + +// END: polyval_q + +/* End auto-generated functions. */ + +/** +* Evaluates the base `2` exponential function. +* +* ## Method +* +* - Range reduction is accomplished by separating the argument into an integer \\( k \\) and fraction \\( f \\) such that +* +* ```tex +* 2^x = 2^k 2^f +* ``` +* +* - A Pade' approximate +* +* ```tex +* 1 + 2x \frac{\mathrm{P}\left(x^2\right)}{\mathrm{Q}\left(x^2\right) - x \mathrm{P}\left(x^2\right)} +* ``` +* +* approximates \\( 2^x \\) in the basic range \\( \[-0.5, 0.5] \\). +* +* ## Notes +* +* - Relative error: +* +* | arithmetic | domain | # trials | peak | rms | +* |:----------:|:-----------:|:--------:|:-------:|:-------:| +* | IEEE | -1022,+1024 | 30000 | 1.8e-16 | 5.4e-17 | +* +* @param x input value +* @return function value +* +* @example +* float out = stdlib_base_exp2f( 3.0f ); +* // returns 8.0f +*/ +float stdlib_base_exp2f( const float x ) { + float px; + float ax; + float xx; + float n; + + if ( stdlib_base_is_nanf( x ) ) { + return x; + } + if ( x > STDLIB_CONSTANT_FLOAT32_MAX_BASE2_EXPONENT ) { + return STDLIB_CONSTANT_FLOAT32_PINF; + } + if ( x < STDLIB_CONSTANT_FLOAT32_MIN_BASE2_EXPONENT ) { + return 0.0f; + } + + // Range reduction + if( x == 0.0f ) { + return 1.0f; + } + + // Separate into integer and fractional parts... + n = stdlib_base_roundf( x ); + ax = x - n; + xx = ax * ax; + px = ax * polyval_p( xx ); + ax = px / ( polyval_q( xx ) - px ); + ax = 1.0f + stdlib_base_ldexpf( ax, 1 ); + + // Scale by power of 2: + return stdlib_base_ldexpf( ax, n ); +} diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/test/fixtures/julia/REQUIRE b/lib/node_modules/@stdlib/math/base/special/exp2f/test/fixtures/julia/REQUIRE new file mode 100644 index 000000000000..308c3be89c85 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/test/fixtures/julia/REQUIRE @@ -0,0 +1,2 @@ +julia 1.5 +JSON 0.21 diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/test/fixtures/julia/medium_negative.json b/lib/node_modules/@stdlib/math/base/special/exp2f/test/fixtures/julia/medium_negative.json new file mode 100644 index 000000000000..7f70668df121 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/test/fixtures/julia/medium_negative.json @@ -0,0 +1 @@ +{"expected":[7.523164e-37,1.5046328e-36,3.0092655e-36,6.018531e-36,1.2037062e-35,2.4074124e-35,4.814825e-35,9.62965e-35,1.92593e-34,3.85186e-34,7.70372e-34,1.540744e-33,3.081488e-33,6.162976e-33,1.2325952e-32,2.4651903e-32,4.9303807e-32,9.8607613e-32,1.9721523e-31,3.9443045e-31,7.888609e-31,1.5777218e-30,3.1554436e-30,6.3108872e-30,1.2621775e-29,2.524355e-29,5.04871e-29,1.009742e-28,2.019484e-28,4.038968e-28,8.077936e-28,1.6155871e-27,3.2311743e-27,6.4623485e-27,1.2924697e-26,2.5849394e-26,5.169879e-26,1.0339758e-25,2.0679515e-25,4.135903e-25,8.271806e-25,1.6543612e-24,3.3087225e-24,6.617445e-24,1.323489e-23,2.646978e-23,5.293956e-23,1.0587912e-22,2.1175824e-22,4.2351647e-22,8.4703295e-22,1.6940659e-21,3.3881318e-21,6.7762636e-21,1.3552527e-20,2.7105054e-20,5.421011e-20,1.0842022e-19,2.1684043e-19,4.3368087e-19,8.6736174e-19,1.7347235e-18,3.469447e-18,6.938894e-18,1.3877788e-17,2.7755576e-17,5.551115e-17,1.110223e-16,2.220446e-16,4.440892e-16,8.881784e-16,1.7763568e-15,3.5527137e-15,7.1054274e-15,1.4210855e-14,2.842171e-14,5.684342e-14,1.1368684e-13,2.2737368e-13,4.5474735e-13,9.094947e-13,1.8189894e-12,3.637979e-12,7.275958e-12,1.4551915e-11,2.910383e-11,5.820766e-11,1.1641532e-10,2.3283064e-10,4.656613e-10,9.313226e-10,1.8626451e-9,3.7252903e-9,7.450581e-9,1.4901161e-8,2.9802322e-8,5.9604645e-8,1.1920929e-7,2.3841858e-7,4.7683716e-7,9.536743e-7,1.9073486e-6,3.8146973e-6,7.6293945e-6,1.5258789e-5,3.0517578e-5,6.1035156e-5,0.00012207031,0.00024414062,0.00048828125,0.0009765625,0.001953125,0.00390625,0.0078125,0.015625,0.03125,0.0625,0.125,0.25,0.5],"x":[-120.0,-119.0,-118.0,-117.0,-116.0,-115.0,-114.0,-113.0,-112.0,-111.0,-110.0,-109.0,-108.0,-107.0,-106.0,-105.0,-104.0,-103.0,-102.0,-101.0,-100.0,-99.0,-98.0,-97.0,-96.0,-95.0,-94.0,-93.0,-92.0,-91.0,-90.0,-89.0,-88.0,-87.0,-86.0,-85.0,-84.0,-83.0,-82.0,-81.0,-80.0,-79.0,-78.0,-77.0,-76.0,-75.0,-74.0,-73.0,-72.0,-71.0,-70.0,-69.0,-68.0,-67.0,-66.0,-65.0,-64.0,-63.0,-62.0,-61.0,-60.0,-59.0,-58.0,-57.0,-56.0,-55.0,-54.0,-53.0,-52.0,-51.0,-50.0,-49.0,-48.0,-47.0,-46.0,-45.0,-44.0,-43.0,-42.0,-41.0,-40.0,-39.0,-38.0,-37.0,-36.0,-35.0,-34.0,-33.0,-32.0,-31.0,-30.0,-29.0,-28.0,-27.0,-26.0,-25.0,-24.0,-23.0,-22.0,-21.0,-20.0,-19.0,-18.0,-17.0,-16.0,-15.0,-14.0,-13.0,-12.0,-11.0,-10.0,-9.0,-8.0,-7.0,-6.0,-5.0,-4.0,-3.0,-2.0,-1.0]} diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/test/fixtures/julia/medium_positive.json b/lib/node_modules/@stdlib/math/base/special/exp2f/test/fixtures/julia/medium_positive.json new file mode 100644 index 000000000000..af8baa1d025e --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/test/fixtures/julia/medium_positive.json @@ -0,0 +1 @@ +{"expected":[2.0,4.0,8.0,16.0,32.0,64.0,128.0,256.0,512.0,1024.0,2048.0,4096.0,8192.0,16384.0,32768.0,65536.0,131072.0,262144.0,524288.0,1.048576e6,2.097152e6,4.194304e6,8.388608e6,1.6777216e7,3.3554432e7,6.7108864e7,1.3421773e8,2.6843546e8,5.368709e8,1.0737418e9,2.1474836e9,4.2949673e9,8.589935e9,1.717987e10,3.435974e10,6.871948e10,1.3743895e11,2.748779e11,5.497558e11,1.0995116e12,2.1990233e12,4.3980465e12,8.796093e12,1.7592186e13,3.5184372e13,7.0368744e13,1.4073749e14,2.8147498e14,5.6294995e14,1.1258999e15,2.2517998e15,4.5035996e15,9.007199e15,1.8014399e16,3.6028797e16,7.2057594e16,1.4411519e17,2.8823038e17,5.7646075e17,1.1529215e18,2.305843e18,4.611686e18,9.223372e18,1.8446744e19,3.689349e19,7.378698e19,1.4757395e20,2.951479e20,5.902958e20,1.1805916e21,2.3611832e21,4.7223665e21,9.444733e21,1.8889466e22,3.7778932e22,7.5557864e22,1.5111573e23,3.0223145e23,6.044629e23,1.2089258e24,2.4178516e24,4.8357033e24,9.671407e24,1.9342813e25,3.8685626e25,7.7371252e25,1.5474251e26,3.0948501e26,6.1897002e26,1.2379401e27,2.4758801e27,4.9517602e27,9.9035203e27,1.9807041e28,3.9614081e28,7.9228163e28,1.5845633e29,3.1691265e29,6.338253e29,1.2676506e30,2.5353012e30,5.0706024e30,1.0141205e31,2.028241e31,4.056482e31,8.112964e31,1.6225928e32,3.2451855e32,6.490371e32,1.2980742e33,2.5961484e33,5.192297e33,1.0384594e34,2.0769187e34,4.1538375e34,8.307675e34,1.661535e35,3.32307e35,6.64614e35,1.329228e36],"x":[1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,37.0,38.0,39.0,40.0,41.0,42.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,62.0,63.0,64.0,65.0,66.0,67.0,68.0,69.0,70.0,71.0,72.0,73.0,74.0,75.0,76.0,77.0,78.0,79.0,80.0,81.0,82.0,83.0,84.0,85.0,86.0,87.0,88.0,89.0,90.0,91.0,92.0,93.0,94.0,95.0,96.0,97.0,98.0,99.0,100.0,101.0,102.0,103.0,104.0,105.0,106.0,107.0,108.0,109.0,110.0,111.0,112.0,113.0,114.0,115.0,116.0,117.0,118.0,119.0,120.0]} diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/test/fixtures/julia/runner.jl b/lib/node_modules/@stdlib/math/base/special/exp2f/test/fixtures/julia/runner.jl new file mode 100755 index 000000000000..95197e538638 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/test/fixtures/julia/runner.jl @@ -0,0 +1,82 @@ +#!/usr/bin/env julia +# +# @license Apache-2.0 +# +# Copyright (c) 2025 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import JSON + +""" + gen( domain, name ) + +Generate fixture data and write to file. + +# Arguments + +* `domain`: domain +* `name::AbstractString`: output filename + +# Examples + +``` julia +julia> x = range( -100.0, stop = 100.0, length = 2001 ); +julia> gen( x, \"data.json\" ); +``` +""" +function gen( domain, name ) + x = Float32.( collect( domain ) ); + y = Float32.( exp2.( Float32.( x ) ) ); + + # Store data to be written to file as a collection: + data = Dict([ + ("x", x), + ("expected", y) + ]); + + # Based on the script directory, create an output filepath: + filepath = joinpath( dir, name ); + + # Write the data to the output filepath as JSON: + outfile = open( filepath, "w" ); + write( outfile, JSON.json(data) ); + write( outfile, "\n" ); + close( outfile ); +end + +# Get the filename: +file = @__FILE__; + +# Extract the directory in which this file resides: +dir = dirname( file ); + +# Medium negative values: +x = range( -120.0, stop = -1.0, length = 120 ); +gen( x, "medium_negative.json" ); + +# Medium positive values: +x = range( 1.0, stop = 120.0, length = 120 ); +gen( x, "medium_positive.json" ); + +# Small negative values: +x = range( -1.0, stop = -2.0^-27, length = 1007 ); +gen( x, "small_negative.json" ); + +# Small positive values: +x = range( 2.0^-27, stop = 1.0, length = 1007 ); +gen( x, "small_positive.json" ); + +# Tiny values: +x = range( -2.0^-27, stop = 2.0^-27, length = 1007 ); +gen( x, "tiny.json" ); diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/test/fixtures/julia/small_negative.json b/lib/node_modules/@stdlib/math/base/special/exp2f/test/fixtures/julia/small_negative.json new file mode 100644 index 000000000000..a448be455dcd --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/test/fixtures/julia/small_negative.json @@ -0,0 +1 @@ +{"expected":[0.5,0.50034463,0.5006895,0.50103456,0.5013799,0.5017255,0.5020713,0.5024174,0.5027636,0.5031102,0.50345695,0.50380397,0.5041512,0.5044987,0.50484645,0.50519437,0.5055426,0.505891,0.5062397,0.50658864,0.5069378,0.5072872,0.50763685,0.5079868,0.5083369,0.50868726,0.5090379,0.50938874,0.5097398,0.5100912,0.51044273,0.5107946,0.51114666,0.5114989,0.5118515,0.5122043,0.5125573,0.5129106,0.5132641,0.51361793,0.5139719,0.51432616,0.5146807,0.51503545,0.5153904,0.51574564,0.5161011,0.51645684,0.5168128,0.517169,0.5175255,0.51788217,0.51823914,0.51859635,0.51895374,0.5193114,0.5196694,0.5200276,0.52038604,0.5207447,0.5211036,0.5214628,0.5218222,0.52218187,0.52254176,0.52290195,0.5232623,0.523623,0.5239839,0.5243451,0.5247065,0.52506816,0.52543,0.5257922,0.5261546,0.5265172,0.52688015,0.5272433,0.5276067,0.5279704,0.52833426,0.5286984,0.5290628,0.52942747,0.52979237,0.53015757,0.53052294,0.5308886,0.53125453,0.5316207,0.53198713,0.5323538,0.53272074,0.5330879,0.5334553,0.533823,0.53419095,0.53455913,0.5349276,0.53529626,0.5356652,0.5360344,0.5364039,0.5367736,0.5371436,0.5375138,0.5378843,0.53825504,0.538626,0.5389973,0.5393688,0.53974056,0.54011256,0.54048485,0.5408574,0.54123014,0.5416032,0.5419765,0.54235005,0.54272383,0.5430979,0.5434723,0.54384685,0.5442217,0.5445968,0.5449722,0.5453478,0.5457237,0.54609984,0.54647624,0.5468529,0.54722977,0.54760695,0.5479844,0.5483621,0.5487401,0.5491183,0.54949677,0.5498755,0.5502545,0.5506338,0.5510133,0.5513931,0.55177313,0.55215347,0.552534,0.55291486,0.5532959,0.5536773,0.5540589,0.5544408,0.554823,0.55520535,0.55558807,0.555971,0.5563542,0.55673766,0.5571214,0.55750537,0.55788964,0.55827415,0.55865896,0.559044,0.55942935,0.55981493,0.56020075,0.56058687,0.5609733,0.56135994,0.56174684,0.562134,0.56252146,0.5629092,0.5632972,0.5636855,0.564074,0.5644628,0.5648518,0.56524116,0.56563073,0.5660206,0.5664107,0.56680113,0.5671918,0.5675827,0.5679739,0.5683654,0.5687572,0.5691492,0.56954145,0.569934,0.5703268,0.57071996,0.5711133,0.571507,0.57190084,0.57229507,0.5726895,0.57308424,0.57347924,0.5738745,0.57427007,0.57466584,0.5750619,0.5754583,0.57585496,0.57625186,0.576649,0.5770465,0.5774442,0.57784224,0.5782405,0.57863903,0.5790379,0.57943696,0.57983637,0.580236,0.5806359,0.58103615,0.58143663,0.58183736,0.58223844,0.5826397,0.5830413,0.58344316,0.58384526,0.5842477,0.5846504,0.5850534,0.5854566,0.58586013,0.58626395,0.586668,0.58707243,0.587477,0.587882,0.5882872,0.5886926,0.5890984,0.5895044,0.58991075,0.59031737,0.59072423,0.5911314,0.5915388,0.59194654,0.59235454,0.5927628,0.59317136,0.5935802,0.5939893,0.59439874,0.59480846,0.5952184,0.5956287,0.5960392,0.59645003,0.5968611,0.5972725,0.5976842,0.59809613,0.59850836,0.5989209,0.5993337,0.59974676,0.6001602,0.60057384,0.6009878,0.601402,0.60181653,0.6022313,0.6026464,0.6030618,0.6034775,0.6038934,0.6043096,0.60472614,0.60514295,0.60556006,0.6059775,0.6063951,0.6068131,0.6072313,0.60764986,0.60806865,0.6084878,0.60890716,0.6093269,0.6097469,0.6101671,0.61058766,0.6110085,0.6114297,0.6118511,0.6122728,0.6126948,0.6131171,0.6135397,0.6139626,0.6143858,0.6148092,0.615233,0.61565703,0.61608136,0.616506,0.61693096,0.6173562,0.6177817,0.61820745,0.61863357,0.61906,0.6194867,0.61991364,0.62034094,0.6207685,0.6211963,0.6216245,0.62205297,0.6224817,0.6229108,0.62334013,0.62376976,0.6241997,0.6246299,0.62506044,0.62549126,0.6259224,0.6263538,0.6267855,0.62721753,0.62764984,0.62808245,0.62851536,0.62894857,0.6293821,0.6298159,0.6302499,0.6306844,0.6311191,0.63155407,0.63198936,0.63242495,0.63286084,0.633297,0.6337336,0.63417035,0.63460743,0.6350449,0.63548255,0.6359206,0.6363589,0.6367975,0.6372364,0.63767564,0.63811517,0.63855493,0.63899505,0.6394355,0.63987625,0.64031726,0.64075863,0.64120024,0.6416422,0.6420845,0.64252704,0.6429699,0.64341307,0.6438565,0.6443003,0.6447444,0.6451888,0.64563346,0.64607847,0.6465238,0.6469694,0.64741534,0.64786154,0.6483081,0.64875495,0.6492021,0.64964956,0.6500973,0.6505454,0.6509938,0.6514425,0.6518915,0.6523408,0.6527904,0.6532404,0.65369064,0.6541412,0.65459204,0.65504324,0.6554947,0.6559465,0.6563986,0.65685105,0.6573038,0.65775687,0.6582102,0.65866387,0.6591178,0.6595721,0.6600268,0.6604817,0.6609369,0.66139245,0.6618483,0.6623045,0.66276103,0.66321784,0.66367495,0.66413236,0.6645901,0.6650482,0.6655066,0.6659653,0.66642433,0.66688365,0.66734326,0.6678032,0.66826355,0.6687241,0.66918504,0.6696463,0.67010784,0.6705697,0.6710319,0.6714944,0.67195725,0.6724204,0.67288387,0.67334765,0.67381173,0.6742762,0.6747409,0.675206,0.6756714,0.6761371,0.6766031,0.6770694,0.67753613,0.67800313,0.67847043,0.6789381,0.67940605,0.6798743,0.6803429,0.6808119,0.6812811,0.68175066,0.6822206,0.68269074,0.6831613,0.6836322,0.6841034,0.6845749,0.68504673,0.6855189,0.6859914,0.68646425,0.6869374,0.6874109,0.6878846,0.6883588,0.68883324,0.689308,0.6897831,0.69025856,0.6907343,0.6912104,0.6916868,0.6921635,0.6926406,0.69311804,0.69359577,0.69407386,0.69455224,0.6950309,0.69550997,0.6959894,0.69646907,0.6969491,0.6974295,0.6979102,0.6983912,0.69887257,0.6993543,0.6998363,0.7003187,0.7008014,0.7012844,0.70176774,0.70225143,0.7027355,0.7032199,0.70370454,0.7041896,0.70467496,0.7051606,0.70564663,0.70613307,0.70661974,0.70710677,0.70759416,0.70808184,0.7085699,0.7090583,0.709547,0.71003604,0.71052545,0.71101516,0.71150523,0.71199566,0.7124864,0.7129775,0.7134689,0.71396065,0.71445274,0.7149452,0.71543795,0.7159311,0.7164246,0.71691835,0.7174125,0.71790695,0.7184018,0.7188969,0.7193924,0.71988827,0.7203845,0.720881,0.72137785,0.7218751,0.7223726,0.7228705,0.72336876,0.72386736,0.72436625,0.72486556,0.72536516,0.7258651,0.7263654,0.726866,0.72736704,0.7278684,0.7283701,0.7288721,0.72937447,0.7298772,0.73038024,0.73088366,0.73138744,0.7318915,0.732396,0.7329008,0.73340595,0.73391145,0.7344173,0.7349235,0.73543006,0.73593694,0.7364442,0.73695177,0.7374597,0.737968,0.7384767,0.73898566,0.739495,0.7400047,0.74051476,0.74102515,0.7415359,0.742047,0.7425585,0.74307024,0.7435824,0.74409497,0.7446078,0.74512106,0.7456346,0.7461485,0.74666286,0.7471775,0.74769247,0.7482078,0.7487235,0.74923956,0.749756,0.75027275,0.7507899,0.75130737,0.7518252,0.7523434,0.7528619,0.75338084,0.7539001,0.75441974,0.75493973,0.7554601,0.7559808,0.75650185,0.7570233,0.757545,0.7580672,0.7585897,0.75911254,0.75963575,0.7601593,0.76068324,0.7612076,0.7617322,0.7622573,0.76278263,0.7633084,0.76383454,0.76436096,0.7648878,0.765415,0.7659426,0.7664705,0.76699877,0.76752746,0.76805645,0.76858586,0.76911557,0.76964575,0.7701762,0.770707,0.77123827,0.7717698,0.77230173,0.77283406,0.77336675,0.7738998,0.7744332,0.774967,0.77550113,0.77603567,0.7765705,0.77710575,0.7776414,0.7781774,0.77871376,0.7792505,0.77978754,0.78032506,0.78086287,0.7814011,0.7819397,0.78247863,0.78301793,0.78355765,0.78409773,0.78463817,0.78517896,0.78572017,0.78626174,0.78680366,0.78734595,0.78788865,0.7884317,0.7889751,0.7895189,0.7900631,0.79060763,0.7911526,0.79169786,0.79224354,0.7927896,0.79333603,0.79388285,0.79443,0.7949776,0.7955255,0.7960738,0.7966225,0.7971716,0.797721,0.7982709,0.7988211,0.79937166,0.79992265,0.800474,0.8010257,0.8015778,0.80213034,0.8026832,0.8032364,0.80379003,0.80434406,0.80489844,0.80545324,0.8060084,0.806564,0.8071199,0.8076762,0.80823284,0.80878997,0.8093474,0.80990523,0.8104635,0.8110221,0.8115811,0.81214046,0.8127003,0.8132604,0.8138209,0.81438184,0.8149432,0.81550485,0.816067,0.8166294,0.8171923,0.8177555,0.8183192,0.81888324,0.81944764,0.82001245,0.8205776,0.8211432,0.8217092,0.8222756,0.8228423,0.82340944,0.823977,0.8245449,0.82511324,0.8256819,0.82625103,0.82682055,0.82739043,0.82796067,0.8285314,0.82910246,0.8296739,0.83024573,0.830818,0.8313906,0.83196366,0.8325371,0.8331109,0.83368516,0.83425975,0.8348348,0.8354102,0.835986,0.8365622,0.83713883,0.8377158,0.8382932,0.838871,0.83944917,0.84002775,0.84060675,0.84118617,0.84176594,0.84234613,0.84292674,0.8435077,0.8440891,0.8446709,0.84525305,0.8458357,0.8464187,0.847002,0.84758586,0.84817004,0.84875464,0.84933966,0.84992504,0.8505109,0.8510971,0.85168374,0.8522707,0.8528582,0.853446,0.85403425,0.8546229,0.8552119,0.8558014,0.85639125,0.8569815,0.8575722,0.85816324,0.85875475,0.8593466,0.859939,0.8605317,0.8611248,0.8617183,0.86231226,0.86290663,0.86350137,0.8640965,0.8646921,0.8652881,0.86588454,0.8664813,0.86707854,0.8676762,0.8682742,0.8688727,0.86947155,0.8700708,0.87067056,0.87127066,0.8718712,0.8724721,0.87307346,0.8736752,0.8742774,0.87488,0.87548304,0.8760864,0.87669027,0.87729454,0.8778992,0.87850434,0.8791098,0.87971574,0.8803221,0.8809289,0.881536,0.8821436,0.88275164,0.8833601,0.88396895,0.8845782,0.8851879,0.88579804,0.88640857,0.8870195,0.8876309,0.8882427,0.8888549,0.88946754,0.89008063,0.89069414,0.891308,0.89192235,0.8925371,0.8931523,0.8937679,0.89438397,0.8950004,0.8956173,0.8962346,0.8968523,0.8974705,0.89808905,0.89870805,0.8993275,0.89994735,0.90056765,0.9011884,0.9018095,0.9024311,0.9030531,0.9036755,0.90429837,0.90492165,0.90554535,0.90616953,0.90679413,0.9074191,0.9080446,0.9086704,0.9092967,0.90992343,0.9105506,0.91117823,0.9118062,0.9124347,0.9130636,0.91369295,0.9143227,0.9149529,0.91558355,0.9162146,0.9168461,0.917478,0.91811043,0.9187432,0.91937643,0.92001015,0.9206443,0.92127883,0.9219138,0.92254925,0.9231851,0.9238214,0.92445815,0.9250953,0.925733,0.92637104,0.9270095,0.9276485,0.92828786,0.92892766,0.92956793,0.9302086,0.9308498,0.9314914,0.9321334,0.93277586,0.9334188,0.9340621,0.934706,0.9353502,0.93599486,0.93664,0.9372856,0.93793166,0.93857807,0.939225,0.9398724,0.94052017,0.9411684,0.94181716,0.94246626,0.9431159,0.94376594,0.9444164,0.94506735,0.94571877,0.9463706,0.94702286,0.9476756,0.9483288,0.9489824,0.9496365,0.95029104,0.95094603,0.9516015,0.9522574,0.9529137,0.9535705,0.95422775,0.9548855,0.95554364,0.9562022,0.9568613,0.9575208,0.9581808,0.9588412,0.9595021,0.9601634,0.9608252,0.9614875,0.96215016,0.9628133,0.96347696,0.964141,0.96480554,0.96547055,0.966136,0.96680194,0.96746826,0.9681351,0.9688024,0.96947014,0.9701384,0.970807,0.97147614,0.97214574,0.9728158,0.9734863,0.9741573,0.9748287,0.97550064,0.976173,0.9768458,0.9775191,0.97819287,0.9788671,0.9795418,0.9802169,0.98089254,0.98156863,0.98224515,0.9829222,0.98359966,0.9842776,0.984956,0.9856349,0.98631424,0.9869941,0.98767436,0.9883551,0.9890363,0.989718,0.9904002,0.99108285,0.9917659,0.9924495,0.99313354,0.99381804,0.9945031,0.99518853,0.99587446,0.9965609,0.99724776,0.9979351,0.9986229,0.9993112,1.0],"x":[-1.0,-0.999006,-0.99801195,-0.9970179,-0.99602383,-0.9950298,-0.9940358,-0.99304175,-0.9920477,-0.9910537,-0.9900596,-0.9890656,-0.98807156,-0.98707753,-0.9860835,-0.9850895,-0.98409545,-0.98310137,-0.98210734,-0.9811133,-0.9801193,-0.97912526,-0.97813123,-0.97713715,-0.9761431,-0.9751491,-0.97415507,-0.97316104,-0.972167,-0.971173,-0.9701789,-0.9691849,-0.96819085,-0.9671968,-0.9662028,-0.96520877,-0.9642147,-0.96322066,-0.9622266,-0.9612326,-0.9602386,-0.95924455,-0.9582505,-0.95725644,-0.9562624,-0.9552684,-0.95427436,-0.9532803,-0.9522863,-0.9512923,-0.9502982,-0.94930416,-0.94831014,-0.9473161,-0.9463221,-0.94532806,-0.944334,-0.94333994,-0.9423459,-0.9413519,-0.94035786,-0.93936384,-0.9383698,-0.9373757,-0.9363817,-0.9353877,-0.93439364,-0.9333996,-0.9324056,-0.9314115,-0.9304175,-0.92942345,-0.9284294,-0.9274354,-0.9264414,-0.92544734,-0.92445326,-0.92345923,-0.9224652,-0.9214712,-0.92047715,-0.9194831,-0.91848904,-0.917495,-0.916501,-0.91550696,-0.91451293,-0.9135189,-0.9125249,-0.9115308,-0.91053677,-0.90954274,-0.9085487,-0.9075547,-0.90656066,-0.9055666,-0.90457255,-0.9035785,-0.9025845,-0.90159047,-0.90059644,-0.8996024,-0.8986083,-0.8976143,-0.8966203,-0.89562625,-0.8946322,-0.8936382,-0.8926441,-0.8916501,-0.89065605,-0.889662,-0.888668,-0.887674,-0.88667995,-0.88568586,-0.88469183,-0.8836978,-0.8827038,-0.88170975,-0.8807157,-0.87972164,-0.8787276,-0.8777336,-0.87673956,-0.87574553,-0.8747515,-0.8737575,-0.8727634,-0.87176937,-0.87077534,-0.8697813,-0.8687873,-0.86779326,-0.86679924,-0.86580515,-0.8648111,-0.8638171,-0.86282307,-0.86182904,-0.860835,-0.8598409,-0.8588469,-0.8578529,-0.85685885,-0.8558648,-0.8548708,-0.85387677,-0.8528827,-0.85188866,-0.85089463,-0.8499006,-0.8489066,-0.84791255,-0.84691846,-0.84592444,-0.8449304,-0.8439364,-0.84294236,-0.84194833,-0.8409543,-0.8399602,-0.8389662,-0.83797216,-0.83697814,-0.8359841,-0.8349901,-0.833996,-0.833002,-0.83200794,-0.8310139,-0.8300199,-0.82902586,-0.82803184,-0.82703775,-0.8260437,-0.8250497,-0.8240557,-0.82306165,-0.8220676,-0.82107353,-0.8200795,-0.8190855,-0.81809145,-0.8170974,-0.8161034,-0.8151094,-0.8141153,-0.81312126,-0.81212723,-0.8111332,-0.8101392,-0.80914515,-0.80815107,-0.80715704,-0.806163,-0.805169,-0.80417496,-0.80318093,-0.8021869,-0.8011928,-0.8001988,-0.79920477,-0.79821074,-0.7972167,-0.7962227,-0.7952286,-0.7942346,-0.79324055,-0.7922465,-0.7912525,-0.79025847,-0.78926444,-0.78827035,-0.7872763,-0.7862823,-0.7852883,-0.78429425,-0.7833002,-0.7823062,-0.7813121,-0.7803181,-0.77932405,-0.77833,-0.777336,-0.776342,-0.7753479,-0.77435386,-0.77335984,-0.7723658,-0.7713718,-0.77037776,-0.7693837,-0.76838964,-0.7673956,-0.7664016,-0.76540756,-0.76441354,-0.7634195,-0.7624254,-0.7614314,-0.76043737,-0.75944334,-0.7584493,-0.7574553,-0.75646126,-0.7554672,-0.75447315,-0.7534791,-0.7524851,-0.75149107,-0.75049704,-0.74950296,-0.74850893,-0.7475149,-0.7465209,-0.74552685,-0.7445328,-0.7435388,-0.7425447,-0.7415507,-0.74055666,-0.73956263,-0.7385686,-0.7375746,-0.7365805,-0.73558646,-0.73459244,-0.7335984,-0.7326044,-0.73161036,-0.73061633,-0.72962224,-0.7286282,-0.7276342,-0.72664016,-0.72564614,-0.7246521,-0.723658,-0.722664,-0.72167,-0.72067595,-0.7196819,-0.7186879,-0.71769387,-0.7166998,-0.71570575,-0.7147117,-0.7137177,-0.7127237,-0.71172965,-0.71073556,-0.70974153,-0.7087475,-0.7077535,-0.70675945,-0.7057654,-0.7047714,-0.7037773,-0.7027833,-0.70178926,-0.70079523,-0.6998012,-0.6988072,-0.69781315,-0.69681907,-0.69582504,-0.694831,-0.693837,-0.69284296,-0.69184893,-0.69085485,-0.6898608,-0.6888668,-0.68787277,-0.68687874,-0.6858847,-0.6848907,-0.6838966,-0.6829026,-0.68190855,-0.6809145,-0.6799205,-0.67892647,-0.6779324,-0.67693835,-0.6759443,-0.6749503,-0.6739563,-0.67296225,-0.6719682,-0.67097414,-0.6699801,-0.6689861,-0.66799206,-0.666998,-0.666004,-0.6650099,-0.6640159,-0.66302186,-0.66202784,-0.6610338,-0.6600398,-0.65904576,-0.65805167,-0.65705764,-0.6560636,-0.6550696,-0.65407556,-0.65308154,-0.65208745,-0.6510934,-0.6500994,-0.64910537,-0.64811134,-0.6471173,-0.6461233,-0.6451292,-0.6441352,-0.64314115,-0.6421471,-0.6411531,-0.6401591,-0.639165,-0.63817096,-0.63717693,-0.6361829,-0.6351889,-0.63419485,-0.6332008,-0.63220674,-0.6312127,-0.6302187,-0.62922466,-0.62823063,-0.6272366,-0.6262425,-0.6252485,-0.62425447,-0.62326044,-0.6222664,-0.6212724,-0.62027836,-0.6192843,-0.61829025,-0.6172962,-0.6163022,-0.61530817,-0.61431414,-0.61332005,-0.612326,-0.611332,-0.610338,-0.60934395,-0.6083499,-0.6073559,-0.6063618,-0.6053678,-0.60437375,-0.6033797,-0.6023857,-0.6013917,-0.60039765,-0.59940356,-0.59840953,-0.5974155,-0.5964215,-0.59542745,-0.5944334,-0.59343934,-0.5924453,-0.5914513,-0.59045726,-0.58946323,-0.5884692,-0.5874752,-0.5864811,-0.58548707,-0.58449304,-0.583499,-0.582505,-0.58151096,-0.5805169,-0.57952285,-0.5785288,-0.5775348,-0.57654077,-0.57554674,-0.5745527,-0.5735586,-0.5725646,-0.5715706,-0.57057655,-0.5695825,-0.5685885,-0.5675944,-0.5666004,-0.56560636,-0.5646123,-0.5636183,-0.5626243,-0.56163025,-0.56063616,-0.55964214,-0.5586481,-0.5576541,-0.55666006,-0.555666,-0.55467194,-0.5536779,-0.5526839,-0.55168986,-0.55069584,-0.5497018,-0.5487078,-0.5477137,-0.5467197,-0.54572564,-0.5447316,-0.5437376,-0.54274356,-0.5417495,-0.54075545,-0.5397614,-0.5387674,-0.5377734,-0.53677934,-0.5357853,-0.53479123,-0.5337972,-0.5328032,-0.53180915,-0.5308151,-0.5298211,-0.528827,-0.527833,-0.52683896,-0.52584493,-0.5248509,-0.5238569,-0.52286285,-0.52186877,-0.52087474,-0.5198807,-0.5188867,-0.51789266,-0.51689863,-0.5159046,-0.5149105,-0.5139165,-0.51292247,-0.51192844,-0.5109344,-0.5099404,-0.5089463,-0.5079523,-0.50695825,-0.5059642,-0.5049702,-0.50397617,-0.50298214,-0.50198805,-0.500994,-0.5,-0.49900597,-0.49801195,-0.4970179,-0.49602386,-0.49502984,-0.49403578,-0.49304175,-0.49204773,-0.49105367,-0.49005964,-0.48906562,-0.48807156,-0.48707753,-0.4860835,-0.48508948,-0.48409542,-0.4831014,-0.48210737,-0.4811133,-0.4801193,-0.47912526,-0.4781312,-0.47713718,-0.47614315,-0.4751491,-0.47415507,-0.47316104,-0.47216702,-0.47117296,-0.47017893,-0.4691849,-0.46819085,-0.46719682,-0.4662028,-0.46520874,-0.4642147,-0.4632207,-0.46222666,-0.4612326,-0.46023858,-0.45924455,-0.4582505,-0.45725647,-0.45626244,-0.45526838,-0.45427436,-0.45328033,-0.45228627,-0.45129225,-0.45029822,-0.4493042,-0.44831014,-0.4473161,-0.44632208,-0.44532803,-0.444334,-0.44333997,-0.44234592,-0.4413519,-0.44035786,-0.4393638,-0.43836978,-0.43737575,-0.43638173,-0.43538767,-0.43439364,-0.43339962,-0.43240556,-0.43141153,-0.4304175,-0.42942345,-0.42842942,-0.4274354,-0.42644134,-0.42544731,-0.4244533,-0.42345926,-0.4224652,-0.42147118,-0.42047715,-0.4194831,-0.41848907,-0.41749504,-0.416501,-0.41550696,-0.41451293,-0.4135189,-0.41252485,-0.41153082,-0.4105368,-0.40954274,-0.4085487,-0.4075547,-0.40656063,-0.4055666,-0.40457258,-0.40357852,-0.4025845,-0.40159047,-0.40059644,-0.39960238,-0.39860836,-0.39761433,-0.39662027,-0.39562625,-0.39463222,-0.39363816,-0.39264414,-0.3916501,-0.39065605,-0.38966203,-0.388668,-0.38767397,-0.38667992,-0.3856859,-0.38469186,-0.3836978,-0.38270378,-0.38170975,-0.3807157,-0.37972167,-0.37872764,-0.3777336,-0.37673956,-0.37574553,-0.3747515,-0.37375745,-0.37276343,-0.3717694,-0.37077534,-0.36978132,-0.3687873,-0.36779323,-0.3667992,-0.36580518,-0.36481115,-0.3638171,-0.36282307,-0.36182904,-0.360835,-0.35984096,-0.35884693,-0.35785288,-0.35685885,-0.35586482,-0.35487077,-0.35387674,-0.3528827,-0.3518887,-0.35089463,-0.3499006,-0.34890658,-0.34791252,-0.3469185,-0.34592447,-0.3449304,-0.34393638,-0.34294236,-0.3419483,-0.34095427,-0.33996025,-0.33896622,-0.33797216,-0.33697814,-0.3359841,-0.33499005,-0.33399603,-0.333002,-0.33200794,-0.33101392,-0.3300199,-0.32902586,-0.3280318,-0.32703778,-0.32604375,-0.3250497,-0.32405567,-0.32306165,-0.3220676,-0.32107356,-0.32007954,-0.31908548,-0.31809145,-0.31709743,-0.3161034,-0.31510934,-0.31411532,-0.3131213,-0.31212723,-0.3111332,-0.31013918,-0.30914512,-0.3081511,-0.30715707,-0.306163,-0.305169,-0.30417496,-0.30318093,-0.30218688,-0.30119285,-0.30019882,-0.29920477,-0.29821074,-0.2972167,-0.29622266,-0.29522863,-0.2942346,-0.29324055,-0.29224652,-0.2912525,-0.29025847,-0.2892644,-0.28827038,-0.28727636,-0.2862823,-0.28528827,-0.28429425,-0.2833002,-0.28230616,-0.28131214,-0.2803181,-0.27932405,-0.27833003,-0.277336,-0.27634194,-0.27534792,-0.2743539,-0.27335984,-0.2723658,-0.27137178,-0.27037773,-0.2693837,-0.26838967,-0.26739565,-0.2664016,-0.26540756,-0.26441354,-0.26341948,-0.26242545,-0.26143143,-0.26043737,-0.25944334,-0.25844932,-0.25745526,-0.25646123,-0.2554672,-0.25447318,-0.25347912,-0.2524851,-0.25149107,-0.250497,-0.24950299,-0.24850895,-0.24751492,-0.24652088,-0.24552685,-0.24453281,-0.24353877,-0.24254474,-0.2415507,-0.24055667,-0.23956263,-0.23856859,-0.23757456,-0.23658052,-0.2355865,-0.23459245,-0.23359841,-0.23260438,-0.23161034,-0.2306163,-0.22962227,-0.22862823,-0.2276342,-0.22664016,-0.22564612,-0.2246521,-0.22365806,-0.22266403,-0.22166999,-0.22067595,-0.21968192,-0.21868788,-0.21769384,-0.21669981,-0.21570577,-0.21471174,-0.2137177,-0.21272366,-0.21172963,-0.21073559,-0.20974156,-0.20874752,-0.20775348,-0.20675945,-0.20576541,-0.20477138,-0.20377734,-0.2027833,-0.20178927,-0.20079523,-0.19980119,-0.19880717,-0.19781312,-0.1968191,-0.19582506,-0.19483101,-0.19383699,-0.19284295,-0.19184892,-0.19085488,-0.18986084,-0.18886681,-0.18787277,-0.18687874,-0.1858847,-0.18489066,-0.18389663,-0.18290259,-0.18190855,-0.18091452,-0.17992048,-0.17892645,-0.17793241,-0.17693837,-0.17594434,-0.1749503,-0.17395627,-0.17296223,-0.17196819,-0.17097417,-0.16998012,-0.1689861,-0.16799206,-0.16699801,-0.16600399,-0.16500995,-0.1640159,-0.16302188,-0.16202784,-0.16103381,-0.16003977,-0.15904573,-0.1580517,-0.15705766,-0.15606363,-0.15506959,-0.15407555,-0.15308152,-0.15208748,-0.15109344,-0.15009941,-0.14910537,-0.14811134,-0.1471173,-0.14612326,-0.14512923,-0.14413519,-0.14314117,-0.14214712,-0.14115308,-0.14015906,-0.13916501,-0.13817099,-0.13717695,-0.1361829,-0.13518888,-0.13419484,-0.1332008,-0.13220677,-0.13121273,-0.1302187,-0.12922466,-0.12823062,-0.12723659,-0.12624255,-0.12524852,-0.12425448,-0.123260446,-0.12226641,-0.12127237,-0.120278336,-0.1192843,-0.11829027,-0.11729623,-0.11630219,-0.11530816,-0.114314124,-0.11332008,-0.11232605,-0.111332014,-0.11033798,-0.109343946,-0.108349904,-0.10735587,-0.106361836,-0.1053678,-0.10437376,-0.10337973,-0.10238569,-0.10139166,-0.100397624,-0.09940358,-0.09840955,-0.097415514,-0.09642148,-0.09542744,-0.094433405,-0.09343937,-0.09244534,-0.0914513,-0.09045726,-0.08946323,-0.08846919,-0.08747516,-0.08648112,-0.08548708,-0.08449305,-0.083499014,-0.08250498,-0.08151094,-0.080516905,-0.07952287,-0.07852884,-0.077534795,-0.07654076,-0.07554673,-0.07455269,-0.07355866,-0.07256462,-0.07157058,-0.07057655,-0.069582514,-0.06858847,-0.06759444,-0.066600405,-0.06560637,-0.06461234,-0.063618295,-0.06262426,-0.061630227,-0.06063619,-0.059642155,-0.058648117,-0.057654083,-0.056660045,-0.05566601,-0.054671977,-0.05367794,-0.052683905,-0.051689867,-0.050695833,-0.049701795,-0.04870776,-0.047713723,-0.04671969,-0.045725655,-0.044731617,-0.043737583,-0.042743545,-0.04174951,-0.040755473,-0.03976144,-0.0387674,-0.037773367,-0.036779333,-0.035785295,-0.03479126,-0.033797223,-0.03280319,-0.03180915,-0.030815117,-0.029821081,-0.028827045,-0.02783301,-0.026838973,-0.025844937,-0.024850901,-0.023856865,-0.022862831,-0.021868795,-0.02087476,-0.019880723,-0.018886687,-0.017892651,-0.016898615,-0.01590458,-0.014910544,-0.013916508,-0.012922472,-0.011928436,-0.010934401,-0.009940365,-0.008946329,-0.007952293,-0.006958258,-0.005964222,-0.0049701864,-0.0039761504,-0.0029821147,-0.001988079,-0.0009940432,-7.450581e-9]} diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/test/fixtures/julia/small_positive.json b/lib/node_modules/@stdlib/math/base/special/exp2f/test/fixtures/julia/small_positive.json new file mode 100644 index 000000000000..e7425e118713 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/test/fixtures/julia/small_positive.json @@ -0,0 +1 @@ +{"expected":[1.0,1.0006893,1.001379,1.0020692,1.0027598,1.003451,1.0041426,1.0048348,1.0055274,1.0062203,1.0069139,1.0076079,1.0083025,1.0089974,1.0096929,1.0103889,1.0110852,1.011782,1.0124794,1.0131773,1.0138756,1.0145744,1.0152738,1.0159736,1.0166738,1.0173745,1.0180758,1.0187775,1.0194796,1.0201824,1.0208855,1.0215892,1.0222933,1.0229979,1.023703,1.0244086,1.0251147,1.0258212,1.0265282,1.0272359,1.0279438,1.0286523,1.0293614,1.0300708,1.0307808,1.0314913,1.0322022,1.0329137,1.0336256,1.034338,1.035051,1.0357643,1.0364783,1.0371927,1.0379076,1.038623,1.0393388,1.0400552,1.0407721,1.0414894,1.0422072,1.0429256,1.0436444,1.0443637,1.0450835,1.0458039,1.0465248,1.047246,1.0479678,1.0486902,1.049413,1.0501363,1.05086,1.0515844,1.0523092,1.0530345,1.0537603,1.0544866,1.0552135,1.0559407,1.0566685,1.0573968,1.0581256,1.0588549,1.0595847,1.0603151,1.0610459,1.0617772,1.0625091,1.0632414,1.0639743,1.0647076,1.0654415,1.0661758,1.0669106,1.067646,1.0683819,1.0691183,1.0698552,1.0705925,1.0713304,1.0720689,1.0728078,1.0735472,1.0742872,1.0750277,1.0757686,1.0765101,1.077252,1.0779946,1.0787376,1.0794811,1.0802251,1.0809697,1.0817147,1.0824603,1.0832064,1.083953,1.0847001,1.0854478,1.086196,1.0869446,1.0876937,1.0884434,1.0891936,1.0899444,1.0906956,1.0914474,1.0921997,1.0929525,1.0937058,1.0944597,1.0952139,1.0959688,1.0967243,1.0974802,1.0982366,1.0989935,1.099751,1.100509,1.1012676,1.1020266,1.1027862,1.1035463,1.1043069,1.1050681,1.1058297,1.1065919,1.1073546,1.1081178,1.1088816,1.109646,1.1104108,1.1111761,1.1119419,1.1127083,1.1134753,1.1142428,1.1150107,1.1157793,1.1165483,1.1173179,1.118088,1.1188587,1.1196299,1.1204016,1.1211739,1.1219466,1.1227199,1.1234937,1.124268,1.125043,1.1258184,1.1265944,1.127371,1.128148,1.1289256,1.1297036,1.1304823,1.1312615,1.1320412,1.1328214,1.1336023,1.1343836,1.1351655,1.1359478,1.1367308,1.1375144,1.1382984,1.1390829,1.139868,1.1406537,1.1414399,1.1422266,1.143014,1.1438017,1.1445901,1.145379,1.1461685,1.1469585,1.147749,1.14854,1.1493317,1.1501238,1.1509166,1.1517099,1.1525037,1.153298,1.154093,1.1548884,1.1556845,1.156481,1.1572781,1.1580758,1.1588739,1.1596727,1.160472,1.1612718,1.1620723,1.1628733,1.1636747,1.1644769,1.1652794,1.1660826,1.1668863,1.1676906,1.1684954,1.1693008,1.1701068,1.1709132,1.1717203,1.1725279,1.173336,1.1741447,1.174954,1.175764,1.1765743,1.1773853,1.1781968,1.1790088,1.1798215,1.1806347,1.1814485,1.1822628,1.1830776,1.1838931,1.1847091,1.1855257,1.1863427,1.1871605,1.1879786,1.1887975,1.1896169,1.1904368,1.1912574,1.1920784,1.1929001,1.1937222,1.194545,1.1953684,1.1961923,1.1970167,1.1978418,1.1986674,1.1994936,1.2003204,1.2011477,1.2019756,1.202804,1.2036331,1.2044626,1.2052928,1.2061236,1.206955,1.2077868,1.2086192,1.2094523,1.2102859,1.2111201,1.211955,1.2127903,1.2136261,1.2144626,1.2152997,1.2161373,1.2169756,1.2178143,1.2186538,1.2194937,1.2203343,1.2211753,1.222017,1.2228594,1.2237022,1.2245456,1.2253896,1.2262342,1.2270794,1.2279252,1.2287716,1.2296184,1.230466,1.2313141,1.2321627,1.2330121,1.2338619,1.2347124,1.2355634,1.2364149,1.2372671,1.23812,1.2389734,1.2398273,1.2406819,1.241537,1.2423928,1.243249,1.2441059,1.2449634,1.2458216,1.2466803,1.2475395,1.2483994,1.2492598,1.2501209,1.2509825,1.2518448,1.2527076,1.253571,1.2544351,1.2552997,1.2561649,1.2570307,1.2578971,1.2587641,1.2596318,1.2605,1.2613688,1.2622381,1.2631081,1.2639787,1.2648499,1.2657217,1.2665942,1.2674671,1.2683407,1.2692149,1.2700897,1.2709651,1.2718412,1.2727177,1.273595,1.2744728,1.2753513,1.2762303,1.27711,1.2779902,1.278871,1.2797525,1.2806345,1.2815173,1.2824005,1.2832844,1.284169,1.2850541,1.2859398,1.2868261,1.287713,1.2886006,1.2894888,1.2903775,1.2912669,1.2921569,1.2930475,1.2939388,1.2948307,1.2957231,1.2966162,1.2975099,1.2984042,1.2992991,1.3001946,1.3010908,1.3019876,1.302885,1.303783,1.3046817,1.3055809,1.3064808,1.3073813,1.3082824,1.3091841,1.3100865,1.3109894,1.311893,1.3127973,1.3137021,1.3146076,1.3155137,1.3164204,1.3173277,1.3182358,1.3191442,1.3200536,1.3209634,1.3218738,1.3227849,1.3236967,1.324609,1.325522,1.3264357,1.3273499,1.3282647,1.3291802,1.3300964,1.3310132,1.3319306,1.3328487,1.3337673,1.3346865,1.3356066,1.3365271,1.3374482,1.3383701,1.3392926,1.3402157,1.3411394,1.3420638,1.3429888,1.3439145,1.3448408,1.3457677,1.3466953,1.3476235,1.3485523,1.3494818,1.350412,1.3513428,1.3522742,1.3532063,1.354139,1.3550723,1.3560063,1.3569409,1.3578762,1.3588121,1.3597486,1.3606858,1.3616236,1.3625622,1.3635013,1.3644412,1.3653816,1.3663226,1.3672644,1.3682067,1.3691498,1.3700935,1.3710378,1.3719828,1.3729285,1.3738748,1.3748218,1.3757693,1.3767176,1.3776665,1.378616,1.3795662,1.3805171,1.3814687,1.3824208,1.3833736,1.3843272,1.3852813,1.3862361,1.3871915,1.3881477,1.3891045,1.3900619,1.3910199,1.3919787,1.3929381,1.3938982,1.394859,1.3958204,1.3967825,1.3977453,1.3987086,1.3996726,1.4006374,1.4016027,1.4025688,1.4035356,1.404503,1.405471,1.4064398,1.4074091,1.4083792,1.4093499,1.4103212,1.4112934,1.4122661,1.4132395,1.4142135,1.4151883,1.4161637,1.4171399,1.4181166,1.4190941,1.4200721,1.4210509,1.4220303,1.4230105,1.4239913,1.4249729,1.425955,1.4269378,1.4279213,1.4289055,1.4298904,1.430876,1.4318622,1.4328492,1.4338367,1.434825,1.4358139,1.4368036,1.4377939,1.4387848,1.4397765,1.440769,1.441762,1.4427557,1.4437501,1.4447452,1.445741,1.4467375,1.4477347,1.4487325,1.4497311,1.4507303,1.4517303,1.4527308,1.453732,1.4547341,1.4557368,1.4567401,1.4577441,1.4587489,1.4597543,1.4607605,1.4617673,1.4627749,1.4637831,1.464792,1.4658016,1.4668119,1.4678229,1.4688346,1.4698471,1.4708601,1.4718739,1.4728884,1.4739035,1.4749194,1.475936,1.4769534,1.4779713,1.47899,1.4800094,1.4810295,1.4820503,1.4830718,1.484094,1.485117,1.4861405,1.4871649,1.4881899,1.4892157,1.4902421,1.4912692,1.492297,1.4933257,1.494355,1.4953849,1.4964156,1.497447,1.4984791,1.499512,1.5005455,1.5015798,1.5026147,1.5036504,1.5046868,1.5057238,1.5067617,1.5078002,1.5088395,1.5098795,1.5109202,1.5119616,1.5130037,1.5140465,1.51509,1.5161344,1.5171794,1.5182251,1.5192715,1.5203186,1.5213665,1.5224152,1.5234644,1.5245146,1.5255653,1.5266168,1.5276691,1.5287219,1.5297756,1.53083,1.5318851,1.532941,1.5339975,1.5350549,1.5361129,1.5371717,1.5382313,1.5392915,1.5403523,1.541414,1.5424765,1.5435396,1.5446036,1.5456681,1.5467335,1.5477996,1.5488664,1.5499339,1.5510023,1.5520713,1.5531411,1.5542115,1.5552828,1.5563548,1.5574275,1.558501,1.5595752,1.5606501,1.5617257,1.5628022,1.5638794,1.5649573,1.566036,1.5671153,1.5681955,1.5692763,1.5703579,1.5714403,1.5725235,1.5736073,1.5746919,1.5757773,1.5768634,1.5779502,1.5790379,1.5801262,1.5812153,1.5823052,1.5833957,1.5844871,1.5855792,1.5866721,1.5877657,1.58886,1.5899552,1.591051,1.5921476,1.593245,1.5943432,1.5954422,1.5965418,1.5976422,1.5987433,1.5998453,1.6009481,1.6020515,1.6031556,1.6042607,1.6053663,1.6064728,1.6075802,1.6086881,1.609797,1.6109065,1.6120168,1.613128,1.6142397,1.6153524,1.6164658,1.6175799,1.6186948,1.6198105,1.620927,1.6220442,1.6231622,1.6242809,1.6254005,1.6265208,1.6276418,1.6287637,1.6298864,1.6310098,1.632134,1.6332588,1.6343846,1.635511,1.6366383,1.6377665,1.6388953,1.6400249,1.6411552,1.6422864,1.6434183,1.6445512,1.6456846,1.6468189,1.647954,1.6490898,1.6502265,1.6513638,1.6525021,1.6536411,1.6547809,1.6559213,1.6570628,1.6582049,1.6593479,1.6604915,1.661636,1.6627812,1.6639273,1.6650742,1.6662219,1.6673703,1.6685196,1.6696696,1.6708204,1.671972,1.6731244,1.6742777,1.6754316,1.6765864,1.677742,1.6788983,1.6800555,1.6812135,1.6823723,1.6835319,1.6846923,1.6858535,1.6870154,1.6881782,1.6893418,1.6905062,1.6916714,1.6928374,1.694004,1.6951717,1.6963401,1.6975093,1.6986793,1.6998501,1.7010218,1.7021942,1.7033674,1.7045416,1.7057164,1.706892,1.7080685,1.7092458,1.7104238,1.7116027,1.7127825,1.713963,1.7151444,1.7163265,1.7175095,1.7186933,1.719878,1.7210634,1.7222496,1.7234367,1.7246245,1.7258132,1.7270027,1.7281932,1.7293843,1.7305763,1.7317691,1.7329626,1.7341571,1.7353523,1.7365485,1.7377454,1.7389431,1.7401416,1.741341,1.7425413,1.7437423,1.7449442,1.7461469,1.7473505,1.7485548,1.74976,1.750966,1.752173,1.7533805,1.7545891,1.7557985,1.7570087,1.7582196,1.7594315,1.7606442,1.7618577,1.763072,1.7642872,1.7655033,1.7667202,1.7679379,1.7691565,1.7703758,1.7715961,1.7728171,1.774039,1.7752619,1.7764854,1.7777098,1.7789352,1.7801613,1.7813883,1.782616,1.7838448,1.7850742,1.7863046,1.7875358,1.7887679,1.7900008,1.7912346,1.7924691,1.7937046,1.794941,1.7961781,1.7974161,1.7986549,1.7998947,1.8011353,1.8023767,1.803619,1.8048621,1.8061062,1.8073511,1.8085967,1.8098433,1.8110908,1.8123391,1.8135881,1.8148382,1.8160892,1.8173409,1.8185935,1.8198469,1.8211012,1.8223565,1.8236126,1.8248694,1.8261272,1.8273859,1.8286453,1.8299057,1.831167,1.8324293,1.8336922,1.834956,1.8362209,1.8374864,1.8387529,1.8400203,1.8412886,1.8425577,1.8438276,1.8450985,1.8463702,1.8476428,1.8489163,1.8501906,1.851466,1.8527421,1.854019,1.8552969,1.8565756,1.8578553,1.8591359,1.8604172,1.8616996,1.8629827,1.8642668,1.8655518,1.8668376,1.8681244,1.869412,1.8707004,1.8719897,1.87328,1.8745712,1.8758633,1.8771563,1.87845,1.8797448,1.8810403,1.882337,1.8836343,1.8849326,1.8862318,1.8875319,1.8888328,1.8901347,1.8914375,1.8927412,1.8940457,1.8953512,1.8966576,1.8979648,1.899273,1.9005822,1.9018921,1.903203,1.9045148,1.9058274,1.907141,1.9084556,1.909771,1.9110873,1.9124044,1.9137225,1.9150416,1.9163616,1.9176824,1.9190042,1.9203268,1.9216504,1.922975,1.9243003,1.9256268,1.9269539,1.928282,1.9296111,1.9309411,1.932272,1.9336039,1.9349366,1.9362702,1.9376048,1.9389403,1.9402767,1.941614,1.9429524,1.9442915,1.9456316,1.9469726,1.9483145,1.9496574,1.9510012,1.952346,1.9536917,1.9550382,1.9563857,1.9577341,1.9590836,1.9604338,1.9617851,1.9631373,1.9644903,1.9658444,1.9671993,1.9685552,1.969912,1.9712698,1.9726285,1.9739882,1.9753487,1.9767102,1.9780728,1.979436,1.9808004,1.9821657,1.9835318,1.9848989,1.9862671,1.9876362,1.9890062,1.9903771,1.9917489,1.9931217,1.9944955,1.9958702,1.9972459,1.9986224,2.0],"x":[7.450581e-9,0.0009940432,0.001988079,0.0029821147,0.0039761504,0.0049701864,0.005964222,0.006958258,0.007952293,0.008946329,0.009940365,0.010934401,0.011928436,0.012922472,0.013916508,0.014910544,0.01590458,0.016898615,0.017892651,0.018886687,0.019880723,0.02087476,0.021868795,0.022862831,0.023856865,0.024850901,0.025844937,0.026838973,0.02783301,0.028827045,0.029821081,0.030815117,0.03180915,0.03280319,0.033797223,0.03479126,0.035785295,0.036779333,0.037773367,0.0387674,0.03976144,0.040755473,0.04174951,0.042743545,0.043737583,0.044731617,0.045725655,0.04671969,0.047713723,0.04870776,0.049701795,0.050695833,0.051689867,0.052683905,0.05367794,0.054671977,0.05566601,0.056660045,0.057654083,0.058648117,0.059642155,0.06063619,0.061630227,0.06262426,0.063618295,0.06461234,0.06560637,0.066600405,0.06759444,0.06858847,0.069582514,0.07057655,0.07157058,0.07256462,0.07355866,0.07455269,0.07554673,0.07654076,0.077534795,0.07852884,0.07952287,0.080516905,0.08151094,0.08250498,0.083499014,0.08449305,0.08548708,0.08648112,0.08747516,0.08846919,0.08946323,0.09045726,0.0914513,0.09244534,0.09343937,0.094433405,0.09542744,0.09642148,0.097415514,0.09840955,0.09940358,0.100397624,0.10139166,0.10238569,0.10337973,0.10437376,0.1053678,0.106361836,0.10735587,0.108349904,0.109343946,0.11033798,0.111332014,0.11232605,0.11332008,0.114314124,0.11530816,0.11630219,0.11729623,0.11829027,0.1192843,0.120278336,0.12127237,0.12226641,0.123260446,0.12425448,0.12524852,0.12624255,0.12723659,0.12823062,0.12922466,0.1302187,0.13121273,0.13220677,0.1332008,0.13419484,0.13518888,0.1361829,0.13717695,0.13817099,0.13916501,0.14015906,0.14115308,0.14214712,0.14314117,0.14413519,0.14512923,0.14612326,0.1471173,0.14811134,0.14910537,0.15009941,0.15109344,0.15208748,0.15308152,0.15407555,0.15506959,0.15606363,0.15705766,0.1580517,0.15904573,0.16003977,0.16103381,0.16202784,0.16302188,0.1640159,0.16500995,0.16600399,0.16699801,0.16799206,0.1689861,0.16998012,0.17097417,0.17196819,0.17296223,0.17395627,0.1749503,0.17594434,0.17693837,0.17793241,0.17892645,0.17992048,0.18091452,0.18190855,0.18290259,0.18389663,0.18489066,0.1858847,0.18687874,0.18787277,0.18886681,0.18986084,0.19085488,0.19184892,0.19284295,0.19383699,0.19483101,0.19582506,0.1968191,0.19781312,0.19880717,0.19980119,0.20079523,0.20178927,0.2027833,0.20377734,0.20477138,0.20576541,0.20675945,0.20775348,0.20874752,0.20974156,0.21073559,0.21172963,0.21272366,0.2137177,0.21471174,0.21570577,0.21669981,0.21769384,0.21868788,0.21968192,0.22067595,0.22166999,0.22266403,0.22365806,0.2246521,0.22564612,0.22664016,0.2276342,0.22862823,0.22962227,0.2306163,0.23161034,0.23260438,0.23359841,0.23459245,0.2355865,0.23658052,0.23757456,0.23856859,0.23956263,0.24055667,0.2415507,0.24254474,0.24353877,0.24453281,0.24552685,0.24652088,0.24751492,0.24850895,0.24950299,0.250497,0.25149107,0.2524851,0.25347912,0.25447318,0.2554672,0.25646123,0.25745526,0.25844932,0.25944334,0.26043737,0.26143143,0.26242545,0.26341948,0.26441354,0.26540756,0.2664016,0.26739565,0.26838967,0.2693837,0.27037773,0.27137178,0.2723658,0.27335984,0.2743539,0.27534792,0.27634194,0.277336,0.27833003,0.27932405,0.2803181,0.28131214,0.28230616,0.2833002,0.28429425,0.28528827,0.2862823,0.28727636,0.28827038,0.2892644,0.29025847,0.2912525,0.29224652,0.29324055,0.2942346,0.29522863,0.29622266,0.2972167,0.29821074,0.29920477,0.30019882,0.30119285,0.30218688,0.30318093,0.30417496,0.305169,0.306163,0.30715707,0.3081511,0.30914512,0.31013918,0.3111332,0.31212723,0.3131213,0.31411532,0.31510934,0.3161034,0.31709743,0.31809145,0.31908548,0.32007954,0.32107356,0.3220676,0.32306165,0.32405567,0.3250497,0.32604375,0.32703778,0.3280318,0.32902586,0.3300199,0.33101392,0.33200794,0.333002,0.33399603,0.33499005,0.3359841,0.33697814,0.33797216,0.33896622,0.33996025,0.34095427,0.3419483,0.34294236,0.34393638,0.3449304,0.34592447,0.3469185,0.34791252,0.34890658,0.3499006,0.35089463,0.3518887,0.3528827,0.35387674,0.35487077,0.35586482,0.35685885,0.35785288,0.35884693,0.35984096,0.360835,0.36182904,0.36282307,0.3638171,0.36481115,0.36580518,0.3667992,0.36779323,0.3687873,0.36978132,0.37077534,0.3717694,0.37276343,0.37375745,0.3747515,0.37574553,0.37673956,0.3777336,0.37872764,0.37972167,0.3807157,0.38170975,0.38270378,0.3836978,0.38469186,0.3856859,0.38667992,0.38767397,0.388668,0.38966203,0.39065605,0.3916501,0.39264414,0.39363816,0.39463222,0.39562625,0.39662027,0.39761433,0.39860836,0.39960238,0.40059644,0.40159047,0.4025845,0.40357852,0.40457258,0.4055666,0.40656063,0.4075547,0.4085487,0.40954274,0.4105368,0.41153082,0.41252485,0.4135189,0.41451293,0.41550696,0.416501,0.41749504,0.41848907,0.4194831,0.42047715,0.42147118,0.4224652,0.42345926,0.4244533,0.42544731,0.42644134,0.4274354,0.42842942,0.42942345,0.4304175,0.43141153,0.43240556,0.43339962,0.43439364,0.43538767,0.43638173,0.43737575,0.43836978,0.4393638,0.44035786,0.4413519,0.44234592,0.44333997,0.444334,0.44532803,0.44632208,0.4473161,0.44831014,0.4493042,0.45029822,0.45129225,0.45228627,0.45328033,0.45427436,0.45526838,0.45626244,0.45725647,0.4582505,0.45924455,0.46023858,0.4612326,0.46222666,0.4632207,0.4642147,0.46520874,0.4662028,0.46719682,0.46819085,0.4691849,0.47017893,0.47117296,0.47216702,0.47316104,0.47415507,0.4751491,0.47614315,0.47713718,0.4781312,0.47912526,0.4801193,0.4811133,0.48210737,0.4831014,0.48409542,0.48508948,0.4860835,0.48707753,0.48807156,0.48906562,0.49005964,0.49105367,0.49204773,0.49304175,0.49403578,0.49502984,0.49602386,0.4970179,0.49801195,0.49900597,0.5,0.500994,0.50198805,0.50298214,0.50397617,0.5049702,0.5059642,0.50695825,0.5079523,0.5089463,0.5099404,0.5109344,0.51192844,0.51292247,0.5139165,0.5149105,0.5159046,0.51689863,0.51789266,0.5188867,0.5198807,0.52087474,0.52186877,0.52286285,0.5238569,0.5248509,0.52584493,0.52683896,0.527833,0.528827,0.5298211,0.5308151,0.53180915,0.5328032,0.5337972,0.53479123,0.5357853,0.53677934,0.5377734,0.5387674,0.5397614,0.54075545,0.5417495,0.54274356,0.5437376,0.5447316,0.54572564,0.5467197,0.5477137,0.5487078,0.5497018,0.55069584,0.55168986,0.5526839,0.5536779,0.55467194,0.555666,0.55666006,0.5576541,0.5586481,0.55964214,0.56063616,0.56163025,0.5626243,0.5636183,0.5646123,0.56560636,0.5666004,0.5675944,0.5685885,0.5695825,0.57057655,0.5715706,0.5725646,0.5735586,0.5745527,0.57554674,0.57654077,0.5775348,0.5785288,0.57952285,0.5805169,0.58151096,0.582505,0.583499,0.58449304,0.58548707,0.5864811,0.5874752,0.5884692,0.58946323,0.59045726,0.5914513,0.5924453,0.59343934,0.5944334,0.59542745,0.5964215,0.5974155,0.59840953,0.59940356,0.60039765,0.6013917,0.6023857,0.6033797,0.60437375,0.6053678,0.6063618,0.6073559,0.6083499,0.60934395,0.610338,0.611332,0.612326,0.61332005,0.61431414,0.61530817,0.6163022,0.6172962,0.61829025,0.6192843,0.62027836,0.6212724,0.6222664,0.62326044,0.62425447,0.6252485,0.6262425,0.6272366,0.62823063,0.62922466,0.6302187,0.6312127,0.63220674,0.6332008,0.63419485,0.6351889,0.6361829,0.63717693,0.63817096,0.639165,0.6401591,0.6411531,0.6421471,0.64314115,0.6441352,0.6451292,0.6461233,0.6471173,0.64811134,0.64910537,0.6500994,0.6510934,0.65208745,0.65308154,0.65407556,0.6550696,0.6560636,0.65705764,0.65805167,0.65904576,0.6600398,0.6610338,0.66202784,0.66302186,0.6640159,0.6650099,0.666004,0.666998,0.66799206,0.6689861,0.6699801,0.67097414,0.6719682,0.67296225,0.6739563,0.6749503,0.6759443,0.67693835,0.6779324,0.67892647,0.6799205,0.6809145,0.68190855,0.6829026,0.6838966,0.6848907,0.6858847,0.68687874,0.68787277,0.6888668,0.6898608,0.69085485,0.69184893,0.69284296,0.693837,0.694831,0.69582504,0.69681907,0.69781315,0.6988072,0.6998012,0.70079523,0.70178926,0.7027833,0.7037773,0.7047714,0.7057654,0.70675945,0.7077535,0.7087475,0.70974153,0.71073556,0.71172965,0.7127237,0.7137177,0.7147117,0.71570575,0.7166998,0.71769387,0.7186879,0.7196819,0.72067595,0.72167,0.722664,0.723658,0.7246521,0.72564614,0.72664016,0.7276342,0.7286282,0.72962224,0.73061633,0.73161036,0.7326044,0.7335984,0.73459244,0.73558646,0.7365805,0.7375746,0.7385686,0.73956263,0.74055666,0.7415507,0.7425447,0.7435388,0.7445328,0.74552685,0.7465209,0.7475149,0.74850893,0.74950296,0.75049704,0.75149107,0.7524851,0.7534791,0.75447315,0.7554672,0.75646126,0.7574553,0.7584493,0.75944334,0.76043737,0.7614314,0.7624254,0.7634195,0.76441354,0.76540756,0.7664016,0.7673956,0.76838964,0.7693837,0.77037776,0.7713718,0.7723658,0.77335984,0.77435386,0.7753479,0.776342,0.777336,0.77833,0.77932405,0.7803181,0.7813121,0.7823062,0.7833002,0.78429425,0.7852883,0.7862823,0.7872763,0.78827035,0.78926444,0.79025847,0.7912525,0.7922465,0.79324055,0.7942346,0.7952286,0.7962227,0.7972167,0.79821074,0.79920477,0.8001988,0.8011928,0.8021869,0.80318093,0.80417496,0.805169,0.806163,0.80715704,0.80815107,0.80914515,0.8101392,0.8111332,0.81212723,0.81312126,0.8141153,0.8151094,0.8161034,0.8170974,0.81809145,0.8190855,0.8200795,0.82107353,0.8220676,0.82306165,0.8240557,0.8250497,0.8260437,0.82703775,0.82803184,0.82902586,0.8300199,0.8310139,0.83200794,0.833002,0.833996,0.8349901,0.8359841,0.83697814,0.83797216,0.8389662,0.8399602,0.8409543,0.84194833,0.84294236,0.8439364,0.8449304,0.84592444,0.84691846,0.84791255,0.8489066,0.8499006,0.85089463,0.85188866,0.8528827,0.85387677,0.8548708,0.8558648,0.85685885,0.8578529,0.8588469,0.8598409,0.860835,0.86182904,0.86282307,0.8638171,0.8648111,0.86580515,0.86679924,0.86779326,0.8687873,0.8697813,0.87077534,0.87176937,0.8727634,0.8737575,0.8747515,0.87574553,0.87673956,0.8777336,0.8787276,0.87972164,0.8807157,0.88170975,0.8827038,0.8836978,0.88469183,0.88568586,0.88667995,0.887674,0.888668,0.889662,0.89065605,0.8916501,0.8926441,0.8936382,0.8946322,0.89562625,0.8966203,0.8976143,0.8986083,0.8996024,0.90059644,0.90159047,0.9025845,0.9035785,0.90457255,0.9055666,0.90656066,0.9075547,0.9085487,0.90954274,0.91053677,0.9115308,0.9125249,0.9135189,0.91451293,0.91550696,0.916501,0.917495,0.91848904,0.9194831,0.92047715,0.9214712,0.9224652,0.92345923,0.92445326,0.92544734,0.9264414,0.9274354,0.9284294,0.92942345,0.9304175,0.9314115,0.9324056,0.9333996,0.93439364,0.9353877,0.9363817,0.9373757,0.9383698,0.93936384,0.94035786,0.9413519,0.9423459,0.94333994,0.944334,0.94532806,0.9463221,0.9473161,0.94831014,0.94930416,0.9502982,0.9512923,0.9522863,0.9532803,0.95427436,0.9552684,0.9562624,0.95725644,0.9582505,0.95924455,0.9602386,0.9612326,0.9622266,0.96322066,0.9642147,0.96520877,0.9662028,0.9671968,0.96819085,0.9691849,0.9701789,0.971173,0.972167,0.97316104,0.97415507,0.9751491,0.9761431,0.97713715,0.97813123,0.97912526,0.9801193,0.9811133,0.98210734,0.98310137,0.98409545,0.9850895,0.9860835,0.98707753,0.98807156,0.9890656,0.9900596,0.9910537,0.9920477,0.99304175,0.9940358,0.9950298,0.99602383,0.9970179,0.99801195,0.999006,1.0]} diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/test/fixtures/julia/tiny.json b/lib/node_modules/@stdlib/math/base/special/exp2f/test/fixtures/julia/tiny.json new file mode 100644 index 000000000000..4ece60024af3 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/test/fixtures/julia/tiny.json @@ -0,0 +1 @@ +{"expected":[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],"x":[-7.450581e-9,-7.4357684e-9,-7.420956e-9,-7.4061437e-9,-7.3913315e-9,-7.376519e-9,-7.361707e-9,-7.3468946e-9,-7.3320825e-9,-7.31727e-9,-7.3024577e-9,-7.2876456e-9,-7.272833e-9,-7.258021e-9,-7.2432087e-9,-7.228396e-9,-7.213584e-9,-7.198772e-9,-7.183959e-9,-7.169147e-9,-7.154335e-9,-7.1395228e-9,-7.12471e-9,-7.109898e-9,-7.095086e-9,-7.0802733e-9,-7.065461e-9,-7.050649e-9,-7.0358364e-9,-7.021024e-9,-7.006212e-9,-6.9914e-9,-6.9765873e-9,-6.961775e-9,-6.946963e-9,-6.9321504e-9,-6.9173383e-9,-6.902526e-9,-6.8877135e-9,-6.8729014e-9,-6.858089e-9,-6.8432766e-9,-6.8284645e-9,-6.8136523e-9,-6.79884e-9,-6.7840276e-9,-6.7692154e-9,-6.7544033e-9,-6.7395907e-9,-6.7247785e-9,-6.7099664e-9,-6.6951538e-9,-6.6803416e-9,-6.6655295e-9,-6.650717e-9,-6.6359047e-9,-6.6210926e-9,-6.6062804e-9,-6.591468e-9,-6.5766557e-9,-6.5618435e-9,-6.547031e-9,-6.5322188e-9,-6.5174066e-9,-6.502594e-9,-6.487782e-9,-6.4729697e-9,-6.458157e-9,-6.443345e-9,-6.428533e-9,-6.4137207e-9,-6.398908e-9,-6.384096e-9,-6.3692838e-9,-6.354471e-9,-6.339659e-9,-6.324847e-9,-6.3100343e-9,-6.295222e-9,-6.28041e-9,-6.265598e-9,-6.2507852e-9,-6.235973e-9,-6.221161e-9,-6.2063483e-9,-6.191536e-9,-6.176724e-9,-6.1619114e-9,-6.1470993e-9,-6.132287e-9,-6.1174745e-9,-6.1026624e-9,-6.0878502e-9,-6.073038e-9,-6.0582255e-9,-6.0434133e-9,-6.028601e-9,-6.0137886e-9,-5.9989764e-9,-5.9841643e-9,-5.9693517e-9,-5.9545395e-9,-5.9397274e-9,-5.924915e-9,-5.9101026e-9,-5.8952905e-9,-5.8804783e-9,-5.8656657e-9,-5.8508536e-9,-5.8360414e-9,-5.821229e-9,-5.8064167e-9,-5.7916045e-9,-5.776792e-9,-5.76198e-9,-5.7471676e-9,-5.732355e-9,-5.717543e-9,-5.7027307e-9,-5.6879186e-9,-5.673106e-9,-5.658294e-9,-5.6434817e-9,-5.628669e-9,-5.613857e-9,-5.599045e-9,-5.584232e-9,-5.56942e-9,-5.554608e-9,-5.5397957e-9,-5.524983e-9,-5.510171e-9,-5.495359e-9,-5.4805462e-9,-5.465734e-9,-5.450922e-9,-5.4361093e-9,-5.421297e-9,-5.406485e-9,-5.3916724e-9,-5.3768603e-9,-5.362048e-9,-5.347236e-9,-5.3324234e-9,-5.3176112e-9,-5.302799e-9,-5.2879865e-9,-5.2731743e-9,-5.258362e-9,-5.2435496e-9,-5.2287374e-9,-5.2139253e-9,-5.1991127e-9,-5.1843005e-9,-5.1694884e-9,-5.1546762e-9,-5.1398636e-9,-5.1250515e-9,-5.1102393e-9,-5.0954267e-9,-5.0806146e-9,-5.0658024e-9,-5.05099e-9,-5.0361777e-9,-5.0213655e-9,-5.006553e-9,-4.991741e-9,-4.9769286e-9,-4.9621165e-9,-4.947304e-9,-4.9324917e-9,-4.9176796e-9,-4.902867e-9,-4.888055e-9,-4.8732427e-9,-4.85843e-9,-4.843618e-9,-4.828806e-9,-4.8139936e-9,-4.799181e-9,-4.784369e-9,-4.7695567e-9,-4.754744e-9,-4.739932e-9,-4.72512e-9,-4.7103073e-9,-4.695495e-9,-4.680683e-9,-4.6658704e-9,-4.651058e-9,-4.636246e-9,-4.621434e-9,-4.6066213e-9,-4.591809e-9,-4.576997e-9,-4.5621844e-9,-4.5473723e-9,-4.53256e-9,-4.5177475e-9,-4.5029354e-9,-4.488123e-9,-4.4733106e-9,-4.4584985e-9,-4.4436863e-9,-4.428874e-9,-4.4140616e-9,-4.3992494e-9,-4.3844373e-9,-4.3696247e-9,-4.3548125e-9,-4.3400004e-9,-4.3251878e-9,-4.3103756e-9,-4.2955635e-9,-4.280751e-9,-4.2659387e-9,-4.2511266e-9,-4.2363144e-9,-4.221502e-9,-4.2066897e-9,-4.1918775e-9,-4.177065e-9,-4.1622528e-9,-4.1474406e-9,-4.132628e-9,-4.117816e-9,-4.1030037e-9,-4.0881916e-9,-4.073379e-9,-4.058567e-9,-4.0437547e-9,-4.028942e-9,-4.01413e-9,-3.9993178e-9,-3.984505e-9,-3.969693e-9,-3.954881e-9,-3.9400683e-9,-3.925256e-9,-3.910444e-9,-3.895632e-9,-3.880819e-9,-3.866007e-9,-3.851195e-9,-3.8363823e-9,-3.82157e-9,-3.806758e-9,-3.7919454e-9,-3.7771333e-9,-3.762321e-9,-3.7475085e-9,-3.7326964e-9,-3.7178842e-9,-3.7030718e-9,-3.6882595e-9,-3.6734473e-9,-3.658635e-9,-3.6438228e-9,-3.6290104e-9,-3.614198e-9,-3.599386e-9,-3.5845735e-9,-3.5697614e-9,-3.554949e-9,-3.5401366e-9,-3.5253245e-9,-3.510512e-9,-3.4957e-9,-3.4808876e-9,-3.4660752e-9,-3.451263e-9,-3.4364507e-9,-3.4216383e-9,-3.4068262e-9,-3.3920138e-9,-3.3772016e-9,-3.3623893e-9,-3.3475769e-9,-3.3327647e-9,-3.3179524e-9,-3.3031402e-9,-3.2883278e-9,-3.2735155e-9,-3.2587033e-9,-3.243891e-9,-3.2290786e-9,-3.2142664e-9,-3.199454e-9,-3.1846419e-9,-3.1698295e-9,-3.1550171e-9,-3.140205e-9,-3.1253926e-9,-3.1105805e-9,-3.095768e-9,-3.0809557e-9,-3.0661436e-9,-3.0513312e-9,-3.036519e-9,-3.0217067e-9,-3.0068943e-9,-2.9920821e-9,-2.9772698e-9,-2.9624574e-9,-2.9476452e-9,-2.9328329e-9,-2.9180207e-9,-2.9032083e-9,-2.888396e-9,-2.8735838e-9,-2.8587714e-9,-2.8439593e-9,-2.829147e-9,-2.8143345e-9,-2.7995224e-9,-2.78471e-9,-2.7698979e-9,-2.7550855e-9,-2.7402731e-9,-2.725461e-9,-2.7106486e-9,-2.6958362e-9,-2.681024e-9,-2.6662117e-9,-2.6513995e-9,-2.6365872e-9,-2.6217748e-9,-2.6069626e-9,-2.5921503e-9,-2.5773381e-9,-2.5625257e-9,-2.5477134e-9,-2.5329012e-9,-2.5180888e-9,-2.5032765e-9,-2.4884643e-9,-2.473652e-9,-2.4588398e-9,-2.4440274e-9,-2.429215e-9,-2.414403e-9,-2.3995905e-9,-2.3847784e-9,-2.369966e-9,-2.3551536e-9,-2.3403415e-9,-2.325529e-9,-2.310717e-9,-2.2959046e-9,-2.2810922e-9,-2.26628e-9,-2.2514677e-9,-2.2366553e-9,-2.2218432e-9,-2.2070308e-9,-2.1922186e-9,-2.1774063e-9,-2.1625939e-9,-2.1477817e-9,-2.1329694e-9,-2.1181572e-9,-2.1033448e-9,-2.0885325e-9,-2.0737203e-9,-2.058908e-9,-2.0440958e-9,-2.0292834e-9,-2.014471e-9,-1.9996589e-9,-1.9848465e-9,-1.9700341e-9,-1.955222e-9,-1.9404096e-9,-1.9255975e-9,-1.910785e-9,-1.8959727e-9,-1.8811606e-9,-1.8663482e-9,-1.8515359e-9,-1.8367237e-9,-1.8219114e-9,-1.807099e-9,-1.7922868e-9,-1.7774745e-9,-1.7626622e-9,-1.74785e-9,-1.7330376e-9,-1.7182253e-9,-1.7034131e-9,-1.6886008e-9,-1.6737884e-9,-1.6589762e-9,-1.6441639e-9,-1.6293517e-9,-1.6145393e-9,-1.599727e-9,-1.5849148e-9,-1.5701025e-9,-1.5552902e-9,-1.5404779e-9,-1.5256656e-9,-1.5108533e-9,-1.4960411e-9,-1.4812287e-9,-1.4664164e-9,-1.4516042e-9,-1.4367919e-9,-1.4219796e-9,-1.4071673e-9,-1.392355e-9,-1.3775427e-9,-1.3627305e-9,-1.3479181e-9,-1.3331058e-9,-1.3182936e-9,-1.3034813e-9,-1.2886691e-9,-1.2738567e-9,-1.2590444e-9,-1.2442322e-9,-1.2294199e-9,-1.2146075e-9,-1.1997953e-9,-1.184983e-9,-1.1701707e-9,-1.1553585e-9,-1.1405461e-9,-1.1257338e-9,-1.1109216e-9,-1.0961093e-9,-1.0812969e-9,-1.0664847e-9,-1.0516724e-9,-1.0368602e-9,-1.0220479e-9,-1.0072355e-9,-9.924233e-10,-9.77611e-10,-9.627987e-10,-9.479864e-10,-9.331741e-10,-9.1836183e-10,-9.035495e-10,-8.8873725e-10,-8.73925e-10,-8.5911267e-10,-8.443004e-10,-8.294881e-10,-8.146758e-10,-7.998635e-10,-7.8505125e-10,-7.7023893e-10,-7.5542667e-10,-7.4061435e-10,-7.258021e-10,-7.109898e-10,-6.961775e-10,-6.8136524e-10,-6.665529e-10,-6.5174066e-10,-6.3692834e-10,-6.221161e-10,-6.0730376e-10,-5.924915e-10,-5.7767924e-10,-5.628669e-10,-5.4805466e-10,-5.3324234e-10,-5.184301e-10,-5.0361776e-10,-4.888055e-10,-4.739932e-10,-4.5918092e-10,-4.4436863e-10,-4.2955633e-10,-4.1474404e-10,-3.9993175e-10,-3.8511946e-10,-3.7030717e-10,-3.554949e-10,-3.4068262e-10,-3.2587033e-10,-3.1105804e-10,-2.9624575e-10,-2.8143346e-10,-2.6662117e-10,-2.5180888e-10,-2.369966e-10,-2.2218431e-10,-2.0737202e-10,-1.9255973e-10,-1.7774746e-10,-1.6293517e-10,-1.4812288e-10,-1.3331058e-10,-1.184983e-10,-1.0368601e-10,-8.887373e-11,-7.406144e-11,-5.924915e-11,-4.4436864e-11,-2.9624574e-11,-1.4812287e-11,0.0,1.4812287e-11,2.9624574e-11,4.4436864e-11,5.924915e-11,7.406144e-11,8.887373e-11,1.0368601e-10,1.184983e-10,1.3331058e-10,1.4812288e-10,1.6293517e-10,1.7774746e-10,1.9255973e-10,2.0737202e-10,2.2218431e-10,2.369966e-10,2.5180888e-10,2.6662117e-10,2.8143346e-10,2.9624575e-10,3.1105804e-10,3.2587033e-10,3.4068262e-10,3.554949e-10,3.7030717e-10,3.8511946e-10,3.9993175e-10,4.1474404e-10,4.2955633e-10,4.4436863e-10,4.5918092e-10,4.739932e-10,4.888055e-10,5.0361776e-10,5.184301e-10,5.3324234e-10,5.4805466e-10,5.628669e-10,5.7767924e-10,5.924915e-10,6.0730376e-10,6.221161e-10,6.3692834e-10,6.5174066e-10,6.665529e-10,6.8136524e-10,6.961775e-10,7.109898e-10,7.258021e-10,7.4061435e-10,7.5542667e-10,7.7023893e-10,7.8505125e-10,7.998635e-10,8.146758e-10,8.294881e-10,8.443004e-10,8.5911267e-10,8.73925e-10,8.8873725e-10,9.035495e-10,9.1836183e-10,9.331741e-10,9.479864e-10,9.627987e-10,9.77611e-10,9.924233e-10,1.0072355e-9,1.0220479e-9,1.0368602e-9,1.0516724e-9,1.0664847e-9,1.0812969e-9,1.0961093e-9,1.1109216e-9,1.1257338e-9,1.1405461e-9,1.1553585e-9,1.1701707e-9,1.184983e-9,1.1997953e-9,1.2146075e-9,1.2294199e-9,1.2442322e-9,1.2590444e-9,1.2738567e-9,1.2886691e-9,1.3034813e-9,1.3182936e-9,1.3331058e-9,1.3479181e-9,1.3627305e-9,1.3775427e-9,1.392355e-9,1.4071673e-9,1.4219796e-9,1.4367919e-9,1.4516042e-9,1.4664164e-9,1.4812287e-9,1.4960411e-9,1.5108533e-9,1.5256656e-9,1.5404779e-9,1.5552902e-9,1.5701025e-9,1.5849148e-9,1.599727e-9,1.6145393e-9,1.6293517e-9,1.6441639e-9,1.6589762e-9,1.6737884e-9,1.6886008e-9,1.7034131e-9,1.7182253e-9,1.7330376e-9,1.74785e-9,1.7626622e-9,1.7774745e-9,1.7922868e-9,1.807099e-9,1.8219114e-9,1.8367237e-9,1.8515359e-9,1.8663482e-9,1.8811606e-9,1.8959727e-9,1.910785e-9,1.9255975e-9,1.9404096e-9,1.955222e-9,1.9700341e-9,1.9848465e-9,1.9996589e-9,2.014471e-9,2.0292834e-9,2.0440958e-9,2.058908e-9,2.0737203e-9,2.0885325e-9,2.1033448e-9,2.1181572e-9,2.1329694e-9,2.1477817e-9,2.1625939e-9,2.1774063e-9,2.1922186e-9,2.2070308e-9,2.2218432e-9,2.2366553e-9,2.2514677e-9,2.26628e-9,2.2810922e-9,2.2959046e-9,2.310717e-9,2.325529e-9,2.3403415e-9,2.3551536e-9,2.369966e-9,2.3847784e-9,2.3995905e-9,2.414403e-9,2.429215e-9,2.4440274e-9,2.4588398e-9,2.473652e-9,2.4884643e-9,2.5032765e-9,2.5180888e-9,2.5329012e-9,2.5477134e-9,2.5625257e-9,2.5773381e-9,2.5921503e-9,2.6069626e-9,2.6217748e-9,2.6365872e-9,2.6513995e-9,2.6662117e-9,2.681024e-9,2.6958362e-9,2.7106486e-9,2.725461e-9,2.7402731e-9,2.7550855e-9,2.7698979e-9,2.78471e-9,2.7995224e-9,2.8143345e-9,2.829147e-9,2.8439593e-9,2.8587714e-9,2.8735838e-9,2.888396e-9,2.9032083e-9,2.9180207e-9,2.9328329e-9,2.9476452e-9,2.9624574e-9,2.9772698e-9,2.9920821e-9,3.0068943e-9,3.0217067e-9,3.036519e-9,3.0513312e-9,3.0661436e-9,3.0809557e-9,3.095768e-9,3.1105805e-9,3.1253926e-9,3.140205e-9,3.1550171e-9,3.1698295e-9,3.1846419e-9,3.199454e-9,3.2142664e-9,3.2290786e-9,3.243891e-9,3.2587033e-9,3.2735155e-9,3.2883278e-9,3.3031402e-9,3.3179524e-9,3.3327647e-9,3.3475769e-9,3.3623893e-9,3.3772016e-9,3.3920138e-9,3.4068262e-9,3.4216383e-9,3.4364507e-9,3.451263e-9,3.4660752e-9,3.4808876e-9,3.4957e-9,3.510512e-9,3.5253245e-9,3.5401366e-9,3.554949e-9,3.5697614e-9,3.5845735e-9,3.599386e-9,3.614198e-9,3.6290104e-9,3.6438228e-9,3.658635e-9,3.6734473e-9,3.6882595e-9,3.7030718e-9,3.7178842e-9,3.7326964e-9,3.7475085e-9,3.762321e-9,3.7771333e-9,3.7919454e-9,3.806758e-9,3.82157e-9,3.8363823e-9,3.851195e-9,3.866007e-9,3.880819e-9,3.895632e-9,3.910444e-9,3.925256e-9,3.9400683e-9,3.954881e-9,3.969693e-9,3.984505e-9,3.9993178e-9,4.01413e-9,4.028942e-9,4.0437547e-9,4.058567e-9,4.073379e-9,4.0881916e-9,4.1030037e-9,4.117816e-9,4.132628e-9,4.1474406e-9,4.1622528e-9,4.177065e-9,4.1918775e-9,4.2066897e-9,4.221502e-9,4.2363144e-9,4.2511266e-9,4.2659387e-9,4.280751e-9,4.2955635e-9,4.3103756e-9,4.3251878e-9,4.3400004e-9,4.3548125e-9,4.3696247e-9,4.3844373e-9,4.3992494e-9,4.4140616e-9,4.428874e-9,4.4436863e-9,4.4584985e-9,4.4733106e-9,4.488123e-9,4.5029354e-9,4.5177475e-9,4.53256e-9,4.5473723e-9,4.5621844e-9,4.576997e-9,4.591809e-9,4.6066213e-9,4.621434e-9,4.636246e-9,4.651058e-9,4.6658704e-9,4.680683e-9,4.695495e-9,4.7103073e-9,4.72512e-9,4.739932e-9,4.754744e-9,4.7695567e-9,4.784369e-9,4.799181e-9,4.8139936e-9,4.828806e-9,4.843618e-9,4.85843e-9,4.8732427e-9,4.888055e-9,4.902867e-9,4.9176796e-9,4.9324917e-9,4.947304e-9,4.9621165e-9,4.9769286e-9,4.991741e-9,5.006553e-9,5.0213655e-9,5.0361777e-9,5.05099e-9,5.0658024e-9,5.0806146e-9,5.0954267e-9,5.1102393e-9,5.1250515e-9,5.1398636e-9,5.1546762e-9,5.1694884e-9,5.1843005e-9,5.1991127e-9,5.2139253e-9,5.2287374e-9,5.2435496e-9,5.258362e-9,5.2731743e-9,5.2879865e-9,5.302799e-9,5.3176112e-9,5.3324234e-9,5.347236e-9,5.362048e-9,5.3768603e-9,5.3916724e-9,5.406485e-9,5.421297e-9,5.4361093e-9,5.450922e-9,5.465734e-9,5.4805462e-9,5.495359e-9,5.510171e-9,5.524983e-9,5.5397957e-9,5.554608e-9,5.56942e-9,5.584232e-9,5.599045e-9,5.613857e-9,5.628669e-9,5.6434817e-9,5.658294e-9,5.673106e-9,5.6879186e-9,5.7027307e-9,5.717543e-9,5.732355e-9,5.7471676e-9,5.76198e-9,5.776792e-9,5.7916045e-9,5.8064167e-9,5.821229e-9,5.8360414e-9,5.8508536e-9,5.8656657e-9,5.8804783e-9,5.8952905e-9,5.9101026e-9,5.924915e-9,5.9397274e-9,5.9545395e-9,5.9693517e-9,5.9841643e-9,5.9989764e-9,6.0137886e-9,6.028601e-9,6.0434133e-9,6.0582255e-9,6.073038e-9,6.0878502e-9,6.1026624e-9,6.1174745e-9,6.132287e-9,6.1470993e-9,6.1619114e-9,6.176724e-9,6.191536e-9,6.2063483e-9,6.221161e-9,6.235973e-9,6.2507852e-9,6.265598e-9,6.28041e-9,6.295222e-9,6.3100343e-9,6.324847e-9,6.339659e-9,6.354471e-9,6.3692838e-9,6.384096e-9,6.398908e-9,6.4137207e-9,6.428533e-9,6.443345e-9,6.458157e-9,6.4729697e-9,6.487782e-9,6.502594e-9,6.5174066e-9,6.5322188e-9,6.547031e-9,6.5618435e-9,6.5766557e-9,6.591468e-9,6.6062804e-9,6.6210926e-9,6.6359047e-9,6.650717e-9,6.6655295e-9,6.6803416e-9,6.6951538e-9,6.7099664e-9,6.7247785e-9,6.7395907e-9,6.7544033e-9,6.7692154e-9,6.7840276e-9,6.79884e-9,6.8136523e-9,6.8284645e-9,6.8432766e-9,6.858089e-9,6.8729014e-9,6.8877135e-9,6.902526e-9,6.9173383e-9,6.9321504e-9,6.946963e-9,6.961775e-9,6.9765873e-9,6.9914e-9,7.006212e-9,7.021024e-9,7.0358364e-9,7.050649e-9,7.065461e-9,7.0802733e-9,7.095086e-9,7.109898e-9,7.12471e-9,7.1395228e-9,7.154335e-9,7.169147e-9,7.183959e-9,7.198772e-9,7.213584e-9,7.228396e-9,7.2432087e-9,7.258021e-9,7.272833e-9,7.2876456e-9,7.3024577e-9,7.31727e-9,7.3320825e-9,7.3468946e-9,7.361707e-9,7.376519e-9,7.3913315e-9,7.4061437e-9,7.420956e-9,7.4357684e-9,7.450581e-9]} diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/test/test.js b/lib/node_modules/@stdlib/math/base/special/exp2f/test/test.js new file mode 100644 index 000000000000..ec222d5d23ef --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/test/test.js @@ -0,0 +1,183 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var absf = require( '@stdlib/math/base/special/absf' ); +var PINF = require( '@stdlib/constants/float32/pinf' ); +var NINF = require( '@stdlib/constants/float32/ninf' ); +var EPS = require( '@stdlib/constants/float32/eps' ); +var exp2f = require( './../lib' ); + + +// FIXTURES // + +var mediumNegative = require( './fixtures/julia/medium_negative.json' ); +var mediumPositive = require( './fixtures/julia/medium_positive.json' ); +var smallNegative = require( './fixtures/julia/small_negative.json' ); +var smallPositive = require( './fixtures/julia/small_positive.json' ); +var tiny = require( './fixtures/julia/tiny.json' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof exp2f, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function accurately computes `2**x` for negative medium numbers', function test( t ) { + var expected; + var delta; + var tol; + var x; + var v; + var i; + + x = mediumNegative.x; + expected = mediumNegative.expected; + + for ( i = 0; i < x.length; i++ ) { + v = exp2f( x[ i ] ); + delta = absf( v - expected[ i ] ); + tol = 1.5 * EPS * absf( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. x: ' + x[ i ] + '. Value: ' + v + '. Expected: ' + expected[ i ] + '. Delta: ' + delta + '. Tolerance: ' + tol + '.' ); + } + t.end(); +}); + +tape( 'the function accurately computes `2**x` for positive medium numbers', function test( t ) { + var expected; + var delta; + var tol; + var x; + var v; + var i; + + x = mediumPositive.x; + expected = mediumPositive.expected; + + for ( i = 0; i < x.length; i++ ) { + v = exp2f( x[ i ] ); + delta = absf( v - expected[ i ] ); + tol = 1.5 * EPS * absf( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. x: ' + x[ i ] + '. Value: ' + v + '. Expected: ' + expected[ i ] + '. Delta: ' + delta + '. Tolerance: ' + tol + '.' ); + } + t.end(); +}); + +tape( 'the function accurately computes `2**x` for negative small numbers', function test( t ) { + var expected; + var delta; + var tol; + var x; + var v; + var i; + + x = smallNegative.x; + expected = smallNegative.expected; + + for ( i = 0; i < x.length; i++ ) { + v = exp2f( x[ i ] ); + delta = absf( v - expected[ i ] ); + tol = 1.5 * EPS * absf( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. x: ' + x[ i ] + '. Value: ' + v + '. Expected: ' + expected[ i ] + '. Delta: ' + delta + '. Tolerance: ' + tol + '.' ); + } + t.end(); +}); + +tape( 'the function accurately computes `2**x` for positive small numbers', function test( t ) { + var expected; + var delta; + var tol; + var x; + var v; + var i; + + x = smallPositive.x; + expected = smallPositive.expected; + + for ( i = 0; i < x.length; i++ ) { + v = exp2f( x[ i ] ); + delta = absf( v - expected[ i ] ); + tol = 1.5 * EPS * absf( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. x: ' + x[ i ] + '. Value: ' + v + '. Expected: ' + expected[ i ] + '. Delta: ' + delta + '. Tolerance: ' + tol + '.' ); + } + t.end(); +}); + +tape( 'the function accurately computes `2**x` for very small `x`', function test( t ) { + var expected; + var delta; + var tol; + var x; + var v; + var i; + + x = tiny.x; + expected = tiny.expected; + + for ( i = 0; i < x.length; i++ ) { + v = exp2f( x[ i ] ); + delta = absf( v - expected[ i ] ); + tol = 1.5 * EPS * absf( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. x: ' + x[ i ] + '. Value: ' + v + '. Expected: ' + expected[ i ] + '. Delta: ' + delta + '. Tolerance: ' + tol + '.' ); + } + t.end(); +}); + +tape( 'the function returns `+infinity` for very large `x`', function test( t ) { + t.equal( exp2f( 1100.0 ), PINF, 'equals +infinity' ); + t.equal( exp2f( 1200.0 ), PINF, 'equals +infinity' ); + t.equal( exp2f( 1300.0 ), PINF, 'equals +infinity' ); + t.end(); +}); + +tape( 'the function returns `0.0` for negative large `x`', function test( t ) { + t.equal( exp2f( -1100.0 ), 0.0, 'equals 0' ); + t.equal( exp2f( -1200.0 ), 0.0, 'equals 0' ); + t.equal( exp2f( -1300.0 ), 0.0, 'equals 0' ); + t.end(); +}); + +tape( 'the function returns `0.0` if provided `-infinity`', function test( t ) { + t.equal( exp2f( NINF ), 0.0, 'equals 0' ); + t.end(); +}); + +tape( 'the function returns `+infinity` if provided `+infinity`', function test( t ) { + t.equal( exp2f( PINF ), PINF, 'equals +infinity' ); + t.end(); +}); + +tape( 'the function returns `1` if provided `0`', function test( t ) { + var v = exp2f( 0.0 ); + t.equal( v, 1.0, 'equals 1' ); + t.end(); +}); + +tape( 'the function returns `NaN` if provided `NaN`', function test( t ) { + var val = exp2f( NaN ); + t.equal( isnanf( val ), true, 'equals NaN' ); + t.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/exp2f/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/exp2f/test/test.native.js new file mode 100644 index 000000000000..37d060b30c49 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/exp2f/test/test.native.js @@ -0,0 +1,192 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2025 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var resolve = require( 'path' ).resolve; +var tape = require( 'tape' ); +var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var absf = require( '@stdlib/math/base/special/absf' ); +var PINF = require( '@stdlib/constants/float32/pinf' ); +var NINF = require( '@stdlib/constants/float32/ninf' ); +var EPS = require( '@stdlib/constants/float32/eps' ); +var tryRequire = require( '@stdlib/utils/try-require' ); + + +// FIXTURES // + +var mediumNegative = require( './fixtures/julia/medium_negative.json' ); +var mediumPositive = require( './fixtures/julia/medium_positive.json' ); +var smallNegative = require( './fixtures/julia/small_negative.json' ); +var smallPositive = require( './fixtures/julia/small_positive.json' ); +var tiny = require( './fixtures/julia/tiny.json' ); + + +// VARIABLES // + +var exp2f = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( exp2f instanceof Error ) +}; + + +// TESTS // + +tape( 'main export is a function', opts, function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof exp2f, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function accurately computes `2**x` for negative medium numbers', opts, function test( t ) { + var expected; + var delta; + var tol; + var x; + var v; + var i; + + x = mediumNegative.x; + expected = mediumNegative.expected; + + for ( i = 0; i < x.length; i++ ) { + v = exp2f( x[ i ] ); + delta = absf( v - expected[ i ] ); + tol = 1.5 * EPS * absf( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. x: ' + x[ i ] + '. Value: ' + v + '. Expected: ' + expected[ i ] + '. Delta: ' + delta + '. Tolerance: ' + tol + '.' ); + } + t.end(); +}); + +tape( 'the function accurately computes `2**x` for positive medium numbers', opts, function test( t ) { + var expected; + var delta; + var tol; + var x; + var v; + var i; + + x = mediumPositive.x; + expected = mediumPositive.expected; + + for ( i = 0; i < x.length; i++ ) { + v = exp2f( x[ i ] ); + delta = absf( v - expected[ i ] ); + tol = 1.5 * EPS * absf( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. x: ' + x[ i ] + '. Value: ' + v + '. Expected: ' + expected[ i ] + '. Delta: ' + delta + '. Tolerance: ' + tol + '.' ); + } + t.end(); +}); + +tape( 'the function accurately computes `2**x` for negative small numbers', opts, function test( t ) { + var expected; + var delta; + var tol; + var x; + var v; + var i; + + x = smallNegative.x; + expected = smallNegative.expected; + + for ( i = 0; i < x.length; i++ ) { + v = exp2f( x[ i ] ); + delta = absf( v - expected[ i ] ); + tol = 1.5 * EPS * absf( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. x: ' + x[ i ] + '. Value: ' + v + '. Expected: ' + expected[ i ] + '. Delta: ' + delta + '. Tolerance: ' + tol + '.' ); + } + t.end(); +}); + +tape( 'the function accurately computes `2**x` for positive small numbers', opts, function test( t ) { + var expected; + var delta; + var tol; + var x; + var v; + var i; + + x = smallPositive.x; + expected = smallPositive.expected; + + for ( i = 0; i < x.length; i++ ) { + v = exp2f( x[ i ] ); + delta = absf( v - expected[ i ] ); + tol = 1.5 * EPS * absf( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. x: ' + x[ i ] + '. Value: ' + v + '. Expected: ' + expected[ i ] + '. Delta: ' + delta + '. Tolerance: ' + tol + '.' ); + } + t.end(); +}); + +tape( 'the function accurately computes `2**x` for very small `x`', opts, function test( t ) { + var expected; + var delta; + var tol; + var x; + var v; + var i; + + x = tiny.x; + expected = tiny.expected; + + for ( i = 0; i < x.length; i++ ) { + v = exp2f( x[ i ] ); + delta = absf( v - expected[ i ] ); + tol = 1.5 * EPS * absf( expected[ i ] ); + t.ok( delta <= tol, 'within tolerance. x: ' + x[ i ] + '. Value: ' + v + '. Expected: ' + expected[ i ] + '. Delta: ' + delta + '. Tolerance: ' + tol + '.' ); + } + t.end(); +}); + +tape( 'the function returns `+infinity` for very large `x`', opts, function test( t ) { + t.equal( exp2f( 1100.0 ), PINF, 'equals +infinity' ); + t.equal( exp2f( 1200.0 ), PINF, 'equals +infinity' ); + t.equal( exp2f( 1300.0 ), PINF, 'equals +infinity' ); + t.end(); +}); + +tape( 'the function returns `0.0` for negative large `x`', opts, function test( t ) { + t.equal( exp2f( -1100.0 ), 0.0, 'equals 0' ); + t.equal( exp2f( -1200.0 ), 0.0, 'equals 0' ); + t.equal( exp2f( -1300.0 ), 0.0, 'equals 0' ); + t.end(); +}); + +tape( 'the function returns `0.0` if provided `-infinity`', opts, function test( t ) { + t.equal( exp2f( NINF ), 0.0, 'equals 0' ); + t.end(); +}); + +tape( 'the function returns `+infinity` if provided `+infinity`', opts, function test( t ) { + t.equal( exp2f( PINF ), PINF, 'equals +infinity' ); + t.end(); +}); + +tape( 'the function returns `1` if provided `0`', opts, function test( t ) { + var v = exp2f( 0.0 ); + t.equal( v, 1.0, 'equals 1' ); + t.end(); +}); + +tape( 'the function returns `NaN` if provided `NaN`', opts, function test( t ) { + var val = exp2f( NaN ); + t.equal( isnanf( val ), true, 'equals NaN' ); + t.end(); +});