From 698b3e397c22481cb17f22d0ba48df787f6b99b1 Mon Sep 17 00:00:00 2001 From: nirmaljb Date: Sun, 8 Mar 2026 12:19:15 +0530 Subject: [PATCH 1/8] feat: add implementation for math/base/special/gammaf --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: passed - task: lint_package_json status: passed - task: lint_repl_help status: passed - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: passed - task: lint_javascript_tests status: passed - task: lint_javascript_benchmarks status: passed - task: lint_python status: na - task: lint_r status: passed - task: lint_c_src status: passed - task: lint_c_examples status: passed - task: lint_c_benchmarks status: passed - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: passed - task: lint_license_headers status: passed --- --- .../@stdlib/math/base/special/gammaf/LICENSE | 222 +++++++++++++++ .../math/base/special/gammaf/README.md | 249 +++++++++++++++++ .../special/gammaf/benchmark/benchmark.js | 53 ++++ .../gammaf/benchmark/benchmark.native.js | 62 +++++ .../base/special/gammaf/benchmark/c/Makefile | 126 +++++++++ .../special/gammaf/benchmark/c/benchmark.c | 137 +++++++++ .../gammaf/benchmark/c/native/Makefile | 146 ++++++++++ .../gammaf/benchmark/c/native/benchmark.c | 138 +++++++++ .../math/base/special/gammaf/binding.gyp | 170 ++++++++++++ ...uation_gamma_function_infinite_product.svg | 76 +++++ ...ation_gamma_function_positive_integers.svg | 26 ++ .../math/base/special/gammaf/docs/repl.txt | 34 +++ .../base/special/gammaf/docs/types/index.d.ts | 60 ++++ .../base/special/gammaf/docs/types/test.ts | 44 +++ .../base/special/gammaf/examples/c/Makefile | 146 ++++++++++ .../base/special/gammaf/examples/c/example.c | 31 +++ .../base/special/gammaf/examples/index.js | 30 ++ .../math/base/special/gammaf/include.gypi | 53 ++++ .../include/stdlib/math/base/special/gammaf.h | 38 +++ .../math/base/special/gammaf/lib/index.js | 58 ++++ .../math/base/special/gammaf/lib/main.js | 197 +++++++++++++ .../math/base/special/gammaf/lib/native.js | 70 +++++ .../math/base/special/gammaf/lib/polyval_p.js | 47 ++++ .../math/base/special/gammaf/lib/polyval_s.js | 47 ++++ .../special/gammaf/lib/small_approximation.js | 58 ++++ .../gammaf/lib/stirling_approximation.js | 81 ++++++ .../math/base/special/gammaf/manifest.json | 105 +++++++ .../math/base/special/gammaf/package.json | 139 ++++++++++ .../base/special/gammaf/scripts/evalpoly.js | 138 +++++++++ .../math/base/special/gammaf/src/Makefile | 70 +++++ .../math/base/special/gammaf/src/addon.c | 22 ++ .../math/base/special/gammaf/src/main.c | 262 ++++++++++++++++++ .../gammaf/test/fixtures/r/DESCRIPTION | 9 + .../special/gammaf/test/fixtures/r/data1.json | 1 + .../special/gammaf/test/fixtures/r/data2.json | 1 + .../gammaf/test/fixtures/r/expected1.json | 1 + .../gammaf/test/fixtures/r/expected2.json | 1 + .../special/gammaf/test/fixtures/r/runner.R | 117 ++++++++ .../math/base/special/gammaf/test/test.js | 163 +++++++++++ .../base/special/gammaf/test/test.native.js | 172 ++++++++++++ 40 files changed, 3600 insertions(+) create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/LICENSE create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/README.md create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/benchmark/benchmark.js create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/benchmark/benchmark.native.js create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/benchmark/c/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/benchmark/c/benchmark.c create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/benchmark/c/native/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/benchmark/c/native/benchmark.c create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/binding.gyp create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/docs/img/equation_gamma_function_infinite_product.svg create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/docs/img/equation_gamma_function_positive_integers.svg create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/docs/repl.txt create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/docs/types/index.d.ts create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/docs/types/test.ts create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/examples/c/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/examples/c/example.c create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/examples/index.js create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/include.gypi create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/include/stdlib/math/base/special/gammaf.h create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/lib/index.js create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/lib/main.js create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/lib/native.js create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/lib/polyval_p.js create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/lib/polyval_s.js create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/lib/small_approximation.js create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/lib/stirling_approximation.js create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/manifest.json create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/package.json create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/scripts/evalpoly.js create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/src/Makefile create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/src/addon.c create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/src/main.c create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/DESCRIPTION create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/data1.json create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/data2.json create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/expected1.json create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/expected2.json create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/runner.R create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/test/test.js create mode 100644 lib/node_modules/@stdlib/math/base/special/gammaf/test/test.native.js diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/LICENSE b/lib/node_modules/@stdlib/math/base/special/gammaf/LICENSE new file mode 100644 index 000000000000..a806fb1b162b --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/LICENSE @@ -0,0 +1,222 @@ + + 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: + +* Boost + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +* 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/gammaf/README.md b/lib/node_modules/@stdlib/math/base/special/gammaf/README.md new file mode 100644 index 000000000000..9b943a105613 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/README.md @@ -0,0 +1,249 @@ + + +# gammaf + +> Evaluate the [gamma function][gamma-function] for a single-precision floating-point number. + +
+ +The [gamma function][gamma-function] extends the [factorial function][@stdlib/math/base/special/factorial] to [real][real] and [complex][complex] numbers. If `n` is a positive `integer`, + + + +```math +\Gamma ( n ) = (n-1)! +``` + + + + + +Generalized to all complex numbers `z`, except for nonpositive integers, the [gamma function][gamma-function] can be expressed as an infinite product + + + +```math +\Gamma ( z ) = \frac{e^{-\gamma z}}{z} \prod^{\infty}_{n=1} \left ( 1+\frac{z}{n}\right )^{-1} e^{z/n} +``` + + + + + +where `γ ≈ 0.577216` is the [Euler–Mascheroni constant][@stdlib/constants/float32/eulergamma]. + +
+ + + +
+ +## Usage + +```javascript +var gammaf = require( '@stdlib/math/base/special/gammaf' ); +``` + +#### gammaf( x ) + +Evaluates the [gamma function][gamma-function] for a single-precision floating-point number. + +```javascript +var v = gammaf( 4.0 ); +// returns 6.0 + +v = gammaf( -1.5 ); +// returns ~2.363 + +v = gammaf( -0.5 ); +// returns ~-3.545 + +v = gammaf( 0.5 ); +// returns ~1.772 + +v = gammaf( 0.0 ); +// returns Infinity + +v = gammaf( -0.0 ); +// returns -Infinity + +v = gammaf( NaN ); +// returns NaN +``` + +
+ + + +
+ +## Examples + + + +```javascript +var uniform = require( '@stdlib/random/array/uniform' ); +var logEachMap = require( '@stdlib/console/log-each-map' ); +var gammaf = require( '@stdlib/math/base/special/gammaf' ); + +var opts = { + 'dtype': 'float32' +}; +var x = uniform( 100, -10.0, 10.0, opts ); + +logEachMap( 'x: %0.4f, f(x): %0.4f', x, gammaf ); +``` + +
+ + + + + +* * * + +
+ +## C APIs + + + +
+ +
+ + + + + +
+ +### Usage + +```c +#include "stdlib/math/base/special/gammaf.h" +``` + +#### stdlib_base_gammaf( x ) + +Evaluates the [gamma function][gamma-function] for a single-precision floating-point number. + +```c +float out = stdlib_base_gammaf( 4.0f ); +// returns 6.0 + +out = stdlib_base_gammaf( -1.5f ); +// returns ~2.363 +``` + +The function accepts the following arguments: + +- **x**: `[in] float` input value. + +```c +float stdlib_base_gammaf( const float x ); +``` + +
+ + + + + +
+ +
+ + + + + +
+ +### Examples + +```c +#include "stdlib/math/base/special/gammaf.h" +#include + +int main( void ) { + const float x[] = { 4.0f, -1.5f, -0.5f, 0.5f }; + + float y; + int i; + for ( i = 0; i < 4; i++ ) { + y = stdlib_base_gammaf( x[ i ] ); + printf( "gammaf(%f) = %f\n", x[ i ], y ); + } +} +``` + +
+ + + +
+ + + + + + + + + + + + + + diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/benchmark/benchmark.js b/lib/node_modules/@stdlib/math/base/special/gammaf/benchmark/benchmark.js new file mode 100644 index 000000000000..fcc6bb1b6e28 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/benchmark/benchmark.js @@ -0,0 +1,53 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'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 format = require( '@stdlib/string/format' ); +var pkg = require( './../package.json' ).name; +var gammaf = require( './../lib' ); + + +// MAIN // + +bench( format( '%s', pkg ), function benchmark( b ) { + var x; + var y; + var i; + + x = uniform( 100, 0.0, 35.0 ); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = gammaf( 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/gammaf/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/math/base/special/gammaf/benchmark/benchmark.native.js new file mode 100644 index 000000000000..10f723336480 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/benchmark/benchmark.native.js @@ -0,0 +1,62 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var resolve = require( 'path' ).resolve; +var bench = require( '@stdlib/bench' ); +var uniform = require( '@stdlib/random/array/uniform' ); +var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var format = require( '@stdlib/string/format' ); +var tryRequire = require( '@stdlib/utils/try-require' ); +var pkg = require( './../package.json' ).name; + + +// VARIABLES // + +var gammaf = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( gammaf instanceof Error ) +}; + + +// MAIN // + +bench( format( '%s::native', pkg ), opts, function benchmark( b ) { + var x; + var y; + var i; + + x = uniform( 100, 0.0, 35.0 ); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = gammaf( 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/gammaf/benchmark/c/Makefile b/lib/node_modules/@stdlib/math/base/special/gammaf/benchmark/c/Makefile new file mode 100644 index 000000000000..c95d08ae96a1 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/benchmark/c/Makefile @@ -0,0 +1,126 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2026 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + +# Define the program used for compiling C source files: +ifdef C_COMPILER + CC := $(C_COMPILER) +else + CC := gcc +endif + +# Define the command-line options when compiling C files: +CFLAGS ?= \ + -std=c99 \ + -O3 \ + -Wall \ + -pedantic + +# Determine whether to generate position independent code ([1][1], [2][2]). +# +# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options +# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option +ifeq ($(OS), WINNT) + fPIC ?= +else + fPIC ?= -fPIC +endif + +# List of C targets: +c_targets := benchmark.out + + +# RULES # + +#/ +# Compiles C source files. +# +# @param {string} [C_COMPILER] - C compiler +# @param {string} [CFLAGS] - C compiler flags +# @param {(string|void)} [fPIC] - compiler flag indicating whether to generate position independent code +# +# @example +# make +# +# @example +# make all +#/ +all: $(c_targets) + +.PHONY: all + +#/ +# Compiles C source files. +# +# @private +# @param {string} CC - C compiler +# @param {string} CFLAGS - C compiler flags +# @param {(string|void)} fPIC - compiler flag indicating whether to generate position independent code +#/ +$(c_targets): %.out: %.c + $(QUIET) $(CC) $(CFLAGS) $(fPIC) -o $@ $< -lm + +#/ +# Runs compiled benchmarks. +# +# @example +# make run +#/ +run: $(c_targets) + $(QUIET) ./$< + +.PHONY: run + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/benchmark/c/benchmark.c b/lib/node_modules/@stdlib/math/base/special/gammaf/benchmark/c/benchmark.c new file mode 100644 index 000000000000..e3b87cdaf3f7 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/benchmark/c/benchmark.c @@ -0,0 +1,137 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include +#include +#include +#include +#include + +#define NAME "gammaf" +#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 [min,max). +* +* @param min minimum value (inclusive) +* @param max maximum value (exclusive) +* @return random number +*/ +static float random_uniform( const float min, const float max ) { + float v = (float)rand() / ( (float)RAND_MAX + 1.0f ); + return min + ( v * ( max - min ) ); +} + +/** +* Runs a benchmark. +* +* @return elapsed time in seconds +*/ +static double benchmark( void ) { + float x[ 100 ]; + double elapsed; + float y; + double t; + int i; + + for ( i = 0; i < 100; i++ ) { + x[ i ] = random_uniform( 0.0, 35.0 ); + } + + t = tic(); + for ( i = 0; i < ITERATIONS; i++ ) { + y = tgammaf( x[ i % 100 ] ); + if ( y != y ) { + printf( "should not return NaN\n" ); + break; + } + } + elapsed = tic() - t; + if ( y != y ) { + printf( "should not return NaN\n" ); + } + return elapsed; +} + +/** +* Main execution sequence. +*/ +int main( void ) { + double elapsed; + int i; + + // Use the current time to seed the random number generator: + srand( time( NULL ) ); + + print_version(); + for ( i = 0; i < REPEATS; i++ ) { + printf( "# c::%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/gammaf/benchmark/c/native/Makefile b/lib/node_modules/@stdlib/math/base/special/gammaf/benchmark/c/native/Makefile new file mode 100644 index 000000000000..acfeb24e4c50 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/benchmark/c/native/Makefile @@ -0,0 +1,146 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2024 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + +# Define the program used for compiling C source files: +ifdef C_COMPILER + CC := $(C_COMPILER) +else + CC := gcc +endif + +# Define the command-line options when compiling C files: +CFLAGS ?= \ + -std=c99 \ + -O3 \ + -Wall \ + -pedantic + +# Determine whether to generate position independent code ([1][1], [2][2]). +# +# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options +# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option +ifeq ($(OS), WINNT) + fPIC ?= +else + fPIC ?= -fPIC +endif + +# List of includes (e.g., `-I /foo/bar -I /beep/boop/include`): +INCLUDE ?= + +# List of source files: +SOURCE_FILES ?= + +# List of libraries (e.g., `-lopenblas -lpthread`): +LIBRARIES ?= + +# List of library paths (e.g., `-L /foo/bar -L /beep/boop`): +LIBPATH ?= + +# List of C targets: +c_targets := benchmark.out + + +# RULES # + +#/ +# Compiles C source files. +# +# @param {string} SOURCE_FILES - list of C source files +# @param {string} [INCLUDE] - list of includes (e.g., `-I /foo/bar -I /beep/boop`) +# @param {string} [LIBRARIES] - list of libraries (e.g., `-lpthread -lblas`) +# @param {string} [LIBPATH] - list of library paths (e.g., `-L /foo/bar -L /beep/boop`) +# @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} SOURCE_FILES - list of C source files +# @param {(string|void)} INCLUDE - list of includes (e.g., `-I /foo/bar -I /beep/boop`) +# @param {(string|void)} LIBRARIES - list of libraries (e.g., `-lpthread -lblas`) +# @param {(string|void)} LIBPATH - list of library paths (e.g., `-L /foo/bar -L /beep/boop`) +# @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) $(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/gammaf/benchmark/c/native/benchmark.c b/lib/node_modules/@stdlib/math/base/special/gammaf/benchmark/c/native/benchmark.c new file mode 100644 index 000000000000..5fc962a54a3d --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/benchmark/c/native/benchmark.c @@ -0,0 +1,138 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "stdlib/math/base/special/gammaf.h" +#include +#include +#include +#include +#include + +#define NAME "gammaf" +#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 [min,max). +* +* @param min minimum value (inclusive) +* @param max maximum value (exclusive) +* @return random number +*/ +static float random_uniform( const float min, const float max ) { + float v = (float)rand() / ( (float)RAND_MAX + 1.0f ); + return min + ( v*(max-min) ); +} + +/** +* Runs a benchmark. +* +* @return elapsed time in seconds +*/ +static double benchmark( void ) { + float x[ 100 ]; + double elapsed; + float y; + double t; + int i; + + for ( i = 0; i < 100; i++ ) { + x[ i ] = random_uniform( 0.0, 35.0 ); + } + + t = tic(); + for ( i = 0; i < ITERATIONS; i++ ) { + y = stdlib_base_gammaf( x[ i % 100 ] ); + if ( y != y ) { + printf( "should not return NaN\n" ); + break; + } + } + elapsed = tic() - t; + if ( y != y ) { + printf( "should not return NaN\n" ); + } + return elapsed; +} + +/** +* Main execution sequence. +*/ +int main( void ) { + double elapsed; + int i; + + // Use the current time to seed the random number generator: + srand( time( NULL ) ); + + print_version(); + for ( i = 0; i < REPEATS; i++ ) { + printf( "# c::native::%s\n", NAME ); + elapsed = benchmark(); + print_results( elapsed ); + printf( "ok %d benchmark finished\n", i+1 ); + } + print_summary( REPEATS, REPEATS ); +} diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/binding.gyp b/lib/node_modules/@stdlib/math/base/special/gammaf/binding.gyp new file mode 100644 index 000000000000..0d6508a12e99 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/binding.gyp @@ -0,0 +1,170 @@ +# @license Apache-2.0 +# +# Copyright (c) 2026 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# A `.gyp` file for building a Node.js native add-on. +# +# [1]: https://gyp.gsrc.io/docs/InputFormatReference.md +# [2]: https://gyp.gsrc.io/docs/UserDocumentation.md +{ + # List of files to include in this file: + 'includes': [ + './include.gypi', + ], + + # Define variables to be used throughout the configuration for all targets: + 'variables': { + # Target name should match the add-on export name: + 'addon_target_name%': 'addon', + + # Set variables based on the host OS: + 'conditions': [ + [ + 'OS=="win"', + { + # Define the object file suffix: + 'obj': 'obj', + }, + { + # Define the object file suffix: + 'obj': 'o', + } + ], # end condition (OS=="win") + ], # end conditions + }, # end variables + + # Define compile targets: + 'targets': [ + + # Target to generate an add-on: + { + # The target name should match the add-on export name: + 'target_name': '<(addon_target_name)', + + # Define dependencies: + 'dependencies': [], + + # Define directories which contain relevant include headers: + 'include_dirs': [ + # Local include directory: + '<@(include_dirs)', + ], + + # List of source files: + 'sources': [ + '<@(src_files)', + ], + + # Settings which should be applied when a target's object files are used as linker input: + 'link_settings': { + # Define libraries: + 'libraries': [ + '<@(libraries)', + ], + + # Define library directories: + 'library_dirs': [ + '<@(library_dirs)', + ], + }, + + # C/C++ compiler flags: + 'cflags': [ + # Enable commonly used warning options: + '-Wall', + + # Aggressive optimization: + '-O3', + ], + + # C specific compiler flags: + 'cflags_c': [ + # Specify the C standard to which a program is expected to conform: + '-std=c99', + ], + + # C++ specific compiler flags: + 'cflags_cpp': [ + # Specify the C++ standard to which a program is expected to conform: + '-std=c++11', + ], + + # Linker flags: + 'ldflags': [], + + # Apply conditions based on the host OS: + 'conditions': [ + [ + 'OS=="mac"', + { + # Linker flags: + 'ldflags': [ + '-undefined dynamic_lookup', + '-Wl,-no-pie', + '-Wl,-search_paths_first', + ], + }, + ], # end condition (OS=="mac") + [ + 'OS!="win"', + { + # C/C++ flags: + 'cflags': [ + # Generate platform-independent code: + '-fPIC', + ], + }, + ], # end condition (OS!="win") + ], # end conditions + }, # end target <(addon_target_name) + + # Target to copy a generated add-on to a standard location: + { + 'target_name': 'copy_addon', + + # Declare that the output of this target is not linked: + 'type': 'none', + + # Define dependencies: + 'dependencies': [ + # Require that the add-on be generated before building this target: + '<(addon_target_name)', + ], + + # Define a list of actions: + 'actions': [ + { + 'action_name': 'copy_addon', + 'message': 'Copying addon...', + + # Explicitly list the inputs in the command-line invocation below: + 'inputs': [], + + # Declare the expected outputs: + 'outputs': [ + '<(addon_output_dir)/<(addon_target_name).node', + ], + + # Define the command-line invocation: + 'action': [ + 'cp', + '<(PRODUCT_DIR)/<(addon_target_name).node', + '<(addon_output_dir)/<(addon_target_name).node', + ], + }, + ], # end actions + }, # end target copy_addon + ], # end targets +} diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/docs/img/equation_gamma_function_infinite_product.svg b/lib/node_modules/@stdlib/math/base/special/gammaf/docs/img/equation_gamma_function_infinite_product.svg new file mode 100644 index 000000000000..6b6c59d75c6b --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/docs/img/equation_gamma_function_infinite_product.svg @@ -0,0 +1,76 @@ + +normal upper Gamma left-parenthesis z right-parenthesis equals StartFraction e Superscript minus gamma z Baseline Over z EndFraction product Underscript n equals 1 Overscript normal infinity Endscripts left-parenthesis 1 plus StartFraction z Over n EndFraction right-parenthesis Superscript negative 1 Baseline e Superscript z slash n + + + \ No newline at end of file diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/docs/img/equation_gamma_function_positive_integers.svg b/lib/node_modules/@stdlib/math/base/special/gammaf/docs/img/equation_gamma_function_positive_integers.svg new file mode 100644 index 000000000000..38f0c2bce2a2 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/docs/img/equation_gamma_function_positive_integers.svg @@ -0,0 +1,26 @@ + +normal upper Gamma left-parenthesis n right-parenthesis equals left-parenthesis n minus 1 right-parenthesis factorial + + + \ No newline at end of file diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/docs/repl.txt b/lib/node_modules/@stdlib/math/base/special/gammaf/docs/repl.txt new file mode 100644 index 000000000000..7637bc647af8 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/docs/repl.txt @@ -0,0 +1,34 @@ + +{{alias}}( x ) + Evaluates the gamma function of a single-precision floating-point number. + + Parameters + ---------- + x: number + Input value. + + Returns + ------- + y: number + Function value. + + Examples + -------- + > var y = {{alias}}( 4.0 ) + 6.0 + > y = {{alias}}( -1.5 ) + ~2.363 + > y = {{alias}}( -0.5 ) + ~-3.545 + > y = {{alias}}( 0.5 ) + ~1.772 + > y = {{alias}}( 0.0 ) + Infinity + > y = {{alias}}( -0.0 ) + -Infinity + > y = {{alias}}( NaN ) + NaN + + See Also + -------- + diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/docs/types/index.d.ts b/lib/node_modules/@stdlib/math/base/special/gammaf/docs/types/index.d.ts new file mode 100644 index 000000000000..42a83d322960 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/docs/types/index.d.ts @@ -0,0 +1,60 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +// TypeScript Version: 4.1 + +/** +* Evaluates the gamma function of a single-precision floating-point number. +* +* @param x - input value +* @returns function value +* +* @example +* var v = gammaf( 4.0 ); +* // returns 6.0 +* +* @example +* var v = gammaf( -1.5 ); +* // returns ~2.363 +* +* @example +* var v = gammaf( -0.5 ); +* // returns ~-3.545 +* +* @example +* var v = gammaf( 0.5 ); +* // returns ~1.772 +* +* @example +* var v = gammaf( 0.0 ); +* // returns Infinity +* +* @example +* var v = gammaf( -0.0 ); +* // returns -Infinity +* +* @example +* var v = gammaf( NaN ); +* // returns NaN +*/ +declare function gammaf( x: number ): number; + + +// EXPORTS // + +export = gammaf; diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/docs/types/test.ts b/lib/node_modules/@stdlib/math/base/special/gammaf/docs/types/test.ts new file mode 100644 index 000000000000..a644086bed81 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/docs/types/test.ts @@ -0,0 +1,44 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +import gammaf = require( './index' ); + + +// TESTS // + +// The function returns a number... +{ + gammaf( 8 ); // $ExpectType number +} + +// The compiler throws an error if the function is provided a value other than a number... +{ + gammaf( true ); // $ExpectError + gammaf( false ); // $ExpectError + gammaf( null ); // $ExpectError + gammaf( undefined ); // $ExpectError + gammaf( '5' ); // $ExpectError + gammaf( [] ); // $ExpectError + gammaf( {} ); // $ExpectError + gammaf( ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function is provided insufficient arguments... +{ + gammaf(); // $ExpectError +} diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/examples/c/Makefile b/lib/node_modules/@stdlib/math/base/special/gammaf/examples/c/Makefile new file mode 100644 index 000000000000..c8f8e9a1517b --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/examples/c/Makefile @@ -0,0 +1,146 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2026 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + +# Define the program used for compiling C source files: +ifdef C_COMPILER + CC := $(C_COMPILER) +else + CC := gcc +endif + +# Define the command-line options when compiling C files: +CFLAGS ?= \ + -std=c99 \ + -O3 \ + -Wall \ + -pedantic + +# Determine whether to generate position independent code ([1][1], [2][2]). +# +# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options +# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option +ifeq ($(OS), WINNT) + fPIC ?= +else + fPIC ?= -fPIC +endif + +# List of includes (e.g., `-I /foo/bar -I /beep/boop/include`): +INCLUDE ?= + +# List of source files: +SOURCE_FILES ?= + +# List of libraries (e.g., `-lopenblas -lpthread`): +LIBRARIES ?= + +# List of library paths (e.g., `-L /foo/bar -L /beep/boop`): +LIBPATH ?= + +# List of C targets: +c_targets := example.out + + +# RULES # + +#/ +# Compiles source files. +# +# @param {string} [C_COMPILER] - C compiler (e.g., `gcc`) +# @param {string} [CFLAGS] - C compiler options +# @param {(string|void)} [fPIC] - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} [INCLUDE] - list of includes (e.g., `-I /foo/bar -I /beep/boop/include`) +# @param {string} [SOURCE_FILES] - list of source files +# @param {string} [LIBPATH] - list of library paths (e.g., `-L /foo/bar -L /beep/boop`) +# @param {string} [LIBRARIES] - list of libraries (e.g., `-lopenblas -lpthread`) +# +# @example +# make +# +# @example +# make all +#/ +all: $(c_targets) + +.PHONY: all + +#/ +# Compiles C source files. +# +# @private +# @param {string} CC - C compiler (e.g., `gcc`) +# @param {string} CFLAGS - C compiler options +# @param {(string|void)} fPIC - compiler flag determining whether to generate position independent code (e.g., `-fPIC`) +# @param {string} INCLUDE - list of includes (e.g., `-I /foo/bar`) +# @param {string} SOURCE_FILES - list of source files +# @param {string} LIBPATH - list of library paths (e.g., `-L /foo/bar`) +# @param {string} LIBRARIES - list of libraries (e.g., `-lopenblas`) +#/ +$(c_targets): %.out: %.c + $(QUIET) $(CC) $(CFLAGS) $(fPIC) $(INCLUDE) -o $@ $(SOURCE_FILES) $< $(LIBPATH) -lm $(LIBRARIES) + +#/ +# Runs compiled examples. +# +# @example +# make run +#/ +run: $(c_targets) + $(QUIET) ./$< + +.PHONY: run + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/examples/c/example.c b/lib/node_modules/@stdlib/math/base/special/gammaf/examples/c/example.c new file mode 100644 index 000000000000..57a01d32277c --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/examples/c/example.c @@ -0,0 +1,31 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "stdlib/math/base/special/gammaf.h" +#include + +int main( void ) { + const float x[] = { 4.0f, -1.5f, -0.5f, 0.5f }; + + float y; + int i; + for ( i = 0; i < 4; i++ ) { + y = stdlib_base_gammaf( x[ i ] ); + printf( "gammaf(%f) = %f\n", x[ i ], y ); + } +} diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/examples/index.js b/lib/node_modules/@stdlib/math/base/special/gammaf/examples/index.js new file mode 100644 index 000000000000..bc99cc5c1dab --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/examples/index.js @@ -0,0 +1,30 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +var uniform = require( '@stdlib/random/array/uniform' ); +var logEachMap = require( '@stdlib/console/log-each-map' ); +var gammaf = require( './../lib' ); + +var opts = { + 'dtype': 'float32' +}; +var x = uniform( 100, -10.0, 10.0, opts ); + +logEachMap( 'x: %0.4f, f(x): %0.4f', x, gammaf ); diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/include.gypi b/lib/node_modules/@stdlib/math/base/special/gammaf/include.gypi new file mode 100644 index 000000000000..bee8d41a2caf --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/include.gypi @@ -0,0 +1,53 @@ +# @license Apache-2.0 +# +# Copyright (c) 2026 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# A GYP include file for building a Node.js native add-on. +# +# Main documentation: +# +# [1]: https://gyp.gsrc.io/docs/InputFormatReference.md +# [2]: https://gyp.gsrc.io/docs/UserDocumentation.md +{ + # Define variables to be used throughout the configuration for all targets: + 'variables': { + # Source directory: + 'src_dir': './src', + + # Include directories: + 'include_dirs': [ + ' MAX_ARG ) { + return PINF; + } + + if ( x < MIN_ARG ) { + return 0.0; + } + + if ( x < ZERO ) { + negative = 1; + q = -x; + p = floorf( q ); + if ( p === q ) { + return NaN; + } + if ( (p&1) === 0 ) { + sign = -ONE; + } else { + sign = ONE; + } + nz = f32( q - p ); + if ( nz > HALF ) { + p += ONE; + nz = f32( q - p ); + } + nz = f32( q * sinf( f32( PI * nz ) ) ); + if ( nz === ZERO ) { + return NaN; + } + if ( nz < 0 ) { + nz = f32( -nz ); + } + x = f32( q ); + } + if ( x >= TEN ) { + z = stirlingApprox(x); + } + if ( x < TWO ) { + direction = 1; + } else { + direction = 0; + } + z = ONE; + while ( x >= THREE ) { + x = f32( x - ONE ); + z = f32( z * x ); + } + small = 0; + while ( x < TWO ) { + if ( x < SMALL_X ) { + small = 1; + break; + } + z = f32( z * x ); + x = f32( x + ONE ); + } + + if ( small ) { + if ( x === ZERO ) { + return PINF; + } + p = smallApprox( x, z ); + } else { + if ( direction ) { + z = f32( ONE/z ); + } + if ( x === TWO ) { + p = z; + } else { + x = f32( x - TWO ); + p = f32( z * polyeval( x ) ); + } + } + if ( negative ) { + p = f32( f32( sign * PI ) / f32( nz * p ) ); + } + return p; +} + + +// EXPORTS // + +module.exports = gammaf; diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/lib/native.js b/lib/node_modules/@stdlib/math/base/special/gammaf/lib/native.js new file mode 100644 index 000000000000..b746b9d0a42f --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/lib/native.js @@ -0,0 +1,70 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var addon = require( './../src/addon.node' ); + + +// MAIN // + +/** +* Evaluates the gamma function of a single-precision floating-point number. +* +* @private +* @param {number} x - input value +* @returns {number} function value +* +* @example +* var v = gammaf( 4.0 ); +* // returns 6.0 +* +* @example +* var v = gammaf( -1.5 ); +* // returns ~2.363 +* +* @example +* var v = gammaf( -0.5 ); +* // returns ~-3.545 +* +* @example +* var v = gammaf( 0.5 ); +* // returns ~1.772 +* +* @example +* var v = gammaf( 0.0 ); +* // returns Infinity +* +* @example +* var v = gammaf( -0.0 ); +* // returns -Infinity +* +* @example +* var v = gammaf( NaN ); +* // returns NaN +*/ +function gammaf( x ) { + return addon( x ); +} + + +// EXPORTS // + +module.exports = gammaf; diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/lib/polyval_p.js b/lib/node_modules/@stdlib/math/base/special/gammaf/lib/polyval_p.js new file mode 100644 index 000000000000..5259e367de0c --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/lib/polyval_p.js @@ -0,0 +1,47 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +/* 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 0.9999999822945073; + } + return 0.9999999822945073 + (x * (0.4227867745131584 + (x * (0.4117857447645796 + (x * (0.08203960091619193 + (x * (0.07232307985516519 + (x * (0.004130370201859976 + (x * (0.005397581592950993 + (x * 0.001536830450601906))))))))))))); // eslint-disable-line max-len +} + + +// EXPORTS // + +module.exports = evalpoly; diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/lib/polyval_s.js b/lib/node_modules/@stdlib/math/base/special/gammaf/lib/polyval_s.js new file mode 100644 index 000000000000..377a2b6629a2 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/lib/polyval_s.js @@ -0,0 +1,47 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +/* 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 0.08333331788340907; + } + return 0.08333331788340907 + (x * (0.00347325578615491 + (x * -0.002705194986674176))); // eslint-disable-line max-len +} + + +// EXPORTS // + +module.exports = evalpoly; diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/lib/small_approximation.js b/lib/node_modules/@stdlib/math/base/special/gammaf/lib/small_approximation.js new file mode 100644 index 000000000000..e4bafd745910 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/lib/small_approximation.js @@ -0,0 +1,58 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +* +* ## Notice +* +* The original C code, 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, 1987, 1989, 1992, 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 +* ``` +*/ + +'use strict'; + +// MODULES // + +var EULER = require( '@stdlib/constants/float32/eulergamma' ); +var f32 = require( '@stdlib/number/float64/base/to-float32' ); + + +// MAIN // + +/** +* Evaluates the gamma function of a single-precision floating-point value using a small-value approximation. +* +* @private +* @param {number} x - input value +* @param {number} z - scale factor +* @returns {number} function value +*/ +function gammaf( x, z ) { + return f32( z / f32( f32( 1.0 + f32( EULER*x ) ) * x ) ); +} + + +// EXPORTS // + +module.exports = gammaf; diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/lib/stirling_approximation.js b/lib/node_modules/@stdlib/math/base/special/gammaf/lib/stirling_approximation.js new file mode 100644 index 000000000000..38d9dd4d0250 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/lib/stirling_approximation.js @@ -0,0 +1,81 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2018 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +* +* ## Notice +* +* The original C code, 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, 1987, 1989, 1992, 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 +* ``` +*/ + +'use strict'; + +// MODULES // + +var SQRT_TWO_PI = require( '@stdlib/constants/float32/sqrt-two-pi' ); +var f32 = require( '@stdlib/number/float64/base/to-float32' ); +var powf = require( '@stdlib/math/base/special/powf' ); +var exp = require( '@stdlib/math/base/special/exp' ); +var polyval = require( './polyval_s.js' ); + + +// VARIABLES // + +var MAX_STIRLING = 26.77; + + +// MAIN // + +/** +* Evaluates the gamma function using Stirling's formula. The polynomial is valid for \\(33 \leq x \leq 172\\). +* +* @private +* @param {number} x - input value +* @returns {number} function value +*/ +function gammaf( x ) { + var w; + var y; + var v; + + w = f32( 1.0 / x ); + w = f32( 1.0 + f32( w * polyval( w ) ) ); + y = f32( exp( -x ) ); + + // Check `x` to avoid `pow()` overflow... + if ( x > MAX_STIRLING ) { + v = powf( x, f32( f32( 0.5*x ) - 0.25 ) ); + y = f32( y * v ); + y = f32( y * v ); + } else { + y = f32( powf( x, f32( x-0.5 ) ) * y ); + } + return f32( f32( SQRT_TWO_PI * y ) * w ); +} + + +// EXPORTS // + +module.exports = gammaf; diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/manifest.json b/lib/node_modules/@stdlib/math/base/special/gammaf/manifest.json new file mode 100644 index 000000000000..668782eed389 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/manifest.json @@ -0,0 +1,105 @@ +{ + "options": { + "task": "build" + }, + "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", + "src": [ + "./src/main.c" + ], + "include": [ + "./include" + ], + "libraries": [], + "libpath": [], + "dependencies": [ + "@stdlib/math/base/napi/unary", + "@stdlib/math/base/assert/is-nanf", + "@stdlib/math/base/assert/is-negative-zerof", + "@stdlib/math/base/assert/is-integerf", + "@stdlib/math/base/special/floorf", + "@stdlib/math/base/special/sinf", + "@stdlib/constants/float32/pinf", + "@stdlib/constants/float32/ninf", + "@stdlib/constants/float32/pi", + "@stdlib/constants/float32/eulergamma", + "@stdlib/constants/float32/sqrt-two-pi", + "@stdlib/math/base/special/powf", + "@stdlib/math/base/special/exp" + ] + }, + { + "task": "benchmark", + "src": [ + "./src/main.c" + ], + "include": [ + "./include" + ], + "libraries": [], + "libpath": [], + "dependencies": [ + "@stdlib/math/base/assert/is-nanf", + "@stdlib/math/base/assert/is-negative-zerof", + "@stdlib/math/base/assert/is-integerf", + "@stdlib/math/base/special/floorf", + "@stdlib/math/base/special/sinf", + "@stdlib/constants/float32/pinf", + "@stdlib/constants/float32/ninf", + "@stdlib/constants/float32/pi", + "@stdlib/constants/float32/eulergamma", + "@stdlib/constants/float32/sqrt-two-pi", + "@stdlib/math/base/special/powf", + "@stdlib/math/base/special/exp" + ] + }, + { + "task": "examples", + "src": [ + "./src/main.c" + ], + "include": [ + "./include" + ], + "libraries": [], + "libpath": [], + "dependencies": [ + "@stdlib/math/base/assert/is-nanf", + "@stdlib/math/base/assert/is-negative-zerof", + "@stdlib/math/base/assert/is-integerf", + "@stdlib/math/base/special/floorf", + "@stdlib/math/base/special/sinf", + "@stdlib/constants/float32/pinf", + "@stdlib/constants/float32/ninf", + "@stdlib/constants/float32/pi", + "@stdlib/constants/float32/eulergamma", + "@stdlib/constants/float32/sqrt-two-pi", + "@stdlib/math/base/special/powf", + "@stdlib/math/base/special/exp" + ] + } + ] +} diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/package.json b/lib/node_modules/@stdlib/math/base/special/gammaf/package.json new file mode 100644 index 000000000000..f39f9c6a906e --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/package.json @@ -0,0 +1,139 @@ +{ + "name": "@stdlib/math/base/special/gammaf", + "version": "0.0.0", + "description": "Gamma function for single-precision floating-point numbers.", + "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", + "special", + "function", + "gamma", + "factorial", + "number" + ], + "__stdlib__": { + "scaffold": { + "$schema": "math/base@v1.0", + "base_alias": "gamma", + "alias": "gammaf", + "pkg_desc": "evaluate the gamma function for a single-precision floating-point number", + "desc": "evaluates the gamma function for a single-precision floating-point number", + "short_desc": "gamma function", + "parameters": [ + { + "name": "x", + "desc": "input value", + "type": { + "javascript": "number", + "jsdoc": "number", + "c": "float", + "dtype": "float32" + }, + "domain": [ + { + "min": "-infinity", + "max": "infinity" + } + ], + "rand": { + "prng": "random/base/uniform", + "parameters": [ + -10, + 10 + ] + }, + "example_values": [ + 1, + 3.5, + 4.5, + -0.5, + 2, + 3, + -3.5, + 0.1, + 4, + 1.5, + 5, + 0.5, + 2.5, + -1.5, + -2.5, + 50, + 100, + -50.5, + -100.5, + 2.2 + ] + } + ], + "output_policy": "real_floating_point_and_generic", + "returns": { + "desc": "function value", + "type": { + "javascript": "number", + "jsdoc": "number", + "c": "float", + "dtype": "float32" + } + }, + "keywords": [ + "gamma", + "factorial" + ], + "extra_keywords": [] + } + } +} diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/scripts/evalpoly.js b/lib/node_modules/@stdlib/math/base/special/gammaf/scripts/evalpoly.js new file mode 100644 index 000000000000..e0c1454aae95 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/scripts/evalpoly.js @@ -0,0 +1,138 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +/* +* 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 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' ); +var substringBefore = require( '@stdlib/string/substring-before' ); +var substringAfter = require( '@stdlib/string/substring-after' ); +var format = require( '@stdlib/string/format' ); + + +// VARIABLES // + +// Polynomial coefficients ordered in ascending degree... +var S = [ + 8.333331788340907E-002, + 3.473255786154910E-003, + -2.705194986674176E-003 +]; +var P = [ + 9.999999822945073e-01, + 4.227867745131584e-01, + 4.117857447645796e-01, + 8.203960091619193e-02, + 7.232307985516519e-02, + 4.130370201859976e-03, + 5.397581592950993e-03, + 1.536830450601906e-03 +]; + +// 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_s.js' ); + str = header + compile( S ); + writeFileSync( fpath, str, opts ); + + fpath = resolve( __dirname, '..', 'lib', 'polyval_p.js' ); + str = header + compile( P ); + writeFileSync( fpath, str, opts ); + + copts = { + 'dtype': 'float', + 'name': '' + }; + + fpath = resolve( __dirname, '..', 'src', 'main.c' ); + file = readFileSync( fpath, opts ); + + copts.name = 'poly_s'; + str = compileC( S, copts ); + file = insert( file, copts.name, str ); + + copts.name = 'poly_p'; + str = compileC( P, copts ); + file = insert( file, copts.name, str ); + + writeFileSync( fpath, file, opts ); +} + +main(); diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/src/Makefile b/lib/node_modules/@stdlib/math/base/special/gammaf/src/Makefile new file mode 100644 index 000000000000..2caf905cedbe --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/src/Makefile @@ -0,0 +1,70 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2026 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +else + QUIET := +endif + +# Determine the OS ([1][1], [2][2]). +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +else +ifneq (, $(findstring Windows_NT,$(OS))) + OS := WINNT +endif +endif +endif +endif + + +# RULES # + +#/ +# Removes generated files for building an add-on. +# +# @example +# make clean-addon +#/ +clean-addon: + $(QUIET) -rm -f *.o *.node + +.PHONY: clean-addon + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: clean-addon + +.PHONY: clean diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/src/addon.c b/lib/node_modules/@stdlib/math/base/special/gammaf/src/addon.c new file mode 100644 index 000000000000..96b2119f8772 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/src/addon.c @@ -0,0 +1,22 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "stdlib/math/base/special/gammaf.h" +#include "stdlib/math/base/napi/unary.h" + +STDLIB_MATH_BASE_NAPI_MODULE_F_F( stdlib_base_gammaf ) diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/src/main.c b/lib/node_modules/@stdlib/math/base/special/gammaf/src/main.c new file mode 100644 index 000000000000..d6a93580a345 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/src/main.c @@ -0,0 +1,262 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +* +* ## 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 c. +* +* ```text +* Copyright 1984, 1987, 1989, 1992, 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/constants/float32/eulergamma.h" +#include "stdlib/constants/float32/ninf.h" +#include "stdlib/constants/float32/pi.h" +#include "stdlib/constants/float32/pinf.h" +#include "stdlib/constants/float32/sqrt_two_pi.h" +#include "stdlib/math/base/assert/is_integerf.h" +#include "stdlib/math/base/assert/is_nanf.h" +#include "stdlib/math/base/assert/is_negative_zerof.h" +#include "stdlib/math/base/special/exp.h" +#include "stdlib/math/base/special/floorf.h" +#include "stdlib/math/base/special/gammaf.h" +#include "stdlib/math/base/special/powf.h" +#include "stdlib/math/base/special/sinf.h" +#include +#include + +static const float MAX_STIRLING = 26.77f; + +/* Begin auto-generated functions. The following functions are auto-generated. Do not edit directly. */ + +// BEGIN: poly_s + +/** +* 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 poly_s( const float x ) { + return 0.08333331788340907f + (x * (0.00347325578615491f + (x * -0.002705194986674176f))); +} + +// END: poly_s + +// BEGIN: poly_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 poly_p( const float x ) { + return 0.9999999822945073f + (x * (0.4227867745131584f + (x * (0.4117857447645796f + (x * (0.08203960091619193f + (x * (0.07232307985516519f + (x * (0.004130370201859976f + (x * (0.005397581592950993f + (x * 0.001536830450601906f))))))))))))); +} + +// END: poly_p + +/* End auto-generated functions. */ + +/** +* Evaluates the gamma function using Stirling's formula. The polynomial is valid for \\(33 \leq x \leq 172\\). +* +* @param x input value +* @return function value +*/ +static float stirlingApprox( const float x ) { + float w; + float y; + float v; + + w = 1.0f / x; + w = 1.0f + ( w * poly_s( w ) ); + y = (float)stdlib_base_exp( -x ); + + // Check `x` to avoid `pow()` overflow... + if ( x > MAX_STIRLING ) { + v = stdlib_base_powf( x, ( 0.5f * x ) - 0.25f ); + y *= v; + y *= v; + } else { + y = stdlib_base_powf( x, x - 0.5f ) * y; + } + return STDLIB_CONSTANT_FLOAT32_SQRT_TWO_PI * y * w; +} + +/** +* Evaluates the gamma function using a small-value approximation. +* +* @param x input value +* @param z scale factor +* @return function value +*/ +static float smallApprox( const float x, const float z ) { + return z / ( ( 1.0f + ( STDLIB_CONSTANT_FLOAT32_EULERGAMMA * x ) ) * x ); +} + +/** +* Evaluates the gamma function of a single-precision floating-point number. +* +* ## Method +* +* 1. Arguments between 0 and 10 are reduced by recurrence and the function is approximated by a polynomial function covering the interval (2,3) +* 2. Large arguments are handled by Stirling's formula. +* 3. Negative arguments are made positive using a reflection formula. +* +* ## Notes +* +* - Relative error: +* +* | arithmetic | domain | # trials | peak | rms | +* |:----------:|:---------:|:--------:|:-------:|:-------:| +* | IEEE | 0,-33 | 100,000 | 5.7e-7 | 1.0e-7 | +* | IEEE | -33,0 | 100,000 | 6.1e-7 | 1.2e-7 | +* +* @param x input value +* @return function value +* +* @example +* float v = stdlib_base_gammaf( 4.0f ); +* // returns 6.0 +*/ +float stdlib_base_gammaf( const float x ) { + bool direction; + bool negative; + bool small; + float sign; + float nz; + int32_t i; + float q; + float p; + float z; + float xc; + + negative = 0; + xc = x; + + if ( ( stdlib_base_is_integerf( x ) && x < 0 ) || stdlib_base_is_nanf( x ) || x == STDLIB_CONSTANT_FLOAT32_NINF ) { + return 0.0f / 0.0f; //NaN + } + + if ( x == 0.0f ) { + if ( stdlib_base_is_negative_zerof( x ) ) { + return STDLIB_CONSTANT_FLOAT32_NINF; + } + return STDLIB_CONSTANT_FLOAT32_PINF; + } + + if ( x > 35.040096282958984f ) { + return STDLIB_CONSTANT_FLOAT32_PINF; + } + + if ( x < -40.00199890136719f ) { + return 0.0f; + } + + if ( xc < 0.0f ) { + negative = 1; + q = -xc; + p = stdlib_base_floorf( q ); + if ( p == q ) { + return 0.0f / 0.0f; + } + i = (int32_t)p; + if ( ( i & 1 ) == 0 ) { + sign = -1.0f; + } else { + sign = 1.0f; + } + nz = q - p; + if ( nz > 0.5f ) { + p += 1.0f; + nz = q - p; + } + nz = q * stdlib_base_sinf( STDLIB_CONSTANT_FLOAT32_PI * nz ); + if ( nz == 0.0f ) { + return 0.0f / 0.0f; + } + if ( nz < 0.0f ) { + nz = -nz; + } + xc = q; + } + // if ( xc >= 10.0f ) { + // z = stirlingApprox( xc ); + // } + if ( xc < 2.0f ) { + direction = 1; + } else { + direction = 0; + } + z = 1.0f; + while ( xc >= 3.0f ) { + xc -= 1.0f; + z *= xc; + } + small = 0; + while ( xc < 2.0f ) { + if ( xc < 1.0e-4f ) { + small = 1; + break; + } + z *= xc; + xc += 1.0f; + } + + if ( small ) { + if ( xc == 0.0f ) { + return STDLIB_CONSTANT_FLOAT32_PINF; + } + p = smallApprox( xc, z ); + } else { + if ( direction ) { + z = 1.0f / z; + } + if ( xc == 2.0f ) { + p = z; + } else { + xc -= 2.0f; + p = z * poly_p( xc ); + } + } + + if ( negative ) { + p = sign * STDLIB_CONSTANT_FLOAT32_PI / ( nz * p ); + } + return p; +} diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/DESCRIPTION b/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/DESCRIPTION new file mode 100644 index 000000000000..9fbf18257b72 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/DESCRIPTION @@ -0,0 +1,9 @@ +Package: gammaf-test-fixtures +Title: Test Fixtures +Version: 0.0.0 +Authors@R: person("stdlib", "js", role = c("aut","cre")) +Description: Generates test fixtures. +Depends: R (>=3.4.0) +Imports: + jsonlite +LazyData: true diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/data1.json b/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/data1.json new file mode 100644 index 000000000000..e6d2a724d885 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/data1.json @@ -0,0 +1 @@ +[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35] diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/data2.json b/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/data2.json new file mode 100644 index 000000000000..05f4be593bc4 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/data2.json @@ -0,0 +1 @@ +[-40.000100000000003,-39.925024824824831,-39.849949649649652,-39.77487447447448,-39.699799299299301,-39.624724124124128,-39.549648948948949,-39.474573773773777,-39.399498598598605,-39.324423423423426,-39.249348248248253,-39.174273073073074,-39.099197897897902,-39.024122722722723,-38.949047547547551,-38.873972372372378,-38.798897197197199,-38.723822022022027,-38.648746846846848,-38.573671671671676,-38.498596496496504,-38.423521321321324,-38.348446146146152,-38.273370970970973,-38.198295795795801,-38.123220620620621,-38.048145445445449,-37.97307027027027,-37.897995095095098,-37.822919919919926,-37.747844744744746,-37.672769569569574,-37.597694394394395,-37.522619219219223,-37.447544044044051,-37.372468868868872,-37.297393693693699,-37.22231851851852,-37.147243343343348,-37.072168168168169,-36.997092992992997,-36.922017817817824,-36.846942642642645,-36.771867467467473,-36.696792292292294,-36.621717117117122,-36.546641941941942,-36.47156676676677,-36.396491591591598,-36.321416416416419,-36.246341241241247,-36.171266066066067,-36.096190890890895,-36.021115715715716,-35.946040540540544,-35.870965365365372,-35.795890190190192,-35.72081501501502,-35.645739839839841,-35.570664664664669,-35.49558948948949,-35.420514314314318,-35.345439139139145,-35.270363963963966,-35.195288788788794,-35.120213613613615,-35.045138438438443,-34.97006326326327,-34.894988088088091,-34.819912912912919,-34.74483773773774,-34.669762562562568,-34.594687387387388,-34.519612212212216,-34.444537037037037,-34.369461861861865,-34.294386686686693,-34.219311511511513,-34.144236336336341,-34.069161161161162,-33.99408598598599,-33.919010810810818,-33.843935635635638,-33.768860460460466,-33.693785285285287,-33.618710110110115,-33.543634934934936,-33.468559759759763,-33.393484584584584,-33.318409409409412,-33.24333423423424,-33.168259059059061,-33.093183883883889,-33.018108708708709,-32.943033533533537,-32.867958358358365,-32.792883183183186,-32.717808008008014,-32.642732832832834,-32.567657657657662,-32.492582482482483,-32.417507307307311,-32.342432132132139,-32.267356956956959,-32.192281781781787,-32.117206606606608,-32.042131431431436,-31.96705625625626,-31.891981081081084,-31.816905905905909,-31.741830730730733,-31.666755555555561,-31.591680380380382,-31.516605205205209,-31.441530030030034,-31.366454854854858,-31.291379679679682,-31.216304504504507,-31.141229329329335,-31.066154154154155,-30.991078978978983,-30.916003803803807,-30.840928628628632,-30.76585345345346,-30.69077827827828,-30.615703103103108,-30.540627927927929,-30.465552752752757,-30.390477577577581,-30.315402402402405,-30.240327227227233,-30.165252052052054,-30.090176876876882,-30.015101701701703,-29.94002652652653,-29.864951351351355,-29.789876176176179,-29.714801001001007,-29.639725825825828,-29.564650650650655,-29.48957547547548,-29.414500300300304,-29.339425125125128,-29.264349949949953,-29.18927477477478,-29.114199599599601,-29.039124424424429,-28.964049249249253,-28.888974074074078,-28.813898898898902,-28.738823723723726,-28.663748548548554,-28.588673373373375,-28.513598198198203,-28.438523023023027,-28.363447847847851,-28.288372672672676,-28.2132974974975,-28.138222322322328,-28.063147147147149,-27.988071971971976,-27.912996796796801,-27.837921621621625,-27.762846446446449,-27.687771271271274,-27.612696096096101,-27.537620920920922,-27.46254574574575,-27.387470570570574,-27.312395395395399,-27.237320220220223,-27.162245045045047,-27.087169869869875,-27.012094694694696,-26.937019519519524,-26.861944344344348,-26.786869169169172,-26.711793993994,-26.636718818818821,-26.561643643643649,-26.486568468468469,-26.411493293293297,-26.336418118118122,-26.261342942942946,-26.186267767767774,-26.111192592592595,-26.036117417417422,-25.961042242242247,-25.885967067067071,-25.810891891891895,-25.73581671671672,-25.660741541541547,-25.585666366366368,-25.510591191191196,-25.43551601601602,-25.360440840840845,-25.285365665665669,-25.210290490490493,-25.135215315315321,-25.060140140140142,-24.98506496496497,-24.909989789789794,-24.834914614614618,-24.759839439439443,-24.684764264264267,-24.609689089089095,-24.534613913913915,-24.459538738738743,-24.384463563563568,-24.309388388388392,-24.234313213213216,-24.15923803803804,-24.084162862862868,-24.009087687687689,-23.934012512512517,-23.858937337337341,-23.783862162162166,-23.70878698698699,-23.633711811811814,-23.558636636636642,-23.483561461461466,-23.408486286286291,-23.333411111111115,-23.258335935935939,-23.183260760760763,-23.108185585585588,-23.033110410410416,-22.95803523523524,-22.882960060060064,-22.807884884884889,-22.732809709709713,-22.657734534534537,-22.582659359359361,-22.507584184184189,-22.432509009009014,-22.357433833833838,-22.282358658658662,-22.207283483483486,-22.132208308308311,-22.057133133133135,-21.982057957957963,-21.906982782782787,-21.831907607607612,-21.756832432432436,-21.68175725725726,-21.606682082082084,-21.531606906906912,-21.456531731731737,-21.381456556556561,-21.306381381381385,-21.231306206206209,-21.156231031031034,-21.081155855855858,-21.006080680680686,-20.93100550550551,-20.855930330330334,-20.780855155155159,-20.705779979979983,-20.630704804804807,-20.555629629629632,-20.48055445445446,-20.405479279279284,-20.330404104104108,-20.255328928928932,-20.180253753753757,-20.105178578578581,-20.030103403403405,-19.955028228228233,-19.879953053053057,-19.804877877877882,-19.729802702702706,-19.65472752752753,-19.579652352352355,-19.504577177177183,-19.429502002002007,-19.354426826826831,-19.279351651651655,-19.20427647647648,-19.129201301301304,-19.054126126126128,-18.979050950950956,-18.90397577577578,-18.828900600600605,-18.753825425425429,-18.678750250250253,-18.603675075075078,-18.528599899899902,-18.45352472472473,-18.378449549549554,-18.303374374374378,-18.228299199199203,-18.153224024024027,-18.078148848848851,-18.003073673673676,-17.927998498498503,-17.852923323323328,-17.777848148148152,-17.702772972972976,-17.627697797797801,-17.552622622622625,-17.477547447447453,-17.402472272272277,-17.327397097097101,-17.252321921921926,-17.17724674674675,-17.102171571571574,-17.027096396396399,-16.952021221221226,-16.876946046046051,-16.801870870870875,-16.726795695695699,-16.651720520520524,-16.576645345345348,-16.501570170170172,-16.426494994995,-16.351419819819824,-16.276344644644649,-16.201269469469473,-16.126194294294297,-16.051119119119122,-15.976043943943949,-15.900968768768774,-15.825893593593598,-15.750818418418422,-15.675743243243247,-15.600668068068071,-15.525592892892895,-15.450517717717723,-15.375442542542547,-15.300367367367372,-15.225292192192196,-15.15021701701702,-15.075141841841845,-15.000066666666669,-14.924991491491497,-14.849916316316321,-14.774841141141145,-14.69976596596597,-14.624690790790794,-14.549615615615618,-14.474540440440443,-14.39946526526527,-14.324390090090095,-14.249314914914919,-14.174239739739743,-14.099164564564568,-14.024089389389392,-13.94901421421422,-13.873939039039044,-13.798863863863868,-13.723788688688693,-13.648713513513517,-13.573638338338341,-13.498563163163166,-13.423487987987993,-13.348412812812818,-13.273337637637642,-13.198262462462466,-13.123187287287291,-13.048112112112115,-12.973036936936939,-12.897961761761767,-12.822886586586591,-12.747811411411416,-12.67273623623624,-12.597661061061064,-12.522585885885889,-12.447510710710713,-12.372435535535541,-12.297360360360365,-12.222285185185189,-12.147210010010014,-12.072134834834838,-11.997059659659662,-11.92198448448449,-11.846909309309314,-11.771834134134139,-11.696758958958963,-11.621683783783787,-11.546608608608611,-11.471533433433436,-11.396458258258264,-11.321383083083088,-11.246307907907912,-11.171232732732737,-11.096157557557561,-11.021082382382385,-10.946007207207209,-10.870932032032037,-10.795856856856862,-10.720781681681686,-10.64570650650651,-10.570631331331334,-10.495556156156159,-10.420480980980983,-10.345405805805811,-10.270330630630635,-10.19525545545546,-10.120180280280284,-10.045105105105108,-9.9700299299299324,-9.8949547547547603,-9.8198795795795846,-9.7448044044044089,-9.6697292292292332,-9.5946540540540575,-9.5195788788788818,-9.4445037037037061,-9.3694285285285339,-9.2943533533533582,-9.2192781781781825,-9.1442030030030068,-9.0691278278278311,-8.9940526526526554,-8.9189774774774797,-8.8439023023023076,-8.7688271271271319,-8.6937519519519562,-8.6186767767767805,-8.5436016016016048,-8.4685264264264291,-8.3934512512512534,-8.3183760760760812,-8.2433009009009055,-8.1682257257257298,-8.0931505505505541,-8.0180753753753784,-7.9430002002002027,-7.8679250250250305,-7.7928498498498513,-7.7177746746746791,-7.6426994994994999,-7.5676243243243277,-7.4925491491491556,-7.4174739739739763,-7.3423987987988042,-7.2673236236236249,-7.1922484484484528,-7.1171732732732806,-7.0420980980981014,-6.9670229229229292,-6.89194774774775,-6.8168725725725778,-6.7417973973973986,-6.6667222222222264,-6.5916470470470543,-6.516571871871875,-6.4414966966967029,-6.3664215215215236,-6.2913463463463515,-6.2162711711711722,-6.1411959959960001,-6.0661208208208279,-5.9910456456456487,-5.9159704704704765,-5.8408952952952973,-5.7658201201201251,-5.6907449449449459,-5.6156697697697737,-5.5405945945946016,-5.4655194194194223,-5.3904442442442502,-5.3153690690690709,-5.2402938938938988,-5.1652187187187195,-5.0901435435435474,-5.0150683683683752,-4.939993193193196,-4.8649180180180238,-4.7898428428428446,-4.7147676676676724,-4.6396924924924932,-4.564617317317321,-4.4895421421421489,-4.4144669669669696,-4.3393917917917975,-4.2643166166166182,-4.1892414414414461,-4.1141662662662668,-4.0390910910910947,-3.9640159159159225,-3.8889407407407433,-3.8138655655655711,-3.7387903903903918,-3.6637152152152197,-3.5886400400400404,-3.5135648648648683,-3.4384896896896961,-3.3634145145145169,-3.2883393393393447,-3.2132641641641655,-3.1381889889889933,-3.0631138138138212,-2.9880386386386419,-2.9129634634634698,-2.8378882882882905,-2.7628131131131184,-2.6877379379379391,-2.612662762762767,-2.5375875875875948,-2.4625124124124156,-2.3874372372372434,-2.3123620620620642,-2.237286886886892,-2.1622117117117128,-2.0871365365365406,-2.0120613613613685,-1.9369861861861892,-1.8619110110110171,-1.7868358358358378,-1.7117606606606657,-1.6366854854854864,-1.5616103103103143,-1.4865351351351421,-1.4114599599599629,-1.3363847847847907,-1.2613096096096115,-1.1862344344344393,-1.1111592592592601,-1.0360840840840879,-0.96100890890891577,-0.88593373373373652,-0.81085855855856437,-0.73578338338338511,-0.66070820820821297,-0.58563303303303371,-0.51055785785786156,-0.43548268268268941,-0.36040750750751016,-0.28533233233233801,-0.21025715715715876,-0.13518198198198661,-0.060106806806807356,0.014968368368364793,0.090043543543536941,0.1651187187187162,0.24019389389388834,0.3152690690690676,0.39034424424423975,0.46541941941941189,0.54049459459459115,0.6155697697697633,0.69064494494494255,0.7657201201201147,0.84079529529529395,0.9158704704704661,0.99094564564563825,1.0660208208208175,1.1410959959959897,1.2161711711711689,1.2912463463463411,1.3663215215215203,1.4413966966966925,1.5164718718718646,1.5915470470470439,1.666622222222216,1.7416973973973953,1.8167725725725674,1.8918477477477467,1.9669229229229188,2.041998098098091,2.1170732732732702,2.1921484484484424,2.2672236236236216,2.3422987987987938,2.417373973973973,2.4924491491491452,2.5675243243243173,2.6425994994994966,2.7176746746746687,2.792749849849848,2.8678250250250201,2.9429002002001994,3.0179753753753715,3.0930505505505437,3.1681257257257229,3.2432009009008951,3.3182760760760743,3.3933512512512465,3.4684264264264257,3.5435016016015979,3.61857677677677,3.6936519519519493,3.7687271271271214,3.8438023023023007,3.9188774774774728,3.9939526526526521,4.0690278278278242,4.1441030030029964,4.2191781781781756,4.2942533533533478,4.369328528528527,4.4444037037036992,4.5194788788788713,4.5945540540540506,4.6696292292292227,4.744704404404402,4.8197795795795741,4.8948547547547534,4.9699299299299255,5.0450051051050977,5.120080280280277,5.1951554554554491,5.2702306306306284,5.3453058058058005,5.4203809809809798,5.4954561561561519,5.5705313313313241,5.6456065065065033,5.7206816816816755,5.7957568568568547,5.8708320320320269,5.9459072072072061,6.0209823823823783,6.0960575575575504,6.1711327327327297,6.2462079079079018,6.3212830830830811,6.3963582582582532,6.4714334334334325,6.5465086086086046,6.6215837837837768,6.696658958958956,6.7717341341341282,6.8468093093093074,6.9218844844844796,6.9969596596596588,7.072034834834831,7.1471100100100031,7.2221851851851824,7.2972603603603545,7.3723355355355338,7.4474107107107059,7.5224858858858852,7.5975610610610573,7.6726362362362295,7.7477114114114087,7.8227865865865809,7.8978617617617601,7.9729369369369323,8.0480121121121044,8.1230872872872837,8.1981624624624558,8.2732376376376351,8.3483128128128072,8.4233879879879865,8.4984631631631586,8.5735383383383308,8.64861351351351,8.7236886886886822,8.7987638638638614,8.8738390390390336,8.9489142142142128,9.023989389389385,9.0990645645645571,9.1741397397397364,9.2492149149149085,9.3242900900900878,9.3993652652652599,9.4744404404404392,9.5495156156156114,9.6245907907907835,9.6996659659659628,9.7747411411411349,9.8498163163163142,9.9248914914914863,9.9999666666666656,10.075041841841838,10.15011701701701,10.225192192192189,10.300267367367361,10.375342542542541,10.450417717717713,10.525492892892892,10.600568068068064,10.675643243243236,10.750718418418415,10.825793593593588,10.900868768768767,10.975943943943939,11.051019119119118,11.12609429429429,11.201169469469463,11.276244644644642,11.351319819819814,11.426394994994993,11.501470170170165,11.576545345345345,11.651620520520517,11.726695695695689,11.801770870870868,11.87684604604604,11.95192122122122,12.026996396396392,12.102071571571564,12.177146746746743,12.252221921921915,12.327297097097095,12.402372272272267,12.477447447447446,12.552522622622618,12.62759779779779,12.702672972972969,12.777748148148142,12.852823323323321,12.927898498498493,13.002973673673672,13.078048848848844,13.153124024024017,13.228199199199196,13.303274374374368,13.378349549549547,13.453424724724719,13.528499899899899,13.603575075075071,13.678650250250243,13.753725425425422,13.828800600600594,13.903875775775774,13.978950950950946,14.054026126126125,14.129101301301297,14.204176476476469,14.279251651651649,14.354326826826821,14.429402002002,14.504477177177172,14.579552352352351,14.654627527527524,14.729702702702696,14.804777877877875,14.879853053053047,14.954928228228226,15.030003403403398,15.105078578578578,15.18015375375375,15.255228928928922,15.330304104104101,15.405379279279273,15.480454454454453,15.555529629629625,15.630604804804804,15.705679979979976,15.780755155155148,15.855830330330328,15.9309055055055,16.005980680680679,16.081055855855851,16.156131031031023,16.231206206206203,16.306281381381375,16.381356556556554,16.456431731731726,16.531506906906905,16.606582082082078,16.68165725725725,16.756732432432429,16.831807607607601,16.90688278278278,16.981957957957952,17.057033133133132,17.132108308308304,17.207183483483476,17.282258658658655,17.357333833833827,17.432409009009007,17.507484184184179,17.582559359359358,17.65763453453453,17.732709709709702,17.807784884884882,17.882860060060054,17.957935235235233,18.033010410410405,18.108085585585584,18.183160760760757,18.258235935935929,18.333311111111108,18.40838628628628,18.483461461461459,18.558536636636632,18.633611811811811,18.708686986986983,18.783762162162155,18.858837337337334,18.933912512512507,19.008987687687686,19.084062862862858,19.159138038038037,19.234213213213209,19.309288388388381,19.384363563563561,19.459438738738733,19.534513913913912,19.609589089089084,19.684664264264256,19.759739439439436,19.834814614614608,19.909889789789787,19.984964964964959,20.060040140140138,20.135115315315311,20.210190490490483,20.285265665665662,20.360340840840834,20.435416016016013,20.510491191191186,20.585566366366365,20.660641541541537,20.735716716716709,20.810791891891888,20.885867067067061,20.96094224224224,21.036017417417412,21.111092592592591,21.186167767767763,21.261242942942935,21.336318118118115,21.411393293293287,21.486468468468466,21.561543643643638,21.636618818818818,21.71169399399399,21.786769169169162,21.861844344344341,21.936919519519513,22.011994694694692,22.087069869869865,22.162145045045044,22.237220220220216,22.312295395395388,22.387370570570567,22.46244574574574,22.537520920920919,22.612596096096091,22.68767127127127,22.762746446446442,22.837821621621615,22.912896796796794,22.987971971971966,23.063047147147145,23.138122322322317,23.213197497497497,23.288272672672669,23.363347847847841,23.43842302302302,23.513498198198192,23.588573373373372,23.663648548548544,23.738723723723716,23.813798898898895,23.888874074074067,23.963949249249247,24.039024424424426,24.114099599599598,24.18917477477477,24.264249949949942,24.339325125125114,24.414400300300301,24.489475475475473,24.564550650650645,24.639625825825817,24.714701001001004,24.789776176176176,24.864851351351348,24.93992652652652,25.015001701701692,25.090076876876878,25.165152052052051,25.240227227227223,25.315302402402395,25.390377577577567,25.465452752752753,25.540527927927926,25.615603103103098,25.69067827827827,25.765753453453442,25.840828628628628,25.915903803803801,25.990978978978973,26.066054154154145,26.141129329329331,26.216204504504503,26.291279679679675,26.366354854854848,26.44143003003002,26.516505205205206,26.591580380380378,26.66665555555555,26.741730730730723,26.816805905905895,26.891881081081081,26.966956256256253,27.042031431431425,27.117106606606598,27.192181781781784,27.267256956956956,27.342332132132128,27.4174073073073,27.492482482482473,27.567557657657659,27.642632832832831,27.717708008008003,27.792783183183175,27.867858358358347,27.942933533533534,28.018008708708706,28.093083883883878,28.16815905905905,28.243234234234237,28.318309409409409,28.393384584584581,28.468459759759753,28.543534934934925,28.618610110110112,28.693685285285284,28.768760460460456,28.843835635635628,28.9189108108108,28.993985985985987,29.069061161161159,29.144136336336331,29.219211511511503,29.294286686686675,29.369361861861861,29.444437037037034,29.519512212212206,29.594587387387378,29.669662562562564,29.744737737737736,29.819812912912909,29.894888088088081,29.969963263263253,30.045038438438439,30.120113613613611,30.195188788788784,30.270263963963956,30.345339139139128,30.420414314314314,30.495489489489486,30.570564664664658,30.645639839839831,30.720715015015017,30.795790190190189,30.870865365365361,30.945940540540533,31.021015715715706,31.096090890890892,31.171166066066064,31.246241241241236,31.321316416416408,31.396391591591581,31.471466766766767,31.546541941941939,31.621617117117111,31.696692292292283,31.77176746746747,31.846842642642642,31.921917817817814,31.996992992992986,32.072068168168158,32.147143343343345,32.222218518518517,32.297293693693689,32.372368868868861,32.447444044044033,32.52251921921922,32.597594394394392,32.672669569569564,32.747744744744736,32.822819919919922,32.897895095095095,32.972970270270267,33.048045445445439,33.123120620620611,33.198195795795797,33.27327097097097,33.348346146146142,33.423421321321314,33.498496496496486,33.573571671671672,33.648646846846844,33.723722022022017,33.798797197197189,33.873872372372361,33.948947547547547,34.024022722722719,34.099097897897892,34.174173073073064,34.24924824824825,34.324323423423422,34.399398598598594,34.474473773773767,34.549548948948939,34.624624124124125,34.699699299299297,34.774774474474469,34.849849649649641,34.924924824824814,35] diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/expected1.json b/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/expected1.json new file mode 100644 index 000000000000..b9d11e26afa0 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/expected1.json @@ -0,0 +1 @@ +[1,1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600,6227020800,87178291200,1307674368000,20922789888000,355687428096000,6402373705728000,1.21645100408832e+17,2.43290200817664e+18,5.109094217170944e+19,1.1240007277776077e+21,2.5852016738884978e+22,6.2044840173323941e+23,1.5511210043330986e+25,4.0329146112660565e+26,1.0888869450418352e+28,3.0488834461171384e+29,8.8417619937397008e+30,2.6525285981219103e+32,8.2228386541779224e+33,2.6313083693369352e+35,8.6833176188118859e+36,2.9523279903960412e+38] diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/expected2.json b/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/expected2.json new file mode 100644 index 000000000000..f3447a0488d2 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/expected2.json @@ -0,0 +1 @@ +[-1.2251639018952047e-44,2.1774618177331901e-47,1.4770773003584878e-47,1.3626030487267966e-47,1.4435319767029023e-47,1.6680903659365798e-47,2.0589314444332792e-47,2.6915971786033686e-47,3.7227512505593992e-47,5.479334408733365e-47,8.7200345944426247e-47,1.5584386659488514e-46,3.4876331309209338e-46,1.861601139726466e-45,-1.1653138893468973e-45,-6.3457800301581344e-46,-5.4593691745239667e-46,-5.5677486585394202e-46,-6.2654254256697626e-46,-7.5679619993917366e-46,-9.6989857862785698e-46,-1.3146122356076716e-45,-1.8910395903288858e-45,-2.9217918971415424e-45,-4.9890188901331268e-45,-1.0144930811094336e-44,-3.3437604140568323e-44,7.8425628110605681e-44,2.7668432298834208e-44,2.170327954521085e-44,2.1166526487268874e-44,2.3132509799183601e-44,2.73112885515148e-44,3.4301294333208218e-44,4.5575118166621851e-44,6.4144752790435899e-44,9.6480534612116767e-44,1.5847625172079383e-43,2.9987128149466763e-43,7.8166113235003936e-43,-2.5257990390890778e-41,-1.248340226697473e-42,-8.5912949172083765e-43,-7.9378451036695485e-43,-8.3953286682130329e-43,-9.6732390147856246e-43,-1.1898790911674575e-42,-1.5498891767874037e-42,-2.1360910428701801e-42,-3.1341477099922679e-42,-4.976898321954149e-42,-8.8963046482435681e-42,-2.0073656445904956e-41,-1.1808255625194295e-40,6.0780344970180779e-41,3.4057389054960393e-41,2.9404617969157374e-41,2.9954671980405005e-41,3.3615140946272994e-41,4.0463005290695839e-41,5.1662999415282346e-41,6.976284088765756e-41,1.0000492731538969e-40,1.540914823320465e-40,2.6284968639903824e-40,5.367085018431325e-40,1.8310042476563435e-39,-3.6025253499395844e-39,-1.3650919050908082e-39,-1.0781659638145519e-39,-1.0511536849261193e-39,-1.1458607887741975e-39,-1.348176238955445e-39,-1.6867155300517865e-39,-2.2322809035147977e-39,-3.1300406480120462e-39,-4.6928234390220578e-39,-7.6935719889811762e-39,-1.4580875848728631e-38,-3.8637331212443817e-38,5.8488783208739008e-37,5.6313299074437302e-38,3.92573055254954e-38,3.6302713221798723e-38,3.830963412970411e-38,4.3990239956694977e-38,5.3898409909261574e-38,6.9917762814929544e-38,9.5975342265579618e-38,1.4031014642591992e-37,2.2222073264567016e-37,3.9715880213453278e-37,9.0370601777491152e-37,5.9709318105251523e-36,-2.4824019704788903e-36,-1.4268862012938158e-36,-1.2353097537183613e-36,-1.2562313326197246e-36,-1.405065935293832e-36,-1.6845388445350447e-36,-2.1416447790349537e-36,-2.8796488305191633e-36,-4.1115939248830801e-36,-6.3148805248325228e-36,-1.0756576341290793e-35,-2.2051508286905463e-35,-7.8123280156625229e-35,1.296078492578116e-34,5.223143903683946e-35,4.1492353284443015e-35,4.0411802105105895e-35,4.3914252771772365e-35,5.1459642722619867e-35,6.4098110493714021e-35,8.4450431838120948e-35,1.1790569442259063e-34,1.7611493542407121e-34,2.880382527370837e-34,5.4657745173778382e-34,1.4736733280054181e-33,-1.4060041355930033e-32,-1.9569325437539529e-33,-1.379692251168309e-33,-1.2759621096203412e-33,-1.3426362605819336e-33,-1.5355181363736388e-33,-1.8728543739419161e-33,-2.418097338826847e-33,-3.3040523979003962e-33,-4.8101634478789262e-33,-7.5941484458993337e-33,-1.3564354976371864e-32,-3.1128667940002895e-32,-2.3716991784763063e-31,7.7615318927011419e-32,4.5633430241311006e-32,3.9577947792959308e-32,4.0149833897379129e-32,4.472832307419157e-32,5.3376680997710026e-32,6.7529036223601102e-32,9.035685141423901e-32,1.2842238737385433e-31,1.9648929571889595e-31,3.340431561691449e-31,6.8738851840805685e-31,2.5385707944589434e-30,-3.5604866102426847e-30,-1.5134868163223809e-30,-1.2078864406806854e-30,-1.1743166420632935e-30,-1.271181060873503e-30,-1.4825849609805659e-30,-1.8373448529080247e-30,-2.4082938864134041e-30,-3.345726591346837e-30,-4.9756836421110758e-30,-8.1135430433411176e-30,-1.5409055628540382e-29,-4.2311340182380634e-29,2.8624953157191153e-28,5.1081709652391169e-29,3.6363651223740094e-29,3.3602832581098337e-29,3.5230279961343363e-29,4.0099978850403415e-29,4.8653254090833424e-29,6.2478761738789074e-29,8.4918499980921042e-29,1.2302690520735903e-28,1.9348996248766943e-28,3.4520776513561396e-28,7.9903225073811361e-28,7.2965417533326379e-27,-1.8082922326598287e-27,-1.084490473946819e-27,-9.4130996893557705e-28,-9.5178221698131786e-28,-1.0552796537162518e-27,-1.252530228605855e-27,-1.5756890418875766e-27,-2.0964913739263935e-27,-2.9638730139845697e-27,-4.5142839056759068e-27,-7.6546503843778572e-27,-1.5805761351478751e-26,-6.1119669833676655e-26,7.2494794155919716e-26,3.2275532282696724e-26,2.5845479507013989e-26,2.5058962064389995e-26,2.699866851860563e-26,3.1314672237601697e-26,3.8579653401980262e-26,5.0267664834744786e-26,6.9433735906229128e-26,1.0272916910063691e-25,1.6689207956468827e-25,3.1704741924714314e-25,8.8747231778517428e-25,-4.5322376838436207e-24,-9.7140940966029029e-25,-6.9704987788065284e-25,-6.4295001778056664e-25,-6.7102357113810829e-25,-7.5947269777137757e-25,-9.1583827803590637e-25,-1.1687267085820008e-24,-1.5787204255724291e-24,-2.27414814373406e-24,-3.5600906510829343e-24,-6.3398425049322404e-24,-1.4800095378806129e-23,-1.7229577310984195e-22,3.0379375080326457e-23,1.8534413949214619e-23,1.6080797189252911e-23,1.6190142711592692e-23,1.7848245846306449e-23,2.105031131302733e-23,2.6307388027043075e-23,3.4773480123596815e-23,4.8854118099298115e-23,7.4006688311322104e-23,1.2506067423460249e-22,2.5899332489800026e-22,1.054184539925168e-21,-1.0553614015210316e-21,-4.8904478840289283e-22,-3.9237898257288595e-22,-3.7898539135580394e-22,-4.0598234455650031e-22,-4.6780358556194401e-22,-5.7236670333685224e-22,-7.4059246640554408e-22,-1.0160794246955485e-21,-1.4941158934144336e-21,-2.4160361568604909e-21,-4.5876599041742142e-21,-1.3103636408072839e-20,5.246262105611082e-20,1.2958798604598757e-20,9.3559018248425953e-21,8.603324242957089e-21,8.9280106448294122e-21,1.0036808440168046e-20,1.2016158853476214e-20,1.5221584737575128e-20,2.0412808884299854e-20,2.9205517879514866e-20,4.5460880125926925e-20,8.0732348131772324e-20,1.9004078645917702e-19,3.159566941961332e-18,-3.5329145889979269e-19,-2.1866209225620204e-19,-1.8936982211500265e-19,-1.8960582690363766e-19,-2.0758178096540222e-19,-2.4298418468497195e-19,-3.0131413697444211e-19,-3.9520684655437289e-19,-5.5112943233729786e-19,-8.2939746047025559e-19,-1.3952638727306757e-18,-2.8959434338882932e-18,-1.2485565604822558e-17,1.0503972135654716e-17,5.0372443534459274e-18,4.0427098068232244e-18,3.884453219111983e-18,4.1318943835678011e-18,4.7238207276275139e-18,5.7324956562692731e-18,7.3563630440973045e-18,1.0011973080337325e-17,1.4613598678758398e-17,2.3492077167453041e-17,4.4541430898136371e-17,1.2993723133473804e-16,-4.1790323668503732e-16,-1.1558675918327745e-16,-8.3787868036436981e-17,-7.6693874474312362e-17,-7.9022346515810081e-17,-8.811325121219729e-17,-1.0458304733981629e-16,-1.3132355584785043e-16,-1.7459180945568266e-16,-2.4775688070737722e-16,-3.8294236620798555e-16,-6.7731651905793251e-16,-1.6069575820884679e-15,-5.0363143079070036e-14,2.6990345948187757e-15,1.6896805001900299e-15,1.4581111381371477e-15,1.4495606008954701e-15,1.5735820611758844e-15,1.8252844449431026e-15,2.2424418684594938e-15,2.9139841749163738e-15,4.0273596376762801e-15,6.0118025761055972e-15,1.005333048107563e-14,2.0890375962943298e-14,9.6128470429670284e-14,-6.7474819451507353e-14,-3.3303315767064568e-14,-2.6681039986969897e-14,-2.5458278901559802e-14,-2.6843242776130217e-14,-3.0396556670981499e-14,-3.6523453850766609e-14,-4.6404725618128286e-14,-6.2543632936417041e-14,-9.0461103060917919e-14,-1.4432816532058499e-13,-2.7284788524418682e-13,-8.1356267003011192e-13,2.1356756428237469e-12,6.4726677049067607e-13,4.6992020007996207e-13,4.2730194317025152e-13,4.3630885912333801e-13,4.8162918087851489e-13,5.6566631271521685e-13,7.0275553638874533e-13,9.244801134270473e-13,1.2987156109526793e-12,1.9894943154182164e-12,3.4985532313894392e-12,8.3585585173244504e-12,1.146864977328195e-08,-1.2636546107659593e-11,-7.9748710582720728e-12,-6.8417850546279863e-12,-6.7389289562152465e-12,-7.2383961138021407e-12,-8.3027050950497787e-12,-1.0084176158691687e-11,-1.2955233969508848e-11,-1.7707569808423761e-11,-2.6163764863853065e-11,-4.3403979434596748e-11,-9.0149027478716363e-11,-4.468822373905988e-10,2.5892851945594194e-10,1.3079735924754901e-10,1.0432759658894523e-10,9.8615967486044215e-11,1.0282801644316079e-10,1.1505866334263235e-10,1.3656319496744575e-10,1.7137993700724144e-10,2.2819515375833273e-10,3.2627843549385163e-10,5.1544375905415095e-10,9.6950734530017635e-10,2.9559390513320409e-09,-6.3964378231611072e-09,-2.0873726495373496e-09,-1.51294143577601e-09,-1.3629260182142999e-09,-1.3754343127743355e-09,-1.4990898831295536e-09,-1.7375606750759771e-09,-2.1299891230816963e-09,-2.7650772376179368e-09,-3.8349490534346487e-09,-5.8068102516979307e-09,-1.0126303394530192e-08,-2.4323031315572043e-08,7.1531459894742411e-07,3.2909249223527406e-08,2.0850861100750904e-08,1.7727847559957546e-08,1.7247664888155429e-08,1.827524301952602e-08,2.0665901261310617e-08,2.4738572440591447e-08,3.1324096073769046e-08,4.2211008944921212e-08,6.1542731421197576e-08,1.0097397013760165e-07,2.0907650186504071e-07,1.1294548185532997e-06,-5.3188213418734964e-07,-2.7327289612839546e-07,-2.1620775097390728e-07,-2.017528756595175e-07,-2.0731533241725239e-07,-2.284235738378271e-07,-2.6686667888848629e-07,-3.2962219371545816e-07,-4.3205279528037604e-07,-6.0850413109170691e-07,-9.4844408904457219e-07,-1.7689985094255247e-06,-5.5125864599488044e-06,9.8805816286505549e-06,3.4184700437044576e-06,2.4626113865474632e-06,2.1888477606257127e-06,2.1744056099231619e-06,2.3304487448021889e-06,2.6548781840409094e-06,3.1980623986073138e-06,4.0798900321494157e-06,5.5631172841029879e-06,8.2913377548852452e-06,1.428002281340041e-05,3.4378952211441412e-05,-0.0004696282098151308,-4.1249109253329207e-05,-2.609043866770909e-05,-2.1878178345614474e-05,-2.0925910744717547e-05,-2.1768924881959876e-05,-2.4152498423521848e-05,-2.8358277952246263e-05,-3.5217469759648808e-05,-4.655786260612977e-05,-6.6649051205045404e-05,-0.00010761779912431255,-0.00022115197102140998,-0.0013207272444296732,0.00049412576389814623,0.00025617184153527779,0.00019988086070085324,0.00018309482253341529,0.00018436692260446059,0.00019889215174844665,0.00022740717840386481,0.00027484308610480415,0.00035254223338200601,0.00048617012276092709,0.00074317018354294725,0.001366556367457841,0.0043418092521156949,-0.0064412554232104588,-0.0023257145112690436,-0.0016533790630660844,-0.0014401327095634891,-0.0013986792805456322,-0.0014639583289256899,-0.0016277452696302802,-0.0019131553996517433,-0.002381309897605184,-0.003169084854279153,-0.0046149632153260674,-0.00779258638530119,-0.018686719148926324,0.15775050821742617,0.019561390296762085,0.012239873719290893,0.010037931500526563,0.0093594672563540263,0.0094779087412704254,0.010228298032355188,0.011675857387413146,0.014094439273726842,0.018113959044875668,0.025226085744647457,0.039714961124303713,0.080277523918438107,0.53918871064289264,-0.15470838876562898,-0.079928490927878224,-0.060849049225176338,-0.054133464330256773,-0.052838694775674842,-0.055196532721827819,-0.061071705430835746,-0.07139908579786583,-0.088581155808420187,-0.11819262124879636,-0.17505900555511622,-0.31354888771595635,-1.0073039094137917,1.2248374835289575,0.45198851468617107,0.31265329061549818,0.26314721683407671,0.24631839410591569,0.24813022601363816,0.2652822081429822,0.29961365483204916,0.35821569392412028,0.45789566915370089,0.64096354830791225,1.0436542271725433,2.4541409241366736,-14.147729484673322,-2.1606393746846044,-1.3114890019078578,-1.0317228966835168,-0.91943707404404296,-0.88815455261782328,-0.91306076383784063,-0.99186223531034812,-1.138470500029559,-1.3904980747110618,-1.8403952643310064,-2.7582414077305653,-5.3535610033593608,-41.004492118446983,8.4583308349173567,4.2285828595270942,3.0523511606316966,2.5608749246520479,2.350504505336279,2.3040156741378306,2.3877830370517672,2.6105203366079643,3.0244178848386278,3.7645346161206361,5.2015507410229427,8.7260133889539642,27.340622246490568,-26.125573958171788,-9.3595451026056153,-6.0060141244873027,-4.6479228671839339,-3.980386102361686,-3.6534638786467379,-3.5453082304319339,-3.6203326131306688,-3.898174565841678,-4.4699381429050575,-5.5929318417318514,-8.1277421931850586,-17.277220891711931,66.244937595787349,10.610880268697112,5.6213970533316528,3.7822730497161321,2.8397105760868984,2.2744857879083216,1.9028199004389383,1.6433280495204843,1.4545278684775165,1.3131194082999798,1.2050508697282143,1.1213764486200135,1.0561552621146912,1.0053080795668996,0.96595914799109983,0.9360393637753972,0.91403764401291865,0.89884005059768013,0.88962284191509666,0.88577975864284197,0.88687167867592076,0.8925912770903951,0.90273800090490752,0.91720030386370155,0.93594311348880221,0.9589991633518451,0.98646325827971393,1.0184888326026107,1.0552863625400164,1.0971233351768397,1.1443255784429591,1.1972798322214779,1.2564374988919358,1.3223195581672778,1.3955226701024086,1.4767265245550194,1.5667025273192423,1.6663239442837532,1.7765776566259559,1.8985777133899899,2.0335809038497383,2.1830046118373878,2.3484472587427816,2.5317116922417715,2.7348319351708872,2.9601037746450989,3.2101197470063365,3.4878091611923101,3.7964839035954525,4.1398908837083104,4.5222721144693061,4.9484335773042449,5.4238242029907582,5.9546265098506233,6.5478606852919219,7.2115041811249299,7.9546292240712564,8.7875610283598053,9.7220599464873683,10.771531317953382,11.951267386796092,13.278726371997887,14.773854607884127,16.459458645174088,18.361635341674603,20.510269303389972,22.939608595753757,25.688931470554706,28.803318993751983,32.3345509680737,36.342145487291099,40.894565913387765,46.070623124554842,51.961105648538521,58.670675899638745,66.320077329002672,75.04870505499413,85.017601674253683,96.412950714492794,109.45015287345826,124.37858514601042,141.48716058995242,161.11082731569124,183.63816989285496,209.52030544670492,239.28130109842039,273.5303800733688,312.97623193414472,358.44379938886829,410.89398164395573,471.44677429817688,541.40846067496477,622.30358208151506,715.91254813017406,824.31590697300021,949.94648387915868,1095.6508207516274,1264.7616157800624,1461.1831796430113,1689.4923022932537,1955.0573741017638,2264.1791410205678,2624.2571122564809,3043.9864008519162,3533.59068668286,4105.0980766482407,4772.667932964092,5552.9782891801342,6465.6853248522202,7533.9685838757641,8785.1782705820769,10251.604128716801,11971.389205899382,13989.616355867571,16359.600784197017,19144.428482593597,22418.78824204468,26271.154350919678,30806.388389882177,36148.842116508706,42446.059753659909,49873.197618299149,58638.30262942049,68988.61963420939,81218.131680531369,95676.578538468471,112780.24838224659,133024.8973388584,157001.22371296008,185413.4106784715,219101.35619923851,259067.33567730142,306507.99590278108,362852.76384404663,429809.97740385146,509422.31565155601,604133.43314856093,716868.09887307894,851128.61957472609,1011110.9079638351,1201844.2596324489,1429359.7553697047,1700893.2396583415,2025130.0806753295,2412500.4396429299,2875535.6258467427,3429298.3586963867,4091902.4859955101,4885141.0231629973,5835245.4097110759,6973803.7832965124,8338872.0391859189,9976318.707378557,11941453.526055211,14301000.367035992,17135488.302695088,20542150.615635332,24638441.08020917,29566300.669500366,35497336.918653429,42639113.676480114,51242792.336951315,61612418.619152196,74116213.715018868,89200307.793566972,107405450.6836091,129387353.03734414,155941456.29490232,188033107.33170527,226834331.15531537,273768661.4963361,330565815.75867158,399328401.27077204,482613330.98154992,583531229.43203664,705867849.56404316,854232429.17008865,1034239031.3122199,1252728283.6099417,1518038615.7996621,1840338166.0021675,2232031073.2442584,2708255007.4498959,3287490644.6954784,3992308543.3542476,4850284723.7276945,5895123456.6894751,7168034643.1151199,8719424107.7144432,10610968623.401487,12918164125.471176,15733456110.929533,19170086566.036457,23366823061.830227,28493774311.632793,34759544241.045753,42420035641.830963,51789287446.145355,63252819889.624451,77284073451.795685,94464665582.786224,115509360191.05585,141296856553.76825,172907766499.35663,211671473547.92264,259223970271.85342,317579269213.36078,389217601585.29572,477194385683.8739,585274899524.54626,718100774554.65967,881395895252.93896,1082221112535.3127,1329289443745.2078,1633356246483.0706,2007702352035.4053,2468732494216.0649,3036716779888.8779,3736709678751.5483,4599689387019.6064,5663970847850.6328,6976958696654.8848,8597322573542.2607,10597697396880.098,13068036306670.889,16119775295394.613,19891007585872.984,24552914514355.531,30317760437972.035,37448835018032.844,46272820899156.773,57195183020619.797,70719323458973.734,87470430195577.906,108225178780071.98,133948734110495.06,165840859996934.91,205393395023537.38,254461917300885.03,315355126635277.44,390946356347587.25,484812733517907.94,601408892375696.25,746283881912783.25,926352084744155.75,1150231691795648.2,1428667697298406.2,1775060667690204.8,2206127918709488.5,2742730486785859.5,3410907755405032.5,4243172236790960.5,5280130370626186,6572511985205888,8183712154398167,10192975686778494,12699387800326644,15826876429786134,19730484305466960,24604235231950620,30691002413170348,38294891668906760,47796784583250408,59673853104263024,74524066819542096,93096978354398432,1.1633240533337186e+17,1.4540904711599466e+17,1.8180560380824054e+17,2.2737763260113264e+17,2.844542186199329e+17,3.5595960009968992e+17,4.4556622889803814e+17,5.5788744054977542e+17,6.9872004616233075e+17,8.7534985900053248e+17,1.0969365804000407e+18,1.3749987810354959e+18,1.7240251630599959e+18,2.162245178307105e+18,2.712600790290263e+18,3.4039721880678426e+18,4.2727242027519872e+18,5.3646578216644844e+18,6.7374735288149535e+18,8.4638814764972616e+18,1.0635529300909451e+19,1.3367963751682304e+19,1.680689977086575e+19,2.1136143480700445e+19,2.6587607847414133e+19,3.3453976820284813e+19,4.2104722157738418e+19,5.3006365402752557e+19,6.6748116306517164e+19,8.4074322084901175e+19,1.0592554659758653e+20,1.3349058695568271e+20,1.6827235528917474e+20,2.1217134119034755e+20,2.675913711860273e+20,3.3757365338399913e+20,4.2596671190537745e+20,5.376418707237058e+20,6.7876655964213726e+20,8.5715103865668305e+20,1.0826883649471505e+21,1.3679128065416686e+21,1.7287087536046911e+21,2.1852108943011301e+21,2.7629475199524164e+21,3.4942929576578709e+21,4.4203131320082314e+21,5.5931111956255311e+21,7.0788093999118822e+21,8.9613406373808544e+21,1.1347270590468092e+22,1.4371931997907532e+22,1.8207229812704815e+22,2.3071574593115188e+22,2.9242527241099578e+22,3.7072898724667597e+22,4.701125333520278e+22,5.9628025670485741e+22,7.5648795671876289e+22,9.5996692858188589e+22,1.2184644620815467e+23,1.5469329299144216e+23,1.9644085053190087e+23,2.4951319356107962e+23,3.1699783583344536e+23,4.028281768529377e+23,5.1201635669623362e+23,6.5095050982222857e+23,8.2777430930096039e+23,1.0528716856221823e+24,1.3394859962824434e+24,1.7045111075446444e+24,2.1695023332878031e+24,2.7619686057779462e+24,3.5170244610575524e+24,4.4795024746878614e+24,5.7066550516990426e+24,7.2716107166531913e+24,9.2677965242831216e+24,1.1814597819161938e+25,1.506460304094209e+25,1.9212879388175225e+25,2.450885107232946e+25,3.1271513524145956e+25,3.990892442621372e+25,5.0943178914862682e+25,6.5042418539215948e+25,8.3061863219495513e+25,1.0609642034532433e+26,1.3554815111751798e+26,1.7321280736715443e+26,2.2139085173549716e+26,2.8302991668808363e+26,3.61907641783264e+26,4.6286638068944231e+26,5.9211455296402918e+26,7.5761364101889723e+26,9.6957527122320352e+26,1.2410998193548215e+27,1.5889969953571339e+27,2.0348404718500612e+27,2.606323574754939e+27,3.3390023198065162e+27,4.2785369033997813e+27,5.4835747503328623e+27,7.0294594628541627e+27,9.0130031879111721e+27,1.1558628486769439e+28,1.4826274226833961e+28,1.902157409783619e+28,2.440896354844729e+28,3.1328560890203589e+28,4.0217913488624764e+28,5.1640016468641293e+28,6.6319420033001538e+28,8.5188769261921523e+28,1.0944880196270156e+29,1.4064571082551206e+29,1.807709141061679e+29,2.3238974972417255e+29,2.9880750864848851e+29,3.842836810981944e+29,4.9430846699336964e+29,6.3595971207049046e+29,8.1836374745326509e+29,1.0532904885826639e+30,1.3559220496209721e+30,1.7458456482775702e+30,2.2483364865533458e+30,2.8960155972750672e+30,3.7309926436630244e+30,4.8076360341670002e+30,6.1961546521625198e+30,7.9872298337448209e+30,1.0298006633304394e+31,1.3279844666364896e+31,1.7128347103445136e+31,2.2096339743571201e+31,2.8510670954247029e+31,3.6793961172493388e+31,4.7492765211081028e+31,6.1314044655599409e+31,7.9172410856081255e+31,1.0225132998185434e+32,1.3208243044330275e+32,1.7064828483777799e+32,2.2051563813987886e+32,2.8500813124403843e+32,3.6843026737341153e+32,4.7635787453575447e+32,6.1601487240530897e+32,7.9676207194621172e+32,1.0307314309392088e+33,1.333649192157282e+33,1.7259043381422067e+33,2.2339357120407644e+33,2.892033155764908e+33,3.7446766390023017e+33,4.8495745936270985e+33,6.2816111311650957e+33,8.1379748981933875e+33,1.0544824436363815e+34,1.3665951821709588e+34,1.7714045572846648e+34,2.29653351323193e+34,2.9778635409535322e+34,3.8620117582389423e+34,5.0095533313051283e+34,6.4992142085279872e+34,8.4333272500706983e+34,1.0944933634670465e+35,1.420702720707605e+35,1.8444590421235354e+35,2.3950267474217828e+35,3.1104777137713265e+35,4.0403502994125527e+35,5.2491136199307404e+35,6.8206816783959876e+35,8.8642964718553845e+35,1.1522196488652987e+36,1.4979614051742915e+36,1.9477810874918454e+36,2.5331077909455594e+36,3.2948908666255542e+36,4.2864925104288806e+36,5.5774618567544629e+36,7.2584600045413277e+36,9.4476879913984618e+36,1.2299277708180935e+37,1.601424693788356e+37,2.0854804355164197e+37,2.7163031851518753e+37,3.538528752396199e+37,4.610408609092574e+37,6.0079754518210865e+37,7.8304868737267739e+37,1.0207540425878468e+38,1.3308374703403028e+38,1.7354029997039688e+38,2.263325015753581e+38,2.9523279903960412e+38] diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/runner.R b/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/runner.R new file mode 100644 index 000000000000..41969b68e026 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/runner.R @@ -0,0 +1,117 @@ +#!/usr/bin/env Rscript +# +# @license Apache-2.0 +# +# Copyright (c) 2026 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Set the precision to 16 digits: +options( digits = 16L ); + +#' Generate test fixtures. +#' +#' @examples +#' main(); +main <- function() { + #' Get the script filepath. + #' + #' @return The absolute path of this script + #' + #' @examples + #' filepath <- get_script_path(); + get_script_path <- function() { + args <- commandArgs( trailingOnly = FALSE ); + needle <- '--file='; + match <- grep( needle, args ); + if ( length( match ) > 0L ) { + # Rscript: + filepath <- sub( needle, '', args[match] ); + } else { + ls_vars <- ls( sys.frames()[[1L]] ) + if ( 'fileName' %in% ls_vars ) { + # Source'd via RStudio: + filepath <- sys.frames()[[1L]]$fileName; # nolint + } else { + # Source'd via R console: + filepath <- sys.frames()[[1L]][['ofile']]; + } + } + return( normalizePath( filepath ) ); + } + + #' Convert a data structure to JSON. + #' + #' @param x A data structure to convert + #' @return JSON blob + #' + #' @examples + #' x <- seq( -6.5, 25, 0.5 ); + #' json <- to_json( x ); + to_json <- function( x ) { + return( jsonlite::toJSON( x, digits = 16L, auto_unbox = TRUE ) ); + } + + #' Generate an output absolute filepath based on the script directory. + #' + #' @param name An output filename + #' @return An absolute filepath + #' + #' @examples + #' filepath <- get_filepath( 'data.json' ); + get_filepath <- function( name ) { + return( paste( source_dir, '/', name, sep = '' ) ); + } + + # Get the directory of this script: + source_dir <- dirname( get_script_path() ); + + # Generate integer test data: + x <- seq( 1L, 35L, 1L ); + y <- gamma( x ); + + # Deal with NaNs: + cat( y, sep = ',\n' ); + + # Convert fixture data to JSON: + x <- to_json( x ); + y <- to_json( y ); + + # Write the data to file... + filepath <- get_filepath( 'data1.json' ); + write( x, filepath ); + + filepath <- get_filepath( 'expected1.json' ); + write( y, filepath ); + + + # Generate decimal test data: + x <- seq( -40.0001, 35.00, length.out = 1000L ); + y <- gamma( x ); + + # Deal with NaNs: + cat( y, sep = ',\n' ); + + # Convert fixture data to JSON: + x <- to_json( x ); + y <- to_json( y ); + + # Write the data to file... + filepath <- get_filepath( 'data2.json' ); + write( x, filepath ); + + filepath <- get_filepath( 'expected2.json' ); + write( y, filepath ); +} + +main(); diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.js b/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.js new file mode 100644 index 000000000000..fb5615e488e6 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.js @@ -0,0 +1,163 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2018 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var incrspace = require( '@stdlib/array/base/incrspace' ); +var absf = require( '@stdlib/math/base/special/absf' ); +var max = require( '@stdlib/math/base/special/maxn' ); +var PINF = require( '@stdlib/constants/float32/pinf' ); +var NINF = require( '@stdlib/constants/float32/ninf' ); +var gammaf = require( './../lib' ); + + +// FIXTURES // + +var data1 = require( './fixtures/r/data1.json' ); +var expected1 = require( './fixtures/r/expected1.json' ); +var data2 = require( './fixtures/r/data2.json' ); +var expected2 = require( './fixtures/r/expected2.json' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof gammaf, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'if provided a negative integer, the function returns `NaN`', function test( t ) { + var values = incrspace( -1.0, -1000.0, -1.0 ); + var v; + var i; + + for ( i = 0; i < values.length; i++ ) { + v = gammaf( values[ i ] ); + t.strictEqual( isnanf( v ), true, 'returns expected value when provided ' + values[ i ] ); + } + t.end(); +}); + +tape( 'if provided negative infinity, the function returns `NaN`', function test( t ) { + var v = gammaf( NINF ); + t.strictEqual( isnanf( v ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'if provided `NaN`, the function returns `NaN`', function test( t ) { + var v = gammaf( NaN ); + t.strictEqual( isnanf( v ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'if provided `-0`, the function returns negative infinity', function test( t ) { + var v = gammaf( -0.0 ); + t.strictEqual( v, NINF, 'returns expected value' ); + t.end(); +}); + +tape( 'if provided `+0`, the function returns positive infinity', function test( t ) { + var v = gammaf( 0.0 ); + t.strictEqual( v, PINF, 'returns expected value' ); + t.end(); +}); + +tape( 'if `x > 35.0400...`, the function returns positive infinity', function test( t ) { + var values = incrspace( 35.05, 100.0, 10.1234 ); + var v; + var i; + + for ( i = 0; i < values.length; i++ ) { + v = gammaf( values[ i ] ); + t.strictEqual( v, PINF, 'returns expected value when provided ' + values[ i ] ); + } + t.end(); +}); + +tape( 'if `x < -40.0019...`, the function returns zero', function test( t ) { + var values = incrspace( -40.002, -100.0, -10.1234 ); + var v; + var i; + + for ( i = 0; i < values.length; i++ ) { + v = gammaf( values[ i ] ); + t.strictEqual( v, 0.0, 'returns expected value when provided ' + values[ i ] ); + } + t.end(); +}); + +tape( 'the function evaluates the gamma function (positive integers)', function test( t ) { + var delta; + var tol; + var v; + var i; + + for ( i = 0; i < data1.length; i++ ) { + v = gammaf( data1[ i ] ); + delta = absf( v - expected1[ i ] ); + tol = 2.75e-5 * max( 1.0, absf( v ), absf( expected1[ i ] ) ); + t.ok( delta <= tol, 'within tolerance. x: ' + data1[ i ] + '. Value: ' + v + '. Expected: ' + expected1[ i ] + '. Tolerance: ' + tol + '.' ); + } + t.end(); +}); + +tape( 'the function evaluates the gamma function (decimal values)', function test( t ) { + var delta; + var tol; + var v; + var i; + + for ( i = 0; i < data2.length; i++ ) { + v = gammaf( data2[ i ] ); + delta = absf( v - expected2[ i ] ); + tol = 2.75e-5 * max( 1.0, absf( v ), absf( expected2[ i ] ) ); + t.ok( delta <= tol, 'within tolerance. x: ' + data2[ i ] + '. Value: ' + v + '. Expected: ' + expected2[ i ] + '. Tolerance: ' + tol + '.' ); + } + t.end(); +}); + +tape( 'if provided a positive integer, the function returns the factorial of (n-1)', function test( t ) { + t.strictEqual( gammaf( 4.0 ), 6.0, 'returns 6' ); + t.strictEqual( gammaf( 5.0 ), 24.0, 'returns 24' ); + t.strictEqual( gammaf( 6.0 ), 120.0, 'returns expected value' ); + t.end(); +}); + +tape( 'the function uses a small value approximation for tiny positive x', function test( t ) { + var expected; + var delta; + var tol; + var x; + var v; + + x = 0.000009999999747378752; // f32(1e-5) — triggers x < 1e-4 check + v = gammaf( x ); + + expected = 9.9999422e+4; + delta = absf( v - expected ); + tol = 1.0; + + t.ok( delta < tol, 'within tolerance. x: ' + x + '. Value: ' + v + + '. Expected: ' + expected + '. Tolerance: ' + tol + '.' ); + t.end(); +}); diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.native.js new file mode 100644 index 000000000000..1173601b74a1 --- /dev/null +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.native.js @@ -0,0 +1,172 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2018 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var resolve = require( 'path' ).resolve; +var tape = require( 'tape' ); +var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var incrspace = require( '@stdlib/array/base/incrspace' ); +var absf = require( '@stdlib/math/base/special/absf' ); +var max = require( '@stdlib/math/base/special/maxn' ); +var PINF = require( '@stdlib/constants/float32/pinf' ); +var NINF = require( '@stdlib/constants/float32/ninf' ); +var tryRequire = require( '@stdlib/utils/try-require' ); + + +// VARIABLES // + +var gammaf = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( gammaf instanceof Error ) +}; + + +// FIXTURES // + +var data1 = require( './fixtures/r/data1.json' ); +var expected1 = require( './fixtures/r/expected1.json' ); +var data2 = require( './fixtures/r/data2.json' ); +var expected2 = require( './fixtures/r/expected2.json' ); + + +// TESTS // + +tape( 'main export is a function', opts, function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof gammaf, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'if provided a negative integer, the function returns `NaN`', opts, function test( t ) { + var values = incrspace( -1.0, -1000.0, -1.0 ); + var v; + var i; + + for ( i = 0; i < values.length; i++ ) { + v = gammaf( values[ i ] ); + t.strictEqual( isnanf( v ), true, 'returns expected value when provided ' + values[ i ] ); + } + t.end(); +}); + +tape( 'if provided negative infinity, the function returns `NaN`', opts, function test( t ) { + var v = gammaf( NINF ); + t.strictEqual( isnanf( v ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'if provided `NaN`, the function returns `NaN`', opts, function test( t ) { + var v = gammaf( NaN ); + t.strictEqual( isnanf( v ), true, 'returns expected value' ); + t.end(); +}); + +tape( 'if provided `-0`, the function returns negative infinity', opts, function test( t ) { + var v = gammaf( -0.0 ); + t.strictEqual( v, NINF, 'returns expected value' ); + t.end(); +}); + +tape( 'if provided `+0`, the function returns positive infinity', opts, function test( t ) { + var v = gammaf( 0.0 ); + t.strictEqual( v, PINF, 'returns expected value' ); + t.end(); +}); + +tape( 'if `x > 35.0400...`, the function returns positive infinity', opts, function test( t ) { + var values = incrspace( 35.05, 100.0, 10.1234 ); + var v; + var i; + + for ( i = 0; i < values.length; i++ ) { + v = gammaf( values[ i ] ); + t.strictEqual( v, PINF, 'returns expected value when provided ' + values[ i ] ); + } + t.end(); +}); + +tape( 'if `x < -40.0019...`, the function returns zero', opts, function test( t ) { + var values = incrspace( -40.002, -100.0, -10.1234 ); + var v; + var i; + + for ( i = 0; i < values.length; i++ ) { + v = gammaf( values[ i ] ); + t.strictEqual( v, 0.0, 'returns expected value when provided ' + values[ i ] ); + } + t.end(); +}); + +tape( 'the function evaluates the gamma function (positive integers)', opts, function test( t ) { + var delta; + var tol; + var v; + var i; + + for ( i = 0; i < data1.length; i++ ) { + v = gammaf( data1[ i ] ); + delta = absf( v - expected1[ i ] ); + tol = 2.75e-5 * max( 1.0, absf( v ), absf( expected1[ i ] ) ); + t.ok( delta <= tol, 'within tolerance. x: ' + data1[ i ] + '. Value: ' + v + '. Expected: ' + expected1[ i ] + '. Tolerance: ' + tol + '.' ); + } + t.end(); +}); + +tape( 'the function evaluates the gamma function (decimal values)', opts, function test( t ) { + var delta; + var tol; + var v; + var i; + + for ( i = 0; i < data2.length; i++ ) { + v = gammaf( data2[ i ] ); + delta = absf( v - expected2[ i ] ); + tol = 2.75e-5 * max( 1.0, absf( v ), absf( expected2[ i ] ) ); + t.ok( delta <= tol, 'within tolerance. x: ' + data2[ i ] + '. Value: ' + v + '. Expected: ' + expected2[ i ] + '. Tolerance: ' + tol + '.' ); + } + t.end(); +}); + +tape( 'if provided a positive integer, the function returns the factorial of (n-1)', opts, function test( t ) { + t.strictEqual( gammaf( 4.0 ), 6.0, 'returns 6' ); + t.strictEqual( gammaf( 5.0 ), 24.0, 'returns 24' ); + t.strictEqual( gammaf( 6.0 ), 120.0, 'returns expected value' ); + t.end(); +}); + +tape( 'the function uses a small value approximation for tiny positive x', opts, function test( t ) { + var expected; + var delta; + var tol; + var x; + var v; + + x = 0.000009999999747378752; // f32(1e-5) — triggers x < 1e-4 check + v = gammaf( x ); + + expected = 9.9999422e+4; + delta = absf( v - expected ); + tol = 1.0; + + t.ok( delta < tol, 'within tolerance. x: ' + x + '. Value: ' + v + + '. Expected: ' + expected + '. Tolerance: ' + tol + '.' ); + t.end(); +}); From 825545e11cc298de97be87dafc1aaa8558610a8c Mon Sep 17 00:00:00 2001 From: stdlib-bot <82920195+stdlib-bot@users.noreply.github.com> Date: Sun, 8 Mar 2026 07:02:49 +0000 Subject: [PATCH 2/8] chore: update copyright years --- .../math/base/special/gammaf/benchmark/c/native/Makefile | 2 +- .../math/base/special/gammaf/lib/stirling_approximation.js | 2 +- lib/node_modules/@stdlib/math/base/special/gammaf/test/test.js | 2 +- .../@stdlib/math/base/special/gammaf/test/test.native.js | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/benchmark/c/native/Makefile b/lib/node_modules/@stdlib/math/base/special/gammaf/benchmark/c/native/Makefile index acfeb24e4c50..e790d7bffa7f 100644 --- a/lib/node_modules/@stdlib/math/base/special/gammaf/benchmark/c/native/Makefile +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/benchmark/c/native/Makefile @@ -1,7 +1,7 @@ #/ # @license Apache-2.0 # -# Copyright (c) 2024 The Stdlib Authors. +# Copyright (c) 2026 The Stdlib Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/lib/stirling_approximation.js b/lib/node_modules/@stdlib/math/base/special/gammaf/lib/stirling_approximation.js index 38d9dd4d0250..0636df9d3a22 100644 --- a/lib/node_modules/@stdlib/math/base/special/gammaf/lib/stirling_approximation.js +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/lib/stirling_approximation.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2018 The Stdlib Authors. +* Copyright (c) 2026 The Stdlib Authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.js b/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.js index fb5615e488e6..0cdb6359fadf 100644 --- a/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.js +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2018 The Stdlib Authors. +* Copyright (c) 2026 The Stdlib Authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.native.js index 1173601b74a1..1aa109a12a7f 100644 --- a/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.native.js +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.native.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2018 The Stdlib Authors. +* Copyright (c) 2026 The Stdlib Authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. From 863ee58009afebb7f2e4173633c4b0c2d942d0e1 Mon Sep 17 00:00:00 2001 From: nirmaljb Date: Mon, 9 Mar 2026 22:34:41 +0530 Subject: [PATCH 3/8] style: fixed some mild space inconsistencies --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../@stdlib/math/base/special/gammaf/lib/main.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/lib/main.js b/lib/node_modules/@stdlib/math/base/special/gammaf/lib/main.js index d74d7222a1e1..8f51232945e3 100644 --- a/lib/node_modules/@stdlib/math/base/special/gammaf/lib/main.js +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/lib/main.js @@ -101,7 +101,7 @@ function gammaf( x ) { x = f32( x ); - if ( ( isIntegerf( x ) && x < 0 )|| isnanf( x ) || x === NINF ) { + if ( ( isIntegerf( x ) && x < 0 ) || isnanf( x ) || x === NINF ) { return NaN; } @@ -147,7 +147,7 @@ function gammaf( x ) { x = f32( q ); } if ( x >= TEN ) { - z = stirlingApprox(x); + z = stirlingApprox( x ); } if ( x < TWO ) { direction = 1; @@ -176,7 +176,7 @@ function gammaf( x ) { p = smallApprox( x, z ); } else { if ( direction ) { - z = f32( ONE/z ); + z = f32( ONE / z ); } if ( x === TWO ) { p = z; From 653bad9ed2dcb9c6e274d4d03a93a581e1def30c Mon Sep 17 00:00:00 2001 From: nirmaljb Date: Sat, 21 Mar 2026 19:35:48 +0530 Subject: [PATCH 4/8] perf: commented out the unnecessary compute --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../@stdlib/math/base/special/gammaf/lib/main.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/lib/main.js b/lib/node_modules/@stdlib/math/base/special/gammaf/lib/main.js index 8f51232945e3..cd863bd34346 100644 --- a/lib/node_modules/@stdlib/math/base/special/gammaf/lib/main.js +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/lib/main.js @@ -43,10 +43,11 @@ var PINF = require( '@stdlib/constants/float32/pinf' ); var NINF = require( '@stdlib/constants/float32/ninf' ); var f32 = require( '@stdlib/number/float64/base/to-float32' ); var PI = require( '@stdlib/constants/float32/pi' ); -var stirlingApprox = require( './stirling_approximation.js' ); var smallApprox = require( './small_approximation.js' ); var polyeval = require( './polyval_p.js' ); +// var stirlingApprox = require( './stirling_approximation.js' ); + // VARIABLES // @@ -55,11 +56,11 @@ var HALF = f32( 0.5 ); var ONE = f32( 1.0 ); var TWO = f32( 2.0 ); var THREE = f32( 3.0 ); -var TEN = f32( 10 ); var MAX_ARG = f32( 35.040096282958984 ); var MIN_ARG = f32( -40.00199890136719 ); var SMALL_X = f32( 1.0e-4 ); +// var TEN = f32( 10 ); // MAIN // @@ -146,9 +147,9 @@ function gammaf( x ) { } x = f32( q ); } - if ( x >= TEN ) { - z = stirlingApprox( x ); - } + // if ( x >= TEN ) { + // z = stirlingApprox( x ); + // } if ( x < TWO ) { direction = 1; } else { From cd9c7b64d56c5dbad855194062a90dd8800a30e7 Mon Sep 17 00:00:00 2001 From: nirmaljb Date: Tue, 24 Mar 2026 01:24:13 +0530 Subject: [PATCH 5/8] fix: corrected the input range --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: passed - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: passed - task: lint_c_src status: passed - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../@stdlib/math/base/special/gammaf/lib/main.js | 4 ++-- .../@stdlib/math/base/special/gammaf/src/main.c | 4 ++-- .../base/special/gammaf/test/fixtures/r/data1.json | 2 +- .../base/special/gammaf/test/fixtures/r/data2.json | 2 +- .../base/special/gammaf/test/fixtures/r/expected1.json | 2 +- .../base/special/gammaf/test/fixtures/r/expected2.json | 2 +- .../math/base/special/gammaf/test/fixtures/r/runner.R | 10 ++++++++-- .../@stdlib/math/base/special/gammaf/test/test.js | 8 ++++---- .../math/base/special/gammaf/test/test.native.js | 8 ++++---- 9 files changed, 24 insertions(+), 18 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/lib/main.js b/lib/node_modules/@stdlib/math/base/special/gammaf/lib/main.js index cd863bd34346..73d05c618a9e 100644 --- a/lib/node_modules/@stdlib/math/base/special/gammaf/lib/main.js +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/lib/main.js @@ -56,8 +56,8 @@ var HALF = f32( 0.5 ); var ONE = f32( 1.0 ); var TWO = f32( 2.0 ); var THREE = f32( 3.0 ); -var MAX_ARG = f32( 35.040096282958984 ); -var MIN_ARG = f32( -40.00199890136719 ); +var MAX_ARG = f32( 34.84425627277176174 ); +var MIN_ARG = f32( -34.1955451965332 ); var SMALL_X = f32( 1.0e-4 ); // var TEN = f32( 10 ); diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/src/main.c b/lib/node_modules/@stdlib/math/base/special/gammaf/src/main.c index d6a93580a345..754201f2f0f9 100644 --- a/lib/node_modules/@stdlib/math/base/special/gammaf/src/main.c +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/src/main.c @@ -180,11 +180,11 @@ float stdlib_base_gammaf( const float x ) { return STDLIB_CONSTANT_FLOAT32_PINF; } - if ( x > 35.040096282958984f ) { + if ( x > 34.84425627277176174f ) { return STDLIB_CONSTANT_FLOAT32_PINF; } - if ( x < -40.00199890136719f ) { + if ( x < -34.1955451965332f ) { return 0.0f; } diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/data1.json b/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/data1.json index e6d2a724d885..2f88d2dfbe93 100644 --- a/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/data1.json +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/data1.json @@ -1 +1 @@ -[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35] +[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34] diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/data2.json b/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/data2.json index 05f4be593bc4..1b487eb335c0 100644 --- a/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/data2.json +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/data2.json @@ -1 +1 @@ -[-40.000100000000003,-39.925024824824831,-39.849949649649652,-39.77487447447448,-39.699799299299301,-39.624724124124128,-39.549648948948949,-39.474573773773777,-39.399498598598605,-39.324423423423426,-39.249348248248253,-39.174273073073074,-39.099197897897902,-39.024122722722723,-38.949047547547551,-38.873972372372378,-38.798897197197199,-38.723822022022027,-38.648746846846848,-38.573671671671676,-38.498596496496504,-38.423521321321324,-38.348446146146152,-38.273370970970973,-38.198295795795801,-38.123220620620621,-38.048145445445449,-37.97307027027027,-37.897995095095098,-37.822919919919926,-37.747844744744746,-37.672769569569574,-37.597694394394395,-37.522619219219223,-37.447544044044051,-37.372468868868872,-37.297393693693699,-37.22231851851852,-37.147243343343348,-37.072168168168169,-36.997092992992997,-36.922017817817824,-36.846942642642645,-36.771867467467473,-36.696792292292294,-36.621717117117122,-36.546641941941942,-36.47156676676677,-36.396491591591598,-36.321416416416419,-36.246341241241247,-36.171266066066067,-36.096190890890895,-36.021115715715716,-35.946040540540544,-35.870965365365372,-35.795890190190192,-35.72081501501502,-35.645739839839841,-35.570664664664669,-35.49558948948949,-35.420514314314318,-35.345439139139145,-35.270363963963966,-35.195288788788794,-35.120213613613615,-35.045138438438443,-34.97006326326327,-34.894988088088091,-34.819912912912919,-34.74483773773774,-34.669762562562568,-34.594687387387388,-34.519612212212216,-34.444537037037037,-34.369461861861865,-34.294386686686693,-34.219311511511513,-34.144236336336341,-34.069161161161162,-33.99408598598599,-33.919010810810818,-33.843935635635638,-33.768860460460466,-33.693785285285287,-33.618710110110115,-33.543634934934936,-33.468559759759763,-33.393484584584584,-33.318409409409412,-33.24333423423424,-33.168259059059061,-33.093183883883889,-33.018108708708709,-32.943033533533537,-32.867958358358365,-32.792883183183186,-32.717808008008014,-32.642732832832834,-32.567657657657662,-32.492582482482483,-32.417507307307311,-32.342432132132139,-32.267356956956959,-32.192281781781787,-32.117206606606608,-32.042131431431436,-31.96705625625626,-31.891981081081084,-31.816905905905909,-31.741830730730733,-31.666755555555561,-31.591680380380382,-31.516605205205209,-31.441530030030034,-31.366454854854858,-31.291379679679682,-31.216304504504507,-31.141229329329335,-31.066154154154155,-30.991078978978983,-30.916003803803807,-30.840928628628632,-30.76585345345346,-30.69077827827828,-30.615703103103108,-30.540627927927929,-30.465552752752757,-30.390477577577581,-30.315402402402405,-30.240327227227233,-30.165252052052054,-30.090176876876882,-30.015101701701703,-29.94002652652653,-29.864951351351355,-29.789876176176179,-29.714801001001007,-29.639725825825828,-29.564650650650655,-29.48957547547548,-29.414500300300304,-29.339425125125128,-29.264349949949953,-29.18927477477478,-29.114199599599601,-29.039124424424429,-28.964049249249253,-28.888974074074078,-28.813898898898902,-28.738823723723726,-28.663748548548554,-28.588673373373375,-28.513598198198203,-28.438523023023027,-28.363447847847851,-28.288372672672676,-28.2132974974975,-28.138222322322328,-28.063147147147149,-27.988071971971976,-27.912996796796801,-27.837921621621625,-27.762846446446449,-27.687771271271274,-27.612696096096101,-27.537620920920922,-27.46254574574575,-27.387470570570574,-27.312395395395399,-27.237320220220223,-27.162245045045047,-27.087169869869875,-27.012094694694696,-26.937019519519524,-26.861944344344348,-26.786869169169172,-26.711793993994,-26.636718818818821,-26.561643643643649,-26.486568468468469,-26.411493293293297,-26.336418118118122,-26.261342942942946,-26.186267767767774,-26.111192592592595,-26.036117417417422,-25.961042242242247,-25.885967067067071,-25.810891891891895,-25.73581671671672,-25.660741541541547,-25.585666366366368,-25.510591191191196,-25.43551601601602,-25.360440840840845,-25.285365665665669,-25.210290490490493,-25.135215315315321,-25.060140140140142,-24.98506496496497,-24.909989789789794,-24.834914614614618,-24.759839439439443,-24.684764264264267,-24.609689089089095,-24.534613913913915,-24.459538738738743,-24.384463563563568,-24.309388388388392,-24.234313213213216,-24.15923803803804,-24.084162862862868,-24.009087687687689,-23.934012512512517,-23.858937337337341,-23.783862162162166,-23.70878698698699,-23.633711811811814,-23.558636636636642,-23.483561461461466,-23.408486286286291,-23.333411111111115,-23.258335935935939,-23.183260760760763,-23.108185585585588,-23.033110410410416,-22.95803523523524,-22.882960060060064,-22.807884884884889,-22.732809709709713,-22.657734534534537,-22.582659359359361,-22.507584184184189,-22.432509009009014,-22.357433833833838,-22.282358658658662,-22.207283483483486,-22.132208308308311,-22.057133133133135,-21.982057957957963,-21.906982782782787,-21.831907607607612,-21.756832432432436,-21.68175725725726,-21.606682082082084,-21.531606906906912,-21.456531731731737,-21.381456556556561,-21.306381381381385,-21.231306206206209,-21.156231031031034,-21.081155855855858,-21.006080680680686,-20.93100550550551,-20.855930330330334,-20.780855155155159,-20.705779979979983,-20.630704804804807,-20.555629629629632,-20.48055445445446,-20.405479279279284,-20.330404104104108,-20.255328928928932,-20.180253753753757,-20.105178578578581,-20.030103403403405,-19.955028228228233,-19.879953053053057,-19.804877877877882,-19.729802702702706,-19.65472752752753,-19.579652352352355,-19.504577177177183,-19.429502002002007,-19.354426826826831,-19.279351651651655,-19.20427647647648,-19.129201301301304,-19.054126126126128,-18.979050950950956,-18.90397577577578,-18.828900600600605,-18.753825425425429,-18.678750250250253,-18.603675075075078,-18.528599899899902,-18.45352472472473,-18.378449549549554,-18.303374374374378,-18.228299199199203,-18.153224024024027,-18.078148848848851,-18.003073673673676,-17.927998498498503,-17.852923323323328,-17.777848148148152,-17.702772972972976,-17.627697797797801,-17.552622622622625,-17.477547447447453,-17.402472272272277,-17.327397097097101,-17.252321921921926,-17.17724674674675,-17.102171571571574,-17.027096396396399,-16.952021221221226,-16.876946046046051,-16.801870870870875,-16.726795695695699,-16.651720520520524,-16.576645345345348,-16.501570170170172,-16.426494994995,-16.351419819819824,-16.276344644644649,-16.201269469469473,-16.126194294294297,-16.051119119119122,-15.976043943943949,-15.900968768768774,-15.825893593593598,-15.750818418418422,-15.675743243243247,-15.600668068068071,-15.525592892892895,-15.450517717717723,-15.375442542542547,-15.300367367367372,-15.225292192192196,-15.15021701701702,-15.075141841841845,-15.000066666666669,-14.924991491491497,-14.849916316316321,-14.774841141141145,-14.69976596596597,-14.624690790790794,-14.549615615615618,-14.474540440440443,-14.39946526526527,-14.324390090090095,-14.249314914914919,-14.174239739739743,-14.099164564564568,-14.024089389389392,-13.94901421421422,-13.873939039039044,-13.798863863863868,-13.723788688688693,-13.648713513513517,-13.573638338338341,-13.498563163163166,-13.423487987987993,-13.348412812812818,-13.273337637637642,-13.198262462462466,-13.123187287287291,-13.048112112112115,-12.973036936936939,-12.897961761761767,-12.822886586586591,-12.747811411411416,-12.67273623623624,-12.597661061061064,-12.522585885885889,-12.447510710710713,-12.372435535535541,-12.297360360360365,-12.222285185185189,-12.147210010010014,-12.072134834834838,-11.997059659659662,-11.92198448448449,-11.846909309309314,-11.771834134134139,-11.696758958958963,-11.621683783783787,-11.546608608608611,-11.471533433433436,-11.396458258258264,-11.321383083083088,-11.246307907907912,-11.171232732732737,-11.096157557557561,-11.021082382382385,-10.946007207207209,-10.870932032032037,-10.795856856856862,-10.720781681681686,-10.64570650650651,-10.570631331331334,-10.495556156156159,-10.420480980980983,-10.345405805805811,-10.270330630630635,-10.19525545545546,-10.120180280280284,-10.045105105105108,-9.9700299299299324,-9.8949547547547603,-9.8198795795795846,-9.7448044044044089,-9.6697292292292332,-9.5946540540540575,-9.5195788788788818,-9.4445037037037061,-9.3694285285285339,-9.2943533533533582,-9.2192781781781825,-9.1442030030030068,-9.0691278278278311,-8.9940526526526554,-8.9189774774774797,-8.8439023023023076,-8.7688271271271319,-8.6937519519519562,-8.6186767767767805,-8.5436016016016048,-8.4685264264264291,-8.3934512512512534,-8.3183760760760812,-8.2433009009009055,-8.1682257257257298,-8.0931505505505541,-8.0180753753753784,-7.9430002002002027,-7.8679250250250305,-7.7928498498498513,-7.7177746746746791,-7.6426994994994999,-7.5676243243243277,-7.4925491491491556,-7.4174739739739763,-7.3423987987988042,-7.2673236236236249,-7.1922484484484528,-7.1171732732732806,-7.0420980980981014,-6.9670229229229292,-6.89194774774775,-6.8168725725725778,-6.7417973973973986,-6.6667222222222264,-6.5916470470470543,-6.516571871871875,-6.4414966966967029,-6.3664215215215236,-6.2913463463463515,-6.2162711711711722,-6.1411959959960001,-6.0661208208208279,-5.9910456456456487,-5.9159704704704765,-5.8408952952952973,-5.7658201201201251,-5.6907449449449459,-5.6156697697697737,-5.5405945945946016,-5.4655194194194223,-5.3904442442442502,-5.3153690690690709,-5.2402938938938988,-5.1652187187187195,-5.0901435435435474,-5.0150683683683752,-4.939993193193196,-4.8649180180180238,-4.7898428428428446,-4.7147676676676724,-4.6396924924924932,-4.564617317317321,-4.4895421421421489,-4.4144669669669696,-4.3393917917917975,-4.2643166166166182,-4.1892414414414461,-4.1141662662662668,-4.0390910910910947,-3.9640159159159225,-3.8889407407407433,-3.8138655655655711,-3.7387903903903918,-3.6637152152152197,-3.5886400400400404,-3.5135648648648683,-3.4384896896896961,-3.3634145145145169,-3.2883393393393447,-3.2132641641641655,-3.1381889889889933,-3.0631138138138212,-2.9880386386386419,-2.9129634634634698,-2.8378882882882905,-2.7628131131131184,-2.6877379379379391,-2.612662762762767,-2.5375875875875948,-2.4625124124124156,-2.3874372372372434,-2.3123620620620642,-2.237286886886892,-2.1622117117117128,-2.0871365365365406,-2.0120613613613685,-1.9369861861861892,-1.8619110110110171,-1.7868358358358378,-1.7117606606606657,-1.6366854854854864,-1.5616103103103143,-1.4865351351351421,-1.4114599599599629,-1.3363847847847907,-1.2613096096096115,-1.1862344344344393,-1.1111592592592601,-1.0360840840840879,-0.96100890890891577,-0.88593373373373652,-0.81085855855856437,-0.73578338338338511,-0.66070820820821297,-0.58563303303303371,-0.51055785785786156,-0.43548268268268941,-0.36040750750751016,-0.28533233233233801,-0.21025715715715876,-0.13518198198198661,-0.060106806806807356,0.014968368368364793,0.090043543543536941,0.1651187187187162,0.24019389389388834,0.3152690690690676,0.39034424424423975,0.46541941941941189,0.54049459459459115,0.6155697697697633,0.69064494494494255,0.7657201201201147,0.84079529529529395,0.9158704704704661,0.99094564564563825,1.0660208208208175,1.1410959959959897,1.2161711711711689,1.2912463463463411,1.3663215215215203,1.4413966966966925,1.5164718718718646,1.5915470470470439,1.666622222222216,1.7416973973973953,1.8167725725725674,1.8918477477477467,1.9669229229229188,2.041998098098091,2.1170732732732702,2.1921484484484424,2.2672236236236216,2.3422987987987938,2.417373973973973,2.4924491491491452,2.5675243243243173,2.6425994994994966,2.7176746746746687,2.792749849849848,2.8678250250250201,2.9429002002001994,3.0179753753753715,3.0930505505505437,3.1681257257257229,3.2432009009008951,3.3182760760760743,3.3933512512512465,3.4684264264264257,3.5435016016015979,3.61857677677677,3.6936519519519493,3.7687271271271214,3.8438023023023007,3.9188774774774728,3.9939526526526521,4.0690278278278242,4.1441030030029964,4.2191781781781756,4.2942533533533478,4.369328528528527,4.4444037037036992,4.5194788788788713,4.5945540540540506,4.6696292292292227,4.744704404404402,4.8197795795795741,4.8948547547547534,4.9699299299299255,5.0450051051050977,5.120080280280277,5.1951554554554491,5.2702306306306284,5.3453058058058005,5.4203809809809798,5.4954561561561519,5.5705313313313241,5.6456065065065033,5.7206816816816755,5.7957568568568547,5.8708320320320269,5.9459072072072061,6.0209823823823783,6.0960575575575504,6.1711327327327297,6.2462079079079018,6.3212830830830811,6.3963582582582532,6.4714334334334325,6.5465086086086046,6.6215837837837768,6.696658958958956,6.7717341341341282,6.8468093093093074,6.9218844844844796,6.9969596596596588,7.072034834834831,7.1471100100100031,7.2221851851851824,7.2972603603603545,7.3723355355355338,7.4474107107107059,7.5224858858858852,7.5975610610610573,7.6726362362362295,7.7477114114114087,7.8227865865865809,7.8978617617617601,7.9729369369369323,8.0480121121121044,8.1230872872872837,8.1981624624624558,8.2732376376376351,8.3483128128128072,8.4233879879879865,8.4984631631631586,8.5735383383383308,8.64861351351351,8.7236886886886822,8.7987638638638614,8.8738390390390336,8.9489142142142128,9.023989389389385,9.0990645645645571,9.1741397397397364,9.2492149149149085,9.3242900900900878,9.3993652652652599,9.4744404404404392,9.5495156156156114,9.6245907907907835,9.6996659659659628,9.7747411411411349,9.8498163163163142,9.9248914914914863,9.9999666666666656,10.075041841841838,10.15011701701701,10.225192192192189,10.300267367367361,10.375342542542541,10.450417717717713,10.525492892892892,10.600568068068064,10.675643243243236,10.750718418418415,10.825793593593588,10.900868768768767,10.975943943943939,11.051019119119118,11.12609429429429,11.201169469469463,11.276244644644642,11.351319819819814,11.426394994994993,11.501470170170165,11.576545345345345,11.651620520520517,11.726695695695689,11.801770870870868,11.87684604604604,11.95192122122122,12.026996396396392,12.102071571571564,12.177146746746743,12.252221921921915,12.327297097097095,12.402372272272267,12.477447447447446,12.552522622622618,12.62759779779779,12.702672972972969,12.777748148148142,12.852823323323321,12.927898498498493,13.002973673673672,13.078048848848844,13.153124024024017,13.228199199199196,13.303274374374368,13.378349549549547,13.453424724724719,13.528499899899899,13.603575075075071,13.678650250250243,13.753725425425422,13.828800600600594,13.903875775775774,13.978950950950946,14.054026126126125,14.129101301301297,14.204176476476469,14.279251651651649,14.354326826826821,14.429402002002,14.504477177177172,14.579552352352351,14.654627527527524,14.729702702702696,14.804777877877875,14.879853053053047,14.954928228228226,15.030003403403398,15.105078578578578,15.18015375375375,15.255228928928922,15.330304104104101,15.405379279279273,15.480454454454453,15.555529629629625,15.630604804804804,15.705679979979976,15.780755155155148,15.855830330330328,15.9309055055055,16.005980680680679,16.081055855855851,16.156131031031023,16.231206206206203,16.306281381381375,16.381356556556554,16.456431731731726,16.531506906906905,16.606582082082078,16.68165725725725,16.756732432432429,16.831807607607601,16.90688278278278,16.981957957957952,17.057033133133132,17.132108308308304,17.207183483483476,17.282258658658655,17.357333833833827,17.432409009009007,17.507484184184179,17.582559359359358,17.65763453453453,17.732709709709702,17.807784884884882,17.882860060060054,17.957935235235233,18.033010410410405,18.108085585585584,18.183160760760757,18.258235935935929,18.333311111111108,18.40838628628628,18.483461461461459,18.558536636636632,18.633611811811811,18.708686986986983,18.783762162162155,18.858837337337334,18.933912512512507,19.008987687687686,19.084062862862858,19.159138038038037,19.234213213213209,19.309288388388381,19.384363563563561,19.459438738738733,19.534513913913912,19.609589089089084,19.684664264264256,19.759739439439436,19.834814614614608,19.909889789789787,19.984964964964959,20.060040140140138,20.135115315315311,20.210190490490483,20.285265665665662,20.360340840840834,20.435416016016013,20.510491191191186,20.585566366366365,20.660641541541537,20.735716716716709,20.810791891891888,20.885867067067061,20.96094224224224,21.036017417417412,21.111092592592591,21.186167767767763,21.261242942942935,21.336318118118115,21.411393293293287,21.486468468468466,21.561543643643638,21.636618818818818,21.71169399399399,21.786769169169162,21.861844344344341,21.936919519519513,22.011994694694692,22.087069869869865,22.162145045045044,22.237220220220216,22.312295395395388,22.387370570570567,22.46244574574574,22.537520920920919,22.612596096096091,22.68767127127127,22.762746446446442,22.837821621621615,22.912896796796794,22.987971971971966,23.063047147147145,23.138122322322317,23.213197497497497,23.288272672672669,23.363347847847841,23.43842302302302,23.513498198198192,23.588573373373372,23.663648548548544,23.738723723723716,23.813798898898895,23.888874074074067,23.963949249249247,24.039024424424426,24.114099599599598,24.18917477477477,24.264249949949942,24.339325125125114,24.414400300300301,24.489475475475473,24.564550650650645,24.639625825825817,24.714701001001004,24.789776176176176,24.864851351351348,24.93992652652652,25.015001701701692,25.090076876876878,25.165152052052051,25.240227227227223,25.315302402402395,25.390377577577567,25.465452752752753,25.540527927927926,25.615603103103098,25.69067827827827,25.765753453453442,25.840828628628628,25.915903803803801,25.990978978978973,26.066054154154145,26.141129329329331,26.216204504504503,26.291279679679675,26.366354854854848,26.44143003003002,26.516505205205206,26.591580380380378,26.66665555555555,26.741730730730723,26.816805905905895,26.891881081081081,26.966956256256253,27.042031431431425,27.117106606606598,27.192181781781784,27.267256956956956,27.342332132132128,27.4174073073073,27.492482482482473,27.567557657657659,27.642632832832831,27.717708008008003,27.792783183183175,27.867858358358347,27.942933533533534,28.018008708708706,28.093083883883878,28.16815905905905,28.243234234234237,28.318309409409409,28.393384584584581,28.468459759759753,28.543534934934925,28.618610110110112,28.693685285285284,28.768760460460456,28.843835635635628,28.9189108108108,28.993985985985987,29.069061161161159,29.144136336336331,29.219211511511503,29.294286686686675,29.369361861861861,29.444437037037034,29.519512212212206,29.594587387387378,29.669662562562564,29.744737737737736,29.819812912912909,29.894888088088081,29.969963263263253,30.045038438438439,30.120113613613611,30.195188788788784,30.270263963963956,30.345339139139128,30.420414314314314,30.495489489489486,30.570564664664658,30.645639839839831,30.720715015015017,30.795790190190189,30.870865365365361,30.945940540540533,31.021015715715706,31.096090890890892,31.171166066066064,31.246241241241236,31.321316416416408,31.396391591591581,31.471466766766767,31.546541941941939,31.621617117117111,31.696692292292283,31.77176746746747,31.846842642642642,31.921917817817814,31.996992992992986,32.072068168168158,32.147143343343345,32.222218518518517,32.297293693693689,32.372368868868861,32.447444044044033,32.52251921921922,32.597594394394392,32.672669569569564,32.747744744744736,32.822819919919922,32.897895095095095,32.972970270270267,33.048045445445439,33.123120620620611,33.198195795795797,33.27327097097097,33.348346146146142,33.423421321321314,33.498496496496486,33.573571671671672,33.648646846846844,33.723722022022017,33.798797197197189,33.873872372372361,33.948947547547547,34.024022722722719,34.099097897897892,34.174173073073064,34.24924824824825,34.324323423423422,34.399398598598594,34.474473773773767,34.549548948948939,34.624624124124125,34.699699299299297,34.774774474474469,34.849849649649641,34.924924824824814,35] +[-34.0989990234375,-34.030033111572266,-33.961063385009766,-33.892097473144531,-33.823127746582031,-33.754161834716797,-33.685192108154297,-33.616222381591797,-33.547256469726562,-33.478286743164062,-33.409320831298828,-33.340351104736328,-33.271385192871094,-33.202415466308594,-33.133449554443359,-33.064479827880859,-32.995513916015625,-32.926544189453125,-32.857578277587891,-32.788608551025391,-32.719638824462891,-32.650672912597656,-32.581703186035156,-32.512737274169922,-32.443767547607422,-32.374801635742188,-32.305831909179688,-32.236865997314453,-32.167896270751953,-32.098930358886719,-32.029960632324219,-31.960992813110352,-31.892024993896484,-31.823057174682617,-31.75408935546875,-31.685121536254883,-31.616153717041016,-31.547185897827148,-31.478218078613281,-31.409248352050781,-31.340280532836914,-31.271312713623047,-31.20234489440918,-31.133377075195312,-31.064409255981445,-30.995441436767578,-30.926473617553711,-30.857505798339844,-30.788537979125977,-30.719570159912109,-30.650602340698242,-30.581634521484375,-30.512664794921875,-30.443696975708008,-30.374729156494141,-30.305761337280273,-30.236793518066406,-30.167825698852539,-30.098857879638672,-30.029890060424805,-29.960922241210938,-29.89195442199707,-29.822986602783203,-29.754018783569336,-29.685050964355469,-29.616081237792969,-29.547113418579102,-29.478145599365234,-29.409177780151367,-29.3402099609375,-29.271242141723633,-29.202274322509766,-29.133306503295898,-29.064338684082031,-28.995370864868164,-28.926403045654297,-28.85743522644043,-28.788467407226562,-28.719497680664062,-28.650529861450195,-28.581562042236328,-28.512594223022461,-28.443626403808594,-28.374658584594727,-28.305690765380859,-28.236722946166992,-28.167755126953125,-28.098787307739258,-28.029819488525391,-27.960851669311523,-27.891881942749023,-27.822914123535156,-27.753946304321289,-27.684978485107422,-27.616010665893555,-27.547042846679688,-27.47807502746582,-27.409107208251953,-27.340139389038086,-27.271171569824219,-27.202203750610352,-27.133235931396484,-27.064268112182617,-26.995298385620117,-26.92633056640625,-26.857362747192383,-26.788394927978516,-26.719427108764648,-26.650459289550781,-26.581491470336914,-26.512523651123047,-26.44355583190918,-26.374588012695312,-26.305620193481445,-26.236652374267578,-26.167684555053711,-26.098714828491211,-26.029747009277344,-25.960779190063477,-25.891811370849609,-25.822843551635742,-25.753875732421875,-25.684907913208008,-25.615940093994141,-25.546972274780273,-25.478004455566406,-25.409036636352539,-25.340068817138672,-25.271100997924805,-25.202131271362305,-25.133163452148438,-25.06419563293457,-24.995227813720703,-24.926259994506836,-24.857292175292969,-24.788324356079102,-24.719356536865234,-24.650388717651367,-24.5814208984375,-24.512453079223633,-24.443485260009766,-24.374517440795898,-24.305547714233398,-24.236579895019531,-24.167612075805664,-24.098644256591797,-24.02967643737793,-23.960708618164062,-23.891740798950195,-23.822772979736328,-23.753805160522461,-23.684837341308594,-23.615869522094727,-23.546901702880859,-23.477933883666992,-23.408964157104492,-23.339996337890625,-23.271028518676758,-23.202060699462891,-23.133092880249023,-23.064125061035156,-22.995157241821289,-22.926189422607422,-22.857221603393555,-22.788253784179688,-22.71928596496582,-22.650318145751953,-22.581348419189453,-22.512380599975586,-22.443412780761719,-22.374444961547852,-22.305477142333984,-22.236509323120117,-22.16754150390625,-22.098573684692383,-22.029605865478516,-21.960638046264648,-21.891670227050781,-21.822702407836914,-21.753734588623047,-21.684764862060547,-21.61579704284668,-21.546829223632812,-21.477861404418945,-21.408893585205078,-21.339925765991211,-21.270957946777344,-21.201990127563477,-21.133022308349609,-21.064054489135742,-20.995086669921875,-20.926118850708008,-20.857151031494141,-20.788181304931641,-20.719213485717773,-20.650245666503906,-20.581277847290039,-20.512310028076172,-20.443342208862305,-20.374374389648438,-20.30540657043457,-20.236438751220703,-20.167470932006836,-20.098503112792969,-20.029535293579102,-19.960567474365234,-19.891597747802734,-19.822629928588867,-19.753662109375,-19.684694290161133,-19.615726470947266,-19.546758651733398,-19.477790832519531,-19.408823013305664,-19.339855194091797,-19.27088737487793,-19.201919555664062,-19.132951736450195,-19.063983917236328,-18.995014190673828,-18.926046371459961,-18.857078552246094,-18.788110733032227,-18.719142913818359,-18.650175094604492,-18.581207275390625,-18.512239456176758,-18.443271636962891,-18.374303817749023,-18.305335998535156,-18.236368179321289,-18.167398452758789,-18.098430633544922,-18.029462814331055,-17.960494995117188,-17.89152717590332,-17.822559356689453,-17.753591537475586,-17.684623718261719,-17.615655899047852,-17.546688079833984,-17.477720260620117,-17.40875244140625,-17.339784622192383,-17.270814895629883,-17.201847076416016,-17.132879257202148,-17.063911437988281,-16.994943618774414,-16.925975799560547,-16.85700798034668,-16.788040161132812,-16.719072341918945,-16.650104522705078,-16.581136703491211,-16.512168884277344,-16.443201065063477,-16.374231338500977,-16.305263519287109,-16.236295700073242,-16.167327880859375,-16.098360061645508,-16.029392242431641,-15.960424423217773,-15.891456604003906,-15.822488784790039,-15.753520965576172,-15.684552192687988,-15.615584373474121,-15.546616554260254,-15.477648735046387,-15.40868091583252,-15.339713096618652,-15.270744323730469,-15.201776504516602,-15.132808685302734,-15.063840866088867,-14.994873046875,-14.925905227661133,-14.856937408447266,-14.787968635559082,-14.719000816345215,-14.650032997131348,-14.58106517791748,-14.512097358703613,-14.443129539489746,-14.374160766601562,-14.305192947387695,-14.236225128173828,-14.167257308959961,-14.098289489746094,-14.029321670532227,-13.960352897644043,-13.891385078430176,-13.822417259216309,-13.753449440002441,-13.684481620788574,-13.615513801574707,-13.54654598236084,-13.477577209472656,-13.408609390258789,-13.339641571044922,-13.270673751831055,-13.201705932617188,-13.13273811340332,-13.063769340515137,-12.99480152130127,-12.925833702087402,-12.856865882873535,-12.787898063659668,-12.718930244445801,-12.649962425231934,-12.58099365234375,-12.512025833129883,-12.443058013916016,-12.374090194702148,-12.305122375488281,-12.236154556274414,-12.16718578338623,-12.098217964172363,-12.029250144958496,-11.960282325744629,-11.891314506530762,-11.822346687316895,-11.753377914428711,-11.684410095214844,-11.615442276000977,-11.546474456787109,-11.477506637573242,-11.408538818359375,-11.339570999145508,-11.270602226257324,-11.201634407043457,-11.13266658782959,-11.063698768615723,-10.994730949401855,-10.925763130187988,-10.856794357299805,-10.787826538085938,-10.71885871887207,-10.649890899658203,-10.580923080444336,-10.511955261230469,-10.442987442016602,-10.374018669128418,-10.305050849914551,-10.236083030700684,-10.167115211486816,-10.098147392272949,-10.029179573059082,-9.9602108001708984,-9.8912429809570312,-9.8222751617431641,-9.7533073425292969,-9.6843395233154297,-9.6153717041015625,-9.5464029312133789,-9.4774351119995117,-9.4084672927856445,-9.3394994735717773,-9.2705316543579102,-9.201563835144043,-9.1325960159301758,-9.0636272430419922,-8.994659423828125,-8.9256916046142578,-8.8567237854003906,-8.7877559661865234,-8.7187881469726562,-8.6498193740844727,-8.5808515548706055,-8.5118837356567383,-8.4429159164428711,-8.3739480972290039,-8.3049802780151367,-8.2360124588012695,-8.1670436859130859,-8.0980758666992188,-8.0291080474853516,-7.9601402282714844,-7.8911724090576172,-7.8222041130065918,-7.7532362937927246,-7.6842684745788574,-7.615300178527832,-7.5463323593139648,-7.4773645401000977,-7.4083962440490723,-7.3394284248352051,-7.2704606056213379,-7.2014923095703125,-7.1325244903564453,-7.0635566711425781,-6.9945883750915527,-6.9256205558776855,-6.8566527366638184,-6.7876849174499512,-6.7187166213989258,-6.6497488021850586,-6.5807809829711914,-6.511812686920166,-6.4428448677062988,-6.3738770484924316,-6.3049087524414062,-6.2359409332275391,-6.1669731140136719,-6.0980048179626465,-6.0290369987487793,-5.9600691795349121,-5.8911008834838867,-5.8221330642700195,-5.7531652450561523,-5.6841974258422852,-5.6152291297912598,-5.5462613105773926,-5.4772934913635254,-5.4083251953125,-5.3393573760986328,-5.2703895568847656,-5.2014212608337402,-5.132453441619873,-5.0634856224060059,-4.9945173263549805,-4.9255495071411133,-4.8565816879272461,-4.7876133918762207,-4.7186455726623535,-4.6496777534484863,-4.5807099342346191,-4.5117416381835938,-4.4427738189697266,-4.3738059997558594,-4.304837703704834,-4.2358698844909668,-4.1669020652770996,-4.0979337692260742,-4.028965950012207,-3.9599978923797607,-3.8910300731658936,-3.8220620155334473,-3.7530941963195801,-3.6841261386871338,-3.6151580810546875,-3.5461902618408203,-3.477222204208374,-3.4082541465759277,-3.3392863273620605,-3.2703182697296143,-3.2013504505157471,-3.1323823928833008,-3.0634143352508545,-2.9944465160369873,-2.925478458404541,-2.8565104007720947,-2.7875425815582275,-2.7185745239257812,-2.6496067047119141,-2.5806386470794678,-2.5116705894470215,-2.4427027702331543,-2.373734712600708,-2.3047666549682617,-2.2357988357543945,-2.1668307781219482,-2.0978629589080811,-2.0288949012756348,-1.959926962852478,-1.8909589052200317,-1.821990966796875,-1.7530230283737183,-1.6840550899505615,-1.6150870323181152,-1.5461190938949585,-1.4771511554718018,-1.408183217048645,-1.3392151594161987,-1.270247220993042,-1.2012792825698853,-1.1323113441467285,-1.0633432865142822,-0.99437534809112549,-0.92540740966796875,-0.85643941164016724,-0.7874714732170105,-0.71850347518920898,-0.64953553676605225,-0.58056753873825073,-0.51159960031509399,-0.44263163208961487,-0.37366366386413574,-0.30469569563865662,-0.23572772741317749,-0.16675975918769836,-0.097791790962219238,-0.028823824599385262,0.040144145488739014,0.10911211371421814,0.17808008193969727,0.24704805016517639,0.31601601839065552,0.38498398661613464,0.45395195484161377,0.52291989326477051,0.59188789129257202,0.66085582971572876,0.72982382774353027,0.79879176616668701,0.86775976419448853,0.93672770261764526,1.0056957006454468,1.0746636390686035,1.1436315774917603,1.2125996351242065,1.2815675735473633,1.35053551197052,1.4195034503936768,1.488471508026123,1.5574394464492798,1.6264073848724365,1.6953753232955933,1.7643433809280396,1.8333113193511963,1.902279257774353,1.9712471961975098,2.0402152538299561,2.1091830730438232,2.1781511306762695,2.2471191883087158,2.316087007522583,2.3850550651550293,2.4540231227874756,2.5229909420013428,2.5919589996337891,2.6609268188476562,2.7298948764801025,2.7988629341125488,2.867830753326416,2.9367988109588623,3.0057668685913086,3.0747346878051758,3.1437027454376221,3.2126705646514893,3.2816386222839355,3.3506066799163818,3.419574499130249,3.4885425567626953,3.5575106143951416,3.6264784336090088,3.6954464912414551,3.7644143104553223,3.8333823680877686,3.9023504257202148,3.971318244934082,4.0402860641479492,4.1092543601989746,4.1782221794128418,4.247189998626709,4.3161582946777344,4.3851261138916016,4.4540939331054688,4.5230622291564941,4.5920300483703613,4.6609978675842285,4.7299661636352539,4.7989339828491211,4.8679018020629883,4.9368700981140137,5.0058379173278809,5.074805736541748,5.1437735557556152,5.2127418518066406,5.2817096710205078,5.350677490234375,5.4196457862854004,5.4886136054992676,5.5575814247131348,5.6265497207641602,5.6955175399780273,5.7644853591918945,5.8334536552429199,5.9024214744567871,5.9713892936706543,6.0403575897216797,6.1093254089355469,6.1782932281494141,6.2472610473632812,6.3162293434143066,6.3851971626281738,6.454164981842041,6.5231332778930664,6.5921010971069336,6.6610689163208008,6.7300372123718262,6.7990050315856934,6.8679728507995605,6.9369411468505859,7.0059089660644531,7.0748767852783203,7.1438450813293457,7.2128129005432129,7.2817807197570801,7.3507485389709473,7.4197168350219727,7.4886846542358398,7.557652473449707,7.6266207695007324,7.6955885887145996,7.7645564079284668,7.8335247039794922,7.9024925231933594,7.9714603424072266,8.0404281616210938,8.1093959808349609,8.1783647537231445,8.2473325729370117,8.3163003921508789,8.3852682113647461,8.4542360305786133,8.5232038497924805,8.5921726226806641,8.6611404418945312,8.7301082611083984,8.7990760803222656,8.8680438995361328,8.93701171875,9.0059795379638672,9.0749483108520508,9.143916130065918,9.2128839492797852,9.2818517684936523,9.3508195877075195,9.4197874069213867,9.4887561798095703,9.5577239990234375,9.6266918182373047,9.6956596374511719,9.7646274566650391,9.8335952758789062,9.9025630950927734,9.971531867980957,10.040499687194824,10.109467506408691,10.178435325622559,10.247403144836426,10.316370964050293,10.385339736938477,10.454307556152344,10.523275375366211,10.592243194580078,10.661211013793945,10.730178833007812,10.799147605895996,10.868115425109863,10.93708324432373,11.006051063537598,11.075018882751465,11.143986701965332,11.212954521179199,11.281923294067383,11.35089111328125,11.419858932495117,11.488826751708984,11.557794570922852,11.626762390136719,11.695731163024902,11.76469898223877,11.833666801452637,11.902634620666504,11.971602439880371,12.040570259094238,12.109538078308105,12.178506851196289,12.247474670410156,12.316442489624023,12.385410308837891,12.454378128051758,12.523345947265625,12.592314720153809,12.661282539367676,12.730250358581543,12.79921817779541,12.868185997009277,12.937153816223145,13.006122589111328,13.075090408325195,13.144058227539062,13.21302604675293,13.281993865966797,13.350961685180664,13.419929504394531,13.488898277282715,13.557866096496582,13.626833915710449,13.695801734924316,13.764769554138184,13.833737373352051,13.902706146240234,13.971673965454102,14.040641784667969,14.109609603881836,14.178577423095703,14.24754524230957,14.316513061523438,14.385481834411621,14.454449653625488,14.523417472839355,14.592385292053223,14.66135311126709,14.730320930480957,14.799289703369141,14.868257522583008,14.937225341796875,15.006193161010742,15.075160980224609,15.144128799438477,15.21309757232666,15.282065391540527,15.351033210754395,15.420001029968262,15.488968849182129,15.557936668395996,15.626904487609863,15.695873260498047,15.764841079711914,15.833808898925781,15.902776718139648,15.971744537353516,16.040712356567383,16.10968017578125,16.178647994995117,16.247615814208984,16.316583633422852,16.385553359985352,16.454521179199219,16.523488998413086,16.592456817626953,16.66142463684082,16.730392456054688,16.799360275268555,16.868328094482422,16.937295913696289,17.006263732910156,17.075231552124023,17.144199371337891,17.213169097900391,17.282136917114258,17.351104736328125,17.420072555541992,17.489040374755859,17.558008193969727,17.626976013183594,17.695943832397461,17.764911651611328,17.833879470825195,17.902847290039062,17.97181510925293,18.040782928466797,18.109752655029297,18.178720474243164,18.247688293457031,18.316656112670898,18.385623931884766,18.454591751098633,18.5235595703125,18.592527389526367,18.661495208740234,18.730463027954102,18.799430847167969,18.868398666381836,18.937366485595703,19.006336212158203,19.07530403137207,19.144271850585938,19.213239669799805,19.282207489013672,19.351175308227539,19.420143127441406,19.489110946655273,19.558078765869141,19.627046585083008,19.696014404296875,19.764982223510742,19.833950042724609,19.902919769287109,19.971887588500977,20.040855407714844,20.109823226928711,20.178791046142578,20.247758865356445,20.316726684570312,20.38569450378418,20.454662322998047,20.523630142211914,20.592597961425781,20.661565780639648,20.730533599853516,20.799503326416016,20.868471145629883,20.93743896484375,21.006406784057617,21.075374603271484,21.144342422485352,21.213310241699219,21.282278060913086,21.351245880126953,21.42021369934082,21.489181518554688,21.558149337768555,21.627119064331055,21.696086883544922,21.765054702758789,21.834022521972656,21.902990341186523,21.971958160400391,22.040925979614258,22.109893798828125,22.178861618041992,22.247829437255859,22.316797256469727,22.385765075683594,22.454732894897461,22.523702621459961,22.592670440673828,22.661638259887695,22.730606079101562,22.79957389831543,22.868541717529297,22.937509536743164,23.006477355957031,23.075445175170898,23.144412994384766,23.213380813598633,23.2823486328125,23.351316452026367,23.420286178588867,23.489253997802734,23.558221817016602,23.627189636230469,23.696157455444336,23.765125274658203,23.83409309387207,23.903060913085938,23.972028732299805,24.040996551513672,24.109964370727539,24.178932189941406,24.247900009155273,24.316869735717773,24.385837554931641,24.454805374145508,24.523773193359375,24.592741012573242,24.661708831787109,24.730676651000977,24.799644470214844,24.868612289428711,24.937580108642578,25.006547927856445,25.075515747070312,25.14448356628418,25.21345329284668,25.282421112060547,25.351388931274414,25.420356750488281,25.489324569702148,25.558292388916016,25.627260208129883,25.69622802734375,25.765195846557617,25.834163665771484,25.903131484985352,25.972099304199219,26.041067123413086,26.110036849975586,26.179004669189453,26.24797248840332,26.316940307617188,26.385908126831055,26.454875946044922,26.523843765258789,26.592811584472656,26.661779403686523,26.730747222900391,26.799715042114258,26.868682861328125,26.937652587890625,27.006620407104492,27.075588226318359,27.144556045532227,27.213523864746094,27.282491683959961,27.351459503173828,27.420427322387695,27.489395141601562,27.55836296081543,27.627330780029297,27.696298599243164,27.765266418457031,27.834236145019531,27.903203964233398,27.972171783447266,28.041139602661133,28.110107421875,28.179075241088867,28.248043060302734,28.317010879516602,28.385978698730469,28.454946517944336,28.523914337158203,28.59288215637207,28.661849975585938,28.730819702148438,28.799787521362305,28.868755340576172,28.937723159790039,29.006690979003906,29.075658798217773,29.144626617431641,29.213594436645508,29.282562255859375,29.351530075073242,29.420497894287109,29.489465713500977,29.558433532714844,29.627403259277344,29.696371078491211,29.765338897705078,29.834306716918945,29.903274536132812,29.97224235534668,30.041210174560547,30.110177993774414,30.179145812988281,30.248113632202148,30.317081451416016,30.386049270629883,30.45501708984375,30.52398681640625,30.592954635620117,30.661922454833984,30.730890274047852,30.799858093261719,30.868825912475586,30.937793731689453,31.00676155090332,31.075729370117188,31.144697189331055,31.213665008544922,31.282632827758789,31.351602554321289,31.420570373535156,31.489538192749023,31.558506011962891,31.627473831176758,31.696441650390625,31.765409469604492,31.834377288818359,31.903345108032227,31.972312927246094,32.041282653808594,32.110248565673828,32.179218292236328,32.248184204101562,32.317153930664062,32.386119842529297,32.455089569091797,32.524055480957031,32.593025207519531,32.661991119384766,32.730960845947266,32.799930572509766,32.868896484375,32.9378662109375,33.006832122802734,33.075801849365234,33.144767761230469,33.213737487792969,33.282703399658203,33.351673126220703,33.420639038085938,33.489608764648438,33.558574676513672,33.627544403076172,33.696514129638672,33.765480041503906,33.834449768066406,33.903415679931641,33.972385406494141,34.041351318359375,34.110321044921875,34.179286956787109,34.248256683349609,34.317222595214844,34.386192321777344,34.455162048339844,34.524127960205078,34.593097686767578,34.662063598632812,34.731033325195312,34.799999237060547] diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/expected1.json b/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/expected1.json index b9d11e26afa0..bdb7588909b9 100644 --- a/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/expected1.json +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/expected1.json @@ -1 +1 @@ -[1,1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600,6227020800,87178291200,1307674368000,20922789888000,355687428096000,6402373705728000,1.21645100408832e+17,2.43290200817664e+18,5.109094217170944e+19,1.1240007277776077e+21,2.5852016738884978e+22,6.2044840173323941e+23,1.5511210043330986e+25,4.0329146112660565e+26,1.0888869450418352e+28,3.0488834461171384e+29,8.8417619937397008e+30,2.6525285981219103e+32,8.2228386541779224e+33,2.6313083693369352e+35,8.6833176188118859e+36,2.9523279903960412e+38] +[1,1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600,6227020800,87178291200,1307674368000,20922789888000,355687428096000,6402373705728000,1.21645100408832e+17,2.43290200817664e+18,5.109094217170944e+19,1.1240007277776077e+21,2.5852016738884978e+22,6.2044840173323941e+23,1.5511210043330986e+25,4.0329146112660565e+26,1.0888869450418352e+28,3.0488834461171384e+29,8.8417619937397008e+30,2.6525285981219103e+32,8.2228386541779224e+33,2.6313083693369352e+35,8.6833176188118859e+36] diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/expected2.json b/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/expected2.json index f3447a0488d2..6fbf04e2c7a7 100644 --- a/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/expected2.json +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/expected2.json @@ -1 +1 @@ -[-1.2251639018952047e-44,2.1774618177331901e-47,1.4770773003584878e-47,1.3626030487267966e-47,1.4435319767029023e-47,1.6680903659365798e-47,2.0589314444332792e-47,2.6915971786033686e-47,3.7227512505593992e-47,5.479334408733365e-47,8.7200345944426247e-47,1.5584386659488514e-46,3.4876331309209338e-46,1.861601139726466e-45,-1.1653138893468973e-45,-6.3457800301581344e-46,-5.4593691745239667e-46,-5.5677486585394202e-46,-6.2654254256697626e-46,-7.5679619993917366e-46,-9.6989857862785698e-46,-1.3146122356076716e-45,-1.8910395903288858e-45,-2.9217918971415424e-45,-4.9890188901331268e-45,-1.0144930811094336e-44,-3.3437604140568323e-44,7.8425628110605681e-44,2.7668432298834208e-44,2.170327954521085e-44,2.1166526487268874e-44,2.3132509799183601e-44,2.73112885515148e-44,3.4301294333208218e-44,4.5575118166621851e-44,6.4144752790435899e-44,9.6480534612116767e-44,1.5847625172079383e-43,2.9987128149466763e-43,7.8166113235003936e-43,-2.5257990390890778e-41,-1.248340226697473e-42,-8.5912949172083765e-43,-7.9378451036695485e-43,-8.3953286682130329e-43,-9.6732390147856246e-43,-1.1898790911674575e-42,-1.5498891767874037e-42,-2.1360910428701801e-42,-3.1341477099922679e-42,-4.976898321954149e-42,-8.8963046482435681e-42,-2.0073656445904956e-41,-1.1808255625194295e-40,6.0780344970180779e-41,3.4057389054960393e-41,2.9404617969157374e-41,2.9954671980405005e-41,3.3615140946272994e-41,4.0463005290695839e-41,5.1662999415282346e-41,6.976284088765756e-41,1.0000492731538969e-40,1.540914823320465e-40,2.6284968639903824e-40,5.367085018431325e-40,1.8310042476563435e-39,-3.6025253499395844e-39,-1.3650919050908082e-39,-1.0781659638145519e-39,-1.0511536849261193e-39,-1.1458607887741975e-39,-1.348176238955445e-39,-1.6867155300517865e-39,-2.2322809035147977e-39,-3.1300406480120462e-39,-4.6928234390220578e-39,-7.6935719889811762e-39,-1.4580875848728631e-38,-3.8637331212443817e-38,5.8488783208739008e-37,5.6313299074437302e-38,3.92573055254954e-38,3.6302713221798723e-38,3.830963412970411e-38,4.3990239956694977e-38,5.3898409909261574e-38,6.9917762814929544e-38,9.5975342265579618e-38,1.4031014642591992e-37,2.2222073264567016e-37,3.9715880213453278e-37,9.0370601777491152e-37,5.9709318105251523e-36,-2.4824019704788903e-36,-1.4268862012938158e-36,-1.2353097537183613e-36,-1.2562313326197246e-36,-1.405065935293832e-36,-1.6845388445350447e-36,-2.1416447790349537e-36,-2.8796488305191633e-36,-4.1115939248830801e-36,-6.3148805248325228e-36,-1.0756576341290793e-35,-2.2051508286905463e-35,-7.8123280156625229e-35,1.296078492578116e-34,5.223143903683946e-35,4.1492353284443015e-35,4.0411802105105895e-35,4.3914252771772365e-35,5.1459642722619867e-35,6.4098110493714021e-35,8.4450431838120948e-35,1.1790569442259063e-34,1.7611493542407121e-34,2.880382527370837e-34,5.4657745173778382e-34,1.4736733280054181e-33,-1.4060041355930033e-32,-1.9569325437539529e-33,-1.379692251168309e-33,-1.2759621096203412e-33,-1.3426362605819336e-33,-1.5355181363736388e-33,-1.8728543739419161e-33,-2.418097338826847e-33,-3.3040523979003962e-33,-4.8101634478789262e-33,-7.5941484458993337e-33,-1.3564354976371864e-32,-3.1128667940002895e-32,-2.3716991784763063e-31,7.7615318927011419e-32,4.5633430241311006e-32,3.9577947792959308e-32,4.0149833897379129e-32,4.472832307419157e-32,5.3376680997710026e-32,6.7529036223601102e-32,9.035685141423901e-32,1.2842238737385433e-31,1.9648929571889595e-31,3.340431561691449e-31,6.8738851840805685e-31,2.5385707944589434e-30,-3.5604866102426847e-30,-1.5134868163223809e-30,-1.2078864406806854e-30,-1.1743166420632935e-30,-1.271181060873503e-30,-1.4825849609805659e-30,-1.8373448529080247e-30,-2.4082938864134041e-30,-3.345726591346837e-30,-4.9756836421110758e-30,-8.1135430433411176e-30,-1.5409055628540382e-29,-4.2311340182380634e-29,2.8624953157191153e-28,5.1081709652391169e-29,3.6363651223740094e-29,3.3602832581098337e-29,3.5230279961343363e-29,4.0099978850403415e-29,4.8653254090833424e-29,6.2478761738789074e-29,8.4918499980921042e-29,1.2302690520735903e-28,1.9348996248766943e-28,3.4520776513561396e-28,7.9903225073811361e-28,7.2965417533326379e-27,-1.8082922326598287e-27,-1.084490473946819e-27,-9.4130996893557705e-28,-9.5178221698131786e-28,-1.0552796537162518e-27,-1.252530228605855e-27,-1.5756890418875766e-27,-2.0964913739263935e-27,-2.9638730139845697e-27,-4.5142839056759068e-27,-7.6546503843778572e-27,-1.5805761351478751e-26,-6.1119669833676655e-26,7.2494794155919716e-26,3.2275532282696724e-26,2.5845479507013989e-26,2.5058962064389995e-26,2.699866851860563e-26,3.1314672237601697e-26,3.8579653401980262e-26,5.0267664834744786e-26,6.9433735906229128e-26,1.0272916910063691e-25,1.6689207956468827e-25,3.1704741924714314e-25,8.8747231778517428e-25,-4.5322376838436207e-24,-9.7140940966029029e-25,-6.9704987788065284e-25,-6.4295001778056664e-25,-6.7102357113810829e-25,-7.5947269777137757e-25,-9.1583827803590637e-25,-1.1687267085820008e-24,-1.5787204255724291e-24,-2.27414814373406e-24,-3.5600906510829343e-24,-6.3398425049322404e-24,-1.4800095378806129e-23,-1.7229577310984195e-22,3.0379375080326457e-23,1.8534413949214619e-23,1.6080797189252911e-23,1.6190142711592692e-23,1.7848245846306449e-23,2.105031131302733e-23,2.6307388027043075e-23,3.4773480123596815e-23,4.8854118099298115e-23,7.4006688311322104e-23,1.2506067423460249e-22,2.5899332489800026e-22,1.054184539925168e-21,-1.0553614015210316e-21,-4.8904478840289283e-22,-3.9237898257288595e-22,-3.7898539135580394e-22,-4.0598234455650031e-22,-4.6780358556194401e-22,-5.7236670333685224e-22,-7.4059246640554408e-22,-1.0160794246955485e-21,-1.4941158934144336e-21,-2.4160361568604909e-21,-4.5876599041742142e-21,-1.3103636408072839e-20,5.246262105611082e-20,1.2958798604598757e-20,9.3559018248425953e-21,8.603324242957089e-21,8.9280106448294122e-21,1.0036808440168046e-20,1.2016158853476214e-20,1.5221584737575128e-20,2.0412808884299854e-20,2.9205517879514866e-20,4.5460880125926925e-20,8.0732348131772324e-20,1.9004078645917702e-19,3.159566941961332e-18,-3.5329145889979269e-19,-2.1866209225620204e-19,-1.8936982211500265e-19,-1.8960582690363766e-19,-2.0758178096540222e-19,-2.4298418468497195e-19,-3.0131413697444211e-19,-3.9520684655437289e-19,-5.5112943233729786e-19,-8.2939746047025559e-19,-1.3952638727306757e-18,-2.8959434338882932e-18,-1.2485565604822558e-17,1.0503972135654716e-17,5.0372443534459274e-18,4.0427098068232244e-18,3.884453219111983e-18,4.1318943835678011e-18,4.7238207276275139e-18,5.7324956562692731e-18,7.3563630440973045e-18,1.0011973080337325e-17,1.4613598678758398e-17,2.3492077167453041e-17,4.4541430898136371e-17,1.2993723133473804e-16,-4.1790323668503732e-16,-1.1558675918327745e-16,-8.3787868036436981e-17,-7.6693874474312362e-17,-7.9022346515810081e-17,-8.811325121219729e-17,-1.0458304733981629e-16,-1.3132355584785043e-16,-1.7459180945568266e-16,-2.4775688070737722e-16,-3.8294236620798555e-16,-6.7731651905793251e-16,-1.6069575820884679e-15,-5.0363143079070036e-14,2.6990345948187757e-15,1.6896805001900299e-15,1.4581111381371477e-15,1.4495606008954701e-15,1.5735820611758844e-15,1.8252844449431026e-15,2.2424418684594938e-15,2.9139841749163738e-15,4.0273596376762801e-15,6.0118025761055972e-15,1.005333048107563e-14,2.0890375962943298e-14,9.6128470429670284e-14,-6.7474819451507353e-14,-3.3303315767064568e-14,-2.6681039986969897e-14,-2.5458278901559802e-14,-2.6843242776130217e-14,-3.0396556670981499e-14,-3.6523453850766609e-14,-4.6404725618128286e-14,-6.2543632936417041e-14,-9.0461103060917919e-14,-1.4432816532058499e-13,-2.7284788524418682e-13,-8.1356267003011192e-13,2.1356756428237469e-12,6.4726677049067607e-13,4.6992020007996207e-13,4.2730194317025152e-13,4.3630885912333801e-13,4.8162918087851489e-13,5.6566631271521685e-13,7.0275553638874533e-13,9.244801134270473e-13,1.2987156109526793e-12,1.9894943154182164e-12,3.4985532313894392e-12,8.3585585173244504e-12,1.146864977328195e-08,-1.2636546107659593e-11,-7.9748710582720728e-12,-6.8417850546279863e-12,-6.7389289562152465e-12,-7.2383961138021407e-12,-8.3027050950497787e-12,-1.0084176158691687e-11,-1.2955233969508848e-11,-1.7707569808423761e-11,-2.6163764863853065e-11,-4.3403979434596748e-11,-9.0149027478716363e-11,-4.468822373905988e-10,2.5892851945594194e-10,1.3079735924754901e-10,1.0432759658894523e-10,9.8615967486044215e-11,1.0282801644316079e-10,1.1505866334263235e-10,1.3656319496744575e-10,1.7137993700724144e-10,2.2819515375833273e-10,3.2627843549385163e-10,5.1544375905415095e-10,9.6950734530017635e-10,2.9559390513320409e-09,-6.3964378231611072e-09,-2.0873726495373496e-09,-1.51294143577601e-09,-1.3629260182142999e-09,-1.3754343127743355e-09,-1.4990898831295536e-09,-1.7375606750759771e-09,-2.1299891230816963e-09,-2.7650772376179368e-09,-3.8349490534346487e-09,-5.8068102516979307e-09,-1.0126303394530192e-08,-2.4323031315572043e-08,7.1531459894742411e-07,3.2909249223527406e-08,2.0850861100750904e-08,1.7727847559957546e-08,1.7247664888155429e-08,1.827524301952602e-08,2.0665901261310617e-08,2.4738572440591447e-08,3.1324096073769046e-08,4.2211008944921212e-08,6.1542731421197576e-08,1.0097397013760165e-07,2.0907650186504071e-07,1.1294548185532997e-06,-5.3188213418734964e-07,-2.7327289612839546e-07,-2.1620775097390728e-07,-2.017528756595175e-07,-2.0731533241725239e-07,-2.284235738378271e-07,-2.6686667888848629e-07,-3.2962219371545816e-07,-4.3205279528037604e-07,-6.0850413109170691e-07,-9.4844408904457219e-07,-1.7689985094255247e-06,-5.5125864599488044e-06,9.8805816286505549e-06,3.4184700437044576e-06,2.4626113865474632e-06,2.1888477606257127e-06,2.1744056099231619e-06,2.3304487448021889e-06,2.6548781840409094e-06,3.1980623986073138e-06,4.0798900321494157e-06,5.5631172841029879e-06,8.2913377548852452e-06,1.428002281340041e-05,3.4378952211441412e-05,-0.0004696282098151308,-4.1249109253329207e-05,-2.609043866770909e-05,-2.1878178345614474e-05,-2.0925910744717547e-05,-2.1768924881959876e-05,-2.4152498423521848e-05,-2.8358277952246263e-05,-3.5217469759648808e-05,-4.655786260612977e-05,-6.6649051205045404e-05,-0.00010761779912431255,-0.00022115197102140998,-0.0013207272444296732,0.00049412576389814623,0.00025617184153527779,0.00019988086070085324,0.00018309482253341529,0.00018436692260446059,0.00019889215174844665,0.00022740717840386481,0.00027484308610480415,0.00035254223338200601,0.00048617012276092709,0.00074317018354294725,0.001366556367457841,0.0043418092521156949,-0.0064412554232104588,-0.0023257145112690436,-0.0016533790630660844,-0.0014401327095634891,-0.0013986792805456322,-0.0014639583289256899,-0.0016277452696302802,-0.0019131553996517433,-0.002381309897605184,-0.003169084854279153,-0.0046149632153260674,-0.00779258638530119,-0.018686719148926324,0.15775050821742617,0.019561390296762085,0.012239873719290893,0.010037931500526563,0.0093594672563540263,0.0094779087412704254,0.010228298032355188,0.011675857387413146,0.014094439273726842,0.018113959044875668,0.025226085744647457,0.039714961124303713,0.080277523918438107,0.53918871064289264,-0.15470838876562898,-0.079928490927878224,-0.060849049225176338,-0.054133464330256773,-0.052838694775674842,-0.055196532721827819,-0.061071705430835746,-0.07139908579786583,-0.088581155808420187,-0.11819262124879636,-0.17505900555511622,-0.31354888771595635,-1.0073039094137917,1.2248374835289575,0.45198851468617107,0.31265329061549818,0.26314721683407671,0.24631839410591569,0.24813022601363816,0.2652822081429822,0.29961365483204916,0.35821569392412028,0.45789566915370089,0.64096354830791225,1.0436542271725433,2.4541409241366736,-14.147729484673322,-2.1606393746846044,-1.3114890019078578,-1.0317228966835168,-0.91943707404404296,-0.88815455261782328,-0.91306076383784063,-0.99186223531034812,-1.138470500029559,-1.3904980747110618,-1.8403952643310064,-2.7582414077305653,-5.3535610033593608,-41.004492118446983,8.4583308349173567,4.2285828595270942,3.0523511606316966,2.5608749246520479,2.350504505336279,2.3040156741378306,2.3877830370517672,2.6105203366079643,3.0244178848386278,3.7645346161206361,5.2015507410229427,8.7260133889539642,27.340622246490568,-26.125573958171788,-9.3595451026056153,-6.0060141244873027,-4.6479228671839339,-3.980386102361686,-3.6534638786467379,-3.5453082304319339,-3.6203326131306688,-3.898174565841678,-4.4699381429050575,-5.5929318417318514,-8.1277421931850586,-17.277220891711931,66.244937595787349,10.610880268697112,5.6213970533316528,3.7822730497161321,2.8397105760868984,2.2744857879083216,1.9028199004389383,1.6433280495204843,1.4545278684775165,1.3131194082999798,1.2050508697282143,1.1213764486200135,1.0561552621146912,1.0053080795668996,0.96595914799109983,0.9360393637753972,0.91403764401291865,0.89884005059768013,0.88962284191509666,0.88577975864284197,0.88687167867592076,0.8925912770903951,0.90273800090490752,0.91720030386370155,0.93594311348880221,0.9589991633518451,0.98646325827971393,1.0184888326026107,1.0552863625400164,1.0971233351768397,1.1443255784429591,1.1972798322214779,1.2564374988919358,1.3223195581672778,1.3955226701024086,1.4767265245550194,1.5667025273192423,1.6663239442837532,1.7765776566259559,1.8985777133899899,2.0335809038497383,2.1830046118373878,2.3484472587427816,2.5317116922417715,2.7348319351708872,2.9601037746450989,3.2101197470063365,3.4878091611923101,3.7964839035954525,4.1398908837083104,4.5222721144693061,4.9484335773042449,5.4238242029907582,5.9546265098506233,6.5478606852919219,7.2115041811249299,7.9546292240712564,8.7875610283598053,9.7220599464873683,10.771531317953382,11.951267386796092,13.278726371997887,14.773854607884127,16.459458645174088,18.361635341674603,20.510269303389972,22.939608595753757,25.688931470554706,28.803318993751983,32.3345509680737,36.342145487291099,40.894565913387765,46.070623124554842,51.961105648538521,58.670675899638745,66.320077329002672,75.04870505499413,85.017601674253683,96.412950714492794,109.45015287345826,124.37858514601042,141.48716058995242,161.11082731569124,183.63816989285496,209.52030544670492,239.28130109842039,273.5303800733688,312.97623193414472,358.44379938886829,410.89398164395573,471.44677429817688,541.40846067496477,622.30358208151506,715.91254813017406,824.31590697300021,949.94648387915868,1095.6508207516274,1264.7616157800624,1461.1831796430113,1689.4923022932537,1955.0573741017638,2264.1791410205678,2624.2571122564809,3043.9864008519162,3533.59068668286,4105.0980766482407,4772.667932964092,5552.9782891801342,6465.6853248522202,7533.9685838757641,8785.1782705820769,10251.604128716801,11971.389205899382,13989.616355867571,16359.600784197017,19144.428482593597,22418.78824204468,26271.154350919678,30806.388389882177,36148.842116508706,42446.059753659909,49873.197618299149,58638.30262942049,68988.61963420939,81218.131680531369,95676.578538468471,112780.24838224659,133024.8973388584,157001.22371296008,185413.4106784715,219101.35619923851,259067.33567730142,306507.99590278108,362852.76384404663,429809.97740385146,509422.31565155601,604133.43314856093,716868.09887307894,851128.61957472609,1011110.9079638351,1201844.2596324489,1429359.7553697047,1700893.2396583415,2025130.0806753295,2412500.4396429299,2875535.6258467427,3429298.3586963867,4091902.4859955101,4885141.0231629973,5835245.4097110759,6973803.7832965124,8338872.0391859189,9976318.707378557,11941453.526055211,14301000.367035992,17135488.302695088,20542150.615635332,24638441.08020917,29566300.669500366,35497336.918653429,42639113.676480114,51242792.336951315,61612418.619152196,74116213.715018868,89200307.793566972,107405450.6836091,129387353.03734414,155941456.29490232,188033107.33170527,226834331.15531537,273768661.4963361,330565815.75867158,399328401.27077204,482613330.98154992,583531229.43203664,705867849.56404316,854232429.17008865,1034239031.3122199,1252728283.6099417,1518038615.7996621,1840338166.0021675,2232031073.2442584,2708255007.4498959,3287490644.6954784,3992308543.3542476,4850284723.7276945,5895123456.6894751,7168034643.1151199,8719424107.7144432,10610968623.401487,12918164125.471176,15733456110.929533,19170086566.036457,23366823061.830227,28493774311.632793,34759544241.045753,42420035641.830963,51789287446.145355,63252819889.624451,77284073451.795685,94464665582.786224,115509360191.05585,141296856553.76825,172907766499.35663,211671473547.92264,259223970271.85342,317579269213.36078,389217601585.29572,477194385683.8739,585274899524.54626,718100774554.65967,881395895252.93896,1082221112535.3127,1329289443745.2078,1633356246483.0706,2007702352035.4053,2468732494216.0649,3036716779888.8779,3736709678751.5483,4599689387019.6064,5663970847850.6328,6976958696654.8848,8597322573542.2607,10597697396880.098,13068036306670.889,16119775295394.613,19891007585872.984,24552914514355.531,30317760437972.035,37448835018032.844,46272820899156.773,57195183020619.797,70719323458973.734,87470430195577.906,108225178780071.98,133948734110495.06,165840859996934.91,205393395023537.38,254461917300885.03,315355126635277.44,390946356347587.25,484812733517907.94,601408892375696.25,746283881912783.25,926352084744155.75,1150231691795648.2,1428667697298406.2,1775060667690204.8,2206127918709488.5,2742730486785859.5,3410907755405032.5,4243172236790960.5,5280130370626186,6572511985205888,8183712154398167,10192975686778494,12699387800326644,15826876429786134,19730484305466960,24604235231950620,30691002413170348,38294891668906760,47796784583250408,59673853104263024,74524066819542096,93096978354398432,1.1633240533337186e+17,1.4540904711599466e+17,1.8180560380824054e+17,2.2737763260113264e+17,2.844542186199329e+17,3.5595960009968992e+17,4.4556622889803814e+17,5.5788744054977542e+17,6.9872004616233075e+17,8.7534985900053248e+17,1.0969365804000407e+18,1.3749987810354959e+18,1.7240251630599959e+18,2.162245178307105e+18,2.712600790290263e+18,3.4039721880678426e+18,4.2727242027519872e+18,5.3646578216644844e+18,6.7374735288149535e+18,8.4638814764972616e+18,1.0635529300909451e+19,1.3367963751682304e+19,1.680689977086575e+19,2.1136143480700445e+19,2.6587607847414133e+19,3.3453976820284813e+19,4.2104722157738418e+19,5.3006365402752557e+19,6.6748116306517164e+19,8.4074322084901175e+19,1.0592554659758653e+20,1.3349058695568271e+20,1.6827235528917474e+20,2.1217134119034755e+20,2.675913711860273e+20,3.3757365338399913e+20,4.2596671190537745e+20,5.376418707237058e+20,6.7876655964213726e+20,8.5715103865668305e+20,1.0826883649471505e+21,1.3679128065416686e+21,1.7287087536046911e+21,2.1852108943011301e+21,2.7629475199524164e+21,3.4942929576578709e+21,4.4203131320082314e+21,5.5931111956255311e+21,7.0788093999118822e+21,8.9613406373808544e+21,1.1347270590468092e+22,1.4371931997907532e+22,1.8207229812704815e+22,2.3071574593115188e+22,2.9242527241099578e+22,3.7072898724667597e+22,4.701125333520278e+22,5.9628025670485741e+22,7.5648795671876289e+22,9.5996692858188589e+22,1.2184644620815467e+23,1.5469329299144216e+23,1.9644085053190087e+23,2.4951319356107962e+23,3.1699783583344536e+23,4.028281768529377e+23,5.1201635669623362e+23,6.5095050982222857e+23,8.2777430930096039e+23,1.0528716856221823e+24,1.3394859962824434e+24,1.7045111075446444e+24,2.1695023332878031e+24,2.7619686057779462e+24,3.5170244610575524e+24,4.4795024746878614e+24,5.7066550516990426e+24,7.2716107166531913e+24,9.2677965242831216e+24,1.1814597819161938e+25,1.506460304094209e+25,1.9212879388175225e+25,2.450885107232946e+25,3.1271513524145956e+25,3.990892442621372e+25,5.0943178914862682e+25,6.5042418539215948e+25,8.3061863219495513e+25,1.0609642034532433e+26,1.3554815111751798e+26,1.7321280736715443e+26,2.2139085173549716e+26,2.8302991668808363e+26,3.61907641783264e+26,4.6286638068944231e+26,5.9211455296402918e+26,7.5761364101889723e+26,9.6957527122320352e+26,1.2410998193548215e+27,1.5889969953571339e+27,2.0348404718500612e+27,2.606323574754939e+27,3.3390023198065162e+27,4.2785369033997813e+27,5.4835747503328623e+27,7.0294594628541627e+27,9.0130031879111721e+27,1.1558628486769439e+28,1.4826274226833961e+28,1.902157409783619e+28,2.440896354844729e+28,3.1328560890203589e+28,4.0217913488624764e+28,5.1640016468641293e+28,6.6319420033001538e+28,8.5188769261921523e+28,1.0944880196270156e+29,1.4064571082551206e+29,1.807709141061679e+29,2.3238974972417255e+29,2.9880750864848851e+29,3.842836810981944e+29,4.9430846699336964e+29,6.3595971207049046e+29,8.1836374745326509e+29,1.0532904885826639e+30,1.3559220496209721e+30,1.7458456482775702e+30,2.2483364865533458e+30,2.8960155972750672e+30,3.7309926436630244e+30,4.8076360341670002e+30,6.1961546521625198e+30,7.9872298337448209e+30,1.0298006633304394e+31,1.3279844666364896e+31,1.7128347103445136e+31,2.2096339743571201e+31,2.8510670954247029e+31,3.6793961172493388e+31,4.7492765211081028e+31,6.1314044655599409e+31,7.9172410856081255e+31,1.0225132998185434e+32,1.3208243044330275e+32,1.7064828483777799e+32,2.2051563813987886e+32,2.8500813124403843e+32,3.6843026737341153e+32,4.7635787453575447e+32,6.1601487240530897e+32,7.9676207194621172e+32,1.0307314309392088e+33,1.333649192157282e+33,1.7259043381422067e+33,2.2339357120407644e+33,2.892033155764908e+33,3.7446766390023017e+33,4.8495745936270985e+33,6.2816111311650957e+33,8.1379748981933875e+33,1.0544824436363815e+34,1.3665951821709588e+34,1.7714045572846648e+34,2.29653351323193e+34,2.9778635409535322e+34,3.8620117582389423e+34,5.0095533313051283e+34,6.4992142085279872e+34,8.4333272500706983e+34,1.0944933634670465e+35,1.420702720707605e+35,1.8444590421235354e+35,2.3950267474217828e+35,3.1104777137713265e+35,4.0403502994125527e+35,5.2491136199307404e+35,6.8206816783959876e+35,8.8642964718553845e+35,1.1522196488652987e+36,1.4979614051742915e+36,1.9477810874918454e+36,2.5331077909455594e+36,3.2948908666255542e+36,4.2864925104288806e+36,5.5774618567544629e+36,7.2584600045413277e+36,9.4476879913984618e+36,1.2299277708180935e+37,1.601424693788356e+37,2.0854804355164197e+37,2.7163031851518753e+37,3.538528752396199e+37,4.610408609092574e+37,6.0079754518210865e+37,7.8304868737267739e+37,1.0207540425878468e+38,1.3308374703403028e+38,1.7354029997039688e+38,2.263325015753581e+38,2.9523279903960412e+38] +[-2.4486292873710267e-38,-1.0155188774822322e-37,1.0009890168632449e-37,4.6883096666096378e-38,3.7719159148376291e-38,3.638568551555058e-38,3.877466914233474e-38,4.4244296045608186e-38,5.3301298260459553e-38,6.7388109571317379e-38,8.933253324078244e-38,1.2466386812946558e-37,1.8506516295085481e-37,2.9907801174522957e-37,5.5611029049399799e-37,1.4338445988445726e-36,-2.6079707204687923e-35,-2.047100966335932e-36,-1.378468146916096e-36,-1.2323318798601411e-36,-1.2541049177458273e-36,-1.3835782164060016e-36,-1.6207642271568951e-36,-1.9969672151885315e-36,-2.5795765863014139e-36,-3.4984629655418022e-36,-5.0157916211811322e-36,-7.7211450603972807e-36,-1.3215536612296623e-35,-2.7661452981085467e-35,-1.1444985278742055e-34,1.1187575088256007e-34,5.2243880054610361e-35,4.1870411550490453e-35,4.0228351535689973e-35,4.2695416454405325e-35,4.8518516834059469e-35,5.8210463883041632e-35,7.3290781396398447e-35,9.6757625498345487e-35,1.344665854192104e-34,1.9879637982148208e-34,3.1994771576313289e-34,5.9253720343466229e-34,1.5221689267864948e-33,-2.7101615317385132e-32,-2.1504699999173328e-33,-1.4426052045694458e-33,-1.284413118937377e-33,-1.301655070436161e-33,-1.429996235621887e-33,-1.6680423711974897e-33,-2.0465141767037976e-33,-2.6323078478332581e-33,-3.554793676928096e-33,-5.0747895010829443e-33,-7.7788829473859843e-33,-1.3258219618606679e-32,-2.7639276528639845e-32,-1.1404567288684175e-31,1.1053370796876386e-31,5.1451229224105053e-32,4.1065248741735696e-32,3.9286243399528615e-32,4.1515055842639532e-32,4.6971734774138024e-32,5.6108059458726159e-32,7.0333607266344767e-32,9.2444444028289432e-32,1.2790683920016373e-31,1.8826693501173365e-31,3.0167642552923243e-31,5.5630091847131876e-31,1.423482138559329e-30,-2.4818788203708181e-29,-1.9889038530917591e-30,-1.3288163147041293e-30,-1.1779410681539999e-30,-1.1884426822192641e-30,-1.2997594330689429e-30,-1.5092809912778529e-30,-1.8433284128777439e-30,-2.3601889722649562e-30,-3.1728076857415251e-30,-4.5088582637968743e-30,-6.8800293045726707e-30,-1.1673512413343699e-29,-2.4230117602656802e-29,-9.9679130519058415e-29,9.5760252435984444e-29,4.4417320798225597e-29,3.5294802713894051e-29,3.3611544376196144e-29,3.5354051039121292e-29,3.9814371466443347e-29,4.7335867925433439e-29,5.9058647373828125e-29,7.7259634312958173e-29,1.0639344410124019e-28,1.5586414277135361e-28,2.4858480066456034e-28,4.5628735759730469e-28,1.1626234002291516e-27,-1.984052318038099e-26,-1.6054900821819046e-27,-1.067977742791983e-27,-9.4229000956971784e-28,-9.4615506496131682e-28,-1.0297955986331937e-27,-1.1900105560286399e-27,-1.4463327583860276e-27,-1.8428561530571691e-27,-2.4652671848906623e-27,-3.4862752986766586e-27,-5.2937672933134541e-27,-8.9386860253578293e-27,-1.8467354750195598e-26,-7.572245319634238e-26,7.2073091021643273e-26,3.3302688590407968e-26,2.6336906996282299e-26,2.4957583763822816e-26,2.612083672070602e-26,2.9268943219154615e-26,3.4623189333985667e-26,4.2979632355365138e-26,5.594087921208317e-26,7.6645422811586597e-26,1.1171547054045311e-25,1.7727718752276357e-25,3.2378571682720375e-25,8.2123281696845128e-25,-1.3720357052216054e-23,-1.1199964688898122e-24,-7.4149572061406967e-25,-6.5092624280290757e-25,-6.5023498231490399e-25,-7.0404512257970603e-25,-8.0933735411345607e-25,-9.7851526494922189e-25,-1.2402377625865833e-24,-1.6503924337956753e-24,-2.3216541112323914e-24,-3.5068208387909456e-24,-5.8905142435526915e-24,-1.2108045275586708e-23,-4.9462687088952206e-23,4.6630515474466922e-23,2.145477340907088e-23,1.687965073144836e-23,1.5910631957326922e-23,1.6562697004934635e-23,1.845842429012797e-23,2.1716388561664628e-23,2.6810700919932331e-23,3.4705404680580333e-23,4.7290074267603516e-23,6.8550920913267496e-23,1.0818610038502136e-22,1.9653172682189226e-22,4.9597463716919779e-22,-8.1109035014385497e-21,-6.674785059246959e-22,-4.3962265543066321e-22,-3.8381020941351879e-22,-3.8126547348710514e-22,-4.1049668670674722e-22,-4.6922322442512345e-22,-5.6408841353765183e-22,-7.1089692416690531e-22,-9.4060131488925352e-22,-1.3156050305672993e-21,-1.9758667846622282e-21,-3.3001186764241141e-21,-6.7460492303733024e-21,-2.7443528258774612e-20,2.561386769999154e-20,1.1729346513799639e-20,9.1762390161900272e-21,8.5994594155741098e-21,8.8995864751268734e-21,9.8598806442354708e-21,1.1531636594839952e-20,1.4152350607811696e-20,1.8210590555115182e-20,2.4666148557393626e-20,3.5542495802234574e-20,5.5759183075497115e-20,1.0069768146836945e-19,2.5272547976245876e-19,-4.0443064099525138e-18,-3.3528852173064845e-19,-2.1957974663520335e-19,-1.9055495118202279e-19,-1.8814056628562648e-19,-2.0132319275358421e-19,-2.2870530281562897e-19,-2.7324150632608233e-19,-3.4221573987852065e-19,-4.49972446848322e-19,-6.2544454512198058e-19,-9.3348033152215965e-19,-1.5494447530547413e-18,-3.1481876146735126e-18,-1.2746880432689555e-17,1.1771807735640602e-17,5.3621829126671772e-18,4.1691392112716228e-18,3.8823503006423613e-18,3.9921247357523242e-18,4.3943879055310601e-18,5.1061875425061966e-18,6.2259082711665159e-18,7.9589860349525297e-18,1.0709967696919068e-17,1.5331516054785044e-17,2.3895128701972481e-17,4.2874414996789978e-17,1.0694811047396823e-16,-1.6734752692065631e-15,-1.3970286481983633e-16,-9.091848254236444e-17,-7.8380977057992792e-17,-7.6869961339834025e-17,-8.1701186636697542e-17,-9.2183852717124163e-17,-1.0938467558281007e-16,-1.3605994406277129e-16,-1.776757074816241e-16,-2.4526573943415571e-16,-3.6354538599680499e-16,-5.9931453402878773e-16,-1.2095534810473776e-15,-4.8714569891057775e-15,4.4480096608255543e-15,2.0141768970366437e-15,1.5553302403988216e-15,1.438198859241951e-15,1.4684006775696494e-15,1.6048518273720638e-15,1.851458438180969e-15,2.2412368523289827e-15,2.8444596139824311e-15,3.7999563089563901e-15,5.4003729283701559e-15,8.3559551344479759e-15,1.4885448380343084e-14,3.6878744388590744e-14,-5.6415078298389044e-13,-4.7362059074859708e-14,-3.0607276926411785e-14,-2.6193188510432061e-14,-2.5497251272977271e-14,-2.6896656156557477e-14,-3.0118917723379355e-14,-3.5468293808251703e-14,-4.3782472821209946e-14,-5.6738328714972543e-14,-7.7723583005266222e-14,-1.1432447454100818e-13,-1.8702695636739972e-13,-3.7463629880045573e-13,-1.4995713227993403e-12,1.3528114042371333e-12,6.0845467212462686e-13,4.662468731256811e-13,4.2775991793120715e-13,4.3329071295944912e-13,4.6978647586373806e-13,5.3764055187714022e-13,6.4559863627625173e-13,8.1275138105582019e-13,1.0769813859851784e-12,1.5181507385529718e-12,2.329973971406346e-12,4.1172343806065421e-12,1.0121934252578718e-11,-1.5127341558919579e-10,-1.2757566960665314e-11,-8.1791935856361356e-12,-6.9418801847024816e-12,-6.7009564374203436e-12,-7.0091795160465744e-12,-7.7823664614455128e-12,-9.0865155357900026e-12,-1.1120532927919541e-11,-1.4287419212385646e-11,-1.9403122214888325e-11,-2.8293912072203778e-11,-4.5888077558862548e-11,-9.1139192424556324e-11,-3.6220019481754649e-10,3.2249905639557048e-10,1.4392526987441962e-10,1.0932969206363644e-10,9.9415979071905159e-11,9.9799982256341291e-11,1.072307898563611e-10,1.2160647426518542e-10,1.44695303453736e-10,1.8049201173453232e-10,2.3697432837761465e-10,3.3096846754900672e-10,5.0326801726160465e-10,8.8115230184503867e-10,2.1471603689878432e-09,-3.131401951296766e-08,-2.649727574599184e-09,-1.6833921949090425e-09,-1.4152811791257358e-09,-1.3531240362711053e-09,-1.4017462394467544e-09,-1.5413073346433116e-09,-1.7820764654350829e-09,-2.159655461329491e-09,-2.7473965028076731e-09,-3.6943009721446266e-09,-5.33377892283653e-09,-8.5650163128716892e-09,-1.684499709483568e-08,-6.6380938642910266e-08,5.8257338739430652e-08,2.5762516847788767e-08,1.9373797090690441e-08,1.7437075060675028e-08,1.7323887290097039e-08,1.8420394846995806e-08,2.0671519997068423e-08,2.4337695064017885e-08,3.0037875662715266e-08,3.9019064455664955e-08,5.3915084245756303e-08,8.1107161671274896e-08,1.4049526268925478e-07,3.3881723246908275e-07,-4.8163807628221806e-06,-4.0814799194556827e-07,-2.5654507587493737e-07,-2.1331897473623648e-07,-2.016838436945927e-07,-2.0658956528194464e-07,-2.2459428891891986e-07,-2.5672941482552322e-07,-3.075703478733846e-07,-3.8678194041038087e-07,-5.1408622534036133e-07,-7.3363139060319016e-07,-1.1643963281353612e-06,-2.2637067114344012e-06,-8.8297058901439019e-06,7.6244657954366033e-06,3.3350063698187856e-06,2.4783128741856878e-06,2.2037091090371624e-06,2.1627725847372172e-06,2.2714709699357434e-06,2.5175984317778483e-06,2.9272736918782989e-06,3.5677064160468978e-06,4.5761564955152186e-06,6.2432076215002181e-06,9.2728054342003144e-06,1.5858847672870071e-05,3.7772438596578703e-05,-0.00052226539873898633,-4.4227505084778013e-05,-2.744544100156021e-05,-2.2521414279425177e-05,-2.1009898850314527e-05,-2.1232202981821106e-05,-2.2770513221414203e-05,-2.5674002991356754e-05,-3.0336423795658067e-05,-3.7622374129318861e-05,-4.9310477656812561e-05,-6.9385880158777838e-05,-0.00010858426169331872,-0.00020815564983154934,-0.00080165852534630358,0.000679353880230817,0.00029315990154078525,0.00021471336479354824,0.00018812414852743727,0.00018189433339853766,0.00018818081842094389,0.00020542788189740948,0.00023522806583800912,0.00028230419924613086,0.00035651804705010194,0.00047884430564476397,0.00070010933086846238,0.0011786337038746011,0.0027640447712959861,-0.037067994506163153,-0.0031262658395481905,-0.0019091754476814723,-0.0015410763386202329,-0.0014138734693146494,-0.0014049621116933113,-0.0014813450564744358,-0.0016418165889394393,-0.0019066780227003238,-0.0023236814429132128,-0.002992437372767969,-0.0041366928103860594,-0.0063591101642202765,-0.011974948147215626,-0.045360022054971159,0.037577076855793368,0.015933923870771086,0.011455519521227555,0.0098491148413482402,0.0093426159368672074,0.0094804973685816574,0.010149268156237141,0.011394575560205058,0.013405235618862006,0.016592120032646842,0.021837104362064035,0.031280268648192097,0.051586264847606034,0.1185299881411533,-1.5342957327681079,-0.12819278854262259,-0.076640592861051834,-0.060531101310529335,-0.054320899809430633,-0.052783760619631866,-0.054406867512203375,-0.058934171864064216,-0.066872561082707255,-0.079608142382538008,-0.10011484241279538,-0.13511512651005089,-0.20273081606225063,-0.37257501637139678,-1.3788394816625802,1.1090160109596945,0.45888112052518942,0.32153358566769435,0.26929782103780758,0.24874462368023786,0.24569646122528366,0.2559283989281203,0.27946634376964835,0.31965517890075912,0.38451337195047014,0.4916227770890253,0.68384997400102276,1.0947788261847644,2.4417289297980864,-30.22267650950328,-2.4765675460250534,-1.434923300579205,-1.0974314338590909,-0.95307221503972928,-0.89570289415521287,-0.8924120587272153,-0.93382297767081501,-1.0229672507393368,-1.1749264353715103,-1.4246414931153606,-1.8525708639436573,-2.6764951486433599,-4.7335230617486754,-16.869186760094756,12.977372904586035,5.1590789759833831,3.4670645885367972,2.7820808231727905,2.4595304325318281,2.3227948790061257,2.310891799467603,2.4074386601243578,2.6240069423565915,3.0041482856532684,3.6510020977284969,4.8209494609606409,7.3164663583684826,15.451986342948087,-178.2195215239461,-13.937696716260875,-7.606272498089786,-5.4668951468160092,-4.4520789760224684,-3.9145485120586385,-3.6400176659417833,-3.5455394056782983,-3.6051747659849163,-3.8316303915534946,-4.2847798841060456,-5.1198105595752867,-6.7695027214749999,-10.9094406305788,-35.300024442143865,24.371320313103595,8.6859335612314652,5.1902957222057164,3.6714153572962664,2.8326777419914273,2.3070704975488745,1.9509300911054857,1.6965978680445783,1.5081022411033274,1.3646012897331694,1.2532174911517806,1.1655899038775093,1.0960718817966173,1.0407279972828243,0.99674427168474511,0.96206730349555825,0.9351743004958758,0.91492262693525361,0.90044853772197553,0.89109721230825978,0.88637397669566642,0.88590941071577811,0.88943420967992548,0.89676090188708302,0.9077705130619268,0.92240286502991553,0.9406494541968401,0.96254866381017801,0.98818235475920291,1.0176739348636954,1.0511871616191284,1.0889267549425661,1.1311384802830169,1.1781109950172979,1.2301786863321844,1.2877236784878969,1.3511799201903354,1.4210383446911485,1.4978504670432813,1.5822363441987362,1.6748896987624622,1.7765865022103686,1.8881951737996618,2.0106847159327175,2.1451372098288695,2.2927625290926605,2.4549098514176455,2.6330885984232646,2.8289836801847734,3.0444784422013851,3.2816815491720219,3.5429501089328137,3.8309227584243732,4.1485583922588223,4.4991690048389943,4.8864739556001426,5.3146432915507162,5.7883592125660774,6.3128860964289943,6.8941456481627066,7.538787560395618,8.2543110284445991,9.0491658170727245,9.9328598297059685,10.91613581812231,12.011121943739433,13.231492907809059,14.592728547522515,16.112339055739049,17.810107241776855,19.708469295882203,21.832853102849633,24.212043887211696,26.878748235934605,29.870082554673509,33.228236602317033,37.001094885155865,41.2431977162518,46.016630048496232,51.391991738833539,57.449840335669151,64.282045317506004,71.993272129871215,80.703160069182459,90.548394440304946,101.68498564988407,114.29157431124763,128.57261541967003,144.76189270260966,163.12756052983531,183.97690409335019,207.66254817578042,234.58865246446248,265.21983556442297,300.08999486436829,339.81211398239981,385.09203583185609,436.74220659138825,495.69700401072345,563.03409667833489,639.99594971444355,728.01387775552007,828.74132478266722,944.08765258284757,1076.2560344823937,1227.7955473205625,1401.6531861164963,1601.2402320861729,1830.5012907070461,2094.0096272958131,2397.0656580484697,2745.8080676898471,3147.3645883623835,3610.0088146988669,4143.3375476626816,4758.5102854995439,5468.4946042938127,6288.3705410181055,7235.6973674212222,8330.8724173610281,9597.6928685764706,11063.872055584477,12761.715875535325,14728.901741998452,17009.42639085375,19654.548230598295,22724.23497676929,26288.522106252913,30429.280798513239,35242.262047509998,40839.500847317795,47352.242102851676,54933.898208120067,63764.507476817955,74055.008329804143,86052.766960822337,100047.99620036839,116381.570247817,135453.02379784302,157732.44406663981,183772.05807441715,214221.15213790373,249843.45694195735,291537.70119943732,340362.65070226783,397563.07578553521,464607.81971307116,543227.52442962374,635463.00098003342,743721.8082404068,870847.2248733067,1020190.5037526768,1195715.7005526994,1402104.920473414,1644892.863224729,1930624.6843991738,2267048.5828458723,2663319.4178205472,3130291.4263204937,3680815.6122732204,4330118.9918126632,5096250.863618508,6000614.1354814824,7068614.1737125004,8330351.5469825976,9821608.626348244,11584864.596436767,13670586.841623364,16138755.493811633,19060726.89775569,22521238.436637141,26621243.740006976,31480858.310779862,37243101.185804114,44078323.86097198,52189506.975339159,61818741.802379116,73254260.960309178,86840309.393766716,102987508.00169384,122185998.20413017,145021046.84067392,172192160.9832865,204533957.78894421,243045304.96650994,288920169.94108379,343586707.31292242,408753774.95164305,486467971.85827661,579176291.97369373,689813178.83948231,821893396.70102561,979629608.88921118,1168072628.5413978,1393280175.7595522,1662524063.6096683,1984519288.0011075,2369740721.7567806,2830763791.7678947,3382695487.456943,4043689824.701611,4835581373.3701782,5784589465.8260536,6922287922.8437958,8286655160.6679029,9923402166.3653412,11887564117.179855,14245423009.504648,17076873666.418917,20478068920.563683,24565047458.448448,29477690860.614243,35384726061.171211,42489735520.113327,51038561547.433998,61327622824.598915,73715285215.269867,88634336452.860031,106607754076.33051,128267687822.75359,154378871120.52185,185865032674.22745,223844907245.32913,269671958807.44467,324984587608.16779,391766690359.8407,472421209450.13458,569860960282.40808,687611595425.49719,829951582165.80811,1002067539231.6243,1210250579708.0364,1462133663544.4219,1766980402052.585,2136036561239.6406,2582957989010.4438,3124331719740.9824,3780330652437.4907,4575411370394.9365,5539364479626.917,6708394823425.1738,8126538834063.2969,9847373131194.4395,11936098943305.248,14472085670327.215,17551975516874.939,21293473924693.727,25839978468686.883,31366233118784.285,38085441326584.234,46256935023012.07,56197600126168.031,68293793823573.922,83016947762873.922,100942450345359.86,122772752026288.59,149365645052236.44,181768884942545.94,221262586216571.03,269411150722281.41,328126887401255.62,399747974632881.81,487136686940061.25,593786483080430.62,723980042906664.62,882956376138417,1077129236632905.4,1314352480512584.5,1604245791405823,1958594600175031,2391841214741448.5,2921688103692450,3569839118025729,4362910401975275,5333550099872281,6521851338070880,7976908196847720,9759093425790832,11942496673175202,14618107320550400,17897695771103130,21918592051718180,26849570509545276,32898098263371604,40319265462074984,49426790034302064,60606581862366208,74333465361886400,91192316288318096,1.1190155024363832e+17,1.3734726792314509e+17,1.6862021482817395e+17,2.0706398672662355e+17,2.5433401993156554e+17,3.1247042952738893e+17,3.8398796589894586e+17,4.7198713675824774e+17,5.8029150427743053e+17,7.1361735950158374e+17,8.7778345426970086e+17,1.0799703031334287e+18,1.3290484715481288e+18,1.6359464331088607e+18,2.0141821216538148e+18,2.4804441395252403e+18,3.0553494019851105e+18,3.7643733739845939e+18,4.6390018731259832e+18,5.7181575104111667e+18,7.0499666224016701e+18,8.6939484253782774e+18,1.0723727847261538e+19,1.3230398003975006e+19,1.6326783750360324e+19,2.0152252992369967e+19,2.4879635525732737e+19,3.0722853232614449e+19,3.7946863907252576e+19,4.6879906055742808e+19,5.7928697706444128e+19,7.1597305688637956e+19,8.8510576509468672e+19,1.0944323743265148e+20,1.3535604717652848e+20,1.6744071295117741e+20,2.0717571074807303e+20,2.5639718155501257e+20,3.1737950476758378e+20,3.9295063719838089e+20,4.8662040257743762e+20,6.0274766703554553e+20,7.4674682256927805e+20,9.2534474709860837e+20,1.1469006429005437e+21,1.4218042172450823e+21,1.7629714907609579e+21,2.186462289762905e+21,2.712249435234261e+21,3.3651770794689529e+21,4.1761798803574998e+21,5.1836777185989047e+21,6.4355642655669622e+21,7.9914363529765742e+21,9.9254993598381252e+21,1.2330166139488244e+22,1.5320546920067701e+22,1.9040051808533666e+22,2.3667382916094322e+22,2.9425262415820534e+22,3.6591329547491041e+22,4.5511748094870849e+22,5.6618201684939763e+22,7.0449550323074158e+22,8.7676757018612905e+22,1.0913830432875351e+23,1.3588019105804713e+23,1.6920806970842968e+23,2.1075200877079686e+23,2.6254748295981661e+23,3.2713667618519772e+23,4.0769521480462926e+23,5.0819074369502285e+23,6.3358138177957047e+23,7.9006413085140386e+23,9.8538586735703272e+23,1.2292402738754057e+24,1.5337273223926029e+24,1.9140041369113918e+24,2.3890250461727726e+24,2.9825066217172276e+24,3.7241295871515842e+24,4.6510454067253029e+24,5.8097651210525714e+24,7.2585278288822634e+24,9.0702711358115303e+24,1.1336357215938771e+25,1.4171247512390545e+25,1.7718368616935958e+25,2.2157611194161019e+25,2.7714057237851002e+25,3.467030934785501e+25,4.3380598888893563e+25,5.4289191665997316e+25,6.795336999682946e+25,8.507230575591605e+25,1.0652334061085201e+26,1.3340758148198784e+26,1.6710721271569669e+26,2.0935754803876107e+26,2.6233762844938193e+26,3.2878621260979402e+26,4.1213739671993681e+26,5.1671179312301422e+26,6.4793650042499913e+26,8.1263222227829696e+26,1.0193725921789049e+27,1.2789365173382465e+27,1.6048777161417623e+27,2.0142419305115875e+27,2.5284702528521114e+27,3.1745370512649525e+27,3.9863836549679942e+27,5.0067249677580594e+27,6.2893660725543615e+27,7.901923830571115e+27,9.9296554624840293e+27,1.2479888530781357e+28,1.5687806742178071e+28,1.9723708046305313e+28,2.480216110966818e+28,3.1193558550228305e+28,3.9238696640837826e+28,4.9367177240468943e+28,6.2120637706663702e+28,7.8182080151324913e+28,9.8412907405079503e+28,1.2390048759633207e+29,1.5601428659277103e+29,1.9648468784181106e+29,2.4749467722430629e+29,3.1179966826776522e+29,3.9287816477555236e+29,4.9512222261581157e+29,6.2407826170637132e+29,7.8675158621500348e+29,9.9199152731926526e+29,1.2509786292545558e+30,1.5778410104860879e+30,1.9904342708193561e+30,2.5113446427921621e+30,3.1690779114927488e+30,3.9997261979004348e+30,5.0489165066682674e+30,6.3743591502608389e+30,8.049059145415547e+30,1.0165384089131051e+31,1.2840217720678865e+31,1.6221489921687291e+31,2.0496452032504556e+31,2.590216555118948e+31,3.2738798228087577e+31,4.1386481516098643e+31,5.2327026035525748e+31,6.6169763101062584e+31,8.368772196601096e+31,1.0586012319650495e+32,1.3392799589656353e+32,1.6946441462421908e+32,2.1446364225807583e+32,2.7145428453628115e+32,3.4364294528957858e+32,4.3509663065945007e+32,5.5097438833449676e+32,6.9782151458998789e+32,8.8394906559957274e+32,1.1198870948885396e+33,1.4190184476987246e+33,1.7983263037939546e+33,2.2793733049455597e+33,2.8895404417883337e+33,3.6636021777479868e+33,4.6457293545364938e+33,5.8920364253419139e+33,7.4738214125390217e+33,9.4817499857013634e+33,1.2030787430724465e+34,1.5267596503614933e+34,1.9377902748897993e+34,2.4598785201052084e+34,3.1230557466611901e+34,3.9656677773061215e+34,5.0363026573771176e+34,6.3970177809071411e+34,8.1264695109426271e+34,1.0325146851330325e+35,1.3120628972217236e+35,1.6675208194263061e+35,2.1196172723245779e+35,2.6946449416188013e+35,3.4262177332150116e+35,4.3569844075278107e+35,5.5414842392844216e+35,7.0489359125029386e+35,8.9678804905444722e+35,1.1410722742158574e+36,1.4521284268552517e+36,1.8482202431881835e+36,2.3527224497417078e+36,2.9953669016974887e+36,3.8140446883250341e+36,4.8572384938437644e+36,6.186560087048159e+36,7.8809159047117803e+36,1.004060877307505e+37,1.2794131221347212e+37,1.6304864355827651e+37,2.0782162555413577e+37,2.6492299796198822e+37,3.3776566428842159e+37,4.3069744703215542e+37,5.4926773566598824e+37,7.005875799076256e+37,8.9370773960014122e+37,1.1402364473223113e+38,1.4549524780998746e+38] diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/runner.R b/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/runner.R index 41969b68e026..df6ad8d015e8 100644 --- a/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/runner.R +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/test/fixtures/r/runner.R @@ -76,8 +76,13 @@ main <- function() { # Get the directory of this script: source_dir <- dirname( get_script_path() ); + # Convert doubles to IEEE-754 float32 and back: + to_float32 <- function( x ) { + return( readBin( writeBin( x, raw(), size = 4L ), 'numeric', n = length( x ), size = 4L ) ); + } + # Generate integer test data: - x <- seq( 1L, 35L, 1L ); + x <- seq( 1L, 34L, 1L ); y <- gamma( x ); # Deal with NaNs: @@ -96,7 +101,8 @@ main <- function() { # Generate decimal test data: - x <- seq( -40.0001, 35.00, length.out = 1000L ); + x <- seq( -34.099, 34.80, length.out = 1000L ); + x <- to_float32( x ); y <- gamma( x ); # Deal with NaNs: diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.js b/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.js index 0cdb6359fadf..631684e4ae5e 100644 --- a/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.js +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.js @@ -82,8 +82,8 @@ tape( 'if provided `+0`, the function returns positive infinity', function test( t.end(); }); -tape( 'if `x > 35.0400...`, the function returns positive infinity', function test( t ) { - var values = incrspace( 35.05, 100.0, 10.1234 ); +tape( 'if `x > 34.844...`, the function returns positive infinity', function test( t ) { + var values = incrspace( 34.9, 100.0, 10.1234 ); var v; var i; @@ -94,8 +94,8 @@ tape( 'if `x > 35.0400...`, the function returns positive infinity', function te t.end(); }); -tape( 'if `x < -40.0019...`, the function returns zero', function test( t ) { - var values = incrspace( -40.002, -100.0, -10.1234 ); +tape( 'if `x < -34.195...`, the function returns zero', function test( t ) { + var values = incrspace( -34.2, -100.0, -10.1234 ); var v; var i; diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.native.js index 1aa109a12a7f..2f659350439c 100644 --- a/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.native.js +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.native.js @@ -91,8 +91,8 @@ tape( 'if provided `+0`, the function returns positive infinity', opts, function t.end(); }); -tape( 'if `x > 35.0400...`, the function returns positive infinity', opts, function test( t ) { - var values = incrspace( 35.05, 100.0, 10.1234 ); +tape( 'if `x > 34.844...`, the function returns positive infinity', function test( t ) { + var values = incrspace( 34.9, 100.0, 10.1234 ); var v; var i; @@ -103,8 +103,8 @@ tape( 'if `x > 35.0400...`, the function returns positive infinity', opts, funct t.end(); }); -tape( 'if `x < -40.0019...`, the function returns zero', opts, function test( t ) { - var values = incrspace( -40.002, -100.0, -10.1234 ); +tape( 'if `x < -34.195...`, the function returns zero', function test( t ) { + var values = incrspace( -34.2, -100.0, -10.1234 ); var v; var i; From 00ec683cd60078c48d201addabd6f211ae20a248 Mon Sep 17 00:00:00 2001 From: nirmaljb Date: Tue, 24 Mar 2026 02:30:46 +0530 Subject: [PATCH 6/8] test: migrated to ulpdiff --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: passed - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../math/base/special/gammaf/test/test.js | 23 ++++--------------- .../base/special/gammaf/test/test.native.js | 23 ++++--------------- 2 files changed, 10 insertions(+), 36 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.js b/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.js index 631684e4ae5e..0df0342b3d26 100644 --- a/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.js +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.js @@ -23,8 +23,7 @@ var tape = require( 'tape' ); var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); var incrspace = require( '@stdlib/array/base/incrspace' ); -var absf = require( '@stdlib/math/base/special/absf' ); -var max = require( '@stdlib/math/base/special/maxn' ); +var ulpdiff = require( '@stdlib/number/float32/base/ulp-difference' ); var PINF = require( '@stdlib/constants/float32/pinf' ); var NINF = require( '@stdlib/constants/float32/ninf' ); var gammaf = require( './../lib' ); @@ -107,31 +106,23 @@ tape( 'if `x < -34.195...`, the function returns zero', function test( t ) { }); tape( 'the function evaluates the gamma function (positive integers)', function test( t ) { - var delta; - var tol; var v; var i; for ( i = 0; i < data1.length; i++ ) { v = gammaf( data1[ i ] ); - delta = absf( v - expected1[ i ] ); - tol = 2.75e-5 * max( 1.0, absf( v ), absf( expected1[ i ] ) ); - t.ok( delta <= tol, 'within tolerance. x: ' + data1[ i ] + '. Value: ' + v + '. Expected: ' + expected1[ i ] + '. Tolerance: ' + tol + '.' ); + t.strictEqual( ulpdiff( v, expected1[ i ] ) <= 3, true, 'within tolerance. x: ' + data1[ i ] + '. Value: ' + v + '. Expected: ' + expected1[ i ] ); } t.end(); }); tape( 'the function evaluates the gamma function (decimal values)', function test( t ) { - var delta; - var tol; var v; var i; for ( i = 0; i < data2.length; i++ ) { v = gammaf( data2[ i ] ); - delta = absf( v - expected2[ i ] ); - tol = 2.75e-5 * max( 1.0, absf( v ), absf( expected2[ i ] ) ); - t.ok( delta <= tol, 'within tolerance. x: ' + data2[ i ] + '. Value: ' + v + '. Expected: ' + expected2[ i ] + '. Tolerance: ' + tol + '.' ); + t.strictEqual( ulpdiff( v, expected2[ i ] ) <= 5, true, 'within tolerance. x: ' + data2[ i ] + '. Value: ' + v + '. Expected: ' + expected2[ i ] ); } t.end(); }); @@ -145,8 +136,6 @@ tape( 'if provided a positive integer, the function returns the factorial of (n- tape( 'the function uses a small value approximation for tiny positive x', function test( t ) { var expected; - var delta; - var tol; var x; var v; @@ -154,10 +143,8 @@ tape( 'the function uses a small value approximation for tiny positive x', funct v = gammaf( x ); expected = 9.9999422e+4; - delta = absf( v - expected ); - tol = 1.0; - t.ok( delta < tol, 'within tolerance. x: ' + x + '. Value: ' + v + - '. Expected: ' + expected + '. Tolerance: ' + tol + '.' ); + t.strictEquals( ulpdiff( v, expected ) <= 1, true, 'within tolerance. x: ' + x + '. Value: ' + v + + '. Expected: ' + expected ); t.end(); }); diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.native.js index 2f659350439c..86bc0abebf66 100644 --- a/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.native.js +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.native.js @@ -24,9 +24,8 @@ var resolve = require( 'path' ).resolve; var tape = require( 'tape' ); var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); var incrspace = require( '@stdlib/array/base/incrspace' ); -var absf = require( '@stdlib/math/base/special/absf' ); -var max = require( '@stdlib/math/base/special/maxn' ); var PINF = require( '@stdlib/constants/float32/pinf' ); +var ulpdiff = require( '@stdlib/number/float32/base/ulp-difference' ); var NINF = require( '@stdlib/constants/float32/ninf' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -116,31 +115,23 @@ tape( 'if `x < -34.195...`, the function returns zero', function test( t ) { }); tape( 'the function evaluates the gamma function (positive integers)', opts, function test( t ) { - var delta; - var tol; var v; var i; for ( i = 0; i < data1.length; i++ ) { v = gammaf( data1[ i ] ); - delta = absf( v - expected1[ i ] ); - tol = 2.75e-5 * max( 1.0, absf( v ), absf( expected1[ i ] ) ); - t.ok( delta <= tol, 'within tolerance. x: ' + data1[ i ] + '. Value: ' + v + '. Expected: ' + expected1[ i ] + '. Tolerance: ' + tol + '.' ); + t.strictEqual( ulpdiff( v, expected1[ i ] ) <= 3, true, 'within tolerance. x: ' + data1[ i ] + '. Value: ' + v + '. Expected: ' + expected1[ i ] ); } t.end(); }); tape( 'the function evaluates the gamma function (decimal values)', opts, function test( t ) { - var delta; - var tol; var v; var i; for ( i = 0; i < data2.length; i++ ) { v = gammaf( data2[ i ] ); - delta = absf( v - expected2[ i ] ); - tol = 2.75e-5 * max( 1.0, absf( v ), absf( expected2[ i ] ) ); - t.ok( delta <= tol, 'within tolerance. x: ' + data2[ i ] + '. Value: ' + v + '. Expected: ' + expected2[ i ] + '. Tolerance: ' + tol + '.' ); + t.strictEqual( ulpdiff( v, expected2[ i ] ) <= 5, true, 'within tolerance. x: ' + data2[ i ] + '. Value: ' + v + '. Expected: ' + expected2[ i ] ); } t.end(); }); @@ -154,8 +145,6 @@ tape( 'if provided a positive integer, the function returns the factorial of (n- tape( 'the function uses a small value approximation for tiny positive x', opts, function test( t ) { var expected; - var delta; - var tol; var x; var v; @@ -163,10 +152,8 @@ tape( 'the function uses a small value approximation for tiny positive x', opts, v = gammaf( x ); expected = 9.9999422e+4; - delta = absf( v - expected ); - tol = 1.0; - t.ok( delta < tol, 'within tolerance. x: ' + x + '. Value: ' + v + - '. Expected: ' + expected + '. Tolerance: ' + tol + '.' ); + t.strictEquals( ulpdiff( v, expected ) <= 1, true, 'within tolerance. x: ' + x + '. Value: ' + v + + '. Expected: ' + expected ); t.end(); }); From 55d7c761af653bd9ccbcdbcab10c5eb08be41c5e Mon Sep 17 00:00:00 2001 From: nirmaljb Date: Fri, 27 Mar 2026 21:33:11 +0530 Subject: [PATCH 7/8] test: changed to isAlmostEqual --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: passed - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../@stdlib/math/base/special/gammaf/test/test.js | 8 ++++---- .../@stdlib/math/base/special/gammaf/test/test.native.js | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.js b/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.js index 0df0342b3d26..78aec0b8a24a 100644 --- a/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.js +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.js @@ -23,7 +23,7 @@ var tape = require( 'tape' ); var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); var incrspace = require( '@stdlib/array/base/incrspace' ); -var ulpdiff = require( '@stdlib/number/float32/base/ulp-difference' ); +var isAlmostEqualf = require( '@stdlib/number/float32/base/assert/is-almost-equal' ); var PINF = require( '@stdlib/constants/float32/pinf' ); var NINF = require( '@stdlib/constants/float32/ninf' ); var gammaf = require( './../lib' ); @@ -111,7 +111,7 @@ tape( 'the function evaluates the gamma function (positive integers)', function for ( i = 0; i < data1.length; i++ ) { v = gammaf( data1[ i ] ); - t.strictEqual( ulpdiff( v, expected1[ i ] ) <= 3, true, 'within tolerance. x: ' + data1[ i ] + '. Value: ' + v + '. Expected: ' + expected1[ i ] ); + t.strictEqual( isAlmostEqualf( v, expected1[ i ], 3 ), true, 'within tolerance. x: ' + data1[ i ] + '. Value: ' + v + '. Expected: ' + expected1[ i ] ); } t.end(); }); @@ -122,7 +122,7 @@ tape( 'the function evaluates the gamma function (decimal values)', function tes for ( i = 0; i < data2.length; i++ ) { v = gammaf( data2[ i ] ); - t.strictEqual( ulpdiff( v, expected2[ i ] ) <= 5, true, 'within tolerance. x: ' + data2[ i ] + '. Value: ' + v + '. Expected: ' + expected2[ i ] ); + t.strictEqual( isAlmostEqualf( v, expected2[ i ], 5 ), true, 'within tolerance. x: ' + data2[ i ] + '. Value: ' + v + '. Expected: ' + expected2[ i ] ); } t.end(); }); @@ -144,7 +144,7 @@ tape( 'the function uses a small value approximation for tiny positive x', funct expected = 9.9999422e+4; - t.strictEquals( ulpdiff( v, expected ) <= 1, true, 'within tolerance. x: ' + x + '. Value: ' + v + + t.strictEquals( isAlmostEqualf( v, expected, 1 ), true, 'within tolerance. x: ' + x + '. Value: ' + v + '. Expected: ' + expected ); t.end(); }); diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.native.js index 86bc0abebf66..35fa502a2af8 100644 --- a/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.native.js +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.native.js @@ -25,7 +25,7 @@ var tape = require( 'tape' ); var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); var incrspace = require( '@stdlib/array/base/incrspace' ); var PINF = require( '@stdlib/constants/float32/pinf' ); -var ulpdiff = require( '@stdlib/number/float32/base/ulp-difference' ); +var isAlmostEqualf = require( '@stdlib/number/float32/base/assert/is-almost-equal' ); var NINF = require( '@stdlib/constants/float32/ninf' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -120,7 +120,7 @@ tape( 'the function evaluates the gamma function (positive integers)', opts, fun for ( i = 0; i < data1.length; i++ ) { v = gammaf( data1[ i ] ); - t.strictEqual( ulpdiff( v, expected1[ i ] ) <= 3, true, 'within tolerance. x: ' + data1[ i ] + '. Value: ' + v + '. Expected: ' + expected1[ i ] ); + t.strictEqual( isAlmostEqualf( v, expected1[ i ], 3 ), true, 'within tolerance. x: ' + data1[ i ] + '. Value: ' + v + '. Expected: ' + expected1[ i ] ); } t.end(); }); @@ -131,7 +131,7 @@ tape( 'the function evaluates the gamma function (decimal values)', opts, functi for ( i = 0; i < data2.length; i++ ) { v = gammaf( data2[ i ] ); - t.strictEqual( ulpdiff( v, expected2[ i ] ) <= 5, true, 'within tolerance. x: ' + data2[ i ] + '. Value: ' + v + '. Expected: ' + expected2[ i ] ); + t.strictEqual( isAlmostEqualf( v, expected2[ i ], 5 ), true, 'within tolerance. x: ' + data2[ i ] + '. Value: ' + v + '. Expected: ' + expected2[ i ] ); } t.end(); }); @@ -153,7 +153,7 @@ tape( 'the function uses a small value approximation for tiny positive x', opts, expected = 9.9999422e+4; - t.strictEquals( ulpdiff( v, expected ) <= 1, true, 'within tolerance. x: ' + x + '. Value: ' + v + + t.strictEquals( isAlmostEqualf( v, expected, 1 ), true, 'within tolerance. x: ' + x + '. Value: ' + v + '. Expected: ' + expected ); t.end(); }); From e27aa5b651f27f08681f67bd465781602e63e0b4 Mon Sep 17 00:00:00 2001 From: nirmaljb Date: Tue, 31 Mar 2026 23:17:24 +0530 Subject: [PATCH 8/8] test: moved from isAlmostEqual to isAlmostSameValue --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: passed - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../@stdlib/math/base/special/gammaf/test/test.js | 8 ++++---- .../@stdlib/math/base/special/gammaf/test/test.native.js | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.js b/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.js index 78aec0b8a24a..b3446a828124 100644 --- a/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.js +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.js @@ -23,7 +23,7 @@ var tape = require( 'tape' ); var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); var incrspace = require( '@stdlib/array/base/incrspace' ); -var isAlmostEqualf = require( '@stdlib/number/float32/base/assert/is-almost-equal' ); +var isAlmostSameValuef = require( '@stdlib/number/float32/base/assert/is-almost-same-value' ); var PINF = require( '@stdlib/constants/float32/pinf' ); var NINF = require( '@stdlib/constants/float32/ninf' ); var gammaf = require( './../lib' ); @@ -111,7 +111,7 @@ tape( 'the function evaluates the gamma function (positive integers)', function for ( i = 0; i < data1.length; i++ ) { v = gammaf( data1[ i ] ); - t.strictEqual( isAlmostEqualf( v, expected1[ i ], 3 ), true, 'within tolerance. x: ' + data1[ i ] + '. Value: ' + v + '. Expected: ' + expected1[ i ] ); + t.strictEqual( isAlmostSameValuef( v, expected1[ i ], 3 ), true, 'within tolerance. x: ' + data1[ i ] + '. Value: ' + v + '. Expected: ' + expected1[ i ] ); } t.end(); }); @@ -122,7 +122,7 @@ tape( 'the function evaluates the gamma function (decimal values)', function tes for ( i = 0; i < data2.length; i++ ) { v = gammaf( data2[ i ] ); - t.strictEqual( isAlmostEqualf( v, expected2[ i ], 5 ), true, 'within tolerance. x: ' + data2[ i ] + '. Value: ' + v + '. Expected: ' + expected2[ i ] ); + t.strictEqual( isAlmostSameValuef( v, expected2[ i ], 5 ), true, 'within tolerance. x: ' + data2[ i ] + '. Value: ' + v + '. Expected: ' + expected2[ i ] ); } t.end(); }); @@ -144,7 +144,7 @@ tape( 'the function uses a small value approximation for tiny positive x', funct expected = 9.9999422e+4; - t.strictEquals( isAlmostEqualf( v, expected, 1 ), true, 'within tolerance. x: ' + x + '. Value: ' + v + + t.strictEquals( isAlmostSameValuef( v, expected, 1 ), true, 'within tolerance. x: ' + x + '. Value: ' + v + '. Expected: ' + expected ); t.end(); }); diff --git a/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.native.js index 35fa502a2af8..0c3df1037521 100644 --- a/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.native.js +++ b/lib/node_modules/@stdlib/math/base/special/gammaf/test/test.native.js @@ -25,7 +25,7 @@ var tape = require( 'tape' ); var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); var incrspace = require( '@stdlib/array/base/incrspace' ); var PINF = require( '@stdlib/constants/float32/pinf' ); -var isAlmostEqualf = require( '@stdlib/number/float32/base/assert/is-almost-equal' ); +var isAlmostSameValuef = require( '@stdlib/number/float32/base/assert/is-almost-same-value' ); var NINF = require( '@stdlib/constants/float32/ninf' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -120,7 +120,7 @@ tape( 'the function evaluates the gamma function (positive integers)', opts, fun for ( i = 0; i < data1.length; i++ ) { v = gammaf( data1[ i ] ); - t.strictEqual( isAlmostEqualf( v, expected1[ i ], 3 ), true, 'within tolerance. x: ' + data1[ i ] + '. Value: ' + v + '. Expected: ' + expected1[ i ] ); + t.strictEqual( isAlmostSameValuef( v, expected1[ i ], 3 ), true, 'within tolerance. x: ' + data1[ i ] + '. Value: ' + v + '. Expected: ' + expected1[ i ] ); } t.end(); }); @@ -131,7 +131,7 @@ tape( 'the function evaluates the gamma function (decimal values)', opts, functi for ( i = 0; i < data2.length; i++ ) { v = gammaf( data2[ i ] ); - t.strictEqual( isAlmostEqualf( v, expected2[ i ], 5 ), true, 'within tolerance. x: ' + data2[ i ] + '. Value: ' + v + '. Expected: ' + expected2[ i ] ); + t.strictEqual( isAlmostSameValuef( v, expected2[ i ], 5 ), true, 'within tolerance. x: ' + data2[ i ] + '. Value: ' + v + '. Expected: ' + expected2[ i ] ); } t.end(); }); @@ -153,7 +153,7 @@ tape( 'the function uses a small value approximation for tiny positive x', opts, expected = 9.9999422e+4; - t.strictEquals( isAlmostEqualf( v, expected, 1 ), true, 'within tolerance. x: ' + x + '. Value: ' + v + + t.strictEquals( isAlmostSameValuef( v, expected, 1 ), true, 'within tolerance. x: ' + x + '. Value: ' + v + '. Expected: ' + expected ); t.end(); });